原文链接: https://www.learnopencv.com/histogram-of-oriented-gradients/
翻译:coneypo
在这篇文章中,我们将会学习 HOG (Histogram of Oriented Gradients,方向梯度直方图)特征描述子 的详细内容。
我们将学习 HOG 算法是如何实现的,以及在 Opencv / MATLAB 或者其他工具里面如何计算特征子。
这篇文章是我正在写的,关于 Image Recognition / 图像识别 和 Object Detection / 目标检测 系列文章中的一部分。
完整的系列文章如下所示:
1. 使用传统计算机视觉技术来进行 Image recognition / 图像识别 :Part 1 ( https://www.learnopencv.com/image-recognition-and-object-detection-part1/ )
2. HOG 方向梯度直方图:Part 2
3. 图像识别的例子:Part 3 ( https://www.learnopencv.com/handwritten-digits-classification-an-opencv-c-python-tutorial )
4. 训练一个更好的眼睛检测器:Part 4a ( https://www.learnopencv.com/training-better-haar-lbp-cascade-eye-detector-opencv )
5. 使用传统计算机视觉技术来进行 Object detection / 目标检测:Part 4b
6. 如何训练和测试你自己的 OpenCv 目标检测器:Part 5
7. 使用 Deep learning / 深度学习来进行图像识别:Part 6
介绍 Neural Networks / 神经网络 ( https://www.learnopencv.com/neural-networks-a-30000-feet-view-for-beginners/ )
理解 Feedforward Neural Networks / 负反馈神经网络 ( https://www.learnopencv.com/understanding-feedforward-neural-networks/ )
使用 Convolutional Neural Networks / 卷积神经网络 来进行图像识别 ( https://www.learnopencv.com/image-classification-using-convolutional-neural-networks-in-keras/ )
8. 使用 Deep learning / 深度学习来进行目标检测:Part 7
很多事情看起来困难又神秘,但是你一旦花时间去了解,揭开神秘面纱,你就会发现神奇之处。
如果你是一个初学者,觉得计算机视觉又难又神秘,请记住一句话:
问:如何吃掉一个大象?
答:一口一口吃
什么是 Feature Desciptor / 特征描述子
Feature Desciptor / 特征描述子 从图像中提取有用信息,剔除无关信息;
典型的,特征描述子将一副 宽度 * 高度 * 3 ( 通道数 ) 的图像,转换为长度为 n 的特征向量或者特征矩阵。比如 HOG 特征描述子,一幅 64 * 128 * 3 的图像,输出长度为 3780 的特征向量。
请记住, HOG 的特征描述子也可以计算其他尺寸,但是这篇文章中,我使用上述尺寸,为了帮助你能够轻松的理解概念。
这些概念听起来都挺不错,但是哪些是“有用的信息”,有些又是“无用的信息"?
定义“有用的信息”,我们需要知道有用的信息用来干什么的。
很明显,通过特征向量用来浏览图像是没用的,但是在图像识别或者目标检测中,特征向量会很有用。
在一些图像分类算法中比如 SVM,Support Vector Machine,支持向量机中,用特征向量进行分类会达到很好的结果。
但是在分类任务中,哪些特征是有用的呢?
我们借助下面的例子来讨论,比如现在我们想通过一个目标检测器,可以检测衬衫和大衣的纽扣。
一个纽扣是一个圆形(图片中也有可能看起来像是椭圆),一般来说有几个孔,用于缝到衣服上面。
你可以在纽扣的图像上使用一个 Edge detector / 边缘检测器,可以轻松通过检测边缘来辨别它是不是一个纽扣。
这个例子中,边缘信息是“有用的”而颜色信息是 ”无用的“。
除此之外,特征也需要有足够特殊的地方。比如一个好的特征,应该能够让你辨别出纽扣和其他圆形的物体,比如硬币和汽车轮胎。
如何计算 Histogram of Oriented Gradients / 方向梯度直方图?
在这一节,我们会继续深入学习如何计算 HOG 特征描述子。
步骤1:预加工之前提到用于行人检测的 HOG 特征描述子,是基于 64×128 大小的图像。当然,图像可能是任何尺寸的。