yolov5 保姆级别教入门,不会就把我头打爆。
前言:
仓库地址:
数据集地址:
这里引用两篇更有含金量和更详细的文章,也是他们领我进门的。
玩转yolov5:
-
环境配置,多的我也不说,我搭建的环境是linux+anaconda+pytorch(gpu版,强烈要求用gpu)cuda11.4+cudnn+pycharm,详细的请看:
如何在pycharm中配置anaconda的虚拟环境_dejahu的博客-CSDN博客_如何在pycharm中配置anaconda,但我要记录一个坑,一开始我以为pytorch(gpu版)要用到对应的cuda和cudnn版本,本地机器也要安装对应好的版本其实才能用,其实不然,只要版本高于或等于 pytorch(gpu版)要用到对应的cuda和cudnn版本就o了,反正我是装了cuda11.4的,然后pytorch用到了cuda11.3。
-
下载源码,直接下载yolov5官方源码就好了,仓库:https://github.com/ultralytics/yolov5,
(gitee里面也有官方库)然后把里面的用不到的文件删掉或者整合到一个doc文件夹内,包括但不限于.github文件夹,让项目看上去简洁一点,突出我们要用到的东西
-
安装其他python库,首先前提是在配置好的conda环境,并激活了环境
activate yolo
在yolov5当前目录下执行
pip install -r requirements.txt
即可,其他一切静等岁月静好。 -
测试一下,如果一切都准备好了,可以在终端输入
python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
,第一次运行应该会下载一个yolov5s.pt的模型,需要等待一下。在runs目录下可以找到检测之后的结果
-
准备数据集,前面所做的一切都可以理解为准备好“炼丹炉”,这一步是能否好好炼丹(训练模型)重要的一步(准备好柴火),首先得下载一个图片标注的软件labelimg,虽然或许有很多其他好的坏的标注工具,但我还是倾向于用这个,起码源码在https://github.com/tzutalin/labelImg找得到,按照以往的网上很多的教程都是把源码download下来,然后配置好环境,然后
python labelimg.py
当然现在确实也可以这样做,但我推荐你直接来一个pip install labelimg
,然后在终端输入labelimg并回车即可进入我们的界面中来。进入之后,首先我们先把一些选项勾上,便于我们标记。然后,最重要的是把标记模式改为yolo。标注的过程是:
1.打开图片目录
2.设置标注文件保存的目录并设置自动保存
3.开始标注,画框,标记目标的label,
crtl+s
保存,然后d切换到下一张继续标注,不断重复重复labelimg的快捷键如下,学会快捷键可以帮助你提高数据标注的效率。
标注完成之后你会得到一系列的txt文件,这里的txt文件就是目标检测的标注文件,其中txt文件和图片文件的名称是一一对应的,如下图所示:
打开具体的标注文件,你将会看到下面的内容,txt文件中每一行表示一个目标,以空格进行区分,分别表示目标的类别id,归一化处理之后的中心点x坐标、y坐标、目标框的w和h。
-
修改数据集配置文件
我觉得这一步也十分重要,一个好的索引才方便训练的时候找到对应的训练数据集,我尝试过其他的数集文件摆放,然后就就出错了我也不知道为啥,路径啥的都是对的,所以我强烈推荐以后每一个训练无论数据集数量多少都要这样摆放
data_set
└─ score
├─ images
│ ├─ test # 下面放测试集图片
│ ├─ train # 下面放训练集图片
│ └─ val # 下面放验证集图片
└─ labels
├─ test # 下面放测试集标签
├─ train # 下面放训练集标签
├─ val # 下面放验证集标签这里的配置文件是为了方便我们后期训练使用,我们需要在data目录下创建一个
data.yaml
的文件:# Custom data for safety helmet # train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/] train: /home/lin/Desktop/pycharm_project/yolov5/data_set/images/train val: /home/lin/Desktop/pycharm_project/yolov5/data_set/images/val # number of classes nc: 10 # class names names: ['hero', 'tower','soldier','monster','red_buff','bird','spirit'