yolov9实现图像分割(gelan-c-seg.pt)步骤

一、YOLOv9 提供的 .pt 权重文件

YOLOv9 官方仓库(WongKinYiu/yolov9)中提供了以下几个预训练权重文件:

yolov9-c.pt:

表示 YOLOv9-C(Conventional)模型的预训练权重。
这是基于传统卷积的 YOLOv9 模型,适用于检测任务(Detection)。
如果想直接使用 YOLOv9 的原始架构进行训练,推荐选择这个权重。

yolov9-c-converted.pt:

表示 YOLOv9-C 的转换版本(Converted)。
这个文件通常是将原始权重转换为某种特定格式(可能是为了兼容其他框架或优化推理),但具体用途需要参考官方文档或代码注释。
训练时一般不直接使用这个,除非有特殊需求(例如推理优化或跨平台部署)。

gelan-c.pt:

表示 GELAN-C(Generalized Efficient Layer Aggregation Network)模型的预训练权重。
GELAN 是 YOLOv9 提出的一种轻量化网络架构,相比 YOLOv9-C 更高效,参数更少,计算量更低。
如果关注模型的效率(例如在边缘设备上部署)或想使用 GELAN 架构,推荐选择这个权重。


ps: pt文件选择

推荐选择:

  • 如果你的任务是基于原始 YOLOv9 架构进行微调(Fine-tuning),使用 yolov9-c.pt。
  • 如果你希望使用更高效的 GELAN 架构(尤其适合资源受限场景),使用 gelan-c.pt。
  • yolov9-c-converted.pt 不建议用于训练,它是为推理优化的版本,训练时应使用原始权重。

选择依据:

  • 硬件资源:gelan-c.pt 更轻量,适合 GPU 内存较小的环境。
  • 任务需求:如果追求最高精度,yolov9-c.pt 可能更有优势(因为 YOLOv9-C 参数更多,表达能力更强)。

二、segment 目录下的 .yaml 文件解析

segment 目录下的 .yaml 文件是用于实例分割(Instance Segmentation)任务的模型配置文件。以下是具体文件的含义:

gelan-c-seg.yaml:

定义了 GELAN-C 的分割模型架构。
适用于实例分割任务,使用 GELAN 轻量化网络。

gelan-c-dseg.yaml:

定义了 GELAN-C 的双分支分割模型(Dual Segmentation)。
“dseg”可能表示 Dual-Head 或某种增强分割设计(具体需参考官方代码或论文),通常用于更复杂的分割任务。

yolov9-c-dseg.yaml:

定义了 YOLOv9-C 的双分支分割模型。
基于传统 YOLOv9-C 架构,适合需要更高精度的分割任务。


.yaml 和 .pt 的匹配规则:

.yaml 文件定义模型的网络结构,.pt 文件提供预训练权重,两者需要匹配才能正确加载。

  • gelan-c-seg.yaml 和 gelan-c-dseg.yaml 对应 gelan-c-seg.pt。
  • yolov9-c-dseg.yaml 对应 yolov9-c-seg.pt。

具体选择:

  • 如果用 gelan-c.pt:
    用 gelan-c-seg.yaml 进行普通实例分割训练。
    用 gelan-c-dseg.yaml 进行增强型分割训练(如果你的数据集需要更复杂的分割能力)。
  • 如果用 yolov9-c.pt:
    用 yolov9-c-dseg.yaml 进行分割训练。
  • yolov9-c-converted.pt 不建议与这些 .yaml 文件搭配使用,因为它可能是转换后的权重,可能与分割任务不完全兼容。

三、具体操作步骤

1. 创建虚拟环境

conda activate yolov9 -n python=3.8
conda acitivate yolov9
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 数据准备

在主文件夹创建一个data.yaml文件,nc值,类别名称
json2txt(images\labels)
splitdata.py(train\test\val)

3. 训练

训练gelan-c-seg

models/segment/gelan-c-seg.yaml这个文件里面修改nc值

python segment/train.py --workers 8 --device 0 --batch 32  --data data.yaml --img 640 --cfg models/segment/gelan-c-seg.yaml --weights 'gelan-c-seg.pt' --name gelan-c-seg --hyp hyp.scratch-high.yaml --no-overlap --epochs 100 --close-mosaic 10

如果意外中断训练,可从断点继续训练

