当我们输入一张图片时,我们要搜索出所有可能是物体的区域,R-CNN采用的就是Seletive Search方法,通过这个算法我们搜索出2000个候选框,然后从R-CNN的总流程图中可以看到,搜出的候选框是矩形的,而且是大小各不相同。
然而CNN对输入图片大小是有固定的,如果把搜索到的矩形框不做处理,就丢进CNN中,肯定不行,因此对于每个候选框都需要缩放到固定的大小。
paper试验了两种不同的处理方法:
crop
:截取原图片的一个固定大小的patchwarp
:将原图片的ROI缩放到一个固定大小的patch
crop
英文意思是裁剪,是直接从图像中截出一部分,保留原图像的真实尺寸比。
常见的crop有两种:1-crop和10-crop。假设原图片大小为256 * 256,而规定的图片大小为224 * 224。
1-crop
:在256256这张图片的中心位置crop出一个224224大小的区域;
10-crop
:分别在左上角、右上角、左下角、右下角和中间分别crop出224 * 224的区域(5个了),再把图片镜像翻转,用同样的方式再crop, 即可得到10个。
warp
的英文意思是扭曲,而在这里指的是将原图像中的一部分,经过缩放,改变其真实尺寸,以达到想要的尺寸比。
区别与联系:
crop和warp操作都是对数据的一种处理方法,都是将已知的图片的部分处理成规定尺寸大小,这种处理方式的后果是数据丢失和几何失真。
crop:物体可能会发生截断,尤其是长宽比大的图片;
warp:物体被拉伸,失去“原形”,尤其是长宽比大的图片。
无论是crop还是warp,都无法保证在不失真的情况下将图片传入到CNN当中。会使用一些方法尽量让图片保持最小的变形。
各向异性缩放:
即直接缩放到指定大小,这可能会造成不必要的图像失真;
各向同性缩放:
在原图上出裁剪侯选区域, (采用侯选区域的像素颜色均值)填充到指定大小在边界用固定的背景颜色。
先扩充后裁剪:
直接在原始图片中,把bounding box的边界进行扩展延伸成正方形,然后再进行裁剪;如果已经延伸到了原始图片的外边界,那么就用bounding box中的颜色均值填充。
先裁剪后扩充:
先把bounding box图片裁剪出来,然后用固定的背景颜色填充成正方形图片(背景颜色也是采用bounding box的像素颜色均值)。
对于上面的异性、同性缩放,文献还有个padding处理。经过最后的试验,作者发现采用各向异性缩放、padding=16的精度最高。(也就是最后一个图)