文章目录
一、核心思想
YOLOv1是You Only Look Once系列目标检测算法的开山之作,YOLOv1将目标检测任务转化为一个回归问题,摒弃了传统的两阶段目标检测方法中先提取候选区域再进行分类的步骤。将一幅图像分成SxS个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。
二、网络架构
网络结构借鉴了 GoogLeNet 。24个卷积层,用于对输入图像进行特征提取,不断地提取图像的抽象特征,2个全链接层,第一个全连接层将卷积得到的分布式特征映射到样本标记空间,把输入图像的所有卷积特征整合到一起;第二个全连接层将所有神经元得到的卷积特征进行维度转换,最后得到与目标检测网络输出维度相同的维度。。(用1×1 reduction layers 紧跟 3×3 convolutional layers 取代Goolenet的 inception modules )
最终输出的7×7意味着7×7个grid cell,30表示每个grid cell包含30个信息,其中2个预测框,每个预测框包含5个信息(x y w h c),分别为中心点位置坐标,宽高以及置信度,剩下20个是针对数据集的20个种类的预测概率(即假设该grid cell负责预测物体,那么它是某个类别的概率)。
三、损失函数
YOLO-V1算法最后输出的检测结果为7x7x30的形式,其中30个值分别包括两个候选框的位置和有无包含物体的置信度以及网格中包含20个物体类别的概率。那么YOLO的损失就包括三部分:位置误差,confidence误差,分类误差。
损失函数的设计目标就是让坐标(x,y,w,h),confidence,classification这个三个方面达到很好的平衡。
1.位置误差
对于每个网格的两个边框中,选择与真实物体具有最大IOU(交并比)的那个边框,并计算该边框的预测值与真实值的位置误差。位置误差包括中心点坐标的误差和宽高的误差,并且对宽高进行平方根处理,降低对物体尺寸的敏感度,强化小物体的损失权重。如下图:
其中 1 i j o b j 1_{ij}^{obj} 1