物体识别技术发展状况( 二 )




物体识别技术发展状况


RCNN之所以慢,是由于对于2000个候选框中每一个,都要通过卷积层来提取特征,这注定会有很多重复的计算,如果能避免这其中的重复,就可以对算法显著的加速。具体来说,利用了CNN中的池化操作,先对整张图片过卷积层进行信息提取,之后将每一个候选框内的特征进行池化操作。

物体识别技术发展状况


这里的池化操作,为了考虑到不同颗粒图像带有的不同信息,也是层次化进行的,具体是想将一幅图中的全部特征中选出一个,再将这幅图等分成4个小正方形,从每一个中得出一个特征,最后再将每个子图再切分,最后从16个小图中每个得到一个特征。如此在池化层对不同的候选框中的信息进行汇总,达到提高效率的目的,使RCNN时一张图40-50秒的判别时间变到了2秒

物体识别技术发展状况




物体识别技术发展状况


但是fast RCNN仍然有候选框的选择这一步,而这种机械化的操作将花费很多时间,faster RCNN对此进行了改进,通过引入神经网络替代了候选框筛选(selective search)。将一整张图片通过卷积神经网络提取特征,之后通过Region proposal network对整张图中确定哪一部分对应着相对应的区域。之后通过卷积层将不同大小形状的子图的特征变为相同长度。最后再通过softmax函数进行分类,使用线性回归去微调筛选框的具体位置。

Region proposal network通过在一张图片中按照给定的形状,设置k个锚点(anchor box),从而针对每个区域的子图,先预判待识别的物体在这个框中的可能性,在通过训练更新每个框的可能性的估计,从而之关注哪些最有可能性的位置。每个框一开始并没有标注待识别的是什么物体,这里优化的只是物体本身是不是在这个框中的概率,之后的网络将负责分类这个框里究竟是什么。相比于Fast RCNN的2秒,Faster RCNN的识别速度达到了0.2秒。

物体识别技术发展状况


Faster RCNN也有自身的问题,比如一幅图像仍然要经过多个筛选框的反复处理。另外Faster RCNN在特征提取的时候采取了训练好的成熟模型,例如Inception或Residual net等,如果待识别的物体和这些网络本身训练的东西类似还好,如果不是,那模型的特征提取就会效果不佳。

物体识别技术发展状况


总结一下。由于物体识别在商业上的广泛应用,其发展很快。RCNN家族已经早已不是最新的模型,YOLO和RetinaNet等端对端的模型通过使用一个网络完成全部任务,实现了实时的物体识别,能够在视频中使用。但RCNN的发展过程,就是神经网络一步步替代掉传统模型的过程。从最初的只替代特征提取,到用softmax多元分类替代多个二元分类,再到使用Region proposal network替代机械化的筛选框穷举。模型运行时间上取得了数量级上的进步。

要想做到数量级层面的性能优化,一定要来源于一个突破性的创新。从RCNN的发展过程中,我们可以学到将具体任务拆解的方法,以及如何使用学习而不是穷举的方式来减少计算量。智能的标志就是能用最少的计算量达到相近的信息提取能力,而端对端的网络通过将一切步骤整合在一起,从而进一步提升了性能。


推荐阅读