python segment/train.py --workers 8 --device 0 --batch 32 --data data.yaml --img 640 --cfg models/segment/gelan-c-seg.yaml --weights 'gelan-c-seg.pt' --name gelan-c-seg --hyp hyp.scratch-high.yaml --no-overlap --epochs 100 --close-mosaic 10 --resume 'C:/.../yolov9-main/yolov9-main/runs/train-seg/gelan-c-seg7/weights/last.pt'

训练yolov9-c-seg

python segment/train_dual.py --workers 8 --device 0 --batch 8  --data data/AntiGlareBoard.yaml --img 640 --cfg models/segment/TSFS-seg.yaml --weights 'yolov9-c-seg.pt' --name yolov9-c-seg-ST --hyp hyp.scratch-high.yaml --no-overlap --epochs 300 --close-mosaic 10 --save-period 1  --patience 30 --resume 'C:/Users/60542/Desktop/yolov9-c-seg-ST/yolov9-main/runs/train-seg/yolov9-c-seg-ST2/weights/last.pt'

注意:这里batch最大只能设8

验证

修改segment/val.py中的run()函数:save_json=True/save_txt=True…

python segment/val.py --workers 8 --device 0 --batch 32 --data data.yaml --img 640 --weights "C:/Users/.../runs/train-seg/gelan-c-seg7/weights/best.pt" --name gelan-c-seg-val --save-json --iou-thres 0.6 --conf-thres 0.001

yolov9
原码
论文

2025.3.20更新
代码

python segment/train.py --workers 8 --device 0 --batch 32  --data data/AntiGlareBoard.yaml --img 640 --cfg models/segment/yolov9-c-dseg.yaml --weights 'yolov9-c-converted.pt' --name yolov9-c-converted --hyp hyp.scratch-high.yaml --no-overlap --epochs 100 --close-mosaic 10

若标签txt文件不存在ADP,训练时会报错;要把空文件先删掉

python segment/train.py --workers 8 --device 0 --batch 32 --data data/AntiGlareBoard.yaml --img 640 --cfg models/segment/gelan-c-seg.yaml --weights ‘gelan-c-seg.pt’ --name gelan-c-seg --hyp hyp.scratch-high.yaml --epochs 100 --device 0

断点:

 python segment/train.py --workers 8 --device 0 --batch 16 --data data/AntiGlareBoard.yaml --img 640 --cfg models/segment/gelan-c-seg.yaml --weights C:/Users/60542/Desktop/yolov9-main/runs/train-seg/gelan-c-seg52/weights/last.pt --name gelan-c-seg --hyp hyp.scratch-high.yaml --no-overlap --epochs 30 --close-mosaic 10 --save-period 1
### YOLOv9-t.pt 模型特点 #### 高效的性能表现 YOLOv9 在 MS COCO 数据集的目标检测任务中展现了卓越的表现,不仅超越了之前所有的实时目标检测算法,在精确度、参数利用效率以及运算效能方面也表现出明显的优势[^1]。 #### 适用于特定应用场景 针对X光骨骼医疗场景的应用需求进行了优化测试。通过对YOLOv9全系列与GELAN全系列共计十二款不同规模模型的效果比较研究发现,尽管各型号之间存在差异,但它们在该领域内均实现了接近一致的良好性能水平;考虑到实际部署中的资源消耗因素,“t”版本因其较小的体积成为推荐选项之一[^2]。 #### 减轻计算负担的技术手段 借鉴网络瘦身(Network Slimming)技术理念,旨在解决传统深度卷积神经网络(CNN)因高昂算力成本而导致难以广泛普及的问题。具体措施包括但不限于缩减整体框架尺寸、压缩执行期间所需内存空间并尽可能简化内部逻辑流程等多维度改进策略。这些调整使得即使是在有限硬件条件下也能保持较高的识别准确性和处理速率[^3]。 #### 架构创新点 继承和发展自YOLO家族一贯的设计思路,特别是在骨干网部分引入了一些新颖机制以增强特性捕捉能力。例如,采用多次切片(slice)操作构建Focus层的做法有助于提升特征图谱的质量和多样性,进而促进后续阶段的信息融合效果[^4]。 ```python import torch model = torch.hub.load('ultralytics/yolov9', 'custom', path='path/to/YOLOv9-t.pt') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值