于昆昆, 于正林, 柳常清
(長(zhǎng)春理工大學(xué)機(jī)電工程學(xué)院,長(zhǎng)春130022)
實(shí)時(shí)跟蹤運(yùn)動(dòng)的目標(biāo)是計(jì)算機(jī)視覺(jué)研究領(lǐng)域的一個(gè)重要組成部分,在日常生活,天文及國(guó)防科技中都被廣泛應(yīng)用。通常所用的跟蹤算法是MeanShift算法、CamShift算法。MeanShift算法是一種利用梯度歸零法迭代尋找局部數(shù)據(jù)密度最大值的方法。本文利用了MeanShift算法實(shí)時(shí)性好、利于跟蹤的特點(diǎn),并結(jié)合改進(jìn)的PID控制算法實(shí)現(xiàn)了目標(biāo)的追蹤。PID參數(shù)的整定是PID算法改進(jìn)的主要研究的內(nèi)容,目前PID參數(shù)整定大多依靠經(jīng)驗(yàn),尤其是在做工程項(xiàng)目的時(shí)候。本文采用自適應(yīng)性積分分離的PID算法,此算法不但充分利用了PID結(jié)構(gòu),而且相較于普通的積分分離的PID算法還使得PD到PID能夠平滑過(guò)渡,從而更加有效靈活地控制系統(tǒng)。由于本實(shí)驗(yàn)臺(tái)依靠俯仰和旋轉(zhuǎn)兩個(gè)方向的電機(jī)驅(qū)動(dòng),因此能夠?qū)崿F(xiàn)左右和俯仰及其復(fù)合方向上的追蹤,并且是有色目標(biāo)的追蹤。
實(shí)驗(yàn)證明本實(shí)驗(yàn)臺(tái)可以模擬簡(jiǎn)單跟蹤場(chǎng)景,為運(yùn)動(dòng)分析提供有效的實(shí)驗(yàn)數(shù)據(jù)。
為了更好地理解MeanShift算法,將一幅攝像圖像建立成下面的模型。一副圖像由一組二維空間中連續(xù)排列的像素點(diǎn)組成,則一個(gè)像素點(diǎn)可以由一個(gè)位置坐標(biāo)向量(x,y)表示。在顏色空間中,一個(gè)像素點(diǎn)可以由一個(gè)顏色向量表示,比如在 HSV 顏色空間中,向量(h,s,v)可以表示一個(gè)像素點(diǎn),其中h為色彩值,s為純度值,v為明度值;同樣在 RGB 空間中,向量(r,g,b)可以表示一個(gè)像素點(diǎn),r為紅色值,g為綠色值,b為藍(lán)色值?,F(xiàn)在將二維空間Q和顏色空間R合并成一個(gè)大于等于三維的空間,記為QR,其維數(shù)為二維空間和顏色空間之和。如此一幅攝像圖就可以由QR空間的像素點(diǎn)描述[1]。
在QR空間中,像素點(diǎn)X用位置向量Z和顏色向量M表示。為了利用核函數(shù)估算點(diǎn)X的概率密度[2],定義兩種模式:X像素點(diǎn)的顏色越相近于Xi像素點(diǎn)顏色即M值越相近,X概率密度越高;X位置越接近像素點(diǎn)Xi即Z值越相近,X概率密度越高。由此所定義的總概率密度,是兩個(gè)模式概率密度的乘積,可以表示為:
其中:K()采用高斯核函數(shù),W為QR空間中的搜索窗口,hQ、hR分別為二維空間和顏色空間的帶寬,C為定值常量。代表位置空間內(nèi)位置相近程度,Xi與X相距越近,此值越大代表顏色相似程度,像素點(diǎn)顏色越相似,此值越大。式(1)的整體意義可以描述為:選用像素點(diǎn)X位置鄰域內(nèi)具有像素?cái)?shù)最多的顏色值作為該點(diǎn)的像素密度估計(jì)。MeanShift算法的實(shí)現(xiàn)是使像素點(diǎn)向著梯度歸零的方向轉(zhuǎn)移。即:梯度趨于零向量。其中
梯度等于零的點(diǎn)就是QR空間中密度最大的點(diǎn),密度最大的點(diǎn)就是攝像頭視景即二維平面空間中所要追蹤的對(duì)象(如人臉、小球、激光光點(diǎn))的位置。通過(guò)迭代計(jì)算出此點(diǎn)為(Z0,M0), 其 實(shí) 這 就 是MeanShift算法包括位置信息和色彩信息的向量,坐標(biāo)向量Z0=(x0,y0)與攝像頭視鏡中心的偏差為x0、y0。因此當(dāng)對(duì)象移動(dòng)時(shí),依次求出(x1,y1),(x2,y2)...,把偏差x0,x1,x2...(y0,y1,y2…)分別送入自適應(yīng)積分分離的PID控制器,通過(guò)PID校正得到表征速度的電壓信號(hào)控制二維轉(zhuǎn)臺(tái)的旋轉(zhuǎn)(俯仰運(yùn)動(dòng))從而達(dá)到跟蹤有色目標(biāo)的目的??刂平Y(jié)構(gòu)原理圖如圖 1[3]。
圖1 控制結(jié)構(gòu)框圖
在普通的PID控制中,積分參數(shù)的作用是消除靜態(tài)誤差從而提高控制精度。但是普通PID控制器的輸出在系統(tǒng)開(kāi)始啟動(dòng)或者停止運(yùn)作或者外界對(duì)其干擾產(chǎn)生振動(dòng)時(shí)的較短時(shí)間里的積分I積累會(huì)造成很大偏差,導(dǎo)致不能正常驅(qū)動(dòng)電機(jī),產(chǎn)生大幅振動(dòng)或者卡死,嚴(yán)重降低整個(gè)系統(tǒng)的使用壽命。而普通積分分離的PID算法比普通PID控制有優(yōu)勢(shì),它的基本原理是:當(dāng)被控制量(本系統(tǒng)的被控制量是偏差xi,yi)與設(shè)定值的差值較大時(shí),積分作用I被完全取消,以避免由于積分I積累過(guò)大反而降低系統(tǒng)穩(wěn)定性;當(dāng)被控制量與給定值的差值較小時(shí),積分作用被完全引入以減少靜態(tài)誤差,提高系統(tǒng)穩(wěn)定性。也就是在不同的偏差范圍內(nèi)選取不同的積分分離影響系數(shù)σ(σ等于 1或0):
其中n>0的整數(shù)。當(dāng)xn的絕對(duì)值大于閾值e時(shí),σ取值0,PID控制器去除積分I作用,只采用PD控制;當(dāng)xn的絕對(duì)值小于閾值e時(shí),σ取值1,采用PID控制。式(4)同樣適用于yn。
雖然普通積分分離在系統(tǒng)剛開(kāi)始啟動(dòng)或者結(jié)束或者外界干擾振動(dòng)時(shí),減少了超調(diào)量,提高了系統(tǒng)穩(wěn)定性,但是在某些情況下只是在理論上可行,因?yàn)殚撝礶的選取很困難。如果e值太小,那么偏差|xn|在系統(tǒng)將要穩(wěn)定或者已經(jīng)穩(wěn)定時(shí)才起到作用,作用效果幾乎為零。如果e值太大,PID整定過(guò)程脫離積分區(qū)又太困難,積分仍舊會(huì)積累誤差[4]。
為了充分利用PID結(jié)構(gòu),并且實(shí)現(xiàn)PD到PID的平滑過(guò)渡,需尋找一隨偏差|xn|變化的自適應(yīng)函數(shù) α=g(|xn|,k,ρ),k、ρ為自適應(yīng)積分影響系數(shù)。此函數(shù)必須隨偏差|xn|增大而減小,隨|xn|減少而增大。經(jīng)大量試驗(yàn)證明,我們選取高斯函數(shù):,r為給定值,一般大于0。該環(huán)節(jié)具有積分抑制作用,當(dāng)積分不足時(shí)加上該環(huán)節(jié),使上升時(shí)間更長(zhǎng),反而不利。因此我們順延普通積分分離的方法,再加上一偏差判定,即判定
圖2 控制程序框圖
經(jīng)過(guò)試驗(yàn)證明,在此應(yīng)用系統(tǒng)中η取0.6最好。這就是自適應(yīng)積分分離的PID校正算法。自適應(yīng)積分分離的PID校正了MeanShift所得坐標(biāo)偏差,其實(shí)這在控制結(jié)構(gòu)上彌補(bǔ)了MeanShift算法的一些不足,可以說(shuō)在另外一面改進(jìn)了MeanShift算法。該程序的MeanShift算法的實(shí)現(xiàn)是由OpenCV封裝,在VC++6.0中編寫(xiě)的整個(gè)控制程序[5],程序框圖如圖2所示。
本文采用的實(shí)驗(yàn)臺(tái)有2個(gè)自由度,左右和俯仰方向各安裝了一個(gè)交流伺服電機(jī),通過(guò)旋轉(zhuǎn)實(shí)現(xiàn)追蹤,如圖3~圖5所示。
從背景可以看出實(shí)驗(yàn)臺(tái)實(shí)現(xiàn)了實(shí)時(shí)追蹤。
圖3 二維轉(zhuǎn)臺(tái)
圖4 手掌從左向右移動(dòng)
本文通過(guò)MeanShift算法和自適應(yīng)積分分離的PID算法的有效結(jié)合實(shí)現(xiàn)了有色物體的實(shí)時(shí)跟蹤,實(shí)驗(yàn)證明此系統(tǒng)可模擬一般的跟蹤場(chǎng)景,具有較高實(shí)用價(jià)值。
[參考文獻(xiàn)]
[1]孫達(dá).基于概率密度的圖像處理算法的研究與應(yīng)用[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.
[2]張玉敏.基于不同核函數(shù)的概率密度函數(shù)估計(jì)比較研究[D].保定:河北大學(xué),2010.
[3]高終毓.機(jī)電控制工程[M].3版.北京:清華大學(xué)出版社,2011.
[4]蔡逢煌,楊富文,林鴻.改進(jìn)型積分分離PID控制的設(shè)計(jì)[J].福建電腦,2003(9):41-42.
[5]KAEHLER B.學(xué)習(xí) OpenCV(中文版)[M].于仕琪,劉瑞禎,譯.北京:清華大學(xué)出版社,2009.