目标检测之YOLOV11自定义数据使用OBB训练与验证

一、前置条件与环境准备

在开始训练前,确保已完成以下准备《目标检测之YOLOV11自定义数据预处理——从原始标注到YOLO-OBB格式转换与验证》:
数据目录结构

yolov11/
├── datasets/
│   └── shrimp/
│       ├── images/
│       │   ├── train/  # 训练集图片
│       │   └── val/    # 验证集图片
│       └── labels/
│           ├── train/  # 训练集YOLO-OBB标注(.txt)
│           └── val/    # 验证集YOLO-OBB标注(.txt)
├── shrimp_obb.yaml     # 训练配置文件
└── runs/               # 训练结果保存目录
   └── obb/             # OBB任务结果

二、训练配置文件shrimp_obb.yaml设置

配置文件定义了数据集路径、类别数等关键信息,shrimp_obb.yaml应包含以下内容:

# 数据集基础信息(根据实际路径调整)
train: /datasets/shrimp/images/train  # 训练集图片目录(需提前划分训练集)
val:  /datasets/shrimp/images/val    # 验证集图片目录(你代码中的val路径)

# 标签路径(YOLO自动匹配:与图片目录同级的labels目录,如images/train → labels/train)
# 转换后标签路径labels/val(与val图片目录同级)

# 类别信息(你提到只有1个类别)
nc: 1  # 类别数量(必须与转换后的class_index=0一致)
names: ["shrimp"]  # 类别名称(与实际标注的类别一致)

# 可选:测试集路径(若有)
#test:  /datasets/shrimp/images/test

# 以下为可选超参数(可在训练命令中覆盖,非必须写在yaml里)
# 超参数参考:https://docs.ultralytics.com/yolov5/training
#
### 使用YOLOv11 OBB模型训练自定义数据集以实现旋转目标检测使用YOLOv11 OBB模型对自定义数据集进行旋转目标检测训练,以下是详细的说明: #### 1. 准备环境 确保安装了必要的依赖库。如果尚未安装 `ultralytics` 库,则可以通过以下命令完成安装: ```bash pip install ultralytics ``` #### 2. 加载模型 可以选择从头开始构建新模型或者加载预训练权重。对于旋转目标检测任务,推荐优先尝试加载预训练权重来加速收敛并提升性能。 - **方法一:从零创建模型** ```python from ultralytics import YOLO model = YOLO('yolov11-obb.yaml') # 构建新的模型结构 ``` 此方式适合于完全无任何可用预训练权重的情况[^3]。 - **方法二:加载预训练权重** ```python from ultralytics import YOLO model = YOLO('yolov11-obb.pt') # 载入官方提供的预训练权重文件 # 或者结合配置文件已有权重初始化 model = YOLO('yolov11-obb.yaml').load('pretrained_weights.pt') ``` 注意,仅当所使用的预训练权重来源于包含丰富场景和大量旋转目标样本的数据集(例如DOTA)时才有效果显著。 #### 3. 配置数据集 准备一份描述自定义数据集的信息文档(通常命名为`.yaml`) ,其内容应至少包括类别名称列表以及路径指向训练/验证图像及其对应标签的位置。下面是一个简单的例子: ```yaml train: ./datasets/train/images/ val: ./datasets/valid/images/ nc: 5 # 类别的数量 names: '0': airplane '1': ship '2': storage-tank '3': baseball-diamond '4': tennis-court ``` 上述代码片段中的字段解释如下: - `train`: 训练图片所在目录; - `val`: 测试或验证集合所在的地址; - `nc`: 总共涉及多少种类别; - `names`: 各类别的映射关系表单[^2]。 #### 4. 开始训练过程 调用 `.train()` 方法即可启动整个流程,在这里可以指定多个参数调整训练行为,如迭代次数(`epochs`)、输入尺寸大小(`imgsz`)等。 ```python results = model.train( data='./path_to_your_dataset_config.yaml', epochs=100, imgsz=640 ) ``` 其中, - 参数 `data` 接收前面提到过的 YAML 文件绝对位置字符串; - 参数 `epochs` 定义最大轮次数目,默认值设得较高以便充分探索解空间; - 参数 `imgsz` 控制网络接收图片分辨率边长像素数,一般选取标准数值如 {640, 800} 来平衡速度质量需求。 --- ### 注意事项 - 如果发现初次训练所得权重视图再次充当另一轮初始条件反而损害最终效果,请勿重复利用旧版成果作为新一轮起点材料;唯有借助广泛覆盖各类复杂情形的大规模公开资料集预先培养基础能力后再迁移到特定领域才是正道。 - 对于某些特殊应用场景下的小众物体识别难题而言,可能还需要额外引入增强策略诸如随机裁剪翻转变换操作进一步扩充有限素材资源池从而改善泛化表现水平。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值