自己写了些笔记,方便自己记忆,若有违规和错误请留言
目录
主要思想:
复现YOLOv1方法:
预测结果7*7*30的含义:
gt box数据处理:
损失函数:
预训练:
YOLOv1缺点:
主要思想:
1、把真实grounding truth box的传入网络,读取成7*7*30的tensor。使预测的bbox尽可能的去拟合gt box,使损失函数最小
2、由该gt box的中心点,即落到哪个grid cell内,由这个cell产生的B个bounding box(v1中B=2),这2个bbox可以很大,但中心点必须在这个cell中,然后,再看哪个bbox与gt box的IOU值最大,就由这个bbox来预测,拟合gt box。每个cell只能预测一个物体
3、v1中将一幅图像划分为7*7个网格,这个值是人为设置
复现YOLOv1方法:1、设计神经网络,只要保证最后的输出为v1的张量大小,即7*7*30张量
2、利用损失函数计算反向梯度
3、将输入图像的gt box也处理成7*7*30的结构
预测结果7*7*30的含义:s=7,30=2*(4+1)+20,每个网格产生2个bbox。4:x,y是预测边框的中心点,是相对于这个网格的偏移量,归一化在0到1之间,最后xy要加上每个网格的坐标才能的到预测box的中心点;w,h是预测框的宽,高(相对于图片而言),也归一化到0到1之间。1:confidence是这个bbox中目标的置信度和这个box准确率,即这个预测边框是否包含了目标的概率,它的计算值为:
如果网格中确实存在目标,则Pr=1,confidence=IOU,不存在,Pr=0。
每个网格只能预测一个object
置信度:我95%相信美国足球爱好者的比例是57%到63%。95%为置信度,57-63为置信区间。
20:20个类别概率,在假设包含目标下是某个类别的概率。即
当confidence大于某一个阈值的时候,才会用20个类别的概率最大的一个表示该类别。
在测试时,将条件类概率和单个框置信度预测相乘。得到每个box的特定类别的得分。这些分数对该类出现在框中的概率以及预测框与对象的匹配程度进行编码。
第一项就是每个网格预测的类别信息的概率,即类概率,第二三项就是每个bound ing box预测的confidence。乘积就是这个预测box属于哪一类的概率,也有该box准确度的信息。
最后把置信度乘类别概率才是这个框是某个类别的概率。即全概率
每个cell可以得到两个20维的全概率。
得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的box(设为0),按概率大小排列,排序结果进行NMS,得到检测结果。
gt box数据处理:也要处理成7*7*30,与预测结果相对应。x,y:同样是把gt box的中心点偏移量,w,h:相对于image的宽和高。然后需要放两次,即2(4+1),这里的confidence=1。然后是20:类别概率,只有把这个类别的概率为1,其余全为0。
损失函数:第i个grid cell的第j个bbox,若bbox有目标则为1,否则为0
第i个grid cell,gt box的中心点落在cell中,则为1,否则为0
第i个grid cell的第j个bbox,没有目标为1,有则为0
为5,为0.5,平衡正负样本误差,不然大小box宽高偏移相同,影响太大
C为置信度
预训练:预训练时输入大小为224*224,训练时改为448*448
YOLOv1缺点:对小物体检测效果不好,一个cell只能检测一个物体。由于损失函数的问题,定位误差是影响检测效果的主要原因
参考文献:
https://pjreddie.com/darknet/yolo/
Joseph Redmon, Santosh Divvala, Ross Girshick, and Ali Farhadi. You only look once: Unifified, real-time object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 779–788, 2016. 2
下载地址
https://arxiv.org/abs/1506.02640
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)