YOLOv3问题总结

1、运行test,recall,vaild命令时,<test_cfg>文件中batch和subdivisions两项必须为1。否则会出现测试检测不到目标、计算recall为0,验证没有产生结果文件。训练时候根据GPU情况调大batch和subdivisions,官方cfg中两者值分别为64和16

2、测试标签上如何添加置信值
修改src/image.c文件draw_detections函数
修改src/image.c文件draw_detections函数中get_label函数调用的参数
image label = get_label(alphabet, labelstr, (im.h*.02));
源码中为0.03,修改为0.02后,标签文字减小,可以根据需要调整。
修改代码后需要使用make clean,make重新编译。
加入置信值,减小标签大小后的检测效果图!
3、迭代n次数之后的模型保存。

修改example/detector.c文件中的第148行。源代码为:if(i%100000 || (i<1000 && i%100))//迭代小于1000次,每100次保存模型,大于1000次,每10000次保存模型。可以根据需要修改训练多少轮保存一个模型,if(i%10000 || (i<1000 && i%1000)),大于1000次,每1000次保存模型。

4、卷积层得来的特征:

1313 一个特征点代表3232像素的图像,检测大目标,最小检测3232的图像
26
26 一个特征点代表1616的图像,检测中目标,最小检测1616的图像
5252 一个特征点代表88的图像 检测小目标,最小检测8*8的图像

5、
从Darknet-53网络结构看出yolov3较yolov2网络深度推至106层,其中引用ResNet、FPN网络结构思想,同时采用多尺度预测来弥补初始划分13*13网格细粒度不够问题,同时yolov3网络仍然采用yolov2中数据增强、批归一化等操作。

6、linux下编译darknet 出现空间不足解决办法
gcc -Iinclude/ -Isrc/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./src/gemm.c -o obj/gemm.o
./src/gemm.c:166:1: fatal error: error writing to /tmp/ccGeIVxY.s: No space left on device

在这里插入图片描述
主要是系统 /tmp/空间不足引起的,tmp文件夹空间不足了,不能满足编译的需求,编译的中间文件不能写入。
解决办法 mkdir 文件夹——你可以使用的文件夹 比如说 mkdir /home/sunlh/zzzz/tmp
然后只要export TMPDIR= /home/sunlh/zzzz/tmp
这样就不会出现 tmp文件夹不够用的情况。

在这里插入图片描述

7、数据集格式
A.制作VOC格式的xml文件
工具:LabelImg
B.将VOC格式的xml文件转换成YOLO格式的txt文件
脚本:voc_label.py,根据自己的数据集修改就行了。
在这里插入图片描述
按照上面的流程,每张图像都生成了对应的txt文件来保存其归一化后的位置信息,如下图对应生成的txt如下:

0 0.250925925926 0.576388888889 0.1 0.0263888888889
0 0.485185185185 0.578125 0.0685185185185 0.0201388888889

图中共有车牌两个,每行保存一个车牌的信息,第一个0表示检测object的label,因为我只有一类,所以都是0
后面的四位即为归一化后的中心点坐标和位置框的长和宽
最后将图像和对应txt的文件名统一,并拷贝到同一个文件夹(a.jpg对应的txt为a.txt),如图:

在这里插入图片描述

txt和对应jpg文件的名称除了最后.jpg,.txt的后缀不一样,其他的必须完全一样,且需要保存在同一文件夹,训练过程中会直接将a.jpg的名称替换为a.txt来寻找该图像对应的gt。对应的gt文件也不一定必须是txt格式,如果不是txt格式可以去源码中将这部分代码进行修改,将.jpg替换为你需要的格式后缀

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Yolov5和Yolov3是目标检测算法中的两个版本。Yolov5是Yolov3的后续版本,由俄罗斯的Alexey大神开发。Yolov3是在2018年提出的,而Yolov5则是在Yolov3之后不久问世。 Yolov3和Yolov5都是通过使用深度学习的方法来实现目标检测任务。它们都采用了基于卷积神经网络的架构,通过将输入图像分割为不同的网格,并对每个网格预测目标的位置和类别。Yolov3和Yolov5都具有较高的实时性能,能够在较短的时间内处理大量的图像。 然而,Yolov5相对于Yolov3来说在性能上有所提升。举例来说,在COCO数据集上,当两者的FPS(每秒处理的帧数)相同时,Yolov4的平均准确率(AP)约为43,而Yolov3则为33,Yolov4相较于Yolov3有了10个百分点的提升。这意味着Yolov5能够更准确地检测和识别目标。 总结来说,Yolov5是在Yolov3的基础上进行改进和优化的目标检测算法,具有更高的准确性和性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深入浅出Yolo系列之Yolov3&Yolov4&Yolov5核心基础知识完整讲解](https://blog.csdn.net/qq_15615505/article/details/114005146)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值