HOG总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1引言................................................................12HOG定义............................................................13HOG框架............................................................14HOG特征描述........................................................24.1HOG描述子....................................................24.2多层扫描......................................................35HOG各个阶段的具体过程..............................................45.1HOG描述子的构建过程..........................................45.2SVM分类器的构建过程..........................................45.3HOG检测算法的过程............................................56使用HOG方法训练....................................................66.1实验环境......................................................66.2实验过程......................................................66.3实验效果.....................................................101HOG识别方法总结李洋1引言现今在物体识别的方法中,绝大部分都是由这两步构成,第一步是建立图像的描述子,第二部是根据第一步的描述子选择对应的平台进行检测,就是分类方法。本文主要介绍HOG方法的原理,检测方法,训练过程,及一个简单物体的识别的完整过程举例。2HOG定义HOG全名为Historgramofgradient,即方向梯度直方图,HOG可以解决两类问题,一是静态图像上的人体检测,这时使用locallynormalisedHistogramsofOrientedGradients(HOG)作为特征描述子,本文以下内容均说明的是静态图像上的HOG方法。二是检测视频上运动物体的检测。要具有好的效果:未经平滑的梯度,较好的方向投票,较强的正规化,重叠块SVM找到一个超平面,也就是在给定的特征空间上,寻找目标与非目标间的最大的gap(间隔)。3HOG框架HOG检测物体的框架:HOG检测物体的整体框架分为两个阶段:学习阶段与检测阶段。学习阶段是对固定大小的图像区域进行有还是没有目标物体的判断,从而建立起一个二维的分类器。检测阶段则是使用这个分类器在待测图像上进行多层的扫描,并在每个层上的各个位置进行判断,找到分类器认为含有目标的区域,再加以融合(fuse)。每个阶段都分为3部,具体如下图所示:2学习阶段(learning):1、训练样本,分为正负样本,其中正样本指的是含有目标物体的样本,理想情况下只含有一个,负样本则不含。正样本的训练是使用固定大小的含有目标的窗口,而负样本只需在不含目标的图像上随机地滑动出固定大小的窗口即可。2、提取特征,这个过程把这些图像窗口映射到一个抽象的固定大小的特征向量空间中。3、把这个高维的特征向量输送到分类器中,并告诉它这个图像窗口有还是没有目标,从而训练出一个分类器,这里用的是线性的SVM来当二维的分类器的,因为可以直接地将特征向量输入到SVM中,与其他复杂的分类器相比,能得出相同的结果但是却更快。检测阶段(detection):1、计算待测窗口的特征向量2、把这个窗口的特征向量输入到已经训练好的分类器上,做出是否有目标的判断。3、在检测过程中使用到了金字塔多层的检测,所以很可能会有重叠的窗口产生,这一步做的就是融合成一个窗口。4HOG特征描述4.1HOG描述子HOG描述子是通过密集且重叠的spatialblock上的格点,图像梯度方向特征在固定的分辨率上被提取,然后被收集到一个高维度的向量中去,这样形成的即为HOG描述子。HOG描述器最重要的思想是:在一副图像中,局部目标的表象和形状(appearanceandshape)能够被梯度或边缘的方向密度分布很好地描述。具体的实现方法是:首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。3HOG特征向量的运算可以分为5个过程:1、对图像做一个归一化,来减小光照的影响。实际中使用了gamma压缩,就是对每个色彩频道计算平方根或log值,因为图像纹理的强度越大,局部表面的光照影响就越大,所以这种压缩回会减小局部阴影与光照变化带来的影响。可能的话,保留颜色信息的图像,如RGB和LAB会比灰度图效果更好。根据实验,对于人来说,使用平方根会比log的灰度校正效果要好。2、计算一阶的图像梯度,能反映图像的内容,边缘信息,部分纹理信息等。计算梯度时,使用高斯平滑滤除噪声效果会更差,原因是滤除噪声的同时,重要边缘信息也被弱化。简单地使用一个一维的离散微分模板效果更好。3、为局部图像区域提供一个编码,把图像窗口划分成若干小的空域,称为cell,然后将每个单元格中所有象素的一维梯度直方图或者边缘方向累加到其中。最后将这个基本的方向直方图映射到固定的角度上,就形成了最终的特征。细胞单元中的每一个像素点都为某个基于方向的直方图通道(orientation-basedhistogramchannel)投票。投票是采取加权投票(weightedvoting)的方式,即每一票都是带权值的,这个权值是根据该像素点的梯度幅度计算出来。可以采用幅值本身或者它的函数,如平方或平方根来表示这个权值,实际测试表明:使用幅值来表示权值能获得最佳的效果,当然,也可以选择幅值的函数来表示,比如幅值的平方根(squareroot)、幅值的平方(squareofthegradientmagnitude)、幅值的截断形式(clippedversionofthemagnitude)等。细胞单元可以是矩形的(rectangular),也可以是星形的(radial)。直方图通道是平均分布在0-180°(无向)或0-360°(有向)范围内。作者发现,采用无向的梯度和9个直方图通道,能在行人检测试验中取得最佳的效果。颜色差别重要的时候使用邮箱的角度范围是更好的,但对于检测人类来说,无向的经过实验效果更好。4、对比度归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。通常,每个单元格由多个不同的块共享,即重叠块(overlappingoftheblocks),但它的归一化是基于不同块的,所以计算结果也不一样。因此,一个单元格的特征会以不同的结果多次出现在最后的向量中。我们将归一化之后的块描述符就称之为HOG描述符。5、将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类器使用。4.2多层扫描对于多层扫描产生的重叠的检测结果,作者提出了non-maximumsuppression,此方法基于一下两点假设:此解决方案的基于的两点假设:41、若检测器精确,则检测窗口也是精确的,即使会有一点点的偏离中心或大小稍有偏差。2、一个可靠的检测器,在没有目标的窗口上,不会与相同的频率和可靠度的冲突。思路是,把SVM的score映射为正数,即根据max(score,0)来取值,然后是将(x,y,scale)投射到一个三维空间这样便形成了一个金字塔形的结构,即scale越小的越在上面,x,y差不多的聚在一块,就构成了若干个金字塔,然后应用meanshiftmode算法到每个检测结果上,最终的结果是,重叠的检测会聚在一起。理想的融合算法应具有的三个特性:1、最底下的那个detection的score越高,这块区域就越有可能是一个对的positive。2、一个图像块的邻近范围内越多的重叠的detection就表明这个图像块越有可能是truepositive。3、邻近的重叠的detetions应该被融合到一块,但是scale或positivepositions差太大的不应该被融合。5HOG各个阶段的具体过程5.1HOG描述子的构建过程输入:一幅在当前缩放因子下和当前窗口大小下的图像输出:在用户给定位置处的高维的特征向量初始化步骤:1、(可选)对每个颜色频道的gamma修正。2、首先用[-1,0,1]梯度算子沿x,y轴对原图像做卷积运算,选取最大量级的channel作为来计算像素梯度的方向和幅值。描述子计算过程:a)划分cn*cn个像素的方形图像区域成为cellb)对块中的梯度应用sigma=0.5*cn的高斯窗口c)创建一个c*c*b的方向梯度直方图d)对快中的每个像素,使用三线性插值根据梯度幅值投票到直方图中。最后的步骤:使用L2-Hys规范化每个block,并计算所有block的梯度方向直方图到一个大的描述向量中。5.2SVM分类器的构建过程输入:含有目标的固定大小(Wn,Hn)的窗口与不含目标的任意图像输出:训练好的判断固定大小窗口图像有无目标的二维分类器第一阶段学习:5计算所有含有目标图像的描述向量,并输入到线性的SVM中。产生hardnegativeexamples:对所有的不含目标图像的来进行多层的扫描,来找到分错的例子,即认为含有目标的样本。a)开始的缩放因子Ss是1,结束的是Se=min(Wi/Wn,Hi/Hn),Hi和Wi是不含目标图像的长宽。b)计算步数,每一步的缩放因子(即S(i+1)=S(i)*Sr)c)循环n次,并在每次循环中,用双线性插值放大图片,并以每次滑动Ns个像素来计算特征描述子,给出有没有目标的判断,把所有检测错误的判断输出到一个表里。第二阶段学习:使用positive,negativeandhardexamples来重新训练SVM。多层扫描的目标定位5.3HOG检测算法的过程输入:a)待测图像b)训练好的检测Wn和Hn窗口大小的训练器输出:目标检测框初始化:a)使开始的缩放因子为1,结束的缩放因子为Se=minWi/Wn,Hi/Hnb)根据层数及stride,循环求出每个像素点对应的每个HOG描述向量6c)把特征向量输入给SVM分类器,将所有的检测结果(t(wi)c)输出到一个列表中。融合:采用Non-maximumsuppression算法融合多个detection,并输出最终结果。6使用HOG方法训练使用HOG方法训练样本来识别一个小瓶子的简单训练及识别过程:6.1实验环境Ubuntu11.041、所需软件包:imlib2,安装这个包时还需要3个依赖包,分别是libjpeg、libpng、freetype2.1.x这三个包的安装都可以用./configure,make,makeinstall来完成,之后安装imlib2,在configure时需要按提示配置不含有x-windows,安装完后就可以使用OLTbinaries里面的脚本了,但是我的libjpeg明明在命令行下可以使用,但是执行脚本时却表明无法读取jpeg类型的图片,原因没找到,没办法只能下载批量格式转换工具了。OLTbinaries在作者提供的网址可以下载到,如果想实验作者训练的样本可以下载这里由于训练自己的样本,因此不需要下载这个样本库。I

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功