金玉陽,李 山,陳 冰,楊寶通,陶志健
(西北工業(yè)大學(xué)機(jī)電學(xué)院,西安 710072)
一個完備的機(jī)器人末端檢測系統(tǒng)[1]包括4大支撐模塊:機(jī)器人軌跡NC編程、機(jī)器人加工工藝、機(jī)器人末端運(yùn)動測量、機(jī)器人關(guān)節(jié)誤差校正和診斷。其中,機(jī)器人末端運(yùn)動測量是對加工工藝的精度保障,是實(shí)現(xiàn)機(jī)器人加工閉環(huán)控制的關(guān)鍵因素之一。而基于計算機(jī)視覺的運(yùn)動末端測量系統(tǒng)因其優(yōu)異的性能被廣泛應(yīng)用。計算機(jī)視覺系統(tǒng)框架分成3個層次,即計算理論層次、表達(dá)與算法層次和硬件實(shí)現(xiàn)層次[2]。其中前兩個層次是圍繞目標(biāo)對象運(yùn)動分析展開的,而目標(biāo)對象又是圍繞運(yùn)動檢測與跟蹤算法[3]進(jìn)行研究。對于運(yùn)動檢測與分析算法,國內(nèi)外研究主要側(cè)重于檢測算法的應(yīng)用,鄒崗等針對高頻聲吶圖像目標(biāo)檢測問題[4],基于數(shù)學(xué)形態(tài)學(xué)算子,提出了一種新的快速目標(biāo)檢測算法;梁路宏等采用多模板匹配的方式來完成對目標(biāo)的魯棒性跟蹤[5];蘇金瀧等提出了利用模糊神經(jīng)系統(tǒng)來計算光流[6],評估三維物體的運(yùn)動。盡管國內(nèi)外對該領(lǐng)域的研究非常的活躍,但是算法的魯棒性、運(yùn)動識別精度指標(biāo)卻一直是算法轉(zhuǎn)換成生產(chǎn)力的一個不可逾越的瓶頸問題。針對這一問題,本文提出一種目標(biāo)邊緣差分算法實(shí)現(xiàn)對運(yùn)動目標(biāo)的識別與跟蹤,算法主要包括區(qū)域分割和運(yùn)動識別兩部分,先,利用基于約束INMF[7]改進(jìn)型目標(biāo)跟蹤算法完成對目標(biāo)對象的動態(tài)捕捉和區(qū)域分割;然后,通過Canny算子對分割圖像進(jìn)行邊緣檢索,并通過基于改進(jìn)型邊緣幀差分算法實(shí)現(xiàn)目標(biāo)識別,完成對區(qū)域內(nèi)目標(biāo)對象的運(yùn)動邊緣檢測。在對運(yùn)動目標(biāo)區(qū)域?qū)崿F(xiàn)有效追蹤的同時,滿足在線系統(tǒng)的快速測量。算法路線如圖1所示。
圖1 技術(shù)路線
本文所涉及的對目標(biāo)進(jìn)行特征跟蹤可以認(rèn)為是分割原始目標(biāo)對象,從而減少后期特征分析量、提高算法執(zhí)行效率的一種手段。算法的核心是在圖像序列中對比搜索與目標(biāo)外觀模型最似樣本的過程。
INMF的目的是通過當(dāng)前幀附近的圖像序列樣本來更新因子矩陣W和H[8-9]。新樣本作為向量被增添到Y(jié)和H,而基向量W每來一個新的樣本都會被更新,基于這種更新方式更適合在線處理。接下來將對矩陣分解的在線更新機(jī)制進(jìn)行研究。
設(shè)定Wk和Hk是初始化前k個觀測樣本獲得的最優(yōu)化分解因子,Lk是關(guān)于前k個樣本的目標(biāo)函數(shù),被表示如下,當(dāng)?shù)趉+1個新觀測樣本Yk+1來臨時,標(biāo)準(zhǔn)的重構(gòu)誤差如下:
(1)
為控制每個樣本對分解過程的影響程度,這里設(shè)定兩個權(quán)值函數(shù)so(α)和sf(α),α為一個常量,它們分別代表當(dāng)前樣本的貢獻(xiàn)程度和最近一個樣本的貢獻(xiàn)程度,新的目標(biāo)函數(shù)如下:
(2)
其中,sj(α)是第j個樣本的權(quán)值。
(3)
這里,r=1,…,d、so(α)代表先前圖像樣本參與更新基向量的個數(shù)。對于增量非負(fù)矩陣分解的優(yōu)化問題通過梯度下降方法進(jìn)行求解[10]。
由于關(guān)注新增加的圖像序列樣本可以更好的對目標(biāo)外觀變化進(jìn)行線性表示,因此INMF算法提高計算效率的同時降低了存儲負(fù)擔(dān),便于實(shí)現(xiàn)在線數(shù)據(jù)處理[11]。
為減少外觀模型受到噪聲因素的干擾,引入L1范數(shù),公式(15)重新定義如下:
(4)
考慮到NMF分解[12]是一個獲得基和系數(shù)矩陣迭代求解優(yōu)化的過程,這里將另一個L1范數(shù)添加到方程:
(5)
其中,β是一個正則化參數(shù),對稀疏項(xiàng)進(jìn)行懲罰。α和β能夠調(diào)節(jié)第一個重構(gòu)誤差項(xiàng)和兩個正則項(xiàng)之間的關(guān)系,轉(zhuǎn)化成優(yōu)化問題來解決。
為了求解基于稀疏NMF的目標(biāo)表示模型,這里給出一種新的迭代算法。迭代過程中需要對其中一個參數(shù)H或E進(jìn)行參數(shù)固定,同時對另外一個參數(shù)進(jìn)行優(yōu)化。圖2為優(yōu)化求解策略流程。
圖2 優(yōu)化求解策略流程圖
目前,無論是二幀差分還是三幀差分算法都容易產(chǎn)生“空洞”現(xiàn)象[13]。當(dāng)“空洞”出現(xiàn)在目標(biāo)邊緣處時,就會使得二值化目標(biāo)圖像造成大量的邊緣缺失,使得很難得到完整的檢測結(jié)果。針對這一問題,本文將對其進(jìn)行研究。
幀差分法[14-16]是通過二維投影圖像在相鄰兩幀或幾幀間的灰度差,獲得三維場景中目標(biāo)對象的運(yùn)動信息。其工作流程如圖3所示。
圖3 幀差分法的工作流程
fk和fk-1分別是時刻k和時刻k+1采集到的兩幅圖像。
傳統(tǒng)的邊緣差分算法檢測結(jié)果容易出現(xiàn)“空洞”現(xiàn)象[17](后文簡稱“空洞”),而“空洞”必然引起局部邊緣信息丟失,噪聲點(diǎn)多,從而導(dǎo)致目標(biāo)對象的檢測精度降低甚至發(fā)生識別錯誤。如圖 4所示。為避免“空洞”的出現(xiàn),本文提出一種基于追蹤對象速度的幀數(shù)可變型邊緣幀差分算法。
圖4 幀差分法產(chǎn)生的空洞現(xiàn)象
2.2.1 對比策略制定
假設(shè)在連續(xù)的N幀內(nèi)目標(biāo)的每個部分都發(fā)生了運(yùn)動,此時要判斷當(dāng)前幀的目標(biāo)邊緣位置,則需對比連續(xù)N幀邊緣圖像中同一位置的像素值。因此制定對比策略如下:
(1)若該位置像素值均為1,則當(dāng)前幀的該點(diǎn)為背景邊緣點(diǎn);
(2)若該位置像素值均為0,則消除背景邊緣;
(3)若該位置像素值不全為1,則其像素值由當(dāng)前幀該位置的像素值決定。
通過該操作,能得到當(dāng)前幀目標(biāo)的精確邊緣并將背景邊緣消除。邊緣對比差分算法表達(dá)式為:
(6)
其中,F(xiàn)i(x,y)為第i幀Canny邊緣檢測圖像,Dk(x,y)為當(dāng)前幀邊緣對比差分運(yùn)算結(jié)果。
2.2.2 基于運(yùn)動速度的采集幀數(shù)確定方法
圖5所示為20×20的邊緣對比差分示意圖,其中,N取3。設(shè)目標(biāo)在N幀內(nèi)首次發(fā)生運(yùn)動,在邊緣對比差分過程中,若N=4,如圖 5 f所示,此時獲得的目標(biāo)邊緣較完整,但是隨著N的增大,運(yùn)算量會增加;若N<4,此時得到的目標(biāo)邊緣將嚴(yán)重缺失。因此,需要合理確定N值。
圖5 邊緣對比差分示意圖(N=3和N=4)
為精確采集目標(biāo)位置信息,并不導(dǎo)致計算提升,本算法追蹤對象選擇球形靶球??梢酝ㄟ^三幀差分算法得到第k幀與第k+1幀圖像的運(yùn)動目標(biāo),分別計算求取直徑和圓心位置。
如圖6將目標(biāo)對象沿Xw方向分為N份,每份均近似為一個矩形。則該目標(biāo)對象的面積可以表示為:
(7)
圖6 對目標(biāo)進(jìn)行面積積分
將投影關(guān)系式帶入上式得到:
(8)
其中,S1表示目標(biāo)對象在單目攝像機(jī)上的成像面積由此可反解得到目標(biāo)對象d的計算公式:
(9)
此刻目標(biāo)對象圓心的坐標(biāo)為:
(10)
設(shè)第k幀目標(biāo)對象半徑為dk,形心坐標(biāo)為(xk,yk),第k+n幀目標(biāo)對象半徑為dk+1,形心坐標(biāo)為(xk+1,yk+1)。則兩幀運(yùn)動目標(biāo)形心之間的位移向量S(xl,yl)(單位為像素點(diǎn)數(shù))。第k幀目標(biāo)的瞬時速度v(單位為像素/幀)為:
(11)
假定第k幀對象清晰可靠的前提下,對目標(biāo)對象的運(yùn)動情況進(jìn)行分類討論:
① 當(dāng)dk≠dk+1·δ成立(δ一般取1~1.3),則可以判定第k+1幀圖像由于光照運(yùn)動模糊等原因,使得圖像邊緣輪廓出錯,屬于無效圖像。
N=n+2
(12)
為驗(yàn)證算法對“空洞”的有效性,接下來對算法進(jìn)行實(shí)驗(yàn)驗(yàn)證。實(shí)現(xiàn)流程如圖 7所示。圖 8為實(shí)驗(yàn)過程中參數(shù)N和vn的取值情況。可以看出,本文算法能夠較完整地獲取目標(biāo)邊緣有效消除亮度突變的影響,抑制 “空洞”現(xiàn)象。
圖7 實(shí)驗(yàn)實(shí)現(xiàn)流程
圖8 視頻2第55幀到第80幀圖像序列過程中的 參數(shù)vn、v1、N、n取值情況
為進(jìn)一步評估本文目標(biāo)檢測算法的性能。定義兩者的相似度:
(13)
其中,用A表示檢測出的目標(biāo)區(qū)域,用B表示真實(shí)的目標(biāo)區(qū)域,S(A,B)的值在0-1之間;當(dāng)A和B完全相同時,S(A,B)取1;反之,A和B差別越大,S(A,B)越接近0。
目標(biāo)的真實(shí)區(qū)域手動獲得,評價數(shù)據(jù)從圖像序列中隨時抽取40幀進(jìn)行。表 1所示為不同算法的相似度評價結(jié)果。
表1 不同目標(biāo)檢測算法相似度評價結(jié)果
可以看出,本文提出的改進(jìn)型邊緣幀差分算法獲取的目標(biāo)的相似度指標(biāo)優(yōu)于其他方法,其與實(shí)際目標(biāo)輪廓最接近,提取效果最好。
本文安排三種極端環(huán)境的圖像序列進(jìn)行目標(biāo)跟蹤實(shí)驗(yàn),其中包括光線過渡、復(fù)雜背景和嚴(yán)重遮擋。這里將與IVT、MILT、OSPT和TLD這4種傳統(tǒng)跟蹤算法并結(jié)合上文提出的改進(jìn)型邊緣幀差分算法進(jìn)行綜合算法性能對比。
本文采用了兩個評價標(biāo)準(zhǔn):一個是平均中心誤差,另一個是平均重疊誤差。表 2和表 3分別表示不同算法在六組圖像序列上運(yùn)動結(jié)果的平均中心誤差和平均重疊誤差。
表2 不同跟蹤算法的平均中心誤差率(單位:像素)
由表2可得:對于光線變化和嚴(yán)重遮擋環(huán)境下的圖像序列數(shù)據(jù),本文的跟蹤算法平均中心誤差率和OSPT算法幾乎接近。該方法基于分塊思想的子空間建模對于形態(tài)大的變化(如嚴(yán)重遮擋環(huán)境下的圖像序列)沒有表現(xiàn)出比PCA子空間建模的優(yōu)勢。然而,總體上看該方法獲得較小的平均中心誤差。因此本文的算法和OSPT算法相當(dāng)。
表3 不同跟蹤算法的平均重疊率結(jié)果圖
結(jié)合表3可以看出:該方法的跟蹤結(jié)果整體高于OSPT算法4個百分點(diǎn),特別是在處理嚴(yán)重遮擋問題上,遠(yuǎn)遠(yuǎn)超過IVT和TLD算法,體現(xiàn)了該算法的穩(wěn)定性。
本文提出了一種新型目標(biāo)邊緣差分算法,在實(shí)現(xiàn)了對運(yùn)動目標(biāo)區(qū)域有效追蹤的同時,滿足了在線系統(tǒng)快速測量的要求。首先搭建了一種基于約束INMF的改進(jìn)型目標(biāo)跟蹤算法,完成對目標(biāo)區(qū)域的動態(tài)捕捉和分割。然后利用基于Canny的灰度值特征邊緣檢測算法完成對目標(biāo)圖像的邊緣檢測,并設(shè)計一種基于改進(jìn)型邊緣幀差分算法實(shí)現(xiàn)對目標(biāo)區(qū)域內(nèi)目標(biāo)對象的邊緣特征提取,避免由于“空洞”現(xiàn)象造成的目標(biāo)對象邊緣丟失;最后,將本文的算法同幾種典型的跟蹤算法對比發(fā)現(xiàn):在目標(biāo)被部分遮擋、光線變化和運(yùn)動模糊環(huán)境中,本文的算法均能較好地跟蹤目標(biāo),并在跟蹤精度和穩(wěn)定性方面有良好的性能表現(xiàn)。