HOG3D原理解读

最近需要使用HOG3D对视频中提取的兴趣点进行描述,就研究了下相关的原理,原论文名为:A Spatio-Temporal Descriptor Based on 3D-Gradients

作为图像序列的局部特征描述方法,HOG3D即三维梯度方向直方图,通过计算时空兴趣点周围局部区域内所有像素点对应的二维图像及时间域的平均梯度直方图对时空兴趣点进行三维梯度特征描述。它的描述过程如下图所示:

HOG3D原理解读

这个图刚看起来比较让人迷惑,这个立方体代表什么,每一步又是怎么操作的,下面我就详细的介绍一下它的来龙去脉。

HOG3D 是HOG描述在时间域的扩展,一般在兴趣点检测之后进行,它的步骤主要为:

1、求兴趣点周围空间邻域。

2、求每个block中各像素的平均梯度并将所有像素点的平均梯度累加。

第一步 求时空块(block)的平均梯度

这一步也就是上图(d)中做的事儿,所谓的时空块指的是时空兴趣点周围的区域,平均梯度的计算需要引入一个叫积分视频的东西。对于一个视频序列V(x,y,t),设其在x,y,t方向的偏导数为

HOG3D原理解读,HOG3D原理解读,HOG3D原理解读(csdn的公式真难打)。则HOG3D原理解读的积分视频的计算公式如下:

HOG3D原理解读

上面这个公式的意思是在图像序列中,点(x,y,t)对x偏导数的积分视频为三个坐标轴方向上所有小于该点坐标的像素点的x方向的梯度和。有了总梯度就可以计算平均梯度了,例如x方向上的平均梯度可以用一下公式计算。

HOG3D原理解读

类似的,y方向和t方向的平均梯度也按照这个公式计算,最后把三个方向的平均梯度放到一起,就得到了该时空块的平均梯度。这样步骤(d)算是完成了。

第二步 平均梯度的方向量化

HOG3D原理解读

我们这里常用的是正12面体以及正20面体(面越多说明直方图的分辨率越高,同时向量的维数就越多)。假设正20面体的中心为(0,0,0)首先将三维梯度投影到正多面体每4个面的中心位置。设正20面体中心点坐标向量为

HOG3D原理解读其中,HOG3D原理解读。则正20面体的中心坐标为

HOG3D原理解读

其中

HOG3D原理解读HOG3D原理解读。投影的计算方法如下:

HOG3D原理解读

计算的结果在去除一些较小的值后可得到投影的向量,同时也要进行归一化处理。具体的计算方法可以看原论文。

第三步 梯度投影求和

经过第一步和第二步后,每一个像素点都能得到一个P维(P=所选多面体的面数)的描述符,为了方便描述,引入一个block,每个block含有8个像素点,也就是图(b)表示的时空块,将这8个像素点的平均梯度求出来再累加即可得到该block的描述符,该block也是20维的。

第四步 描述符串联

这一步首先要提取兴趣点周围的空间邻域作为我们的描述对象,每个空间邻域由MMN个block组成,对每个blcok都进行以上处理,即可得到MMN个描述符,其中每个描述符为P维,总的特征向量的大小为MMN*P。

经过以上步骤即可得到兴趣点周围空间邻域的特征描述,将其送入分类器或者进行下一步处理。需要详细代码的(matlab)可以在评论区留言。

Original: https://blog.csdn.net/weixin_44598249/article/details/123248414
Author: 和光同尘seg
Title: HOG3D原理解读

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641334/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球