APP下载

基于HOG+SVM实现对任意物体的检测

2019-09-10李铭郑苏生姚磊岳

现代信息科技 2019年24期
关键词:目标检测模式识别人工智能

李铭 郑苏生 姚磊岳

摘  要:随着深度学习技术的不断发展,端到端的模式识别方式越来越普及。只要算力足够,总可以搭建出适合某一场景的分类检测与预测判断深度网络。但在周期短、算力不足、语义理解要求高的场景下,基于特征的模式识别仍旧有着巨大的需求。本文通过对经典特征HOG的详细解读,结合SVM实现了对任意物体的智能识别。相较于深度学习算法,有着前期训练成本低、识别速度快、样本量需求小等特点。

关键词:模式识别;SVM;HOG;目标检测;人工智能

中图分类号:TP391.41       文献标识码:A 文章编号:2096-4706(2019)24-0067-04

Abstract:With the development of deep learning technology,the end to end method has become the most popular pattern recognition method nowadays. In most situations,an appropriate deep learning network always can be created with the help of enough computing power. However,in the scene of short project period,insufficient computing power,high competence of algorithm etc.,feature based pattern recognition method still has its application requirements. In this paper,the classic feature,HOG was fully introduced,which together with SVM(support vector machine) realized a common algorithm for any certain object detection. Compared with deep learning algorithm,it has the characteristics of low training cost,fast recognition speed and small sample size demand.

Keywords:pattern recognition;SVM;HOG;object detection;artificial intelligence

0  引  言

目标检测是人工智能领域最为重要,也是最为热门的研究方向之一。它的主要目的是通过对数字图像或视频的分析,找到制定目标的位置、大小、轮廓,赋予计算机“看”的能力,并最终做出相应判断。目标检测是场景识别、目标追踪,以及其他人工智能复杂应用的前期基础。如图1所示,近几十年来,基于特征的目标检测算法取得了较好的成績,诞生了许多经典的目标检测特征,如:HOG、DPM、SIFT等等。

基于特征的算法有着较高的特征解释度,但在识别率方面却很难突破天花板。很多实验结果准确率在98%甚至更高的检测方法,往往有着很强的数据集依赖性或特定场景依赖性。2013年以后,随着卷积神经网络在图像分类方面取得了质的突破后,深度学习方法在图像检测、目标跟踪方面的研究越来越多,越来越普及。然而,这种依赖GPU算力的“暴力”方法,一方面需要海量的训练样本;另一方面,较传统的基于特征的方法而言,深度学习方法对算力的需求以数量级增加。

在算力充足、需要保证准确率的情况下,利用深度学习框架构建模式识别应用肯定是首选方案。但如果算力有限,对特征语义解释度要求较高,且需要快速实现的情况下,基于手工特征的算法也不失为好的选择之一。基于此背景,本文详细介绍了如何利用模式识别中经典的HOG特征以及SVM,实现对任意目标的快速检测。

1  模式识别的一般性算法思路

不论是基于深度学习的模式识别方法还是基于特征的模式识别方法,都具有共同的总体流程,如图2所示。具体可分为三步:

(1)接收外界原始数字信息(RAW DATA);

(2)通过特定转化,将原始数字信息转化为参数矩阵(多维数字矩阵);

(3)通过多维数字矩阵以及实现标定样本对分类器进行训练或进行分类预测(如果分类器已经训练完毕,则可以直接通过分类器和多维数字矩阵进行预测)。

再简而言之,就是将目标对象在数字层面抽象为更为简单的描述,然后再通过已具备先验知识的分类器(SVM等)进行可能性归类。举一个简单易懂的例子:如果待检测目标是一个动物,有毛,有爪子,有四肢,体型不大,那么我们人(具备先验知识的分类器)根据描述会把这个目标预测为狗、猫或等等有上述特征的动物。如果在此描述基础之上增加“喜欢捕食老鼠”,那么将检测目标判定为“猫”的概率就大大提高。计算机中的模式识别技术大抵就是如此。

2  本文方法实现

本文算法通过HOG算子计算目标对象特征,并准备好正负样本对SVM进行训练。训练完成后,即可实现对任意图片中目标对象的检测与标注。在实验过程中,算法通过第三方开源项目库EMGU.CV v3.1所提供的HOG算子以及SVM实现。实验测试以检测图片中的汽车为例。

2.1  HOG特征分析

方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。HOG特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。本文旨在利用HOG进行特征提取,详细的HOG算子原理可参阅文献[1]。

如图3所示,在EMGU.CV中,HOG算子初始化需提供5个参数,其中:

第一个参数:WinSize:窗口大小,本文样本大小为36*36;

