如何使用深度学习框架目标检测算法Yolov8训练无人机视角垃圾检测数据集 通过训练的无人机垃圾数据集权重 建立深度学习yolov8无人机垃圾检测系统
文章目录
收集整理的“无人机视角垃圾检测数据集”的训练及应用
以下文字及代码仅供参考。
🚮 无人机视角垃圾检测数据集
数据集
项目 | 详情 |
---|---|
总图片数 | 772 张 |
训练集 (Train) | 540 张 |
验证集 (Val) | 116 张 |
测试集 (Test) | 116 张 |
总类别数 | 1 类 |
类别统计
序号 | 中文名称 | 英文类别名 | 图片数量 | 标注框数量 |
---|---|---|---|---|
1 | 垃圾 | rubbish | 772 | 3,718 |
数据分布
集合 | 图片数量 |
---|---|
训练集 (Train) | 540 |
验证集 (Val) | 116 |
测试集 (Test) | 116 |
总计 | 772 |
2
1
1
无人机视角垃圾检测数据集,共 772 张图像,包含 1 个类别(rubbish),属于典型的单类目标检测任务。训练、推理与部署指南,适用于 YOLOv5 / YOLOv8 系列模型。代码示例,仅供参考学习!
📁 一、目录结构要求(YOLO 格式)
建议将数据集整理为如下结构:
drone_rubbish_dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
├── labels/
│ ├── train/
│ ├── val/
│ └── test/
└── data.yaml
🧾 二、创建 data.yaml
文件
train: ./images/train
val: ./images/val
test: ./images/test
nc: 1 # 类别数量
names: ['rubbish']
🔧 三、环境搭建(YOLOv8)
安装依赖
# 创建虚拟环境(可选)
python -m venv drone_yolo_env
source drone_yolo_env/bin/activate # Windows: drone_yolo_env\Scripts\activate
# 安装 ultralytics 和 OpenCV
pip install ultralytics opencv-python-headless
📦 四、模型选择与训练
推荐使用 YOLOv8s 或 YOLOv8n(轻量级适合无人机部署)
开始训练
yolo task=detect mode=train model=yolov8s.pt data=data.yaml epochs=100 imgsz=640 batch=16 workers=4
参数说明:
参数 | 含义 |
---|---|
model | 使用的预训练模型(如 yolov8s.pt) |
data | 数据配置文件路径 |
epochs | 总训练轮次 |
imgsz | 输入图像尺寸(推荐640或1280) |
batch | 批量大小(根据GPU内存调整) |
workers | 数据加载线程数 |
📊 五、性能评估(验证集)
yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=data.yaml
输出指标包括:
- mAP@0.5
- mAP@0.5:0.95
- Precision, Recall
- FPS(帧率)
🎥 六、模型推理与部署
1. 单图推理
from ultralytics import YOLO
import cv2
model = YOLO('runs/detect/train/weights/best.pt')
results = model('path/to/image.jpg')
for r in results:
im_array = r.plot()
cv2.imshow("Rubbish Detection", im_array)
cv2.waitKey(0)
cv2.destroyAllWindows()
2. 实时视频流推理(无人机摄像头)
def detect_video(video_path):
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
results = model(frame)
annotated_frame = results[0].plot()
cv2.imshow("Drone Rubbish Detection", annotated_frame)
if cv2.waitKey(1) == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
detect_video(0) # 0 表示摄像头;也可以传入视频路径
3. 批量预测整个文件夹
yolo task=detect mode=predict model=best.pt source="path/to/images" save=True
🚀 七、模型导出为 ONNX / TensorRT / OpenVINO
导出为 ONNX 格式
yolo export model=best.pt format=onnx
导出为 TensorRT(需 NVIDIA Jetson)
yolo export model=best.pt format=engine device=0 # device=0 表示使用GPU
导出为 OpenVINO(用于 Intel 设备)
yolo export model=best.pt format=openvino
📁 八、测试集批量评估(自定义脚本)
如果你想对测试集进行批量评估并统计结果:
import os
from ultralytics import YOLO
model = YOLO('best.pt')
test_dir = './images/test'
results = []
for img_file in os.listdir(test_dir):
if img_file.endswith('.jpg'):
img_path = os.path.join(test_dir, img_file)
result = model(img_path)[0]
results.append(result)
# 可视化部分结果
for res in results[:5]:
res.show()
🧱 九、Docker 部署建议(可选)
Dockerfile 示例
FROM python:3.10
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "inference.py"]
构建镜像
docker build -t drone_rubbish_yolo .
运行容器
docker run -it --rm -v $(pwd)/data:/app/data drone_rubbish_yolo
以上文字及代码仅供参考学习。