首先是YOLO5训练
数据集的准备:把图片和标签放到同一文件夹,然后把整个文件夹放到data文件夹下
然后打开训练函数更改路径
468行,pt文件自己下载
469行,需要找到对应的文件,以记事本形式打开进行更改,大概是第二行,自己有多少种类就改成相应的数值nc: 16 # number of classes
470 行,打开对应的文件夹,找到coco128.yaml,复制到桌面,重命名carbird.yaml.然后重新编辑一下,然后放到data文件夹下
然后是图片尺寸320*320 训练速度非常快可精度就打折扣了,所以改成640*640,4千照片训练300次就是97%了。耗费一两天的时间,看显卡性能了。
这里附上训练结果
Epoch gpu_mem box obj cls total labels img_size
297/299 0.849G 0.02672 0.02 0.01111 0.05783 8 640: 100%|██████████| 609/609 [06:13<00:00, 1.63it/s]
Class Images Labels P R [email protected] [email protected]:.95: 100%|██████████| 305/305 [01:44<00:00, 2.92it/s]
all 2435 4718 0.949 0.909 0.971 0.743
Epoch gpu_mem box obj cls total labels img_size
298/299 0.849G 0.02738 0.01965 0.01044 0.05747 10 640: 100%|██████████| 609/609 [06:14<00:00, 1.63it/s]
Class Images Labels P R [email protected] [email protected]:.95: 100%|██████████| 305/305 [01:44<00:00, 2.92it/s]
all 2435 4718 0.956 0.908 0.971 0.744
Epoch gpu_mem box obj cls total labels img_size
299/299 0.849G 0.02712 0.01992 0.01052 0.05756 7 640: 100%|██████████| 609/609 [06:14<00:00, 1.63it/s]
Class Images Labels P R [email protected] [email protected]:.95: 100%|██████████| 305/305 [01:53<00:00, 2.69it/s]
all 2435 4718 0.954 0.909 0.971 0.744
person_Frontal 2435 1968 0.981 0.926 0.981 0.806
person_Rear 2435 422 0.95 0.948 0.982 0.764
person_Left 2435 553 0.965 0.92 0.984 0.774
person Right 2435 539 0.962 0.901 0.968 0.746
birn_Frontal 2435 86 0.987 0.87 0.952 0.737
bird Rear 2435 30 1 0.724 0.949 0.709
bird Left 2435 136 0.96 0.88 0.952 0.718
bird Right 2435 185 0.888 0.897 0.951 0.687
aeroplane Frontal 2435 35 0.96 0.971 0.988 0.778
aeroplane Rear 2435 32 0.967 0.906 0.98 0.696
aeroplane Left 2435 104 0.945 0.894 0.97 0.723
aeroplane Right 2435 99 0.945 0.919 0.978 0.745
car Frontal 2435 108 0.963 0.962 0.992 0.785
car Rear 2435 120 0.906 0.967 0.982 0.748
car Left 2435 159 0.934 0.925 0.964 0.722
car Right 2435 142 0.957 0.937 0.971 0.771
300 epochs completed in 39.970 hours.
Optimizer stripped from runs\train\exp33\weights\last.pt, 14.4MB
Optimizer stripped from runs\train\exp33\weights\best.pt, 14.4MB
Process finished with exit code 0
训练好的网络在runs\train\exp33\weights\best.pt, 14.4MB他这个33文件夹自动生成,下一次就自动生成34文件夹,非常给力。然后就是批量识别了
打开识别函数detect.py
在127行手动输入save_txt=True,否则识别结果文件夹没有标签记录,只有识别图像。
然后就是各种配置了,特别注意第188行 图片尺寸640。这个是和train.py训练里的尺寸640*640一一对应的。如果训练是320*320,识别也是320.
识别结果也是自动生成文件夹uns/detect/exp45/
=================================================================
语义分割部分
=================================================================
打开trian_yyfg.py,改成自己的路径即可。还有36 ,112,158行也得改
然后就是识别了,打开detect_yyfg.py文件,改成自己的路径即可,4千张图片识别需要好几个小时。然后将yyfg文件夹剪贴到runs文件夹下
===============================================================
YOLO结合语义分割
===============================================================
首先要在runs文件夹下新建一个fianal文件夹,然后检查一下上一步yyfg文件夹已经剪贴到runs文件夹下
如果你想在识别过程显示每个对象的面积可以注释掉第40行
在runs/final文件夹下生成结果图片和标签txt.
=