Yolov5_StrongSORT_OSNet-master
我主要完成的内容(主要熟悉自己训练模型的过程哈):
- 能够搭建目标检测框架所需的环境,并能够运行。
- 能够完成对道路场景中的行人、车辆、交通标志等信息进行检测。
- 能够保存追踪目标出现在场景中的置信度最大值时的图片信息到指定文件夹中,并以图片名命名excel文件,分别保存检测结果中的检测类别、检测框位置坐标和置信度信息。
一、环境搭建
利用anacond创建yolo5检测环境,满足以下要求:
(注:少哪个装哪个,1.terminal装 pip install some-package
2.pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
3.从PyPI · The Python Package Index第三方下载包到路径需记住路径,终端cd 到该路径,pip 装 该包.whl 文件即可(试过最保险的方法))
二、方法及步骤
1. 首先要明确是追踪还是检测哈,我用的是追踪,然后就是来确定我们的数据集啦。
(前面这部分嘞,是我刚开始训练模型的过程哈(第一次) train.py)
模型 | 模型1 | 模型2 | 模型3 |
数据集 | annotations.json | CCPD2020 | LabelImg标100张 |
track.py:追踪视频1.mp4,保存追踪目标出现在场景中的置信度最大值时的图片信息到指定文件夹中,并以图片名命名excel文件,分别保存检测结果中的检测类别、检测框位置坐标和置信度信息。
1.模型1(只检测交通标志):
数据集:将annotations.json中的数据进行处理。
1.以路径中出现train,test,other关键词将图 片分别存入对应的文件夹中,并以yolo5格式(类别标签,矩形框X轴中心坐标,框Y轴中心坐标,框X轴方向边长占据的百分比,框Y轴方向边长占据的百分比)。
2.将所有路径中包含train和test的图片中出现的类名保存为一个.txt文件,以train_classes和test_classes命名。
3.将train_classes和test_classes中出现的类名进行合并去重,得最终classes,为了后续完成.yaml文件做准备。
4.将生成的标签中得类名按照classes所给的顺序,换为下标。
eg:
注!!!:
将两文件夹中原图和标签中不同的找出来,并删除,确保每一个图片有对应的标签,保证数量一致。
接下来就是完成.yaml文件啦
2.模型2(检测车牌):
数据集:CCPD2020(由于图片原因,找了一个车的数据集)
1.由于该数据集只有train,test,val三个文件夹,分别存放对应图片,图片信息存放在图片名中,我们需生成对应的yolo5格式标签。
2.将每一张图片按原顺序,生成对应的.txt文件,以图片名命名。
3.将.txt文件中的内容转换为yolo5格式,并进行归一化。
eg:
注:同交通标志一样。
.yaml:
3.模型3(检测车,人,交通标志):
数据集:我们自己标了100张图片,生成标签。
1.划分数据集(图片和标签)train:val:detect=7:1:2。
eg:
.yaml:
4.track 1.mp4(yolo5自带的模型):
将该处改为True,对后续每一帧产生的结果进行处理即可。
三、结果部分
1.模型1(只检测交通标志):
2.模型2(检测车牌):
3.模型3(检测车,人,交通标志):
4.track 1.mp4(yolo5自带的模型):
最后track存储结果:
crop:每一类别物体的图片
result:每一个追踪物体分别有一个.txt文件和一个excel文件,.txt存放了当前物体所有帧出现的置信度,坐标等信息,excel中存放了置信度最大时的检测类别、检测框位置坐标和置信度信息。
eg:
# <帧索引> <目标ID> <目标框左上角x坐标> <目标框左上角y坐标> <目标框宽度> <目标框高度> -1 -1 <目标置信度> <目标类别>
将置信度最大的存下来
结束啦结束啦!!!