CS231n李飞飞计算机视觉 迁移学习之物体定位与检测上
迁移学习之物体定位与检测上
分类和定位
分类:给定一个图像,输入图像包含的对象的类别。
定位:给定一个图像,找到图像中对象所在的区域,即找出边界框。
数据集:一千个类别,每个类别有800张图像。
网络结构如上图,定位和分类可以同时训练也可以分别训练。
方法一:当做回归问题求解
分类是一个回归问题,可以将定位也当成回归问题,定位及找到对象所在边界框,边界框为方形,所以确定边界框的左上角的坐标以及长和宽四个参数即可。所以也可以将定位看成是给定一个图像,找出这四个参数的回归问题。
如上图所示,在一个卷积网络之后分别连接两个全连接层,一个用于分类,一个用于定位。
两种回归,一种是无论图像是什么类别,定位部分的网络都有相同的结构和参数来得到边界,这种叫不定类回归。另一种为定类回归,即输出是C乘四个边界参数,即每一类别都有一种边界框。
在哪个位置进行回归?两种方法,第一种在最后一个卷积层后面加上回归网络,如VGG、OverFeat。第二种在全连接层之后。
此外在图像中包含K个同类别对象的时候,定位K个对象,即得到4K个参数的回归问题。
例子:人体姿态估计,找到图像中人体的K个关节的位置。
方法二:滑动窗口
滑动窗口的网络结构如下图:
也是一个分类一个定位网络。
再说滑动窗口是什么意思?相当于有一个大的边界框,如下图中黑色框,从左上角开始从左到右从上向下滑动,每次滑动得到的子图像输入到网络,得到一个分数和定位边界框,下图中得到四个子图和四个边界框和类别分数,最后用一种特殊的方法将分数和边界框融合,得到一个分数和边界框。实际实现中得到的子图和分数更多,不止四个。
但有一个问题,对每个类别都运行这样的网络非常耗时,这里有一种高效的方法,通常我们将网络看成是卷积网络和全连接层两部分,换一种角度看全连接网络有4096个数字,是一个向量,将其看成一个卷积的特征映射,其维度是,即将其看成是卷积的输出,且输出为,如下图:
即在最后一个卷积层和全连接层之间替换成一个的卷积层,这样整个网络就是一个卷积网络,不包含全连接层。这样的结果在处理不同大小的图片时可以大大滴减少计算量。如下图:
原理训练时输入数据是,测试时数据是,对于不同大小的数据,计算过程相同,额外的计算仅仅是黄色部分。