目标检测算法之YOLOV4

本博客是根据本人查阅资料,翻看视频自学整理的复习回顾文档,该文档中截图都是从霹雳巴拉b站up主处截取的,如果看不太明白本篇,大家可以去看这位up主的,如有个人理解错误的地方,希望各位评论区评论指正!!

YOLOV4论文是一篇被yolo系列原作者认可的论文,其并不是原作者自己完成实现的改进论文。
目标检测算法之YOLOV4_第1张图片

关于YOLOv4的改进点,个人认为有下:
1、网络结构改进:在yolov3和v3spp中,基础骨干网络都是darknet53,在v4中改成了CSPdarknet53。其将激活函数都换成了mish来提升模型提取能力,然后将输入通道数一半用于卷积正常计算,另一半避免计算直接在一个小模块结束时cat拼接,来减少计算占用的内存空间。下图是从网上找到的结构图,帮助个人理解。
目标检测算法之YOLOV4_第2张图片
目标检测算法之YOLOV4_第3张图片

目标检测算法之YOLOV4_第4张图片
目标检测算法之YOLOV4_第5张图片
目标检测算法之YOLOV4_第6张图片
2、将原v3spp结构中conSet结构舍弃,SPP结构保留,同时增加了PAN结构。我们可以利用FPN结构来帮助我们理解PAN结构。在fpn结构中,是利用高层特征的上采用,与底层特征融合,得到输出特征。在PAN中,先利用底层特征输出下采样与高层特征融合,然后再将融合后的特征上采样,与低层特征融合输出。目标检测算法之YOLOV4_第7张图片

目标检测算法之YOLOV4_第8张图片
3、一些基础改进
1)在v3spp中,我们得到最终预测的中心点和宽高偏移量后,利用四个公式计算得到最终结果。在计算时中心点预测坐标时,需要将偏移量放入sigmoid函数中,将该偏移量控制在一个单元格内,在与其所在单元格左上角坐标相加得到最终坐标,但是如果此时,某一个物体中心点正好在某单元格的左上角处,此时我们肯定希望中心点偏移量数值为0,但是观察sigmoid函数可知,要想偏移量为0,必须预测偏移量为负无穷大,显然不可能。。。所以为了解决这种特殊情况,我们需要想办法,让这个激活函数sigmoid能取到0值。目标检测算法之YOLOV4_第9张图片
我们看上图最下方公式,其激活函数项整体结果可以正好处于-0.5到1.5之间。是可以取到0值的。也就满足了我们的特殊情况需要。
2)、mosaic特征增强这个和v3一致,就是随机选三个和本次的这个组成一个新图片

3)、IOU正样本匹配策略。在原v3中,我们匹配模板框,然后确定中心点所在单元格,则该单元格对应的该模板框就是正样本。但是在v4中,因为我们偏移量经过激活函数项作用后其取值在-0.5到1.5之间,故其选择正样本的条件被扩大了。首先还是匹配三个模板框,先确定模板框a,然后求target中心点所在单元格,如果中心点在该单元格的左上角,那么该单元格以及该单元格的左边相邻单元格和上面相邻单元格中对应的模板框a就也是正样本。同理左下、右上、右下一样。
目标检测算法之YOLOV4_第10张图片
目标检测算法之YOLOV4_第11张图片

4)、模板框的长宽被变了,在v3以及spp中,是通过聚类得到的9种尺寸,在v4中得到调整
目标检测算法之YOLOV4_第12张图片

5)、CIOU这个一致的。
目标检测算法之YOLOV4_第13张图片
以上就是个人对v4的理解和整理,个人理解不对的地方,希望各位在评论区留言指正!!!

你可能感兴趣的:(计算机视觉学习笔记,目标检测,计算机视觉)