张羽达 赵德安 刘晓洋
摘 要:随着港口自动化技术的发展,码头需要对集装箱进行自动装卸作业。为了解决集装箱装卸作业中对集装箱锁孔的识别定位问题,提出一种基于机器视觉的集装箱锁孔识别方法,用于辅助码头集装箱的自动化装卸作业。首先采集集装箱照片,对照片中的集装箱锁孔进行人工标注,制作成锁孔样本,并进行归一化处理,进而提取锁孔样本的HOG特征,然后对SVM进行訓练作为集装箱锁孔识别分类器,最后采用多尺度滑窗对图像进行扫描检测。使用300张测试样本进行测试实验,结果表明,该方法对集装箱锁孔的识别率达到92%,锁孔误检率低于3%,而且能够在各种复杂光照及背景条件下进行锁孔检测,可以满足港口自动化的实际要求。
关键词:方向梯度直方图;支持向量机;机器视觉;分类器;集装箱锁孔
DOI:10. 11907/rjdk. 182016
中图分类号:TP301文献标识码:A文章编号:1672-7800(2019)003-0016-04
0 引言
近年来,随着国际贸易的飞速发展,我国出口贸易量急剧增加。集装箱运输方式因具有运输成本低、可靠性高且运输方便等优点,在国际贸易运输中运用普遍,因此需求量增长迅猛。但是随着集装箱运货量的提升,集装箱运输对港口装卸效率的要求也越来越高。传统手动控制装卸集装箱对操作过程要求很高,不但工作强度大、耗时久,而且容易引发安全事故,严重影响了集装箱装卸速度与货物运输效率。港口起重机作为主要工程机械,也开始向自动化与智能化方向发展。因此,在起吊过程中,如何引导吊具与集装箱锁孔中心快速对准显得格外重要。
随着计算机硬件技术的发展,许多研究人员和工程师开始使用图像视觉系统定位与识别目标[1]。图像视觉系统首先用于识别集装箱箱号。Wu等[2]利用机器视觉技术识别集装箱箱号,通过训练后的支持向量机对集装箱箱体字符进行识别,为码头、堆场、海关自动化管理关键技术提供了解决方案;Mi等利用图像处理技术解决港口人员的安全问题;Peng对基于机器视觉的起重机操作进行改进,利用视觉系统跟踪及引导起重机操作;傅圣雪等[3]通过模板匹配实现集装箱定位与追踪,系统利用Matlab获取实时视频流,将HSV颜色空间量化编码成162色,从而实现对图像匹配区域的压缩,然后通过直方图相交算法计算检测图像与模板相似度,进而识别图像中的集装箱,并且通过步长平移搜索方案提高系统识别速度,满足了系统实时性要求;Hee-Joo等[4]使用双目视觉系统对集装箱锁孔进行追踪与定位,具体过程为:首先识别集装箱边缘,然后根据边缘处的拐角定位集装箱锁孔,进而计算集装箱中心位置,以及吊具与集装箱的高度和角度,以辅助集装箱的自动装卸操作。但该方法不能直接检测集装箱锁孔,所以对于自动化集装箱码头,如何快速识别与定位集装箱锁孔则显得尤为重要,但目前国内外对集装箱锁孔定位研究并不多。
目前,国内大多数集装箱码头仍然采用远程手动操作方式完成集装箱装卸。由于缺少集装箱锁孔识别技术,只能由司机凭经验将吊具锁头对准集装箱各个锁孔,不但劳动强度大,而且容易引发安全事故。如果出现误操作,容易导致集装箱箱体破损,严重影响集装箱码头装卸效率[5]。因此,本文提出一种自动识别集装箱锁孔的方法,采用机器视觉技术,结合计算机的高速计算完成集装箱锁孔识别与定位。该方法可有效减轻集装箱装卸人员的工作压力,实现港口的自动化,从而提升集装箱码头的经济效益。
1 HOG特征提取算法
1.1 特征提取算法简介
传统集装箱锁孔识别方法是首先对集装箱图像进行预处理、图像分割,进而提取集装箱锁孔的几何与颜色特征,然后进行识别。但该方法稳定性不强,在复杂光照及背景条件下则无法进行定位追踪。实现集装箱锁孔自动检测与识别的核心在于特征提取,特征提取算法对目标识别的检测速度和准确度有着巨大影响。目标检测中较为成熟的技术有人脸识别、车牌识别、车辆检测、行人检测,其中的常用算法有HOG特征(Histogram of Oriented Gradient,方向梯度直方图)、LBP(Local Binary Pattern,局部二值模式)特征、Haar-like特征、颜色特征等,Haar-like和LBP特征可以很好地描述图像明暗变化[6],所以多用于人脸检测,而HOG的优点在于对物体形状比较敏感,所以在行人识别领域应用较多。由于集装箱锁孔的形状与轮廓较为明显,因此本文选取HOG特征作为集装箱锁孔的特征提取算法。
1.2 样本图像制作
集装箱锁孔检测框架如图1所示。集装箱锁孔在不同角度与光照强度下,外观具有较大差异,所以需要建立充足的集装箱锁孔样本集。本文使用的集装箱照片及视频是在晴天、阴天等不同天气情况下,从镇江港集装箱码头采集的。集装箱顶部共有4个锁孔,因为实际采集的测试样本存在遮挡情况,一些集装箱锁孔上的污渍反射光以及图像某些区域亮度过高,对识别效果造成一定影响。因此,考虑在特征提取与训练分类前先进行图像增强。由于集装箱锁孔外观是外方内圆,轮廓特征较为明显,所以图像增强主要采用高通滤波锐化和拉普拉斯算子[7]。根据在集装箱码头拍摄的现场装卸视频,通过编写程序读取视频文件并逐帧保存为图片文件,然后从图片文件中标注出集装箱顶面的4个集装箱锁孔样本,并将图片尺寸归一化,进而进行特征选择与提取。集装箱锁孔作为正样本,如图2所示,不含锁孔的图像作为负样本,如图3所示。
1.3 HOG算法分析
HOG是法国学者Dalal[8]于2005年在CVPR(Conference on Computer Vision and Pattern Recognition)上提出的一种特征提取算法,HOG特征首先用于行人检测[9]。在本文中,只需在集装箱顶部图像中检测到4个角的集装箱锁孔。与人体复杂特征相比,集装箱锁孔的边缘轮廓特征更加明显,理论上可以得到更高的识别准确率。HOG特征提取步骤大致如下:
(1)色彩空间标准化。因为在提取HOG特征过程中颜色对其影响不大,所以需要先将彩色图像转化为灰度图,B、G、R分别为蓝色、绿色与红色通道的原始像素值,将三通道转换为单通道公式如下:
为了调节图像对比度,减少噪音以及阴影与光照对图片的影响,可以采用Gamma校正法对图像进行归一化处理[10],以有效降低光照变化引起的干扰,Gamma=[12],公式如下:
(2)图像梯度计算。通过计算图像中横坐标与纵坐标方向的梯度,并计算出每个像素的梯度方向值,获得图像纹理信息,进而继续弱化阴影与光照的影响。
根据式(3),图像中像素点[(x,y)]的梯度为:
(3)为细胞单元构建方向梯度直方图。通过一个16*16的像素块(block)对检测窗口进行扫描,该像素块被分成4个8*8的细胞单元(cell),梯度方向被分为9部分,称为箱(bin)。通过9个bin的直方图统计细胞单元梯度信息。
(4)图像HOG特征提取。将细胞单元组合成块并归一化梯度直方图。将各个细胞单元组合成连通的块,并将块内所有细胞单元的特征向量合并起来,称为该块的特征向量。因为有重叠区域,所以特征向量虽然结果不同,但仍可以将其保存至特征向量中[11],归一化后的块描述向量即为HOG描述符。最后对所有块进行HOG特征提取,将其处理为特征向量用于之后的训练分类[12]。
至此,训练样本已建立完成,正样本合计1 095张,负样本5 762张。集装箱锁孔样本尺寸越大,识别精度越高,然而,若图像尺寸过大会导致特征维度过高,从而使程序运行耗时较长,且占用较大内存。所以本文经过测试,将集装箱锁孔样本大小调整为120*80像素,胞元大小为8*8像素,块大小为16*16像素,每个像素点梯度分为9级,支持向量个数为905,检测子维数为4 537,在保证运行速度的同时,也满足了实际操作中对识别精度的要求。
2 SVM分类器训练
2.1 SVM原理介绍
Cortes & Vapnik[13]在1995年首次提出SVM(Support Vector Machine,支持向量机),其在解决小数据集、非线性与高维模式识别问题方面具有明显优势。因为通过HOG特征提取集装箱锁孔的特征维数较高,所以可以使用SVM作为识别集装箱锁孔的分类器。支持向量机是一种新型机器学习算法,其改善了神经网络学习过程中容易陷入局部极小点以及过学习等缺点[14]。支持向量机可看作一个二值分类模型,其主要功能是分类与回归,并最终转换为一个二次寻优问题,即找到全局最优点,所以可用来解决神经网络中的局部极小值问题,在数据分类及模式识别中有着广阔的应用前景。
2.2 SVM训练流程
步骤1:样本预处理。根据在处理区域捕获的图像,集装箱锁孔保持为120*80像素窗口大小,将其作为正样本。负样本大小与正样本保持一致。
步骤2:HOG特征提取。正样本标记为[yp]= +1,负样本标记为[yp]= -1,然后提取每个样本的HOG特征。
步骤3:SVM初始化分类训练。将步骤2得到的HOG特征用于生成初始SVM分类器。
步骤4:难例。利用初始SVM分类器检测负样本将出现一些误判[15],被错误分类的负样本称为难例,如图4所示。
步骤5:根据难例对SVM分类器进行二次训练。将难例加入负样本集合进行二次训练,通过难例中的HOG特征提取,将初始HOG特征组合为新的HOG特征空间。因此,可以通过新的HOG特征空间训练出最终的SVM分类器,从而显著减少误判。
锁孔识别主要依靠锁孔外方内圆的形状特征,然后采用滑窗加图像金字塔的方式对图像进行框选。虽然滑动窗口大小不变,但窗口滑动过程中图片尺度可以放大或缩小。所以在实际检测中,将图片放大或缩小到各种分辨率进行检测,可以实现对不同大小锁孔的识别,并根据框选区域特征进行分类。
3 实验与结果分析
为了验证所用方法的可靠性与实用性,本文在Windows 7平台下使用Visual studio 2012结合OpenCV2.4.4编写集装箱锁孔识别程序,并在处理器为Inter Core(TM)i7-7707HQ CPU@2.80GHz、内存为8G的笔记本电脑上运行。同时考虑到实际测试需要,在Visual studio2012上使用MFC编写程序图形界面,主要功能为对图片与视频中的集装箱锁孔进行识别,如图5所示。
本文使用300张测试样本对程序识别效果进行测试,测试样本由4个摄像头采集的图像组合而成,大小为1 920*1 080像素,同时本文还使用LBP+Adaboost方法进行对比试验。LBP指局部二值模式,是一种用来描述图像局部特征的算子,LBP特征由于计算简单,在计算机视觉领域得到了广泛应用[16]。Adaboost分类器是一种元算法分类器,其利用同一种基分类器(弱分类器),基于分类器的错误率分配不同权重参数,最后累加加权的预测结果作为输出。本文通过LBP算子提取集装箱锁孔特征,通过调节参数训练出合适的级联分类器,对集装箱锁孔进行识别。LBP+Adaboost识别效果如图6所示,HOG+SVM识别效果如图7所示,矩形框为识别出的集装箱锁孔。通过两张图片的对比,可以看出LBP算法存在明显的误检情况,并且对集装箱锁孔的定位存在一定偏差,而HOG特征结合SVM方法的定位更加精准。由统计得到的测试结果(见表1)可知,HOG特征结合SVM识别方法的集装箱锁孔识别率与误检率均优于LBP+Adaboost识别方法。集装箱锁孔识别程序在识别测试样本时准确率达到92%以上,且定位效果良好,识别时间为170ms左右,基本可以满足实际要求。
4 结语
本文針对集装箱锁孔定位问题,提出一种集装箱锁孔多尺度检测算法。与传统集装箱锁孔检测方法相比,该算法具有更高的识别准确率与更低的误检率,综合识别率达到92%以上,很好地解决了在实际港口装卸过程中集装箱锁孔容易受到光照引起光学畸变,以及因污渍导致的特征覆盖等问题。同时当摄像头角度发生变化引起一定的几何畸变时,该识别方法仍然可以进行识别,具有较强的鲁棒性,因而具有较好的应用前景。但其在对集装箱锁孔中心点定位时还不够精准,在本文基础上应再设计锁孔二次精准定位算法,以提高集装箱锁孔识别的准确性,从而对集装箱自动装卸起到更好的辅助作用。
参考文献:
[1] 李静,高晓蓉,杨凯. 基于HOG特征及SVM的机车车底螺栓检测方法[J]. 信息技术,2016(3):125-127,135.
[2] WU W, LIU Z, CHEN M, et al. An automated vision system for container-code recognition[J]. Expert Systems with Applications, 2012, 39(3):2842-2855.
[3] LOURENCO L H A, WEINGAERTNER D, TODT E. Efficient implementation of Canny edge detection filter for ITK using CUDA[C]. Computer Systems. IEEE, 2012:33-40.
[4] YOON H J, HWANG Y C, CHA E Y. Real-time container position estimation method using stereo vision for container auto-landing system[C]. International Conference on Control Automation and Systems. IEEE, 2010:872-876.
[5] 漆靜. 基于机器视觉集装箱吊具智能定位系统研究[D]. 成都:西南交通大学, 2015.
[6] HAN S,HAN Y,HAHN H. Vehicle detection method using Haar-like feature on real time system[J]. Chemistry,2009,15(37):455-459.
[7] 钱松,李建荣. 应用拉普拉斯算子设计高通滤波器进行图像增强分析[J]. 软件导刊,2011,10(12):158-159.
[8] DALAL N,TRIGGS B. Histograms of oriented gradients for human detection[C]. IEEE Computer Society Conference on Computer Vision & Pattern Recognition. IEEE Computer Society, 2005:886-893.
[9] 徐渊,许晓亮,李才年,等. 结合SVM分类器与HOG特征提取的行人检测[J]. 计算机工程,2016,42(1):56-60,65.
[10] ZHU Q, YEH M C, CHENG K T, et al. Fast human detection using a cascade of histograms of oriented gradients[C]. Computer Vision and Pattern Recognition, 2006 IEEE Computer Society Conference on. IEEE, 2006:1491-1498.
[11] SUARD F,RAKOTOMAMONJY A,BENSRHAIR A, et al. Pedestrian detection using infrared images and histograms of oriented gradients[C]. Intelligent Vehicles Symposium. IEEE, 2006:206-212.
[12] 郭烈,赵宗艳,聂倩,等. 利用腿部区域HOG特征的行人检测方法[J]. 计算机工程与应用,2013,49(1):217-221.
[13] BURGES C J C. A tutorial on support vector machines for pattern recognition[J]. Data Mining & Knowledge Discovery, 2008, 2(2):121-167.
[14] SUN Z, BEBIS G, MILLER R. Quantized wavelet features and support vector machines for on-road vehicle detection[C]. International Conference on Control, Automation, Robotics and Vision. IEEE, 2002:1641-1646.
[15] 李晓飞. 基于深度学习的行人及骑车人车载图像识别方法[D]. 北京:清华大学, 2016.
[16] 董晓晓. 基于多块LBP及AdaBoost算法的公交车客流量统计方法研究[D]. 西安:西安电子科技大学, 2016.
(责任编辑:黄 健)