【自用】YOLO v1总结

YOLO - Google 幻灯片

1、训练-training

将输入图像划分为S*S个grid cell,每个grid cell预测((x,y,w,h,conf)*B+num_class)个值;计算该“长方体”(7*7*30)与真值“长方体”(7*7*30)的损失函数,根据loss调整网络参数。

其中B为每个grid cell预测的bbx个数,num_class为数据集的class数量。为表示方便,依照原论文取S=7,B=2,num_class=20。

1.1 真值

真值“长方体”,初始全设为0(7*7*30)。

对于负责预测物体的grid cell(obj真值框中心落在该grid cell内),2个bbx的x,y都为obj中心点相对于该grid cell左上角的偏移量,2个bbx的w,h都为真值框宽高相对于图像宽高的比值,2个bbx的conf都设为1,有了预测框后改为真值框分别与2个预测框的IOU;后20个class值为one-hot编码,真值框对应的obj类别处设为1。

其它值处保持为0。

1.2 损失函数

负责预测物体的grid cell中预测了两个bbx,取与真值框IOU大的bbx作为“负责预测物体的bbx”。

损失分为三部分:

第一部分为位置误差,对于负责预测物体的bbx,计算x,y,w,h的平方和误差,其中w,h进行根号处理,对于相同大小的误差,对小框的惩罚比大框要重;乘以lmd_coord=5提高权重。

第二部分为置信度误差,对于负责预测物体的bbx,使conf逼近IOU;对于其它框(包括不含obj中心的grid cell中的框和含obj中心的grid cell中IOU较小的框),使conf逼近0,由于其它框很多,乘以lmd_noobj=0.5降低权重。都使用平方和误差计算损失以逼近。

第三部分为分类误差,对于负责预测物体的grid cell,使用平方和误差计算损失以逼近one-hot真值。

综上,对于负责预测物体的bbx,需要计算位置以及置信度误差损失,其它bbx则只需要计算置信度误差损失;分类损失只需要考虑负责预测物体的grid cell。没考虑的部分损失忽略了。

2、预测-inference

输入图像经过网络后预测出了一个7*7*30的长方体,对每个grid cell,将2个bbx的conf分别与20个类条件概率相乘,得到40个class score,依此进行非极大值抑制筛选出最终的预测框,并在图像上可视化(x,y,w,h+class+class score)。

2.1 非极大值抑制(Non-maximal suppression,NMS)

① 求出所有的class score,共7*7*2*20个,按照bbx排列为98列(20*98):

② 对于每一行(即每一个类),筛去小于score阈值的bbx,令其score=0;对该类的score从大到小排序:

 ③ 从第一个框开始设为bbx_max,计算它与其后面的所有非0框的IOU,IOU大于阈值的设score=0(即重合度很高的两个bbx,取score大的那个)筛去与其重合度高的框。

④ 再设第二大的非0框为bbx_max(上一步保留下来的),计算它与其后面的所有非0框的IOU,IOU大于阈值的设score=0。如此往后不断重设bbx_max,直到其后没有bbx计算IOU,剩下的框即为该类所有的bbx。

⑤ 对20个类都进行②③④步操作,得到一个20*98的稀疏矩阵(很多0),获取其中score不为0的bbx+class+class score。

3、网络

YOLO v1的网络架构受GoogLeNet分类网络启发,含有24个卷积层,4个maxpool层降采样,和2个全连接层预测输出长方体。

其中,卷积层多使用1*1Conv.降维后紧接3*3Conv.提取特征,能加快特征提取效率;由于含有FC层,FC层有确定大小,所以输入图像需要限定尺寸,若只有卷积层则任意大小的图像都可以直接输入网络。

4、优缺点

4.1 优点

① 快,简单

② 根据图像全局信息作预测,不像那些使用region proposal或者滑动窗口的,只考虑框框内的信息,不联系上下文。

③ 对新领域的图片或意想不到的输入更难崩坏。比如在自然图像上训练,却输入艺术图像进行测试,YOLO比其它检测算法表现更好(具体什么表现不知道)。

4.2 缺点

① 空间限制(spatial contraints),对成群的小物体预测能力较差,例如鸟群,一个grid cell只能预测一个物体,7*7的网格最多预测49个物体,可能一个grid cell中就有十几只鸟。

② 由于是从训练集数据中学习模型,若物体呈现训练集中没出现过的长宽比,则泛化能力较差。

③ 有好几层下采样层,提取的特征比较粗糙,导致精度低。

④ 定位误差大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值