R-CNN步骤
固化特征 利用固化下来的特征进行分类。 再利用固化下来的特征来做回归。分类,回归会使得整体的效率非常的低。 每一张图片我们花费了几秒钟时间,这时相当慢的。我们再来想想无人驾驶汽车它的要求一般近乎实时的,因为它每时每刻都要检测很多东西。那么怎样让检测的速度更快?
R-CNN的问题
每一个框都需要跑一个完整的神经网络,才能分类出来一个结果,然后加上SVM做回归。这种做法显得太复杂了,那能不能同时的对他们进行一个解决呢?能不能然后全部的框共享一个神经网络?Fast R-CNN(test time)
先对原始图整体对一个卷积,得到特征图,然后把那些框映射到对应的特征图区域上。Faster R-CNN
能不能把找框的这件事也放到神经网络中来呢?Faster R-CNN提出来这么一个层Region proposal network,这个层的意思就是说,用卷积神经网络来帮我们来选一下,什么样是一个框,什么样不是一个框。对于一个原始的图片,我们会有一些标注文件来标注图片上那些框的坐标值分别是多少,我们可以利用卷积神经网络来生成一些框,看这些生成处理的框跟真实的框是不是一样的,让神经网络去这么学,生成什么样的框才是一个物体,以及物体可能存在的位置是什么样的,在这里我们就引入了一个RPN层来做这么一件事,判断网络训练出来的特征图上什么样的特征是一个框,判断什么是前景什么是背景,前景是一个物体,背景就不是一个物体,这里我们就不需要Selective Search来帮我们选择出来一些框。
RPN是Faster R-CNN比较核心的一点,它是先用神经网络进行框的提取,那它提取出来的框一定是符合我们人的一个标准吗?可能存在一些框,有的打有的小,那他是怎么提取出来这些框的呢?神经网络首先会生成一系列的框,它有3个比例的框:1:2,2:1,1:1还有三个基数:128,256,512,基数的意思是首先我会生成一个常规的框,然后对这些常规的框进行一个变换,让神经网络去学一下这些常规的框怎么样进行一个常规的变换,它才能是一个前景(物体)。变换的意思比如说:对于特征图上的一个点,对这样一个点来说我会生成9种框,9种框是因为有3个基数,3个比例。接下来就要学一下对这9个框该怎样进行一个变换,什么样变换使得和我们真实的label标注值(框)最拟合,这样就可以找出来最终的框的位置,得到最终的位置之后再去做一个分类任务。