文章目录
0. 前言
YOLO v1~v3都是由YOLO之父Joseph Redmon大神提出,YOLO v1首次将检测问题制定为回归问题,在此之前都是采用分类的方式来解决目标检测问题(例如RCNN系列),YOLO v1的最大优势就是速度快;v2在v1的基础上针对检测精度进行改进,v3结合当时一些新颖的技术对v2做了一些重要的改进,被作者谦虚地戏称为TECH REPORT。
1. [YOLO v1] You Only Look Once:Unified, Real-Time Object Detection
1.1 亮点
- 将目标检测定义为回归问题。输入一张完整图像,单个网络直接预测出边界框和类别概率
- 速度快。base yolo 45fps,fast yolo 155fps
- 背景误检率低。因为能够结合上下文信息做预测
- 学习的是泛化表示,能够从自然图像推广到其他领域
1.2 算法细节
1.2.1 如何将目标检测转换为回归问题?
在yolo v1提出之前,RCNN系列的检测步骤大体为:“生成候选区域–>特征提取–>分类器判断类别–>非极大值抑制筛选–>边界框位置精修”,步骤比较繁琐,相应的推理速度也比较慢。YOLO v1开创性地使用单个神经网络直接预测边界框和物体类别,整体流程只包含“图像resize–>神经网络预测–>非极大值抑制”三个步骤,检测速度极快。
将目标检测指定为回归问题的主要思想如下图所示:
简单点说,就是将输入图像划分为 S × S S×S S×S个网格,如果物体的中心落在某个网格内,那么这个网格就负责检测该物体。每个网格预测B个边界框和一个类别概率,其中每个边界框预测x,y,w,h,confidence共5项,因此最终的预测为size为 S × S × ( B ∗ 5 + C ) S×S×(B*5+C) S×S×(B∗5+C)的tensor。
1.2.2 网络结构
YOLO v1所使用的网络结构如下,输入图像尺寸为448×448,经过一系列卷积层、池化层和全连接层后得到4096的特