Dronevehicle 数据集转yolo_obb的问题

Dronevehicle 数据集转yolo_obb

1、Dronevehicle转DOTA

1、 Dronevehicle 数据集中有旋转框和水平框,转换时要进行分类获取坐标
2、其中有个类别为feright car,由于mmrotate读取标签的机制,这个字符串在txt中不会直接被读取,因为中间有空格,会认为是两个标签,从而报错,需要转换为feright_car或者feright-car。让成为一个完整的字符串。
参考博文:http://t.csdnimg.cn/jf6PQ

2、DOTA转yolo_obb

经过步骤1后得到dota格式的txt文件,在使用“convert_dota_to_yolo_obb”函数转yolo_obb格式时发现有三个图片中存在错误标签,需修改后再转yolo格式。

出错标签

在这里插入图片描述

解决

‘13099’:“*” 改为 “feright_car”;
‘11663’: “feright” 改为 “feright_car”;
‘16318’: “truvk” 改为 “truck”

### YOLOv11双模态实现介绍 YOLOv11 是一种基于 Ultralytics 官方代码库开发的目标检测框架,支持多模态输入(如可见光和红外光图像)。其核心在于通过引入 CFT 模块(Cross-Feature Transformation Module),实现了对两种不同模态数据的有效融合[^1]。 #### 架构设计 YOLOv11 的双模态版本采用了一种双分支结构来分别处理可见光和红外光输入。具体来说: - **双分支网络**:两个独立的卷积神经网络分支用于提取各自模态特征。 - **CFT 模块**:该模块负责跨模态特征交互与融合,从而增强模型对于复杂场景的理解能力[^2]。 以下是简化后的架构描述: ```python class YOLOv11MultiModal(nn.Module): def __init__(self, backbone_config, cft_module_config): super(YOLOv11MultiModal, self).__init__() # 可见光分支 self.visible_branch = build_backbone(backbone_config) # 红外光分支 self.infrared_branch = build_backbone(backbone_config) # 特征融合模块 (CFT) self.cft_module = CrossFeatureTransformation(cft_module_config) def forward(self, visible_input, infrared_input): v_features = self.visible_branch(visible_input) i_features = self.infrared_branch(infrared_input) fused_features = self.cft_module(v_features, i_features) return fused_features ``` #### 环境配置 为了成功运行 YOLOv11 多模态版本,需完成如下准备工作: 1. **安装依赖项**:确保 Python 和 PyTorch 已正确安装,并满足最低版本要求。 2. **准备数据集**:推荐使用 DroneVehicle 数据集或其他类似的多模态数据集,其中包含配对的可见光和红外光图像及其标注文件(通常为 YOLO 格式)[^3]。 3. **权重初始化**:可以从预训练模型加载初始权重以加速收敛过程。 4. **YAML 文件定义**:创建并调整 `model.yaml` 和 `data.yaml` 文件,指定输入尺寸、类别数量以及路径等参数[^4]。 #### 训练流程 在实际应用中,可以通过以下命令启动训练脚本: ```bash python train.py --img 640 --batch 16 --epochs 50 \ --data data/drone_vehicle.yaml \ --cfg models/yolov11_multimodal.yaml \ --weights yolov11.pt ``` 此过程中会自动保存最佳性能模型至指定目录下供后续测试调用。 #### 推理阶段 当模型训练完成后即可进入推理环节,在单张或多张图片上执行预测操作: ```python from ultralytics import YOLO # 加载已训练好的模型 model = YOLO('runs/train/exp/weights/best.pt') # 对新样本进行推断 results = model.predict(source='path_to_test_images', save=True) for result in results: boxes = result.boxes.xyxy.cpu().numpy() # 获取边界框坐标 confidences = result.boxes.conf.cpu().numpy() # 获取置信度分数 class_ids = result.boxes.cls.cpu().numpy() # 获取分类ID ``` 上述方法能够高效地识别目标物体位置及种类信息。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值