基于hog滑动窗口的目标识别

一、关于源码的一些简单说明

         本文不是讲解hog理论的,所以需要对hog算法有一定了解,这些可以去参考hog提出者的博士论文,写得很详细。

         按照正常流程,hog行人检测分为训练过程和检测过程,训练过程主要是训练得到svm的系数。在opencv源码中直接采用训练好了的svm系数,所以训练过程源码中没有涉及到多少。

   首先还是对hog源码中一些固定参数来个简单说明:

   检测窗口大小为128*64;

   Block大小为16*16;

   Cell大小为8*8;

   Block在检测窗口中上下移动尺寸为8*8;

   1个cell的梯度直方图化成9个bin;

   滑动窗口在检测图片中滑动的尺寸为8*8;

   代码中的一个hog描述子是针对一个检测窗口而言的,所以一个检测窗口共有105=((128-16)/8+1)*((64-16)/8+1)个block;一个block中有4个cell,而一个cell的hog描述子向量的长度为9;所以检测窗口的hog向量长度=3780=105*4*9维。

三、hog训练部分流程的简单理解

         虽然hog源码中很少涉及到训练部分的代码,不过了解下训练过程的流程会对整个检测过程有个整体认识。

         训练过程中正样本大小统一为128*64,即检测窗口的大小;该样本图片可以包含1个或多个行人。对该图片提前的hog特征长度刚好为3780维,每一个特征对应一个正样本标签进行训练。在实际的训练过程中,我们并不是去google上收集或者拍摄刚好128*64大小且有行人的图片,而是收集包含行人的任意图片(当然了,尺寸最好比128*64大),然后手工对这些正样本进行标注,即对有行人的地方画个矩形,其实也就是存了2个顶点的坐标而已,并把这个矩形的信息存储起来;最好自己写一个程序,每读入一张图片,就把矩形区域的内容截取出来并缩放到统一尺寸128*64,这样,对处理过后的该图片进行hog特征提取就可以当做正样本了。

         负样本不需要统一尺寸,只需比128*64大,且图片中不能包含任何行人。实际过程中,由于是负样本,里面没有目标信息,所以不需要人工进行标注。程序中可以对该图片随机进行截取128*64大小的图片,并提取出其hog特征作为负样本。

 

         四、ho行人检测过程

         检测过程中采用的是滑动窗口法,对应本代码中,滑动窗口法的流程如下:

    

 

         由上图可以看出,检测时,会对输入图片进行尺度缩放(一般是缩小),在每一层的图像上采用固定大小的滑动窗口(128*64)滑动,没个滑动窗口都提取出hog特征,送入到svm分类器中,看该窗口中是否有目标。有则存下目标区域来,无则继续滑动。

若有两个滑动窗口表示有目标,通常选取最外面的那个窗口。



在许多目标检测的算法当中,基于视觉的目标检测被广泛的研究。滑动窗口对多尺度图像的莫一块给出分数,图像通常进行尺度缩放。经典目标识别框架运用分数map金字塔来悬着最高分数的滑动窗口盒子作为目标候选。


一个物体之所以在外观上体现不同的大小,是因为它与摄像机之间的距离,所以又必要运行滑动窗口在图像的不同尺度上进行。而rgbd图像使得根据物体真实大小选择合适的“scale”变为可能,


  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值