深度学习目标检测中的图像金字塔 pyramid

在深度学习中,有个基本概念:图像金字塔,我们常常在论文中看到这个词pyramid,下面通过一副效果图来看下什么是图像金字塔:

深度学习目标检测中的图像金字塔 pyramid_第1张图片      

即对图像进行一定比例的缩放,有必要的话还得加上 平滑图像的操作(可使用高斯模糊),如果缩放得到的图像比最小的尺寸还大,或者比最大限制的尺寸还小,则继续进行缩放。

图像金字塔的作用在于解决目标检测中的尺度问题,在比较早的时候,是通过改变滑动窗口的形式来检测图像中大小不一的物体,而目前阶段,更多的是采用滑动窗口规格不变,改变图片大小来检测图像中尺度不一致的物体,金字塔的层级越多,计算量更大,花费的时间会更多,但是,在某种程度上有获得更准确的结果。主要根据自己的应用场景选择合适的比例进行生成图像金字塔。

由于图像金字塔的处理速度慢了一些,因而开始有些论文开始从卷积神经网络中的特征金字塔进行处理速度的提升,具体的可以参考相关的论文。

下面给出生成图像金字塔的matlab程序

scale_factor=1.41;
min_h=99;
min_w=149;
main_path='C:\Users\Administrator\Desktop\pyramid\';
pic1=imread('C:\Users\Administrator\Desktop\pyramid\face.jpg');
pic2=pic1;
dim_pic=size(pic2);
dim_h=dim_pic(1,1);
dim_w=dim_pic(1,2);
num_pic=0;%图片计数命名标签
 while(dim_h>min_h && dim_w>min_w)
     pic2=imresize(pic2,1/scale_factor); %缩放
     num_pic=num_pic+1;
     num_pic=num2str(num_pic);
     pic_path=[main_path,'face',num_pic,'.jpg']; 
     imwrite(pic2,pic_path,'jpg');
     dim_pic=size(pic2);
     dim_h=dim_pic(1,1);
     dim_w=dim_pic(1,2);  
     num_pic=str2num(num_pic);
 end

其中scale_factor一般在工程中取根号2,最近看到同学在看一个深度学习的教程,感觉讲得很好啊,初学者建议看看



你可能感兴趣的:(caffe)