仝保國(guó),劉凌云
(湖北汽車(chē)工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北十堰 442002)
隨著視覺(jué)技術(shù)的發(fā)展,機(jī)器視覺(jué)已廣泛應(yīng)用于物體檢測(cè)、目標(biāo)識(shí)別、圖像匹配、跟蹤、SLAM、姿態(tài)估計(jì)、三維重建和增強(qiáng)現(xiàn)實(shí)等領(lǐng)域,極大地提高了運(yùn)行效率和處理效果[1-3]。機(jī)器視覺(jué)的核心是通過(guò)對(duì)圖像進(jìn)行處理分析,提取圖像特征信息,從而實(shí)現(xiàn)目標(biāo)圖像的識(shí)別分類(lèi)[4-5]。
在經(jīng)典的圖像特征提取算法(如SIFT,SURF和ORB)基礎(chǔ)上,相關(guān)學(xué)者不斷提出一些改進(jìn)方法來(lái)對(duì)特征提取算法進(jìn)行優(yōu)化,如鹿志旭等[6]使用DAISY特征描述符替換SURF特征描述算子,并采用隨機(jī)抽樣一致算法刪除誤匹配點(diǎn),提高算法運(yùn)行效率及匹配精度;譚光興等[7]采用十字形對(duì)SIFT特征點(diǎn)鄰域進(jìn)行分區(qū),簡(jiǎn)化特征描述子并降低描述子的維度,并結(jié)合余弦相似度約束條件過(guò)濾偽匹配;鐘鵬程等[8]在ORB算法的特征描述中添加SURF方向信息,并采用快速近似最近鄰搜索算法對(duì)特征點(diǎn)進(jìn)行匹配。
然而,針對(duì)相似度較高的小工件,現(xiàn)有算法存在識(shí)別精度不高,對(duì)圖像尺度或旋轉(zhuǎn)、光照強(qiáng)度或角度等外部因素的魯棒性較差等問(wèn)題。本文提出改進(jìn)ORB-SVM的工件識(shí)別方法,即在ORB特征提取的基礎(chǔ)上引入SIFT進(jìn)行特征描述,并通過(guò)詞袋模型(bag word model,BoW)進(jìn)行降維處理,最后采用支持向量機(jī)(support vector machine,SVM)實(shí)現(xiàn)多品種工件的識(shí)別。通過(guò)試驗(yàn)表明,該方法具有良好的識(shí)別效果。
改進(jìn)ORB-SVM的算法流程如圖1所示。
圖1 改進(jìn)的ORB-SVM算法流程圖Fig.1 Flowchart of improved ORB-SVM algorithm
ORB算法是在FAST(features from accelerated segment test)角點(diǎn)和BRIEF(binary robust independent elementary features)描述子的基礎(chǔ)上做了改進(jìn)和優(yōu)化[9]。FAST算法通過(guò)周?chē)徲蚱渌袼攸c(diǎn)的像素值大小來(lái)判斷是否為特征點(diǎn)。FAST特征點(diǎn)檢測(cè)示意如圖2所示。
圖2 FAST 特征檢測(cè)示意圖Fig.2 Schematic diagram of FAST feature detection
在以像素點(diǎn)P為中心,半徑為3的圓上,取鄰域圓上16個(gè)像素點(diǎn)(P1,P2,…P16)并設(shè)置閾值T,通過(guò)計(jì)算像素點(diǎn)P1,P5,P9,P13與點(diǎn)P的像素差。若至少有3個(gè)像素差的絕對(duì)值超過(guò)閾值,則點(diǎn)P可能為特征點(diǎn),否則直接排除。接著對(duì)點(diǎn)P分別與P1~P16計(jì)算像素差,若至少有9個(gè)絕對(duì)值的像素差超過(guò)閾值,則點(diǎn)P認(rèn)定為特征點(diǎn),否則排除。ORB算法中采用定向FAST(oriented-FAST,oFAST)進(jìn)行特征點(diǎn)檢測(cè)。oFAST算法是在FAST的基礎(chǔ)上通過(guò)灰度質(zhì)心法為特征點(diǎn)添加方向。計(jì)算特征點(diǎn)以r為半徑圖像矩的質(zhì)心,圖像矩的定義如下:
其中,f(x,y)為像素(x,y)處的像素值,該圖像矩的質(zhì)心為:
特征點(diǎn)與質(zhì)心的夾角作為特征點(diǎn)的方向,計(jì)算如下:
對(duì)ORB檢測(cè)出的特征點(diǎn),使用SIFT為其添加方向信息,計(jì)算特征點(diǎn)的梯度和方向。特征點(diǎn)梯度大小表示為:
特征點(diǎn)的梯度方向表示為:
其中,L為特征點(diǎn)所在的尺度,(x,y)為特征點(diǎn)所在的位置。梯度方向?yàn)?°~360°,以每45°為1個(gè)柱,共8個(gè)柱。通過(guò)對(duì)特征點(diǎn)鄰域梯度方向?qū)?yīng)梯度大小進(jìn)行累加,得到如圖3所示的特征點(diǎn)梯度直方圖,以峰值的方向作為特征點(diǎn)的主方向。
圖3 特征點(diǎn)的梯度直方圖Fig.3 Gradient histogram of feature points
上述的特征點(diǎn)檢測(cè)只是確定特征點(diǎn)在圖像中的位置,使用SIFT算法添加方向后需將其進(jìn)一步轉(zhuǎn)化為特征描述,以充分反映任意1張圖像在特征點(diǎn)處的梯度及方向。以特征點(diǎn)為中心選取大小為8×8的窗口,計(jì)算每個(gè)像素的梯度大小和方向,在每4×4的子塊上繪制8個(gè)方向的梯度直方圖,并得到1個(gè)種子點(diǎn),因此用2×2×8=32維向量對(duì)特征點(diǎn)進(jìn)行描述,如圖4所示。為了增加后續(xù)特征點(diǎn)匹配的魯棒性,LOWE[10]建議特征點(diǎn)描述窗口大小取16×16,因此每個(gè)特征點(diǎn)由4×4=16個(gè)種子點(diǎn)組成,即對(duì)于任意1個(gè)特征點(diǎn)可由16×8=128維的特征向量進(jìn)行描述。
圖4 特征點(diǎn)SIFT描述符生成過(guò)程Fig.4 Signature SIFT descriptor generation process
由于每張圖像能夠檢測(cè)到大量的特征點(diǎn),而每個(gè)特征點(diǎn)由128維的向量進(jìn)行描述,因此在對(duì)特征點(diǎn)進(jìn)行相似度計(jì)算時(shí),計(jì)算量十分龐大。BoW模型最初主要應(yīng)用于信息檢索和自然語(yǔ)言處理,將文本看成無(wú)序詞匯的集合,通過(guò)統(tǒng)計(jì)文本中的詞匯信息來(lái)對(duì)文本進(jìn)行檢索和分類(lèi)[11]。目前,BoW模型已經(jīng)開(kāi)始在視覺(jué)領(lǐng)域得到應(yīng)用,通過(guò)將圖像特征轉(zhuǎn)化為統(tǒng)計(jì)詞頻的問(wèn)題,提取圖像集中所有特征向量,若圖像集一共有N張圖像,每張圖像Mi個(gè)特征,共計(jì)∑Mi,i=1,2,3,…,N。對(duì)∑Mi個(gè)特征點(diǎn)構(gòu)建視覺(jué)詞典,使用K-means聚類(lèi)算法將所有圖像提取的特征點(diǎn)分成K個(gè)分類(lèi),每個(gè)聚類(lèi)中心代表1個(gè)視覺(jué)詞匯,所有視覺(jué)詞匯構(gòu)成K詞袋。通過(guò)計(jì)算圖像中每個(gè)特征點(diǎn)與視覺(jué)詞匯之間的歐式距離,決定此特征點(diǎn)屬于哪個(gè)詞匯,通過(guò)統(tǒng)計(jì)每個(gè)視覺(jué)詞匯出現(xiàn)的頻率,從而生成圖像的直方圖數(shù)據(jù)表示。對(duì)于任意1張圖像均可由[1×K]的向量來(lái)進(jìn)行描述,降低圖像的維度,提高識(shí)別的運(yùn)行效率。
表1 SVM常用核函數(shù)Tab.1 Common kernel functions of SVM
SVM是一種基于統(tǒng)計(jì)學(xué)習(xí)理論的機(jī)器學(xué)習(xí)算法[12-14],在針對(duì)小樣本、高維模式及非線性分類(lèi)問(wèn)題具有突出優(yōu)勢(shì)。目前,SVM已經(jīng)廣泛應(yīng)用于圖像識(shí)別、回歸分析等領(lǐng)域,其主要思想是尋找1個(gè)超平面,使分割間隔最大化。對(duì)于給定的樣本空間(xi,yi),i=1,2,3,…l。xi∈Rn,Rn為n維實(shí)數(shù)空間;yi∈{±1}。最優(yōu)超平面可定義:
其中,w為垂直于超平面的向量,w∈Rn;b為截距,b∈R,R為實(shí)數(shù)空間。
若樣本空間線性可分,則SVM的數(shù)學(xué)模型可表示為如下所示的凸二次規(guī)劃問(wèn)題,即:
其中,ξi為松弛因子,表示該樣本不滿足約束的程度;C為懲罰系數(shù),表示對(duì)總誤差的容忍度。
通過(guò)引入拉格朗日乘子αi,將其轉(zhuǎn)化為相應(yīng)的對(duì)偶問(wèn)題,即:
通過(guò)求解對(duì)偶問(wèn)題得到分類(lèi)函數(shù):
在實(shí)際情況中,更多的是樣本空間線性不可分的情況,SVM可利用核函數(shù)將樣本空間映射到更高維空間,并構(gòu)建超平面完成分類(lèi):
其中,K(xi·yi)為核函數(shù)。常見(jiàn)的核函數(shù)如表1所示。
為了客觀評(píng)價(jià)對(duì)工件圖像識(shí)別分類(lèi)的性能,選取準(zhǔn)確率(Accuracy),精確率(Precision),召回率(Recall)和F1分?jǐn)?shù)對(duì)識(shí)別模型進(jìn)行評(píng)估。其中Accuracy表示識(shí)別正確的個(gè)數(shù)占總體的比例;Precision表示識(shí)別結(jié)果為正樣本中的實(shí)際正樣本數(shù)量占識(shí)別結(jié)果為正樣本數(shù)量的比例,體現(xiàn)該模型對(duì)負(fù)樣本的區(qū)分能力;Recall表示識(shí)別結(jié)果為正樣本中的實(shí)際正樣本數(shù)量占全樣本中正樣本數(shù)量的比例,體現(xiàn)該模型對(duì)正樣本的識(shí)別能力;F1分?jǐn)?shù)是精確率和召回率的加權(quán)平均,F(xiàn)1分?jǐn)?shù)越高,說(shuō)明模型越穩(wěn)健。其計(jì)算如下式所示:
其中,TP為正確預(yù)測(cè)的正例,即數(shù)據(jù)的真實(shí)值為正例,預(yù)測(cè)值也為正例的情況;TN為正確預(yù)測(cè)的反例,即數(shù)據(jù)的真實(shí)值為反例,預(yù)測(cè)值也為反例的情況;FP為錯(cuò)誤預(yù)測(cè)的正例,即數(shù)據(jù)的真實(shí)值為反例,但被錯(cuò)誤預(yù)測(cè)成正例的情況;FN為錯(cuò)誤預(yù)測(cè)的反例,即數(shù)據(jù)的真實(shí)值為正例,但被錯(cuò)誤預(yù)測(cè)成反例的情況。
實(shí)驗(yàn)平臺(tái)基于PyCharm2020,Python3.6.13及OpenCV3.4.2視覺(jué)庫(kù)進(jìn)行開(kāi)發(fā),操作系統(tǒng)為Windows10,處理器為Intel(R)Core(TM)i7-10510U CPU 2.30 GHz,RAM 16GB,使用實(shí)際生產(chǎn)的氣門(mén)嘴圖像進(jìn)行驗(yàn)證分析。隨機(jī)抽取6種型號(hào)進(jìn)行試驗(yàn),不同型號(hào)氣門(mén)嘴的改進(jìn)ORB特征如圖5所示。
圖5 改進(jìn)ORB特征Fig.5 Improved ORB features
為了驗(yàn)證改進(jìn)ORB特征提取的穩(wěn)定性,在不同的環(huán)境下分別與傳統(tǒng)的SIFT,SURF,ORB算法進(jìn)行對(duì)比試驗(yàn),并對(duì)不同環(huán)境下的特征進(jìn)行相似度計(jì)算,即利用FLANN算法對(duì)提取的特征點(diǎn)進(jìn)行特征匹配,匹配的準(zhǔn)確率越高,表示提取的特征越穩(wěn)定。在旋轉(zhuǎn)尺度變換下的效果如圖6所示,在光照變化且含有噪聲下的效果如圖7所示。對(duì)應(yīng)的特征匹配平均正確率及時(shí)間如表2所示。
表2 特征匹配結(jié)果Tab.2 Feature matching results
圖6 旋轉(zhuǎn)尺度下的特征匹配Fig.6 Feature matching at rotation scale
圖7 光照變化及含有噪聲下的特征匹配Fig.7 Lighting variations and feature matching with noise
從圖7,8的特征匹配效果圖中可以看出,SIFT和SURF算法檢測(cè)到的特征數(shù)量較多,但很多特征點(diǎn)的檢測(cè)并不準(zhǔn)確,對(duì)噪聲比較敏感,并且存在大量的誤匹配;而ORB算法較前2種算法,特征檢測(cè)的數(shù)量明顯較少,特征大多數(shù)集中在拐角處,同樣存在大量特征的誤匹配。從統(tǒng)計(jì)的匹配正確率中可以看出,改進(jìn)的ORB算法相比SIFT,SURF,ORB算法分別提升48.74%,49.08%,53.10%,充分反映改進(jìn)的ORB算法在特征提取方面的穩(wěn)定性。
每種型號(hào)的圖像各采集100張,隨機(jī)選取70%的圖像作為訓(xùn)練集,剩下30%作為測(cè)試集。通過(guò)改進(jìn)的ORB算法提取特征,使用BoW模型得到圖像最終的特征向量,其中詞袋數(shù)量為100。不同核函數(shù)對(duì)應(yīng)不同的線性變換和特征空間,所以選擇合適的核函數(shù)對(duì)SVM分類(lèi)效果影響巨大[15-17]。分別構(gòu)建不同核函數(shù)下的SVM分類(lèi)器,其識(shí)別結(jié)果如表3所示。
表3 不同核函數(shù)下的SVM識(shí)別結(jié)果Tab.3 SVM recognition results under different kernel functions
高斯核函數(shù)下的SVM分類(lèi)器識(shí)別準(zhǔn)確率最高,為98.89%,且識(shí)別時(shí)間為0.43 s。在分類(lèi)器方面,將高斯核函數(shù)下的SVM與K鄰近算法、決策樹(shù)、樸素貝葉斯進(jìn)行對(duì)比試驗(yàn),結(jié)果如表4所示。
表4 不同分類(lèi)器的分類(lèi)結(jié)果Tab.4 Classification results of different classifiers %
在各個(gè)性能指標(biāo)中,SVM均優(yōu)于其他分類(lèi)器。為了進(jìn)一步驗(yàn)證改進(jìn)ORB-SVM方法在工件識(shí)別分類(lèi)中的有效性,分別與SIFT-SVM,SURF-SVM,ORB-SVM在Accuracy,Precision,Recall和F1分?jǐn)?shù)對(duì)分類(lèi)效果進(jìn)行評(píng)估[18-20]。隨機(jī)選取不同的訓(xùn)練集與測(cè)試集,分別進(jìn)行20次測(cè)試,測(cè)試結(jié)果如圖8所示。
圖8 不同評(píng)價(jià)指標(biāo)下的測(cè)試結(jié)果Fig.8 Test results under different evaluation indicators
改進(jìn)ORB-SVM方法較SIFT-SVM,SURFSVM,ORB-SVM方法,在識(shí)別準(zhǔn)確率上分別提升2.08%,6.91%,1.59%;在識(shí)別精準(zhǔn)率上分別提升1.98%,6.71%,1.51%;在召回率上分別提升2.09%,6.95%,1.58%;在F1分?jǐn)?shù)上分別提升2.11%,7.03%,1.56%。且不同評(píng)價(jià)指標(biāo)均值均超過(guò)98%,驗(yàn)證本文方法可以有效地對(duì)工件進(jìn)行識(shí)別分類(lèi)。
本文基于改進(jìn)的ORB-SVM方法,針對(duì)多品種工件的識(shí)別分類(lèi)問(wèn)題進(jìn)行研究和試驗(yàn)驗(yàn)證。首先,改進(jìn)的ORB-SVM方法在旋轉(zhuǎn)變換、光照變換和尺度變換等方面表現(xiàn)出更好的魯棒性;通過(guò)引入SIFT算法獲得旋轉(zhuǎn)尺度不變性的圖像特征描述,從而提高工件識(shí)別的準(zhǔn)確性和穩(wěn)定性。其次,通過(guò)BoW模型將圖像特征轉(zhuǎn)化為特征直方圖,能夠得到更高層次的特征表示,有助于區(qū)分和分類(lèi)不同的工件,這種特征表示的改進(jìn)提高工件識(shí)別的精確度和效率。最后,通過(guò)構(gòu)建SVM的分類(lèi)模型,改進(jìn)ORB-SVM方法能夠有效地實(shí)現(xiàn)工件的識(shí)別分類(lèi)。試驗(yàn)結(jié)果表明,在識(shí)別準(zhǔn)確率和時(shí)間效率方面,改進(jìn)的ORB-SVM方法明顯優(yōu)于傳統(tǒng)算法。
在多品種工件的識(shí)別分類(lèi)問(wèn)題上,基于改進(jìn)ORB-SVM的工件圖像識(shí)別方法表現(xiàn)出良好的性能和實(shí)用性,不僅具有較高的識(shí)別準(zhǔn)確率,還能夠快速地處理工件識(shí)別任務(wù)。因此,對(duì)于工件識(shí)別技術(shù)的發(fā)展具有重要的意義,并可為實(shí)際應(yīng)用中的自動(dòng)化生產(chǎn)、智能安防、醫(yī)學(xué)圖像處理和工業(yè)檢測(cè)等提供有力支持和指導(dǎo)。