计算机视觉工程师在面试过程中主要考察三个内容:图像处理、机器学习、深度学习。然而,各类资料纷繁复杂,或是简单的知识点罗列,或是有着详细数学推导令人望而生畏的大部头。为了督促自己学习,也为了方便后人,决心将常考必会的知识点以通俗易懂的方式设立专栏进行讲解,努力做到长期更新。此专栏不求甚解,只追求应付一般面试。希望该专栏羽翼渐丰之日,可以为大家免去寻找资料的劳累。每篇介绍一个知识点,没有先后顺序。想了解什么知识点可以私信或者评论,如果重要而且恰巧我也能学会,会尽快更新。最后,每一个知识点我会参考很多资料。考虑到简洁性,就不引用了。如有冒犯之处,联系我进行删除或者补加引用。在此先提前致歉了!
HOG
Histogram of Oriented Gradients
方向梯度直方图
HOG是一种描述图像的特征。顾名思义,主要对像素的梯度方向敏感。
该特征最早用于行人检测,即检测一张图像中是否包含行人。
步骤如下:
一般会让block之间会有一定的重叠,在一定程度上缓解了同一物体被分割的情况,但是会大幅增加计算量。
90度和270度的梯度方向虽然相反,但是都是竖直走向,区分上下没有太大意义。所以可以将270度变为90度,即最后把0到360度变成了0到180度。
不使用0到360的原因是,0到180的实验效果好。作者没有进一步解释。我认为如果梯度方向划分的区间大小相同,0到360度的特征维度就大了一倍,但是大的这一倍其实是没必要的,所以造成了性能的下降。
可以直接处理RGB图像,对三个维度分别计算梯度,取最大值。可以,但没必要。
特征归一化是为了减轻光照影响,因为同样的梯度,如果图像亮一些,HOG特征就会变大,这样对比较图像中较暗处的梯度就不公平了。
使用block的原因是当block重叠时,重叠的cell的特征可以反复利用。所以每张图只需要计算每个cell(它们不重叠)的特征。如果使用cell重叠,那么每张图要计算很多重叠的cell的特征,增加了计算量。
提取的HOG特征下一步一般使用SVM进行分类。
HOG可以与金字塔思想结合,如下所示。每一个level的block大小不同,最后将每一个level的HOG连接,形成最终的HOG。这样可以增强对不同尺度特征的敏感性。当然每一个block的特征要归一化,因为大block的特征向量中的数字肯定比小block的特征向量中的数字大。
完
欢迎讨论 欢迎吐槽