1. yolov10源码下载
THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection (github.com)https://github.com/THU-MIG/yolov10?tab=readme-ov-file
2. 环境配置
预先安装好ANACONDA、PyCharm或者VSCode等基本软件。参考以下博客:
史上最全最详细的Anaconda安装教程-CSDN博客https://blog.csdn.net/wq_ocean_/article/details/103889237(超详细)Python+PyCharm的安装步骤及PyCharm的使用(含快捷键)_python pycharm-CSDN博客https://blog.csdn.net/junleon/article/details/120698578检测电脑里的python版本:
我的是3.11。
使用Anaconda Prompt 创建虚拟环境,再激活环境。
conda create -n yolov10 python=3.11
conda activate yolov10
安装支持包
pip install -r requirements.txt
pip install -e .
使用PyCharm打开下载的yolov10源码,右下角切换到创建的环境
创建train.py,执行以下代码
from ultralytics import YOLOv10
import os
os.environ["GIT_PYTHON_REFRESH"] = "quiet"
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
if __name__ == '__main__':
model = YOLOv10('yolov10n.pt')
result = model.train(data=coco128.yaml, epochs=40, batch=2, imgsz=640, device='cpu')
直接选用大家都有cpu训练,如果要使用GPU,将值改为0 即可,GPU使用依赖与yolov8一致。
YOLOv10 -Ultralytics YOLO 文档https://docs.ultralytics.com/zh/models/yolov10/#model-variantsyolov10封装的很好,使用起来没什么难度,参考官方给的文档就能跑起来。
3. 使用所得权重文件预测图片
from ultralytics import YOLOv10
model = YOLOv10(r'C:\Users\Administrator\Desktop\yolov10-main\runs\detect\train4\weights\best.pt')
model.predict(save=True)
4. 性能分析
总体效果还是比其他版本好很多的,但是我的训练时间貌似比v8长不少,这里论文中也给出了解释。
与其他最先进的探测器相比:
- YOLOv10-S / X 比RT-DETR-R18 / R101 快 1.8 倍 / 1.3 倍,精度相似
- 在精度相同的情况下,YOLOv10-B 比 YOLOv9-C 减少了 25% 的参数,延迟时间缩短了 46%
- YOLOv10-L / X 的性能比YOLOv8-L / X 高 0.3 AP / 0.5 AP,参数少 1.8× / 2.3×
以下是 YOLOv10 变体与其他先进机型的详细比较:
模型 | 参数 (M) | FLOP (G) | APval (%) | 延迟(毫秒) | 延迟(前向)(毫秒) |
---|---|---|---|---|---|
YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
金色-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
YOLOv8-N | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
YOLOv10-N | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
金色-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
YOLOv8-S | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
YOLOv10-S | 7.2 | 21.6 | 46.8 | 2.49 | 2.39 |
RT-DETR-R18 | 20.0 | 60.0 | 46.5 | 4.58 | 4.49 |
YOLOv6-3.0-M | 34.9 | 85.8 | 49.1 | 5.63 | 4.56 |
金色-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
YOLOv8-M | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
YOLOv10-M | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
金色-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
YOLOv8-L | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
YOLOv10-L | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
YOLOv8-X | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
YOLOv10-X | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
参考两位博主的论文分析
【论文阅读】 YOLOv10: Real-Time End-to-End Object Detection-CSDN博客https://blog.csdn.net/shuaijieer/article/details/139182282
YOLOv10详细解读 | 一文带你深入了解yolov10的创新点(附网络结构图 + 举例说明)-CSDN博客https://blog.csdn.net/java1314777/article/details/139206290