基于机器学习的交通标志检测【梯度方向直方图(HOG)、支持向量机(SVM),随机森林(random forests)】

基于机器学习的交通标志检测

基于机器学习的交通标志检测流程图

在这里插入图片描述

1.1 预处理

将图片进行尺度归一化。常见尺寸变换方法可以参考最邻近插值、双线性插值和三次插值。最邻近插值速度快,单失真较严重,在尺度变换较大时会产生冥想的锯齿和马赛克。三次插值比较复杂且计算量大。双线性插值变换后图片质量较高,且计算复杂度较低,综合考虑,使用双线性插值比较合适。

1.2特征提取

1.2.1 梯度方向直方图特征(HOG,Histogram of Oriented Gradients)
(1)HOG基本思想
通过统计图像局部光强梯度的边缘方向的分布来描述该图像的特征。首先将图像分割成大小相等且不重叠的连通区域,称为细胞单元;然后统计每个细胞的梯度方向直方图;最后,通过一定的规则对得到的直方图进行组合,即可得到描述该图像的目标特征。

(2)HOG特征提取算法流程

在这里插入图片描述
1)图像预处理(灰度化+归一化)
由于HOG关心图像梯度和边缘信息,因此图像中的颜色信息作用不大,可以忽略以减少计算的复杂度。先进行灰度化处理,再进行归一化,可减少光照因素的影响。可参考Gamma归一化校正法,计算公式如下:Gamma取1/2 。

在这里插入图片描述

2)计算图像梯度
图像梯度的计算包括横坐标的梯度、纵坐标的梯度以及每个像素位置的梯度方向值。可参考以下公式:
在这里插入图片描述
其中G_x (x,y),G_y (x,y),H(x,y)分别表示输入图像点(x,y)处水平方向上梯度、垂直方向上梯度和该点的像素值。G(x,y),α(x,y)分别表示梯度的幅度和梯度的方向。

3)为每个细胞构建梯度直方图
计算出每个像素点的值后,将图像分为若干个不重复且大小为N*N 的细胞单元。每个像素点的梯度范围为[0, 360°],将该范围划分为n个通道(常见为9)。并如果当前像素的梯度方向在第一通道,则在该直方图的第一通道的计数上加上对应的梯度大小。每个细胞得到一个直方图。

4)细胞组合成块及梯度方向直方图归一化
将各个细胞单元合成大的、空间上连通互有重叠的快,每个块內所有细胞的特征作为该块的特征。之后对梯度大小进行归一化,这样可以进一度对光照、阴影和边缘进行压缩。

5)收集HOG特征·
收集图像中所有重叠块的HOG特征,并将它们组合成最终的多维特征向量f=[x_1,x_2,…,x_d],即该图像d维的HOG特征向量。

1.3分类器选取

1.3.1 支持向量机
(1)线性可分时
针对交通标志检测的二分类情况,在二维空间中将黑色点和白色点用一条直线分开。
在实际二分类情况中,假设给定数量为n的训练样本集用S表示,x_i为训练样本的特征向量,y_i为对应样本的标记值,y_i∈{1,-1}。则S的表达式可以写成
S={(x_i,y_i )│x_i∈R_d,y_i∈{-1,1} }_(i=1)^n
分界面的线性函数表达式为
在这里插入图片描述
对于线性可分的情况,存在分类平面H让两类点完全分开,如图所示。假设位于两个类中且平行于分类平面H最近的两个面分别为H_1和H_2,它们之间的距离为m.能决定H_1、H_2平面并且位于两平面上的样本向量,并能够使得m最大,则这些样本向量被称为支持向量。此时H为最优分类超平面。

两个平面的间距为
在这里插入图片描述
最大化m可以转换为求J
J=min⁡(1/2 |(|w|)|^2)

(2)线性不可分时
当不能用线性函数将两类分开时,有两种解决办法。第一:仍用直线分开,但是不能保证完全分开;第二:用曲线分开。

如果继续用直线分开,要包容错分的情况,并且对错分的样本点增加惩罚,惩罚函数就是这个点到其正确位置的距离。在原函数上加上惩罚函数就变为
在这里插入图片描述
ε用于改变最小分类间隔,C表示对错分点惩罚的大小,当C很大时,错分的点会更少,但是容易出现过拟合。C的选用会影响到分类效果,一般通过经验获得,此时得到的支持向量机被记为C-SVM。

如果用曲线分开,则需要使用非线性映射,将原本线性不可分的空间转换到更高维的空间,然后在新的特征空间使用线性分类器。设映射后的内积为ϕ(x_k )ϕ(x_j),映射后的内积用一个函数表达,并称此函数为核函数,
在这里插入图片描述
最后得出在高维空间分界面表达式是:
在这里插入图片描述
常用核函数有以下几个:
在这里插入图片描述
对于二分类问题选择简单的线性函数即可。

1.3.2 随机森林算法
(1)随机森林基本思想
随机森林是采用分类回归树(CART)作为元分类器而成的组合分类器。使用Bagging方法抽取有差异的训练样本集分别对CART进行训练。CART算法采用递归划分自变量空间和用验证数据剪枝的思想,生成CART数,该树称为二叉树。在建立二叉树时,可以选择基尼指标作为每个内部节点处的分裂属性。

(2)随机森林算法流程
随机森林是以K各决策树{h(x,θ_k ),k=1,2,…,K}为基本分类器,在集成学习后进行组合而得到的组合分类器。
1)使用Bagging方法形成各有区别的训练集分别对决策树进行训练:假设数据库中用来训练的样本数量为N,从中有放回的随机抽取N个样本形成一个新的训练集,用新的训练样本训练生成一棵新的树分类器。
2)用每个训练集分别训练生成一棵分类回归树。假设共有M个原始特征,设定一个正整数m+M;从M个特征中随机选取m个特征作为每个内部节点的候选特征,然后再从m个特征最好的分裂方式对节点进行分裂。m的值在森林的整个生长过程中保持不变。每棵树生长自由,不进行剪枝。
3)本文中对输入的测试样本进行分类时,其预测结果由组成随机森林的决策树投票决定。投票公式如所示:
c=argmax_c (1/ntree ∑_(k=1)^ntree▒〖I(h(x,q_k )=c)〗
参考文献:
[1]许庆志. (2018). 基于深度学习的交通标志识别及实现. (Doctoral dissertation).
[2]刘冬琴. (2016). 自然场景下交通标志检测算法研究. (Doctoral dissertation).

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值