SVM算法在项目实践中的应用!

↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

 Datawhale干货 

作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

正是由于SVM具有很多独特的优势,基于SVM分类器在很多时候都具有较好的拟合作用。本文对SVM算法在行人检测项目实践中的应用进行详细讲解,同时给出调用OpenCV分类器及可视化的代码实现,便于大家学习实践。

目前的行人检测基本上都是基于法国研究人员Dalal在2005的CVPR发表的HOG+SVM的行人检测算法(Histograms of Oriented Gradients for Human Detection, Navneet Dalel,Bill Triggs, CVPR2005)。HOG+SVM作为经典算法也集成到OpenCV里面去了,可以直接调用实现行人检测。

本文目录

    1. HOG特征描述符

        1.1. 主要思想

        1.2. 微观

        1.3. 宏观(硬核)

        1.4. HOG算法优缺点

    2. HOG特征的原理

        2.1. 图形预处理

        2.2. 计算图像梯度

        2.3. 计算梯度直方图

        2.4. Block归一化

        2.5. 获得HOG描述子

        2.6. 使用HOG特征数据

    3. 基于OpenCV的简单实现

        3.1. 行人检测

        3.2. 可视化

一、HOG特征描述符

HOG(Histogram of Oriented Gradients)HOG特征在对象检测与模式匹配中是一种常见的特征提取技术(深度学习之前),是基于本地像素块进行特征直方图提取的一种算法,对像局部的变形与光照影响有很好的稳定性,最初是用HOG特征来识别人像,通过HOG特征提取+SVM训练,可以得到很好的效果,OpenCV已经有相应的接口。

HOG特征是在2005年CVPR的会议发表,在图像手工特征提取方面具有里程碑式的意义,当时在行人检测领域获得了极大成功。

1.1 主要思想

局部目标的外表和形状可以被局部梯度的分布很好的描述,即使我们不知道对应的梯度和边缘的位置。(本质:梯度的统计信息,梯度主要存在于边缘edge或角落corner的地方)

1.2 宏观

特征描述符就是通过提取图像的有用信息,并且丢弃无关信息来简化图像的表示。

HOG特征描述符可以将3通道的彩色图像转换成一定长度的特征向量。

那么我们就需要定义什么是“有用的”,什么是“无关的”。这里的“有用”,是指对于什么目的有用,显然特征向量对于观察图像是没有用的,但是它对于像图像识别和目标检测这样的任务非常有用。当将这些特征向量输入到类似支持向量机(SVM)这样的图像分类算法中时,会得到较好的结果。

那什么样的“特征”对分类任务是有用,比如我们想检测出马路上的车道线,那么我们可以通过边缘检测来找到这些车道线,在这种情况下,边缘信息就是“有用的”,而颜色信息是无关的。

方向梯度直方图(HOG)特征描述符常和线性支持向量机(SVM)配合使用,用于训练高精度的目标分类器。

1.3 微观(硬核)

在HOG特征描述符中,梯度方向的分布,也就是梯度方向的直方图被视作特征。图像的梯度(x和y导数)非常有用,因为边缘和拐角(强度突变的区域)周围的梯度幅度很大,并且边缘和拐角比平坦区域包含更多关于物体形状的信息。

HOG特征是一种图像局部特征,基本思路是将图像划分为很多小的连通区域,即细胞单元Cell,然后对Cell的梯度幅值和方向进行投票统计,形成基于梯度特性的直方图。把直方图在图像更大的范围内(又名区间或者Block)进行归一化。归一化的块描述符叫做HOG描述子feature descriptor。将检测窗口中的所有块的HOG描述子组合成最终的特征向量。然后使用SVM分类器进行目标和非目标的二分类(检测)。

HOG+SVM的工作流程如下:

首先对输入的图片进行预处理,然后计算像素点的梯度特性,包括梯度幅值和梯度方向。然后投票统计形成梯度直方图,然后对blocks进行normalize,最后收集到检测窗口的HOG feature(一行多维的vector)放入SVM里进行监督学习,实现行人的检测。接下来对上述HOG的主要步骤进行学习。

检测窗口在整个图像的所有位置和尺度进行扫描,并对输出的金字塔进行非极大值抑制来检测目标(检测窗口的大小一般为128x64)

1.4 HOG算法优缺点

HOG算法具有以下优点:

  • 核心思想是所检测的局部物体外形能够被梯度或边缘方向的分布所描述,HOG能较好地捕捉局部形状信息,对几何和光学变化都有很好的不变性;

  • HOG是在密集采样的图像块中求取的,在计算得到的HOG特征向量中隐含了该块与检测窗口之间的空间位置关系。

HOG算法具有以下缺点:

  • 特征描述子获取过程复杂,维数较高,导致实时性差;

  • 很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测(这个问题后来在DPM中采用可变形部件模型的方法得到了改善);

  • 跟SIFT相比,HOG没有选取主方向,也没有旋转梯度方向直方图,因而本身不具有旋转不变性(较大的方向变化),其旋转不变性是通过采用不同旋转方向的训练样本来实现的;

  • 跟SIFT相比,HOG本身不具有尺度不变性,其尺度不变性是通过缩放检测窗口图像的大小来实现的;

  • 此外,由于梯度的性质,HOG对噪点相当敏感,在实际应用中,在block和Cell划分之后,对于得到各个区域,有时候还会做一次高斯平滑去除噪点。

二、HOG特征的原理

接下来让我们进入到计算图像的HOG特征描述符的具体步骤。以下面这张图片为例(宽高为100x200):

2.1 图形预处理

预处理包括灰度化和Gamma变换。

灰度处理是可选操作,因为灰度图像和彩色图像都可以用于计算梯度图。对于彩色图像,先对三通道颜色值分别计算梯度,然后取梯度值最大的那个作为该像素的梯度。

然后进行伽马矫正,调节图像对比度,减少光照对图像的影响(包括光照不均和局部阴影),使过曝或者欠曝的图像恢复正常,更接近人眼看到的图像。

Gamma矫正公式: ,其中 表示图像, 表示幂指数。( 越大,图像越暗;为1时,表示没有变化。) 如图,当

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值