基于深度学的目标检测方法一之基本思想概念

 

目前在研究基于深度学的目标检测方法,现在就目标检测涉及的一些基本概念总结如下:

 

一、基于图的图像分割(Graph  Based Image Segmentagion)
该方法是基于图论中的最优树的思想,利用贪心算法对图像的区域进行聚类以达到对一副图找出对应候选框的方法。合并的标准是考察两个相连像素的不相似性,然后以同一个区域内最不相似的值为标准 ,以不同区域内最相似的值为依据 ,若: 则把两个区域合并。
具体步骤如下:
1.    以某个像素相邻的4个或者8个像素点为基础,然后计算其不相似度。

 

                                          
 
2.    将不相似度从小到大排列(v1, v2,v3………)
3.    选择最小的不相似度v1, 和v1相连的点为(vi, vj),如果满足:
Vi和vj不在同一个区域且 
则把两个区域合并,合并后的区域阀值为: 
4.    如果不满足则继续寻找下一条边。
就像上图的A和B一样,如果A,B之间的差异可以在容忍的范围内(阀值),则可以合并作为一个新的区域,由于边是从小到大排列的,因此每次合并进来的边不相似性都是最大的,也就相当于可以直接作为阀值。
根据这种方式就相当于有一个点开始按最小树生成的原理不断扩大区域,最后就会形成一个一个的初始区域,这些区域就可以用来作为检测是否是某个物体的初始框。

 

二、 选择搜索技术(selective  search)
该方式主要是对图片生成的小区域(graph图像分割法产生的)根据相似度的大小进行合并。此时使用的相似度主要是颜色,纹理,尺寸,交叠情况综合考虑得到的。具体算法步骤为:
1.    根据图像分割得出一系列的细粒度区域R。
2.    根据各区域计算相邻的相似度,并将其放入到集合S中。
3.    找出相似度较高的相邻区域并将其合并为新的区域,同时将该区域添加到R中(主要是为了保证候选框的层次感,例如,茶杯和里面的茶可以聚合作为一个物品)
4.    从S中移除所有和3相关的子集(聚合之后就不在需要了)。
5.    计算新区域的相似度并放入到S中。
6.    回到3继续。
关于该方法主要有以下几点要注意:
1.    虽然在最初的graph图像分割方法也需要合并,但是两种方法合并时在计算相似度以及合并的方式均不相同(该方法主要针对相似区域),因此这是两种不同的合并方式。
2.    之所以在R中添加区域主要是为了考虑其对应的层次性。

 

三、 SPP-Net(金字塔池化)
该网络采用不同的池化大小(金字塔)将不同尺寸的输入转化为相同尺寸的输出,一般就是一层池化,采用动态尺寸,valid的填充方式保证池化后的输出大小是一样的。例如,一张图片输入的尺寸为 , 采用 步长为1的池化层,边界补充为valid的方式,那么最终生成的输出大小为 ,即生成了(4,4)大小的区域。所以说该网络主要是对任意的输入大小都将其变为指定大小的输出。实际使用中对于一个 的变化,采用的尺寸大小和步长为: 下取整,  上取整。

 

四、 ROI Pooling
一种特殊的池化方式,也可以说是一层特殊的SPP Net,目的是根据任意大小的输入特征经过池化将其转化为固定的输出,其中间过程存在两个量化,具体如下:一个8X8的输入,转化为2X2的输出:
  
 
  

第一幅表示输入的图片大小,第二幅表示原图的候选框在特征图上对应的位置(此时也是经过四舍五入后在特征图上对应的框因此存在量化带来的误差),第三幅图片表示经过计算得到的需要每个池化块的大小(因为不能整除所以有大有小,并且大小是经过四舍五入的,存在轻微的像素差)。最后是输出的特征图。
五、 ROI Align
其去掉了量化的步骤,采用均分和插值就产生了ROI Align的方式:

由于ROI Pooling把浮点型的候选框变成整数点的候选框,产生了一些误差,为了避免这一误差,ROI Align提取候选框时使用原来的大小,并且对于划分区域也是取平均分块后的中心点像素值为标准,采用插值的方式得到对应的值,也不再经过舍去,减少了舍去带来的误差。

 

六、 区域计算
原图选出的候选框需要映射到生成的特征图中,然后对区域内的物体进行识别,对应的映射关系如下:假设原图特征框的坐标为 ,总共经历的stride乘积为S,特征图中的坐标为 ,其对应关系为: ,具体对应的各区域如下:

                                           

                                              
 

七、 Bounding-box  Regression(边框回归)
对于选择出来的候选框需要进行微调,以保证其逼近真实的物体框,例如:

                                             

 

其中红框是预测出来的大小,蓝框是真实的大小,所以从红框变化到篮筐需要对其进行对应的线性变换(中心点平移和大小缩放)。假如:红框的坐标为 ,蓝框的坐标为 ,其中对应的变换为 。前两个表示需要平移的变化,后两个表示需要缩放的变化。其具体对应的变化方式如下:
                                     
                       
由上述变化过程可以看出,我们主要的目标是找到对应的 ,为了完成这个我们假设存在一组参数 满足 其中(*包括 )。主要是由于当两个框相差不大时,其对应的变化都可以看做是线性的,所以可以用一个线性假设来表示。根据上述假设我们的目标就是设定一个回归 ,其损失函数为:表示根据真实边框计算的真正需要平移和缩放的量, 表示输入的特征。优化的目标就是: 
对于该方法原理上主要有几点需要注意一下:
1.    回归时的坐标除以宽度和高度主要是为了保证去除图片大小的影响,因为卷积变      化后图片的大小会发生变化,对于同一幅图去掉宽窄的影响才更容易找到对应的函数关系。
2.    涉及指数缩放是为了保证缩放的值大于0
3.    对于线性变换主要是: ,所以:


          
时,整个极限是趋近于线性的,所以可以使用线性回归的方式来做。

 

八、 Region  proposal  NetWork(RPN产生边框的网络)
考虑到使用传统方式产生候选框会存在性能上的耗损,所以就有研究者提出将候选框放到神经网络中去实现,就产生了RPN网络。RPN采用滑动框的方式,采用三种大小,三种比例(1:1,1:2,2:1)共9种尺度的候选框对每一个点进行特征提取,提取的特征转换成两部分,一部分用来判断当前的框是前景还是背景(根据IOU的大小,大于0.7是前景,小于0.3是背景)即2k个值,一部分用来判断当前框的位置信息,即4k个值。

                                             

 
根据这些信息得出对应的损失函数,对边框和判断的结果进行初步的更新。再根据得出的结果挑选出感兴趣的框(ROI)进行后面的识别和bounding box regression的操作。
在实现过程中我们采用3X3的卷积相当于窗口的滑动,采用1X1的卷积进行通道的合并即生成2k个大小。计算误差的时候使用的是 来进行而不是使用四个角的值,因为这样可以避免框的大小带来的差距,因为选出的候选框肯定比真实的框要多的多,所以无法一一对应,采用这种变化相当于把问题转化成相对误差来计算。大致流程如下:

                                                          
 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值