◆劉 佳
?
基于視覺(jué)的速度測(cè)量算法
◆劉 佳
(陜西省煙草公司西安市公司信息中心 陜西 710061)
本文提出了一種基于視覺(jué)的速度測(cè)量方法。利用最小二乘算法將視覺(jué)下運(yùn)動(dòng)目標(biāo)在各采樣時(shí)刻的質(zhì)心進(jìn)行擬合,建立二維空間上目標(biāo)運(yùn)動(dòng)軌跡的最小二乘多項(xiàng)式函數(shù),通過(guò)對(duì)該函數(shù)求導(dǎo)得到目標(biāo)的運(yùn)動(dòng)速度。實(shí)驗(yàn)結(jié)果表明,本文提出的算法能夠滿足運(yùn)動(dòng)目標(biāo)速度測(cè)量的需要,具有較高的精度和可行性。文章分別從理論和實(shí)驗(yàn)兩個(gè)方面對(duì)基于視覺(jué)的速度測(cè)量算法進(jìn)行研究和探討,完成了相應(yīng)的算法仿真,并進(jìn)行總結(jié)與展望。
視覺(jué);速度測(cè)量;運(yùn)動(dòng)目標(biāo);最小二乘法
隨著機(jī)器視覺(jué)技術(shù)的發(fā)展和數(shù)字圖像處理技術(shù)[1-3]的不斷成熟,基于視覺(jué)的精密測(cè)量作為一種非接觸測(cè)量的方法應(yīng)用也愈發(fā)廣泛,如運(yùn)動(dòng)測(cè)速、姿態(tài)測(cè)量、微小振動(dòng)、公路檢測(cè)等方面[4,5]。其中,對(duì)運(yùn)動(dòng)目標(biāo)的速度測(cè)量在國(guó)防、工業(yè)、航天等各個(gè)領(lǐng)域都受到了極大的重視,扮演著重要的角色。常見(jiàn)的測(cè)速法有基于像素測(cè)速法、加權(quán)平均微分法、理查森外推法等[6-8],不僅運(yùn)算量大,還會(huì)產(chǎn)生較大誤差。與傳統(tǒng)測(cè)速相比,最小二乘法具有精度高、誤差小的特點(diǎn)。因此,本文針對(duì)視覺(jué)下運(yùn)動(dòng)目標(biāo)的速度測(cè)量,提出一種基于最小二乘的測(cè)量算法實(shí)現(xiàn)過(guò)程。此方法在理論研究和實(shí)際應(yīng)用均具有一定的指導(dǎo)意義和參考價(jià)值,并為運(yùn)動(dòng)目標(biāo)的動(dòng)態(tài)參數(shù)測(cè)量提供了一條新的可靠途徑。
將攝像機(jī)捕獲的目標(biāo)視頻序列以AVI格式保存,并將視頻逐幀提取出來(lái),以便后續(xù)處理[8]。本文實(shí)驗(yàn)利用MATLAB調(diào)用AVI函數(shù), 實(shí)現(xiàn)對(duì)視頻序列的逐幀分解。對(duì)分解得到的每一幀圖像,提取出運(yùn)動(dòng)目標(biāo)。
對(duì)于每一幅圖像,要濾去復(fù)雜的背景,提取出運(yùn)動(dòng)目標(biāo)。首先要把彩色圖像轉(zhuǎn)化為灰度圖,對(duì)256個(gè)亮度等級(jí)的灰度圖像進(jìn)行適當(dāng)?shù)拈撝颠x取[6],將灰度大于或等于閾值的像素被判定為屬于目標(biāo)物體,用1表示其灰度值,否則被判定為不屬于目標(biāo)物體,灰度值為0。經(jīng)過(guò)二值化處理后,即可得到目標(biāo)物體。對(duì)于復(fù)雜的視頻圖像,運(yùn)算通常也較復(fù)雜,可使用幀間差分法或背景差分法[9-14]進(jìn)行目標(biāo)提取。本文采用的是幀間差分法。
1.3.1質(zhì)心測(cè)量原理
質(zhì)心,即質(zhì)量中心,是物質(zhì)系統(tǒng)上被認(rèn)為質(zhì)量集中于此的一個(gè)假想點(diǎn)。我們通過(guò)目標(biāo)各個(gè)時(shí)刻在攝像機(jī)像面成像的質(zhì)心的坐標(biāo),求取目標(biāo)的速度。質(zhì)心的計(jì)算公式如下:
對(duì)攝像機(jī)像面圖像進(jìn)行二值化處理后,可用下式計(jì)算目標(biāo)在像面的質(zhì)心。
其中A為目標(biāo)的像素?cái)?shù)目。根據(jù)像素面目標(biāo)的質(zhì)心可以得到目標(biāo)質(zhì)心的像面坐標(biāo)。
1.3.2從像面質(zhì)心到實(shí)際質(zhì)心
得到圖像質(zhì)心后,還不能直接進(jìn)行擬和,因?yàn)橛蓤D像得到位移是像素值,與實(shí)際位移之間有一定的比例關(guān)系,可以通過(guò)計(jì)算圖像中某一物體的像素距離,和實(shí)際物體的距離,兩者之比即為比例系數(shù),由下式計(jì)算出每個(gè)圖像運(yùn)動(dòng)目標(biāo)質(zhì)心的實(shí)際位移坐標(biāo):
對(duì)運(yùn)動(dòng)目標(biāo)高速攝像,并通過(guò)運(yùn)算,得到目標(biāo)質(zhì)心在實(shí)際空間某時(shí)刻的一組序列值,通過(guò)擬合這組序列值,即可獲得目標(biāo)的軌跡,從而進(jìn)行下一步處理。
殘差是衡量擬合算法好壞的重要指標(biāo)。經(jīng)常采用的三種衡量的準(zhǔn)則為:
(1)使殘差的最大絕對(duì)值最小,即:
(2)使殘差的絕對(duì)值之和最小,即:
(3)使殘差的平方和最小,即:
分析以上三個(gè)準(zhǔn)則,準(zhǔn)則(1)、(2)由于含有絕對(duì)值,不利于實(shí)際計(jì)算,而準(zhǔn)則(3) 計(jì)算比較簡(jiǎn)單,用它來(lái)確定參數(shù),得到擬合曲線的方法稱作曲線擬合(或數(shù)據(jù)擬合)的最小二乘法。
為了方便進(jìn)行誤差分析,本實(shí)驗(yàn)拍攝的是一個(gè)小球在水平臺(tái)上的直線運(yùn)動(dòng),實(shí)際速度已知,為220mm/s,小球的實(shí)際直徑為40mm,該視頻用時(shí)3.5秒。
(1)視頻解幀。運(yùn)用aviread函數(shù)讀取該段視頻,經(jīng)解幀后,得到42幀圖片,視頻用時(shí)為3.5秒,因此該視頻的幀速率為12幀/秒。
圖1 解幀后的圖片
(2)目標(biāo)質(zhì)心的求取。運(yùn)用rgb2gray函數(shù)將RGB圖像轉(zhuǎn)換為灰度圖,im2bw函數(shù)將灰度圖轉(zhuǎn)化為二值圖像。對(duì)于一幀圖像,運(yùn)用函數(shù)[p,rect]= imcrop(im)在窗口顯示圖像im,創(chuàng)建rect矩形框,裁減運(yùn)動(dòng)目標(biāo)并返回裁剪后的圖像p。根據(jù)質(zhì)心公式,得出目標(biāo)質(zhì)心在整個(gè)圖像的位置。以一幀為例,其它幀同理,質(zhì)心求取的結(jié)果如圖2所示。
圖2 運(yùn)動(dòng)目標(biāo)質(zhì)心標(biāo)定
此方法是對(duì)一幀靜態(tài)圖像進(jìn)行目標(biāo)質(zhì)心求取,而對(duì)于多幀圖像組成的視頻,該方法的可行性較小,解決方法是將實(shí)驗(yàn)前兩步進(jìn)行合成與改進(jìn),從而完成運(yùn)動(dòng)目標(biāo)質(zhì)心的動(dòng)態(tài)提取。結(jié)果如圖3所示。
圖3 目標(biāo)質(zhì)心的動(dòng)態(tài)標(biāo)定
得到結(jié)果后,已知小球的圖像直徑為10毫米,實(shí)際直徑為40毫米,則比例系數(shù)為40/10=4毫米/像素。根據(jù)公式(3),可知小球?qū)嶋H的質(zhì)心位置。此方法的優(yōu)點(diǎn)是,實(shí)驗(yàn)程序簡(jiǎn)單易懂,減小了采用運(yùn)動(dòng)目標(biāo)標(biāo)定時(shí),背景中其他物體運(yùn)動(dòng)帶來(lái)的影響,減少質(zhì)心誤差,同時(shí)可以得到小球成像后的直徑距離,便于進(jìn)一步計(jì)算。
(3)最小二乘法擬和求取速度。首先,運(yùn)用MATLAB中的plot(x, y, 'o')畫出目標(biāo)質(zhì)心坐標(biāo)散點(diǎn)圖。然后通過(guò)函數(shù)p=polyfit(x, y, m)完成最小二乘曲線擬合,其中, x, y為已知數(shù)據(jù)點(diǎn)向量, 分別表示橫、縱坐標(biāo), m為擬合多項(xiàng)式的次數(shù),根據(jù)散點(diǎn)圖任意取值, 結(jié)果返回m次擬合多項(xiàng)式系數(shù), 從高次到低次存放在向量p中。擬合后可以得到二維空間的目標(biāo)質(zhì)心分別映射在X軸和Y軸的軌跡曲線,結(jié)果如圖4、圖5。
圖4 目標(biāo)質(zhì)心在二維空間中X軸的運(yùn)動(dòng)軌跡
圖5 目標(biāo)質(zhì)心在二維空間中Y軸的運(yùn)動(dòng)軌跡
圖中,圓點(diǎn)是實(shí)際質(zhì)心,紅線為擬合曲線。求得p1=[222.3398 33.8792],p2=[510.8095],即在X軸和Y軸擬合的二維軌跡方程為:
X=222.3398t+33.8792
Y=510.8095
軌跡方程求導(dǎo)后得到速度方程:
(4)誤差計(jì)算。通過(guò)實(shí)驗(yàn)可知小球的運(yùn)動(dòng)速度為222.3398mm/s,而速度的理論值為220mm/s,得到速度的相對(duì)誤差約為1.06%。表1為本文算法與基于像素測(cè)速法的誤差比較:
表1 算法誤差對(duì)比
算法速度的相對(duì)誤差 本文測(cè)速法1.06% 基于像素測(cè)速法8.79%
實(shí)驗(yàn)結(jié)果表明,相較于基于像素測(cè)速法,本文算法誤差更小,能夠滿足實(shí)時(shí)性要求較高的場(chǎng)合,測(cè)量結(jié)果具有可行性。
本文算法的優(yōu)點(diǎn)在于,通常我們所給的數(shù)據(jù)本身不一定可靠,若用像素法,只通過(guò)兩幀圖像計(jì)算速度,誤差很大。而采用最小二乘擬合法,能夠快速?gòu)乃o的一堆看似雜亂無(wú)章的數(shù)據(jù)中找出規(guī)律來(lái),消除局部的波動(dòng),并使實(shí)際值與測(cè)量值的差的平方和最小,從而減小誤差。
由圖4,圖5及相對(duì)誤差可以看到,在本實(shí)驗(yàn)中,對(duì)于直線運(yùn)動(dòng),擬合后的測(cè)量精度是很高的,但這并不表示此方法僅限于直線運(yùn)動(dòng),相反,越是雜亂無(wú)章的運(yùn)動(dòng),越能體現(xiàn)出該方法的擬和性、全局性及精確性,并能通過(guò)軌跡方程,很容易的算得運(yùn)動(dòng)目標(biāo)在各個(gè)時(shí)刻的速度及加速度。
本文充分利用計(jì)算機(jī)視覺(jué)與圖像處理等先進(jìn)測(cè)量原理與處理技術(shù),介紹了一種基于視覺(jué)的速度測(cè)量方法。其創(chuàng)新點(diǎn)在于,提出了目標(biāo)速度測(cè)量的新方法,并從理論和實(shí)驗(yàn)上重點(diǎn)研究了最小二乘法擬合下的速度測(cè)量,結(jié)合實(shí)驗(yàn)仿真,驗(yàn)證了此方法的可行性,具有系統(tǒng)簡(jiǎn)單、易于操作、測(cè)量數(shù)據(jù)點(diǎn)多、測(cè)量精度高等優(yōu)點(diǎn)。
當(dāng)然,由于本文重點(diǎn)是研究目標(biāo)的速度測(cè)量方法,因此對(duì)于目標(biāo)的快速及精確識(shí)別的方法還有待于進(jìn)一步研究。并在以后的研究中進(jìn)一步提高算法的實(shí)時(shí)性,比如,是否可以通過(guò)各種算法或測(cè)試軟件,使運(yùn)動(dòng)目標(biāo)的質(zhì)心在動(dòng)態(tài)提取時(shí),每提取幾點(diǎn),就可以得到一個(gè)擬和曲線,即得到速度值,提高實(shí)時(shí)性和快速性。
[1]Kenneth Castleman R.Digital Image Proce ssing[M]. Prentice Hall,1996.
[2]Boris Jutzi S, Richard Gabler, Klaus Jaeger. Stereo vision for small targets in IR images sequences[J]. Signal and Data Processing of Small Targets,2001.
[3]章毓晉.圖像處理和分析[M].北京:清華大學(xué)出版社,1999.
[4]韓定安,曾亞光,蘇佳檳等.基于LabVIEW及其視覺(jué)的微小位移動(dòng)態(tài)測(cè)量[J].微計(jì)算機(jī)信息,2007.
[5]王延華,李騰.基于雙目視覺(jué)的接觸網(wǎng)磨耗在線檢測(cè)研究[J/OL].計(jì)算機(jī)工程與應(yīng)用,2017.
[6]崔彥平,葛杏衛(wèi),傅其鳳.基于雙目視覺(jué)的飛行目標(biāo)落地速度測(cè)量方法研究[J].傳感器與微系統(tǒng),2009.
[7]張曉玲,羅印升,張寶峰.基于雙目立體視覺(jué)測(cè)量原理的物體運(yùn)動(dòng)速度測(cè)量[J].光電子·激光,2016.
[8]李新華,宋承祥,劉弘.雙目視覺(jué)測(cè)量在乒乓球運(yùn)動(dòng)速度分析中的應(yīng)用[J].計(jì)算機(jī)科學(xué),2008.
[9]吳亞鵬.基于雙目視覺(jué)的運(yùn)動(dòng)目標(biāo)跟蹤與三維測(cè)量[D].西北大學(xué),2008.
[10]徐亦唐.基于最小二乘法的曲線擬合及其在Matlab中的應(yīng)用[J].電子世界,2013.
[11]龔純,王正林.MATLAB語(yǔ)言常用算法程序集[M].北京:電子工業(yè)出版社,2008.
[12]張曉玲,羅印升,張寶峰.基于雙目立體視覺(jué)測(cè)量原理的物體運(yùn)動(dòng)速度測(cè)量[J].光電子·激光,2016
[13]鐘霞,張建偉,于灝.基于最小二乘估計(jì)的雷達(dá)系統(tǒng)誤差衛(wèi)星標(biāo)定方法[J].空間科學(xué)學(xué)報(bào),2013.
[14]張大山.基于高速視覺(jué)的結(jié)構(gòu)運(yùn)動(dòng)測(cè)量算法研究與應(yīng)用[D].中國(guó)科學(xué)技術(shù)大學(xué),2017.