查看原文
其他

“画个圈圈框住你”,get几种常用物体识别网络结构

郭瑞东 集智学园 2021-02-09


前言

物体检测是机器视觉中的最常见应用之一,有极为广泛的用途。不同于图像分类,物体检测要求对给定物体出现在图像的那个部分用方框标记出来,并给出分类标签。

 


简介



对于物体识别,评价的标准除了传统的精度(precision)和召回率(recall)之外,还包括对所有类的average precision的平均值。在深度学习之前,常用的方法是基于支持向量机(SVM)的。为了体现图形中不同结构之间的内在分层,是在识别出一项物体之后,再去识别更精细的组成部分,这被称为selective search(选择性搜索)。例如先识别出牛,再识别牛的腿,耳朵在那里。



常用网络结构



CNN


先从最基础的13年提出的区域CNN说起,该模型的效果要明显好于传统方法,较之前最好的模型有了50%以上的提升。

            

RCNN


RCNN的思路也很基础,首先穷举出所有可能的方框,之后对方框内的图像拉伸成标准尺寸后过CNN提取特征,最后利用提取出特征对所有可能的标签进行分类。

        

SPP net   

  

由于RCNN对一张图片要产生约两千个候选框,因此计算很大,而且不同大小的框在拉伸成标准的形状后会丢失信息。而这两点在SPP net中有所改善,通过对一张图整体用卷积层提取特征,在池化层引入候选框,只对来自候选框中的一部分特征进行特殊的池化再依此进行分类。相比RCNN,SPP net的准确性更高,耗时减少了24-102倍。

             

为了体现选择性搜索的概念,在池化操作的时候,也会根据框架的颗粒度,进行不同跨度的池化操作,从而得出代表不同尺度上特征的向量,再将这些向量统一起来,用在最后全连接的分类层上。

             

fast RCNN


在RCNN和SPP net中,最终的分类层都是传统的SVM模型,卷积网络只负责网络的提取,而fast RCNN是一个端对端的模型,不需要引入SVM,对于分类任务,也不是针对每个标签训练一个0/1分类器,而是多任务的。在训练阶段,其速度相比RCNN和SPP net快了9倍和3倍,在测试阶段,快了213倍和10倍。


fast RCNN在分类中使用了softmax函数来处理多分类的结果,使用类似SPP net的spatial pyramid进行池化操作,通过mini batch进行分级采样以降低运行时间,在损失函数中综合了分类错误和分框(框中没有对应物体带来的损失),同时在测试阶段用了线性降维(类似PCA)的方式对图像进行了预处理减少计算量以提升效率。

 

之后出现的Faster RCNN的改进是提候选框也是由神经网络来做了,这将提候选框的效率从1-2秒降低到了10毫秒。为了使网络对不同大小的网络都有效应,faster RCNN使用了anchor(锚点),类似的,其特征提取的部分用的是VGG16的前13层,分类层也与Fast RCNN相同,其主要改进就在于讲耗时长的特征框筛选用更快的神经网络去做,而不是用传统方法。


对于每一个滑动窗口,每一个形状算是一个锚点,如果锚点对应的框经过分类层和回归层之后和真实值相近[IOU在1-0.7之间],则为正样本,在0.3之下为负样本。在训练时进行交替训练,先训练候选框提取网络(RPN),之后对Fast RCNN网络进行预训练,之后再对Fast RCNN共享部分固定,再训练候选提取网络(RPN),最后再训练Fast RCNN层。

             

YOLO


接下来的YOLO模型将候选框提取和分类的俩个网络合成一个,将每个候选框中的图像进行拉伸,之后提出特征进行分类。网络结构使用了ImageNet的图像。先用像素低的图像对卷积层进行预训练,用更高像素去做全网络的精调。Yolo的效率更快,但对于小物体,靠得近的及长宽比罕见的物体的识别做的不好。同时网络的泛化能力不好。

 

SSD


而SSD网络的解决了Yolo的上述问题,其候选框的提取可以有多个尺寸,一个尺寸的候选框也会有多个,不会像Yolo那样只用7×7的候选框。不同大小的特征提取出的结果都会通过全连接层用于预测。由于SSD要提取更多的候选框,其精确度更高,但所需时间也较长,但都小于Faster RCNN所需的时间。


       

其他的模型还包括Yolo V2和V3,以及RFCN等,这里就没有细致的介绍。


小结



深度学习在物体检测领域的应用是一步步取代传统方法的,从只是用卷积层做特征提取的RCNN和SPP Net,到使用神经网络进行分类加回归的fast RCNN,再到适用神经网络进行候选框提取的Faster RCNN,直到最后的端到端模型,使用一个神经网络完成全部任务,从而做到实时的物体检测。这节课信息量虽然大,听起来有些困难,但跟随老师讲解的主线,还是能看出清晰的脉络的。



作者:郭瑞东

编辑:Yiri


本文为《计算机视觉与深度学习》系列课程第六节的学习心得,更多知识可扫描下方二维码进行深入学习。


课程地址:

https://campus.swarma.org/gcou=10491

或点击阅读原文查看




关注集智AI学园公众号

获取更多更有趣的AI教程吧!

搜索微信公众号:swarmAI

集智AI学园QQ群:426390994

学园网站:campus.swarma.org

商务合作和投稿转载|swarma@swarma.org




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存