湯辰,萬衡,王凱凱
(上海應(yīng)用技術(shù)學(xué)院 電氣與電子工程學(xué)院,上海 201418)
時(shí)代在進(jìn)步,科學(xué)在發(fā)展,在工業(yè)領(lǐng)域以及家庭中很多時(shí)候機(jī)器人可以代替人類進(jìn)行各項(xiàng)操作,通過圖像處理技術(shù)可以獲取大量的信息進(jìn)行計(jì)算分析,從而使得機(jī)器人擁有人類所具有的分類、分割、識(shí)別、跟蹤、判別決策等功能。其中目標(biāo)的檢測識(shí)別是圖像處理技術(shù)中的重要任務(wù)之一[1]。目前,SIFT算法是識(shí)別技術(shù)的主流技術(shù)之一,該算法是基于尺度空間下的特征點(diǎn)檢測,對光照變化、尺度縮放、仿射變化以及角度變化等具有一定的不變性[2]。同時(shí)也存在特征提取較多、配準(zhǔn)點(diǎn)冗余、匹配耗時(shí)等問題。
針對以上出現(xiàn)的情況,本文采用分割級聯(lián)分類器的檢測目標(biāo)作為原圖與目標(biāo)圖進(jìn)行SIFT配準(zhǔn)的方法,其中級聯(lián)分類器分割出目標(biāo)作為原圖的做法有效地縮小了配準(zhǔn)的區(qū)域范圍,直接減少了特征點(diǎn)提取的數(shù)目,大大提高了SIFT配準(zhǔn)的效率。因此使用級聯(lián)分類器提取目標(biāo)物體的手段具有很大的優(yōu)勢,尤其是與SIFT算法相結(jié)合時(shí)體現(xiàn)出了其優(yōu)越性。
為了使從圖像中提取出來的特征點(diǎn)具有不變性,特征點(diǎn)的檢測通常是在不同的尺度下完成的,以獲取圖像的特征點(diǎn)在不同尺度下的信息[3]。尺度空間是采用高斯卷積核與原圖像卷積而成的。一幅在不同尺度下的圖像定義為I(x,y),高斯卷積核為G(x,y,σ),則其公式表達(dá)形式如下:
其中L為圖像的尺度空間,x和y為圖像點(diǎn)的像素坐標(biāo),σ為尺度因子,它也是高斯正態(tài)分布的方差,其反映了圖像被平滑的程度,該尺度因子越大圖像越模糊,反之則分辨率越高。
所謂金字塔就是采用不同的高斯卷積核對原圖像進(jìn)行降采樣得到的圖像進(jìn)行卷積[4]。為了讓圖像在不同尺度下保持一定的連續(xù)性,則在采樣的過程中加入Gaussian濾波,該處理方式可以讓原圖像產(chǎn)生幾組(Octave)不同模糊程度的圖像,每一組圖像又分為幾層(interval)圖像。
為了進(jìn)一步在圖像中找到高精度的配準(zhǔn)特征點(diǎn),基于圖像金字塔的基礎(chǔ)之上建立高斯差分金字塔(DOG尺度空間),DOG尺度空間中金字塔每一個(gè)相鄰層的差值與高斯差分卷積核進(jìn)行卷積而形成高斯差分金字塔[5],通過層與層圖像相減獲得的局部坐標(biāo)極值點(diǎn),在很大程度上減少了計(jì)算量(如圖1所示),高斯差分尺度空間用DOG算子表示如公式(2)所示:
高斯差分金字塔建立之后,需要在其每一層尋找極值點(diǎn),并將這些極值點(diǎn)作為候選點(diǎn),再對這些候選點(diǎn)進(jìn)行一系列的判斷選擇。為了可以在尺度空間下找到極值點(diǎn),就是要將高斯差分金字塔任意一層中的采樣點(diǎn)與周邊的點(diǎn)進(jìn)行比較,若大于或者小于周邊點(diǎn),則為極值點(diǎn)[6]。如圖2所示,任意一層的采樣點(diǎn)與處在同一層中周邊的8個(gè)點(diǎn)以及上下兩層18個(gè)點(diǎn)進(jìn)行比較,也就是和26個(gè)點(diǎn)進(jìn)行對比,若該點(diǎn)在 DOG尺度空間下為最大值或者最小值時(shí),則該點(diǎn)就判斷該點(diǎn)為該尺度下的極值點(diǎn)。
圖1 高斯差分結(jié)構(gòu)圖
圖2 高斯差分影像特征點(diǎn)檢測
根據(jù)梯度直方圖,分配關(guān)鍵點(diǎn)方向的具體過程如下:
(1)通過運(yùn)算獲取SIFT特征點(diǎn)的直方圖參數(shù);
(2)直方圖是由36個(gè)柱所組成,其范圍為0度到360度,其中每一個(gè)柱為10度;
(3)采用高斯函數(shù)對方向直方圖進(jìn)行平滑處理;
(4)求得直方圖的梯度方向;
(5)對該特征點(diǎn)的直方圖進(jìn)行三維二次擬合處理,進(jìn)一步明確關(guān)鍵點(diǎn)的方向;
當(dāng)SIFT關(guān)鍵檢測完成之后,則這些檢測出來的關(guān)鍵點(diǎn)都具備尺度、方向、位置三個(gè)數(shù)據(jù)信息;因此而具備旋轉(zhuǎn)、縮放和平移不變性。
將特征點(diǎn)周圍16×16的窗口分解成為16個(gè)4×4的窗口,其中,在這些4×4的窗口中來計(jì)算梯度的大小和方向,圖中每一個(gè)窗口則代表一個(gè)像素,每一個(gè)像素都含有8個(gè)梯度方向,并且直方圖中加入的值是該像素用高斯加權(quán)之后的梯度大小,然而特征點(diǎn)周圍16×16的窗口中含有16個(gè)4×4的子窗口,共有16×8=128個(gè)[7],最后將這128個(gè)數(shù)組成的向量進(jìn)行單位化,單位化之后的向量也就是SIFT的特征描述子。
如圖3所示,原圖和待配準(zhǔn)圖的特征點(diǎn)數(shù)目分別為2 319個(gè)和2 033個(gè)共有1 679個(gè)特征點(diǎn)匹配。兩張圖片在位置角度上有所偏差,但影響效果不大。特征點(diǎn)的檢測分別耗時(shí)1.87 s、1.35 s,匹配用時(shí) 12.034 s。
圖3 SIFT算法特征匹配
針對目標(biāo)物體的特征形式來訓(xùn)練弱分類器,通過某種迭代的方式將這些弱分類器融合成一個(gè)強(qiáng)分類器,采用Adaboost算法將我們所訓(xùn)練的強(qiáng)分類器串聯(lián)起來形成級聯(lián)分類器(Cascade Classifier)其訓(xùn)練檢測過程如圖4所示。
圖4 級聯(lián)分類器檢測原理
采集N個(gè)大小為20×20的訓(xùn)練樣本,其中正樣本m個(gè)(只包含檢測物體的樣本),負(fù)樣本n個(gè)(不包含檢測物體的樣本)。選取分類錯(cuò)誤率最小的值為原則,其分類錯(cuò)誤率最小為如下公式(3)所示:
此時(shí)該閾值所對應(yīng)的弱分類器即為最佳的弱分類器。
強(qiáng)分類器的檢測精度才能滿足我們的檢測要求,其是由若干個(gè)弱分類器T輪迭代組成,具體步驟如下:
(1)給定一些列的訓(xùn)練樣本(x1,y1).(x2,y2)……(xn,yn),其中yi=0表示其為負(fù)樣本,yi=1表示其為正樣本。n為一共的訓(xùn)練樣本數(shù)量。
(2)初始化權(quán)重w1j=D(i);
(3)對t=1…T;
① 歸一化權(quán)重:
② 對每一個(gè)特征 f,訓(xùn)練一共弱分類器 h(x,f,p,θ);計(jì)算其對應(yīng)所有特征的弱分類器的加權(quán)(qt)錯(cuò)誤率εf。
(4)提高上一輪中被誤判的樣本的權(quán)重。
(5)將新的樣本和上次本分錯(cuò)的樣本放在一起進(jìn)行新一輪的訓(xùn)練。
(6)循環(huán)執(zhí)行4-5步驟,T輪后得到T個(gè)最優(yōu)弱分類器。
(7)組合T個(gè)最優(yōu)弱分類器得到強(qiáng)分類器,其組合形式如公式(4):
最終采用Adaboost算法將這些強(qiáng)分類器級聯(lián)起來形成本文所需要的XML文件,即級聯(lián)分類器。
級聯(lián)分類器的訓(xùn)練屬于一種離線訓(xùn)練方式,需要大量的前期準(zhǔn)備工作,為了提高檢測提取的精度,降低訓(xùn)練的時(shí)間,提出了改變分類器結(jié)構(gòu)的方法,即在級聯(lián)結(jié)構(gòu)中引入輔助的判斷函數(shù),當(dāng)樣本被某分類器判別為假時(shí),使用該級的判斷函數(shù)對其進(jìn)行二次判斷。該判斷函數(shù)不僅得到了當(dāng)前分類器的判斷結(jié)果,同時(shí)也利用了之前的歷史信息,如果輸入樣本被該判斷函數(shù)拒絕,則該被拒絕的樣本直接排除,在整個(gè)Adaboost算法當(dāng)中每一級的級聯(lián)分類器當(dāng)中都加入該函數(shù),其中第N級的判斷函數(shù)如公式(5)所示:
其中xi代表第i級的樣本,comfN(xi)代表第N級分類器對樣本判斷的加權(quán)值;?即為當(dāng)前的分類器的加權(quán)值;hN代表第N層分類器對該層分類器判斷的結(jié)果;m表示該樣本被之前m-1級分類器判斷為假的次數(shù)。由以上公式可以看出m越大就越小,說明之前的樣本被分類器判斷為假的次數(shù)比較多,此時(shí)應(yīng)該多考慮當(dāng)前的判斷。相反,若m越小則應(yīng)該多考慮前幾層的歷史信息。試驗(yàn)表明,該輔助判斷函數(shù)的加入,使得它在速度和精度上都有所改善。
針對可口可樂瓶和礦泉水瓶分別訓(xùn)練兩種級聯(lián)分類器,其檢測效果如圖5所示。
采用該改進(jìn)之后的方法進(jìn)行訓(xùn)練,其在第一層強(qiáng)分類器的生成過程中所花費(fèi)的時(shí)間為1 332.70 s,相比改進(jìn)之前的1 897.11 s,在訓(xùn)練效率上有了較大的提高。
實(shí)驗(yàn)通過MFC設(shè)計(jì)了一個(gè)實(shí)現(xiàn)該方法的上位機(jī)界面,采用該系統(tǒng)界面只需要將正負(fù)樣本采集好,描述文件做好,點(diǎn)擊按鈕即可完成級聯(lián)分類器的訓(xùn)練,接著根據(jù)其圓心的圖像坐標(biāo)來提取目標(biāo)物體作為原圖與目標(biāo)圖進(jìn)行SIFT配準(zhǔn),這樣有效地減少了原圖特征點(diǎn)的檢測,從而加快了其配準(zhǔn)的速度。該系統(tǒng)界面如圖6所示。
圖5 級聯(lián)分類器檢測效果
在完成了局部特征的匹配之后,采用K-means算法根據(jù)目標(biāo)圖中的SIFT特征點(diǎn),找出穩(wěn)定散落在目標(biāo)物體上的一點(diǎn),也就是圖6中紅色那一點(diǎn),最后根據(jù)該紅點(diǎn)轉(zhuǎn)換成機(jī)器人所需要的三維坐標(biāo)點(diǎn)傳送給機(jī)器人的手臂模塊有底盤模塊完成物體的識(shí)別及抓取。
針對SIFT配準(zhǔn)耗時(shí)的問題,提出了一種基于局部特征提取的SIFT匹配方法,通過減少原圖特征點(diǎn)數(shù)目的原理在一定程度上提高了匹配的效率。該方法在MFC平臺(tái)上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明了本文方法的有效性,為日后對物體檢測識(shí)別技術(shù)的研究奠定了基礎(chǔ)。
[1]李明,蔣建國,齊美彬.基于SIFT特征點(diǎn)匹配的目標(biāo)跟蹤算法研究[D].合肥:合肥工業(yè)大學(xué),2011.
[2]謝凡,秦世引.基于SIFT的單目移動(dòng)機(jī)器人寬基線立體匹配[J].儀器儀表學(xué)報(bào),2008:29(11):2-3.
[3]商磊.基于改進(jìn)SIFT算法的圖像配準(zhǔn)研究[D].成都:電子科技大學(xué),2014.
[4]唐紅梅,張恒,高金雍,等.一種改進(jìn)的基于SIFT特征的快速匹配算法[J].電視技術(shù),2013,37(15):1-2.
[5]翟海濤,吳健,陳建明,等.基于SIFT特征度量的Mean Shift目標(biāo)跟蹤算法[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(6):2-3.
[6]楊環(huán).人臉檢測及人眼定位算法的研究[J].山東大學(xué).2010:37(1):3-4.
[7]蘇順謙.基于SIFT特征的無人機(jī)遙感影像拼接技術(shù)研究[J].電光與控制,2012:19(3):2-3.