无人机视角坦克检测数据集 人 交通工具 房屋 检测数据集目标检测带标注voc
内含有img和ground truth
数量:3500+张
目标:human、truck、vehicle、house、tank
完整训练脚本
from ultralytics import YOLO
# 加载预训练的YOLOv8m模型
model = YOLO('yolov8m.pt')
# 训练模型
results = model.train(
data='drone_military_dataset/data.yaml',
epochs=100,
batch=16,
imgsz=640,
save_period=-1, # 不保存中间权重
project='runs/detect/drone_military',
name='yolov8m_drone'
)
# 评估模型
metrics = model.val(data='drone_military_dataset/data.yaml')
print(metrics)
# 测试模型
test_image_path = 'path/to/test/image.jpg'
img = cv2.imread(test_image_path)
# 进行预测
results = model(img)
# 显示结果
for result in results:
boxes = result.boxes.cpu().numpy()
for box in boxes:
r = box.xyxy[0].astype(int)
cls = int(box.cls[0])
conf = box.conf[0]
label = f'{model.names[cls]} {conf:.2f}'
cv2.rectangle(img, (r[0], r[1]), (r[2], r[3]), (0, 255, 0), 2)
cv2.putText(img, label, (r[0], r[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
cv2.imshow('Inference Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这里插入图片描述
```![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/15380efa6f5945b0960444c92ed5d52a.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5004b993d3a444c78cfd323fee44074d.png)
如何使用无人机视角目标检测数据集来训练YOLOv8目标检测模型。这个数据集包含3500多张图片,并且标注格式为VOC(Visual Object Classes)格式,但我们可以通过一些工具将其转换为YOLO格式,以便直接用于训练YOLOv8。
### 数据集介绍
#### 基本信息
- **类别**: `human`, `truck`, `vehicle`, `house`, `tank`
- **格式**: 图片(JPEG/PNG)和标注文件(XML)
- **标注格式**: VOC 格式
- **数量**: 3500+ 张图片
### 数据集结构
假设数据集的目录结构如下:
drone_military_dataset/
├── images/
│ ├── img1.jpg
│ ├── img2.jpg
│ └── …
├── annotations/
│ ├── img1.xml
│ ├── img2.xml
│ └── …
├── data.yaml
└── README.md
### 类别标签文件 (`data.yaml`)
### 步骤概述
1. **安装依赖项**
2. **准备数据集**
3. **将VOC格式转换为YOLO格式**
4. **划分数据集**
5. **编写训练脚本**
6. **运行训练脚本**
7. **评估模型**
8. **推理与测试**
### 详细步骤
#### 1. 安装依赖项
确保你已经安装了必要的Python库:
```bash
pip install ultralytics opencv-python lxml pandas scikit-learn
2. 准备数据集
确保你的数据集目录结构如上述所示,并且所有图片和对应的XML标注文件都在正确的文件夹中。
3. 将VOC格式转换为YOLO格式
我们可以使用一个Python脚本来完成这一任务。以下是一个示例脚本:
将上述代码保存为 convert_voc_to_yolo.py
并运行:
python convert_voc_to_yolo.py
这将把所有的VOC XML标注文件转换为YOLO TXT格式,并按比例划分为训练集和验证集。
4. 编写训练脚本
创建一个训练脚本来启动训练过程。
将上述代码保存为 train_yolov8.py
。
5. 运行训练脚本
在终端中运行训练脚本:
python train_yolov8.py
6. 评估模型
训练完成后,可以使用验证集评估模型性能。
将上述代码保存为 evaluate_yolov8.py
并运行:
python evaluate_yolov8.py
7. 推理与测试
使用训练好的模型进行推理和测试。
将上述代码保存为 infer_yolov8.py
并运行:
python infer_yolov8.py
8. 可视化训练结果
你可以使用Ultralytics提供的工具来可视化训练过程中的损失曲线、mAP等指标。
tensorboard --logdir runs/detect/drone_military/yolov8m_drone
然后在浏览器中打开 http://localhost:6006
查看TensorBoard界面。
总结
通过以上步骤,你可以成功地使用无人机视角目标检测数据集训练一个YOLOv8目标检测模型。这个模型能够有效地识别无人机拍摄的军事目标。希望这些详细的信息和代码示例对你有所帮助
其他注意事项
- 数据增强: 为了提高模型的泛化能力,可以考虑使用数据增强技术。
- 超参数调优: 根据实际情况调整训练的超参数,如学习率、批量大小等。
- 硬件加速: 如果可能,使用GPU加速训练过程,以加快训练速度。
以下是一个完整的训练脚本示例,包含了所有必要的步骤:
将上述代码保存为 train_yolov8.py
并运行即可完成整个训练、评估和测试流程。