收集整理的无人机视角斑马线目标数据集 通过训练的权重推理并构建一个深度学习无人机视角斑马线目标检测系统
无人机视角斑马线目标检测数据集
无人机:DJI Mavic 3
数据类型:裁剪+yolo格式标签
(1000张图片)
图片分辨率:640*640
采集高度:60~120m
采集角度:90度
类别:斑马线
使用YOLOv8训练无人机视角斑马线目标检测数据集,并构建一个深度学习无人机视角斑马线目标检测系统,
代码示例,仅供参考。
同学们,从环境设置、数据准备到模型训练和评估的全过程。
1. 环境设置
首先,确保安装了必要的依赖包。Ultralytics提供了YOLOv8的支持,可以通过pip轻松安装:
pip install ultralytics
2. 数据准备
数据已经裁剪为640x640分辨率,并且有对应的YOLO格式标签。请确认数据集按如下结构组织:
dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── labels/
├── train/
├── val/
└── test/
同时,创建一个data.yaml
文件来定义数据集路径和类别信息:
train: ./dataset/images/train
val: ./dataset/images/val
test: ./dataset/images/test
nc: 1
names: ['crosswalk']
3. 模型选择与配置
选择YOLOv8作为我们的目标检测模型。由于这是一个单一类别的问题(即“斑马线”),我们可以直接开始训练而无需对模型架构做过多修改。
4. 训练模型
使用YOLOv8训练模型的基本代码示例:
from ultralytics import YOLO
# 加载YOLOv8的预训练模型或自定义模型
model = YOLO('yolov8s.yaml') # 或者使用'yolov8s.pt'等预训练模型
# 开始训练
results = model.train(
data='path/to/data.yaml', # 替换为你的data.yaml路径
epochs=100, # 根据需要调整训练轮数
imgsz=640,
batch=16,
name='crosswalk_detector' # 可选:指定输出目录名称
)
5. 性能评估
在验证集上评估模型性能:
metrics = model.val()
print(f'mAP@0.5: {metrics.box.map50}, mAP@0.5:0.95: {metrics.box.map}')
6. 推理与可视化
进行推理并可视化结果:
import cv2
# 加载训练好的模型
model = YOLO('runs/detect/crosswalk_detector/weights/best.pt')
# 单张图片推理
img_path = 'path/to/test_image.jpg'
results = model.predict(source=img_path, save=True)
# 可视化结果
for result in results:
img = cv2.imread(img_path)
for box in result.boxes:
x1, y1, x2, y2 = [int(x) for x in box.xyxy]
conf = box.conf.item() # 获取置信度
cls = int(box.cls.item()) # 获取类别索引
label = f'{result.names[cls]} {conf:.2f}'
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(img, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cv2.imshow('Detected Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7. 部署系统
-
导出模型:可以将训练好的模型导出为ONNX或其他格式以方便部署。
model.export(format="onnx")
-
Web服务:利用Flask或FastAPI快速构建一个RESTful API服务,以便于在线检测。
-
移动应用:通过TensorFlow Lite或者ONNX Runtime将模型部署到移动端。
zongjie总结。
以上内容及代码仅供参考。