参考文章:computer vision笔记:HOG特征 | 高深远的博客
基本定义
HOG是一种特征描述子,用于检测和描述图像中物体的局部外观与形状。
它通过统计图像中局部区域(小块)内的像素梯度方向分布,来捕捉物体的边缘、纹理等结构信息。
特征描述子(Feature Descriptor)
特征描述子是在计算机视觉中,用来描述图像中某个“兴趣点”、“区域”或“物体”局部特征的向量(或一组数值) 。
它能用来唯一性地表达和区分不同的图像区域,便于后续的比对、识别、分类等任务。
通常用一个n维向量 $\mathbf{f} = (f_1, f_2, …, f_n)$ 表示一个区域或兴趣点的特征。
主要思想
- 边缘和轮廓能反映物体结构。不同方向的梯度分布是区分不同物体的有效特征。
- 对光照和几何变换有一定鲁棒性,适合做目标检测(如行人检测)。
计算流程
- 灰度化和归一化:将输入图像转为灰度,做亮度归一化,减少光照影响。
- 计算梯度:用Sobel算子等方法计算每个像素的水平方向(x)和垂直方向(y)梯度。
- 划分Cell(小块) :将图像分成许多小的单元格(比如8×8像素)。
- 统计梯度方向直方图:每个Cell内,把像素的梯度方向按角度(如9个方向bin)统计频数,构成方向直方图。
- Block归一化:将相邻若干Cell组成Block(如2×2个Cell),对Block内所有Cell的特征向量归一化,提升对光照变化的鲁棒性。
- 特征拼接:将所有Block的特征向量拼成一个大的特征向量,作为整张图像/窗口的HOG描述子。