一.Yolo系算法
目前深度学习相关的目标检测方法大致可以分为两派:
1、基于区域提名的(regin proposal)的,比如R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN。
2、基于端到端(end to end)的,无需候选区域,如YOLO、SSD。
二者发展都很迅速,区域提名准确率较好、端到端的方法速度较快。
1)YOLO V1:
核心思想:
将整张图片作为网络的输入,直接在输出层对bounding box的位置和所属类别进行回归。将目标定位和目标类别预测整合于在单个神经网络模型中。
YOLO检测系统步骤简单直接,可以看做只有三步:
1.YOLO检测系统先将输入图像调整到448×448;
2.在图像上运行卷积网络;
3.通过模型的置信度对结果进行阈值。
实现细节:
1.将一幅图像分成 S×S 个网格(Grid Cell),如果某个object的中心落在某个网格中(通过ground-truth框确定),则这个网格就负责预测这个object。
2.每个网格要预测B个bounding box,每个box除了要回归自身的位置之外,还要附带预测一个confidence值。这个值代表了所预测的bounding box中是否含有object和若有object,这个object预测得有多准的两重信息,3. 每个网格单元针对20种类别预测bboxes属于单个类别的条件概率P r ( C l a s s i ∣ O b j e c t ) Pr(Class_i | Object)Pr(Classi∣Object),属于同一个网格的B个bboxes共享一个条件概率。在测试时,将条件概率分别和单个的bbox的confidence预测相乘
4. 在Pascal VOC中,YOLO检测系统的图像输入为448×448,S=7,B=2,一共有20个class(C=20),输出就是7×7×30的一个tensor。
网络结构:
YOLO使用了24个级联卷积层和最后2个全连接层,交替的1×1卷积层降低了前面层的特征空间。在ImageNet分类任务上使用分辨率的一半(224×224输入图像)对卷积层进行预训练,然后将分辨率加倍进行目标检测。