资源描述:
《行人检测算法HOG特征提取.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、关于HOG解释1关于计算梯度方向角的:首先用[-1,0,1]梯度算子对原图像做卷积运算,得到x方向(水平方向,以向右为正方向)的梯度分量gradscalx,然后用[1,0,-1]’梯度算子对原图像做卷积运算,得到y方向(竖直方向,以向上为正方向)的梯度分量gradscaly。然后当gradscalx>=0,gradscaly>=0时,说明梯度方向是朝向第一象限的,当gradscalx>=0,gradscaly<0时,说明梯度方向是朝向第二象限的,诸如此类,结合象限信息,就可以利用反正切函数atan求出在signed和unsigned各自情况下正确的
2、梯度角度。2关于扫描循环(四层for循环…有没有快一点的?有!但是我功力不够。。当时没编出来,就只好还是来四层for):假设检测窗为64(列)*128(行)大小,block为16*16大小,每个block划分为4个cell,block每次滑动8个像素(也就是一个cell的宽),以及梯度方向划分为9个区间,在0~180度范围内统计,以下的说明都以上述假设为例.btly与btlx分别表示block所在位置左上角点处的坐标。对于前述假设,一个检测窗内会有105个block存在,因此第一个block左上角的坐标是(1,1),第二个是(9,1)…,此行最后一
3、个是block的左上角坐标是(49,1),然后下一个block就需要向下滑动8个像素,并回到最左边,此时的block左上角坐标为(1,9),接着block重新开始新的横向滑动…如此这般,在检测窗内最后一个block的坐标就是(49,113).block每滑动到一个新的位置,就需要停下来计算它内部的那四个cell中的梯度方向直方图.(bj,bi)就是来存储cell左上角的坐标的(cell的坐标以block左上角为原点).(j,i)就表示cell中的像素在整个检测窗(64*128的图像)中的坐标.另外,我在程序里有个jorbj与iorbi,这在Loca
4、linterpolate的情况下(也就是标准的原始HOG情况),就是bj与bi.关于hist3dbig:这是一个三维的矩阵,用来存储三维直方图。最常见的一维的直方图是这个样子,1二维直方图呢?是这个样子,一个一个的柱子是一个统计bin,柱子的高低代表统计值的大小三维直方图呢?是这个样子,立体的一个一个的小格子,每个小格子是一个统计bin,小格子用来装统计值。以上面的例子,那么对一个block来说,它的直方图是下面这样的:2再来说线性插值,线性插值时,一个统计值需被“按一定比例分配”到这个统计点最邻近的区间中去,下面的图显示了一维直方图时,落在虚线标
5、记范围内的统计点,它最近邻的区间就是标有红色圆点的两个区间若是二维直方图,那落在如下虚线矩形中的统计点,周围的这四个统计区间就是它最近邻的区间。这个虚线矩形由四个统计区间各自的1/4组成。3三维直方图,对一个统计点来说,它的最近邻的区间有八个,如下图,可以想象一下,只有当这个统计点落在由如下八个统计区间各自的1/8组成的一个立方体内内时,这八个区间才是对统计点最近邻的。统计时如何分配权重呢?以一维直方图简单说一下线性插值的意思,对于下面绿色小方点(x)的统计值来说,假设标红点的两个bin的中心位置分别为x1,x2,那么对于x,它的分配权重为左边bi
6、n:1-(x-x1)/s,即1-a/s=b/s,右边bin:1-(x2-x)/s,即1-b/s=a/s.类似,那么对三维直方图来说,统计时的累积式(从Dalal的论文里截来的)就是:4上面,w就是准备被分配的统计值。(x1,y1,z1)…共八个点表示八个统计区间的中心位置坐标,上式用h(x1,y1,z1)这样的标记来表示所要累积的统计区间。我在编程时就使用的这个式子,只不过我用bin的下标号来表示bin块,就像前面三维直方图示意中(binx=1,biny=2,binθ=9),不过在程序中θ轴是用z轴表示了。binx1=floor((jorbj-1+
7、cellpw/2)/cellpw)+1;biny1=floor((iorbi-1+cellph/2)/cellph)+1;binz1=floor((go+(or*pi/nthet)/2)/(or*pi/nthet))+1;binx2=binx1+1;biny2=biny1+1;binz2=binz1+1;这几句,就是用来计算八个统计区间中心点的坐标的。在计算前面所讲的统计区间的中心坐标,分配权值之前,我为了处理边缘时程序简洁点,就给那个2*2*9的立体直方图外边又包了一层,形成了一个4*4*11的三维直方图(示意图如下),原来的2*2*9直方图就是
8、被包在中间的部分。这样,在原来直方图里坐标为(binx=1,biny=2,binz=9)的bin,在新的直方图里坐标为(b