支持向量机SVM(Support Vector Machines)是Vapnike等人在20世纪90年代初建立的一种新型的学习机器,它是在以解决小样本机器学习问题为目标的统计学习理论(SLT)的基础上发展起来的。SVM建立在SLT的VC维理论和结构风险最小化原理的基础上,根据有限的样本信息在模型的复杂度和学习能力之间寻求最佳折中,获得最好的推广能力。与传统方法相比,SVM能够有效地避免过学习、欠学习、维数灾难以及陷入局部极小值等问题,所以它成为机器学习的一个新研究热点。支持向量机作为统计学习理论的杰出代表,在分类和模式识别等方面取得了很好的效果,将其应用到人脸识别系统中,可以提高其成功率和准确率。
1.图像预处理
首先将交通标志牌的训练样本和测试样本下载下来,进行解压,由于测试程序不支持ppm格式的图片,用iSee软件把图片统一改为jpg格式。
其次将训练样本统一压缩为程序支持的68×128的大小(可以用iSee),再进行批量改名,放入文件夹。
2.提取特征
HOG特征提取方法就是将一个image:
灰度化[将图像看作一个x,y,z(灰度)的三维图像]。
采用Gamma校正法对输入图像进行颜色空间的标准化(归一化)。目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪声的干扰。
计算图像每个像素的梯度(包括大小和方向)。主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。
将图像划分成小cells(例如6×6像素/cell)。
统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的de-scriptor(描述符)。
将每几个cell组成一个block(块)(例如3×3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。(www.daowen.com)
将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。
写好正样本的txt文件,并修改代码正负样本数、正负样本文件夹路径等。正负样本数设置为1∶5,开始训练,并测试,检测效果如图2-17所示。
通过测试,检测结果不理想。虽然可以检测到交通标志牌,但存在很多误报的情况。如图2-18所示。
图2-17 检测效果
图2-18 误报较多的检测效果
为了减少误报,采用增加hard样本,即误报样本加入负样本中,进行训练,更新SVM模型。随着hard的增加误报会减少,但在上面这种图很难完全除掉。而且随着hard数量的增加,还会使一些图中原本可以识别到的交通标志牌识别不到造成漏检。如图2-19所示。
通过使用SVM进行交通标志牌的检测,可以看出,检测效果与检测窗口的大小密切相关,同时SVM本身存在局限。
图2-19 增加hard样本后的检测效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。