Yolo_v1:You Only Look Once: Unified, Real-Time Object Detection
一、概述
yolo_v1是one stage目标检测算法,将原始图片平均分为S*S个网格(grid),基于基网络提取的最高层特征使用两个全连接层对每个grid预测物体框bounding box的位置及包含每个物体类别得分。在论文中将原始图片分割为7*7个grid,对图像中每个物体,如果其中心点落在某一grid中,则训练阶段该grid负责预测该目标。每个grid预测B个(文中B=2)bounding box,每个bounding box由5个值描述:中心点坐标(x,y)、框宽w、框高h、包含物体置信度得分。不同于其他网络的anchor box,这些bounding box值由最后一层全连接层直接得到预测值。设总共物体类别数为C,对每个grid预测C个类别的置信度得分。
因此对yolo_v1,总的bounding box数量为7*7*2 = 98个,网络的输出为7*7*(C+5×2)。
二、网络结构
基网络共24层卷积加2个全连接网络。先使用224×224的输入图片训练前20层卷积网络,再使用448×448检测数据训练整个网络。
三、损失函数
使用平方误差损失,因为易于训练。总的损失函数是多任务损失加权和。
四、优缺点
缺点:
1、yolo_v1由于只预测98个bounding box,且对每个grid只预测一个类别目标。这样的设置对密集目标或者小目标检测效果不好。
2、只用最高层的特征预测目标类别及bounding box位置,因此检测框位置不够准确。由于基网络中多个下采样层导致很多具体位置信息丢失;另外,损失函数中小bounding box和大bounding box回归损失权重一致,而理想上小bounding box应有更多权重。
3、泛化性不好。
优点:速度快!!
五、实验结果