由于项目需要,最近一直在看目标检测相关的资料,不过纸上得来终觉浅,绝知此事要躬行啊。从今日起,将学习的过程记录一下,作为以后用来复习的材料吧。
我想最快的学习便是直接动手做项目,因此今天就将yolov5模型下载下来,研究下如何使用,整个过程都是在linux系统上运行。
Yolov5是什么
Yolov5是目标检测领域中非常流行的模型,属于Yolo(you only look once)系列。Yolov1到v3是由Joseph Redmon开发的,Yolov4由其他团队发布,而Yolov5则是由Ultralytics公司基于PyTorch框架开发和维护的。它在保持高检测精度的同时,推理速度也非常快。同时提供了从轻量级到超高性能的不同规格模型(s, m, l, x),可以根据对速度和精度的需求选择合适的模型。
- Yolov5s:体积最小,速度最快,但精度最低。
- Yolov5m:平衡型。
- Yolov5l:精度更高。
- Yolov5x:体积最大,速度最慢,但精度最高。
实际上它不仅支持目标检测,还支持实例分割(Yolov5-seg)等任务。
模型下载
Yolov5项目在github上已经开源了,使用下列命令即可下载:
git clone https://github.com/ultralytics/yolov5
由于网络原因,如果大家进不去github的话,也可以选择从Gitee上下载资源:
git clone https://gitee.com/monkeycc/yolov5.git
整个项目的目录如上所示,为了后续能够使用该项目的资源,还需要提前搭建好对应的Python环境,并使用下列命令下载完成对应的包:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
模型推理
我们可以看到目录中有一个名为detect.py的文件,实际上可以直接使用,对项目中提供的照片进行检测。
为了使用这个文件,我们还需要一个很重要的事情需要完成,那就是下载yolov5预训练模型的权重,通过下列链接即可下载:
https://gitcode.com/open-source-toolkit/9d1bd.git
在weights压缩包里有四个权重文件,我们使用yolov5s.pt来做示范演示,执行下列代码:
python detect.py --weights weights/yolov5s.pt --source data/images/bus.jpg
其中–weights指定了模型权重,而–source则指定需要检测的图片,最后的结果如下,放置在runs/detect/exp目录下:
总结
本篇博客讲述了Yolov5模型的下载使用过程,它本身就是在已有数据集上训练过了,因此针对一些场景,可以开箱即用,但在实际生产中,我们有时候也要学会使用其他数据集或者自己制作数据集来重新训练模型,才能达到我们想要的效果,之后也会持续更新这方面的折腾记录。