BING算法——思路整理(目标检测算法)

  

     BING 算法最终是帮忙找到图像当中的候选的物体区域, Box表示为:Get potential bounding boxes, each of which isrepresented by a Vec4i for (minX, minY, maxX, maxY).将图像归一化到一个相同的尺度(例如:8*8)上,一般对象的封闭轮廓和梯度范数之间具有强联系。能够在识别一个对象之前察觉它,非常接近自底向上的视觉显著性。


大致的操作:

1.      对整张图像求梯度,然后由线性SVM训练得到一个BING特征;

2.      计算每一个候选区域的得分:sl

                                                  sl =<w,gl(1)

                                                 l=(i,x,y) (2)

    其中,sl代表过滤器得分gl代表NG特征l表示坐标,i表示尺度(x,y)表示窗口位置。所以(1)表示:在训练好的模型w上面,特征gl 的一个得分值。运用非极大值抑制(NMS),我们为每个尺度提供一些建议窗口。相对于其他窗口(例如:100*100),一些尺度(例如:10*500)的窗口包含对象的可能性是很小的。因此我们定义对象状态得分(校准过滤器得分):

ol = vi*sl+ti (3)

其中vi,ti∈ R,是针对不同尺度i的窗口,学习到的一个参数。我们由这些得分值就得到各个窗口。


具体的操作:

1.  输入一张图象,其中红框是物体绿框不是物体

                                    

 

2.首先将输入图像重置为不同尺度的,在不同的尺度下计算梯度。然后再隔点取8*8大小的框,作为一个对应图像的64维的NG特征(该特征优势:1.归一化了支持域,所以无论对象窗口如何改变位置,尺度以及纵横比,它对应的NG特征基本不会改变。也就是说,NG特征是对于位置,尺度,纵横比是不敏感的;2. NG特征的紧凑性,使得计算和核实更加有效率,而且能够很好的应用在实时应用程序中


                                           

 3. 使用线性SVM分类器,在NG特征上训练一个64维的分类器

                                       

而在训练的过程当中,最最核心的就是 这个64位的特征就直接用一个64位的数表示,那对特征的操作表示为对位的操作。大大的降低了时间复杂度。


使用作者的代码已经训练好了一个特征模型,接下来使用它进行检测。我简化了整个代码框架,使得可以直接用到工程上,大家可以下载:http://download.csdn.net/detail/u012192662/9367779整个工程在VS2013 X64工程上完成,需要Opencv库进行读入操作。


猜你喜欢

转载自blog.csdn.net/u012192662/article/details/50357741
今日推荐