王紹杰,黨學(xué)明,金偉偉
(合肥工業(yè)大學(xué)儀器科學(xué)與光電工程學(xué)院,安徽 合肥 230009)
GrabCut算法是由Rother C[1]等人于2004年提出的一種高效的復(fù)雜背景下交互式圖像分割算法[2],該算法對(duì)于實(shí)現(xiàn)復(fù)雜背景與前景目標(biāo)的分割有著非常不錯(cuò)的效果,可以實(shí)現(xiàn)目標(biāo)物體的準(zhǔn)確定位,但是由于該算法需要人工交互,且當(dāng)圖像較大時(shí),分割時(shí)間較長(zhǎng),會(huì)嚴(yán)重影響工業(yè)機(jī)器人的工作效率以及自動(dòng)化程度,因此一直以來(lái)無(wú)法適用于機(jī)器人的視覺(jué)引導(dǎo)方面。本文針對(duì)這兩個(gè)問(wèn)題,提出了利用ORB特征匹配的結(jié)果對(duì)GrabCut算法進(jìn)行初始化以及根據(jù)目標(biāo)物體重新劃分背景區(qū)域以加快圖像分割速度的改進(jìn)方法,改善了GrabCut算法的這兩個(gè)弊端,最后通過(guò)目標(biāo)物體識(shí)別與定位實(shí)驗(yàn),驗(yàn)證了改進(jìn)算法的效率和魯棒性,證明了將改進(jìn)的算法應(yīng)用于機(jī)器人視覺(jué)引導(dǎo)中,可以實(shí)現(xiàn)目標(biāo)物體的自動(dòng)識(shí)別與定位,并且加快了目標(biāo)定位的速度。
機(jī)器人視覺(jué)引導(dǎo)的第一步需要對(duì)目標(biāo)物體進(jìn)行識(shí)別,現(xiàn)有的目標(biāo)匹配算法包括基于模板的匹配算法和基于特征的匹配算法[3]兩種。在工業(yè)生產(chǎn)的過(guò)程中,外部環(huán)境充滿了不確定性考慮到視覺(jué)引導(dǎo)時(shí)對(duì)識(shí)別速度以及準(zhǔn)確度的要求,本文選擇了ORB特征匹配算法進(jìn)行目標(biāo)識(shí)別,ORB特征匹配算法,即原Brief算法的改進(jìn),它的識(shí)別效率快且識(shí)別準(zhǔn)確率高,可以較好的滿足實(shí)際的工業(yè)需求。
GrabCut算法的基本思想是把整幅圖像映射為s-t網(wǎng)絡(luò)圖[4],根據(jù)人工標(biāo)記的矩形框劃分前景和背景,分別計(jì)算圖像中的點(diǎn)到前景和背景的距離以及他們之間像素的距離[5],把這兩個(gè)距離的線性組合當(dāng)作圖中邊的分割能量權(quán)值,此時(shí)圖的分割問(wèn)題就轉(zhuǎn)化為求圖中分割邊的能量最小值問(wèn)題。
針對(duì)GrabCut算法需要人工標(biāo)記進(jìn)行初始化的問(wèn)題,本文將ORB特征檢測(cè)與GrabCut算法融為一體,把目標(biāo)識(shí)別與圖像分割這兩個(gè)過(guò)程結(jié)合起來(lái),利用匹配結(jié)果確定的目標(biāo)區(qū)域?qū)rabCut算法進(jìn)行初始化,以實(shí)現(xiàn)圖像的自動(dòng)分割。目標(biāo)區(qū)域確定方法可以分為兩個(gè)步驟:首先,根據(jù)正確匹配的特征點(diǎn)計(jì)算模板圖像與目標(biāo)物體圖像之間的單應(yīng)矩陣;然后,利用單應(yīng)矩陣將模板圖像的四個(gè)頂點(diǎn)映射到待匹配圖像中去,確定目標(biāo)物體的區(qū)域。
由于單應(yīng)矩陣是根據(jù)正確匹配的特征點(diǎn)確定的,然而圖像中的特征點(diǎn)并不是全部符合這個(gè)條件,因此根據(jù)該方法初步確定的目標(biāo)區(qū)域,并不是規(guī)則的矩形。為了能得到符合要求的矩形框,本文采取對(duì)初步確定的目標(biāo)區(qū)域求最小外接矩形的方法初始化GrabCut算法。
由GrabCut算法步驟可以了解到,在算法進(jìn)行初始化時(shí),用戶利用矩形框?qū)⒋ヅ涞膱D像分割為前景和背景,如果背景區(qū)域很大,在背景區(qū)域建立高斯模型以及后續(xù)進(jìn)行迭代能量函數(shù)的最小化將會(huì)消耗大量的時(shí)間,影響算法的及時(shí)性,針對(duì)該問(wèn)題,提出了根據(jù)包含目標(biāo)物體的矩形框來(lái)重新劃分背景區(qū)域的改進(jìn)方法,通過(guò)減少建立背景區(qū)域高斯模型以及實(shí)現(xiàn)能量函數(shù)最小化所需時(shí)間的方法來(lái)提高算法的運(yùn)行效率。設(shè)確定矩形框的左上角點(diǎn)與右下角點(diǎn)的坐標(biāo)值分別為a(x1,y1),b(x2,y2),重新劃分背景區(qū)域方法的流程圖如圖1,圖2中紅色矩形框與綠色矩形框之間的圖像為重新劃分的背景區(qū)域。
識(shí)別出目標(biāo)物體后,還需要根據(jù)識(shí)別的結(jié)果,確定目標(biāo)物體在待匹配圖像中的像素坐標(biāo),對(duì)目標(biāo)物體進(jìn)行定位以便機(jī)器人完成對(duì)物體的后續(xù)動(dòng)作。在一般的工業(yè)抓取過(guò)程中,為了使抓取工程穩(wěn)定,通常使用物體的質(zhì)心坐標(biāo)作為抓取位置[6]。為了獲取目標(biāo)物體在圖像中的質(zhì)心坐標(biāo),利用GrabCut算法將目標(biāo)物體與背景分離后,利用目標(biāo)物體的輪廓獲取其最小外接矩形,根據(jù)目標(biāo)物體的輪廓得到其質(zhì)心。目標(biāo)物體輪廓對(duì)應(yīng)的(h+k)階矩可以表示為:
其中Mhk為圖像在不同的h和k值下的矩,物體的質(zhì)心可以表示為:
其中M10為圖像對(duì)n軸的慣性矩,M00為區(qū)域密度的總和,M01為圖像對(duì)m軸的慣性矩。
本次實(shí)驗(yàn)針對(duì)上文中三種不同的背景,在windows平臺(tái)下,采用 Visual Studio 2017 配置 opencv4.1.0的環(huán)境,利用文中的算法對(duì)目標(biāo)物體進(jìn)行了識(shí)別與定位,并對(duì)得到的結(jié)果進(jìn)行了分析。圖3和圖4為改進(jìn)算法與原算法的分割效果對(duì)比。
由分割結(jié)果圖像可以看出,利用ORB特征匹配的結(jié)果可以實(shí)現(xiàn)GrabCut算法的自動(dòng)初始化,但是根據(jù)圖像很難判斷重新劃分背景后的算法與原算法在分割效果上的優(yōu)劣,為了能夠更客觀的評(píng)價(jià)分割效果[7-8],本文利用模板圖像與分割后物體圖像的不變矩以及分割所需的時(shí)間作為判斷的依據(jù),其中不變矩可以表征圖像在旋轉(zhuǎn)、平移及尺寸變化等操作時(shí)不變的特征,利用不變矩判斷兩個(gè)圖像的差異有三種方法,本文選取兩圖像不變矩之差的絕對(duì)值求和的方法進(jìn)行判斷,該方法的計(jì)算公式為:
其中和分別為模板圖像與分割后物體圖像的不變矩。式中的值越接近0,表示兩幅圖像的匹配程度越高,即分割效果越好。表1為三幅圖像使用原算法與改進(jìn)算法的分割效果對(duì)比表。表2為原算法與改進(jìn)算法對(duì)三幅待匹配圖像中目標(biāo)物體定位結(jié)果的對(duì)比表。
表1 分割效果對(duì)比表
由表中數(shù)據(jù)對(duì)比可知,改進(jìn)后算法的匹配程度,定位結(jié)果與原算法相差很小,證明了重新劃分背景的改進(jìn)方法對(duì)分割效果沒(méi)有影響,但在分離目標(biāo)物體與背景時(shí),改進(jìn)算法的耗時(shí)更少,效率更高。
對(duì)于復(fù)雜背景中物體的識(shí)別與定位,GrabCut算法可以較好的分離目標(biāo)物體與背景,但是該算法需要人工交互來(lái)標(biāo)記包含目標(biāo)物體的矩形區(qū)域,影響機(jī)器人在目標(biāo)識(shí)別與定位過(guò)程中的自動(dòng)化,針對(duì)該問(wèn)題,提出了通過(guò)ORB特征匹配的方法獲得包含目標(biāo)物體的矩形框,利用該矩形框?qū)rabCut算法進(jìn)行初始化;針對(duì)GrabCut算法耗時(shí)長(zhǎng)的缺點(diǎn),根據(jù)目標(biāo)物體的大小重新劃分了背景區(qū)域,通過(guò)比較分割所需時(shí)間以及分割后目標(biāo)物體與模板物體的匹配程度,可以有效說(shuō)明改進(jìn)的算法可以實(shí)現(xiàn)目標(biāo)物體識(shí)別和快速,準(zhǔn)確地定位,將其應(yīng)用于視覺(jué)引導(dǎo)領(lǐng)域,對(duì)于實(shí)現(xiàn)工業(yè)機(jī)器人的自動(dòng)化具有一定的意義。