第二个参数:BLOCK,本文块大小是12*12;当然,也可以设置为18*18或者6*6,切记:BLOCK大小不能是奇数值,因为如果是奇数,cell和BLOCK会无法除尽。同时,设计的过程中,BLOCK要可被WinSize整除。

第三个参数:stride,即滑动窗口步长,本文的设置是6*6,当然也可以设置为12*12或者4*4,不同的设置,将得到不同的纬度数量;

第四个参数:cell,4个cell构成1个BLOCK,这也就是BLOCK一定要是偶数的原因。

第五个参数:需要得到几个channel的值,9个channel将得到9个提取值。

经过转化后,训练样本将被抽象为一个1纬的浮点数组。本文中的纬度为900,具体计算公式如下:

利用EMGU.CV实现HOG初始化后,在计算HOG特征时,可以直接调用对象的compute方法,具体代码如图4所示。

2.2  基于SVM的模式判断

支持向量机(Support Vector Machine,SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)[2]。

SVM的实现原理需要有较强的数学功底和空间想象能力,因为4纬及以上空间在现实生活中就不存在具体模型。但可以将SVM的作用简化地理解为在二维平面上进行分类,如图5所示。

即:SVM可以通过标定数据(图中表示为不同的小球),在多维空间(图中为二维)进行有效分割,实现不同类型的最佳区分。因此,在使用过程中,我们只需知道SVM可以自动根据训练样本做出最佳分类预测即可。故在使用SVM的过程中,要分为以下两步。

2.2.1  准备正负样本

正样本:指算法想要正确分类出的类别所对应的样本。如本文中希望在图片中检测出汽车,则正样本则为各种各样不同的汽车。

负样本:指算法想要排除的样本。如在本文中,所有不是汽车的图片均可作为负样本存在。

正、负样本的数量理论上可以不一致,但是一般而言,最好能够实现1:1对应,以提高算法准确度。本文中,正、负样本数量分别为500和467。一般而言,样本数量越多,训练越充分,准确度越高。

2.2.2  训练

以正样本训练为例,如图6代码所示:遍历正样本目录,计算HOG值并存入HOG特征矩阵以供SVM训练使用。原则上,SVM可以接受任意纬度的浮点矩阵。本文中,根据HOG算子计算出的特征为900纬的浮点矩阵,具体训练及SVM参数设置如图7所示。

2.2.3  预测(分类)

图8程序目的在于通过设置滑块窗口,实现目标图片的遍历,并将滑块窗口所遍历出的图像计算得到HOG特征值,在通过SVM判断是否是目标对象。如果是,则记录当前滑块位置与窗口大小(即图8中的results[i].Rect)。

2.3  算法实现

3  结  论

本文介绍了模式识别的普适性方法,利用第三方开源平台,通过HOG+SVM实现了对任意目标的检测。相较于深度学习而言,基于传统手工特征的算法并非已经过时。在特定需求下,基于传统手工特征的模式识别方法依然有其显著的优势。在未来的进一步研究中,本文算法可以通过不同大小的滑动窗口实现不同尺度的目标的检测。另外,还可以在提取手工特征后,将待检测图片转化为特征图谱,并将特征图谱作为深度网络的输入值实现端到端检测,从而实现传统手工特征与深度学习技术的结合。

参考文献:

[1] DALAL N,TRIGGS B. Histograms of Oriented Gradients for Human Detection [C]//2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’05). IEEE,2005.

[2] 周志华.机器学习 [M].北京:清华大学出版社,2016:121-139+298-300.

[3] LI Z,ZHOU F. FSSD:Feature Fusion Single Shot MultiboxDetector [J/OL].arXiv,2017(14):1-10(2017-12-04),https://arxiv.org/pdf/1712.00960v1.pdf.

[4] 陽冰成.视频序列中行人目标检测与跟踪 [D].北京:北京印刷学院,2019.

[5] 韩涛,杨洋.基于Hough变换的图像目标检测与识别 [J].计算机与数字工程,2019,47(2):412-416.

作者简介:李铭(1985.07-),男,汉族,江西抚州人,助教,本科,研究方向:计算机网络;郑苏生(1978.01-),男,汉族,江西抚州人,讲师,研究生,研究方向:工商管理;姚磊岳(1982.07-),男,汉族,江西南昌人,教授,研究生,研究方向:大数据挖掘与人工智能。

猜你喜欢

目标检测模式识别人工智能
轻身调脂消渴片的指纹图谱建立、化学模式识别及含量测定
2019:人工智能
人工智能与就业
数读人工智能
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
汽车外观造型创新设计遗传算法的应用
自动洁地机器人的设计
移动机器人图像目标识别
下一幕,人工智能!