劉夏軒德,沈丹峰,張旭祥,張國英
(西安工程大學(xué) 機(jī)電工程學(xué)院,西安 710048)
板球系統(tǒng)是一個(gè)欠約束、強(qiáng)耦合的控制系統(tǒng),通過對(duì)球的位置的檢測(cè)、跟蹤、定位,從而控制小球運(yùn)動(dòng).無論是對(duì)小球位置的識(shí)別還是控制小球運(yùn)動(dòng)都可以應(yīng)用到實(shí)際的工程中.通過對(duì)小球識(shí)別方式的不同主要可以分為基于視覺、基于光電晶體管以及基于觸摸屏[1]的板球系統(tǒng).近今年來計(jì)算機(jī)視覺飛速發(fā)展,從早先的車牌號(hào)識(shí)別到如今的刷臉識(shí)別、行人闖紅燈提示,計(jì)算機(jī)視覺技術(shù)被應(yīng)用到越來越多的地方,手機(jī)、旅游景點(diǎn)、以及安檢等場(chǎng)所.基于視覺的板球系統(tǒng)研究有機(jī)的將計(jì)算機(jī)視覺與控制理論結(jié)合起來,因此對(duì)移動(dòng)小球的研究具有重要的應(yīng)用價(jià)值.小球的追蹤主要采用攝像頭采集圖像,通過圖像識(shí)別來追蹤小球.特征提取在機(jī)器視覺當(dāng)中占據(jù)重要位置,大量應(yīng)用在目標(biāo)檢測(cè)、目標(biāo)識(shí)別等領(lǐng)域[2].目前使用較多的移動(dòng)目標(biāo)跟蹤方法有:基于區(qū)域匹配相關(guān)的跟蹤方法;基于對(duì)比度的跟蹤方法;基于變形模板的跟蹤方法以及基于光流的追蹤方法[3]等.直方圖投影是基于區(qū)域匹配相關(guān)的跟蹤方法[4],該方法利用概率進(jìn)行模板匹配,首先獲得匹配模板的圖像直方圖,然后對(duì)需要追蹤的圖像進(jìn)行歸一化處理,得到若干個(gè)小的與模板尺寸相等的圖像并且得到這些直方圖,與模板直方圖進(jìn)行比較選取最為相似的確定為被最終目標(biāo).基于峰值的對(duì)比度跟蹤方法[5]是選取圖片中最亮的點(diǎn)(既圖像函數(shù)的峰值點(diǎn))以及最暗的點(diǎn)(圖像函數(shù)經(jīng)倒向相后的峰值點(diǎn))分別為白目標(biāo)、黑目標(biāo),然后將其作為參考點(diǎn)進(jìn)行追蹤的方法,也稱峰值追蹤.變形模板的跟蹤方法[6]與模板匹配方法相似,但不同的是模板為含有紋理的面板,每條紋理通過x方向及y方向變形逐漸與圖像中的真實(shí)目標(biāo)相適應(yīng),從而檢索出復(fù)雜背景下的目標(biāo).
本文主要研究內(nèi)容是基于LK 光流法的改進(jìn),在假設(shè)亮度不變的情況下[7],通過亮度相同這個(gè)條件在視頻流中找到與前一幀亮度相同的特征點(diǎn),在追蹤的過程中會(huì)得到運(yùn)動(dòng)場(chǎng)景中特征點(diǎn)的運(yùn)動(dòng)方向和運(yùn)動(dòng)速度等重要信息,而特征點(diǎn)的運(yùn)動(dòng)方向和運(yùn)動(dòng)速度則構(gòu)成了光流法的核心光流場(chǎng).
近幾年的研究中光流的計(jì)算方法主要有以下幾種方法:微分法,匹配法、基于能量的方法、基于相位的方法、神經(jīng)動(dòng)力學(xué)方法等[8,9].移動(dòng)目標(biāo)追蹤實(shí)時(shí)性要求高,然而稠密光流計(jì)算需要對(duì)空間所有的像素點(diǎn)進(jìn)行微分計(jì)算,計(jì)算量異常的大,屬于計(jì)算密集型的算法,難以確保其實(shí)時(shí)性.在此基礎(chǔ)上稀疏光流應(yīng)運(yùn)而生,只需求取其特征點(diǎn),再對(duì)其特征點(diǎn)進(jìn)行追蹤,因此大幅度減少了計(jì)算量,實(shí)時(shí)性得到的有效的提高,典型代表為LK 法[10].
對(duì)于板球系統(tǒng),傳統(tǒng)的LK 光流法追蹤小球的運(yùn)動(dòng)需提取小球的特征,但顏色單一小球內(nèi)部灰度梯度變化不大,特征點(diǎn)通常為小球的邊緣位置,難以自動(dòng)捕捉到圓心,造成圓心位置計(jì)算出現(xiàn)誤差.因此本文對(duì)傳統(tǒng)的LK 光流法進(jìn)行改造,應(yīng)用霍夫變換[11]提取圓心位置,對(duì)確定的圓心計(jì)算灰度梯度使用LK 光流法進(jìn)行追蹤,提高了LK 光流法追蹤小球圓心的準(zhǔn)確性.同時(shí)在對(duì)圓的識(shí)別中也可以采用傳統(tǒng)的直方圖變換來進(jìn)行,對(duì)這兩種方法在板球系統(tǒng)中對(duì)于小球的識(shí)別性能作出比較,確定改進(jìn)LK 光流法更為適用板球系統(tǒng)中移動(dòng)小球的捕捉.
本文以反向直方圖投影法、LK 光流法作為該方法的對(duì)照方法.反向直方圖投影法首先計(jì)算需要追蹤目標(biāo)模板的直方圖,其次將記錄的圖像進(jìn)行歸一化,分割為無數(shù)個(gè)小圖像并計(jì)算每一個(gè)小圖像的直方圖,最終比對(duì)模板直方圖與小圖像的直方圖,其中與模板直方圖最為相似的直方圖所屬是小圖像即為需要追蹤的目標(biāo).
LK 光流法是利用人眼觀察運(yùn)動(dòng)物體時(shí),物體的影像會(huì)在視網(wǎng)膜上形成一系列連續(xù)變化的圖像,這一系列連續(xù)變化的圖像平面信息不斷“流過”視網(wǎng)膜,好像一種光的“流”[12].光流法研究的是像素運(yùn)動(dòng)的瞬時(shí)速度,其原理是利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來找到上一幀跟當(dāng)前幀之間存在的對(duì)應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息的一種方法.
盡管采用傳統(tǒng)的LK 光流法可以對(duì)小球進(jìn)行追蹤且相對(duì)穩(wěn)定,但是該方法通常只能捕捉灰度梯度大的地方作為角點(diǎn),通常為物體輪廓邊緣,很難捕捉出圓心.同時(shí)LK 法屬于在線追蹤,每一張圖片的追蹤角點(diǎn)信息都是參照上一幀圖片,如果上一幀角點(diǎn)信息丟失,則會(huì)選取新的角點(diǎn),所以無法保證參考角點(diǎn)位置和數(shù)量的固定.如圖1所示,(a)、(b)兩圖為小球的同一運(yùn)動(dòng)過程,小球先經(jīng)過圖(a)位置1 隨后經(jīng)過圖(b)位置2,由于LK 法屬于在線追蹤,圖(a)和圖(b)的角點(diǎn)位置不 能完全重合,數(shù)量也不對(duì)等.
圖1 LK 光流法追蹤小球角點(diǎn)位置和數(shù)量
因此本文對(duì)傳統(tǒng)LK 光流進(jìn)行改進(jìn),引入霍夫圓變換來方便確定小球中心,使角點(diǎn)自動(dòng)確定為圓心,再進(jìn)行光流法進(jìn)行追蹤.為保證追蹤效果,每間隔一段時(shí)間會(huì)再次調(diào)用霍夫變換對(duì)圓心進(jìn)行矯正,提升LK 光流法在復(fù)雜背景下對(duì)小球圓心捕捉的準(zhǔn)確性.
霍夫圓變換的基本原理可以概括為:圖片中的每一個(gè)非零像素點(diǎn)都有可能是一個(gè)潛在的圓上的一點(diǎn).通過投票,生成累積數(shù)量或是累積權(quán)重來確定圓.這種方法能夠準(zhǔn)確的提取圓心,如圖2所示為霍夫圓變換對(duì)小球的識(shí)別.
圖2 霍夫圓變換對(duì)小球的識(shí)別
通過霍夫圓變換可以確定小球的圓心位置從而得到圓心坐標(biāo)(x,y),通過求取該點(diǎn)的灰度梯度值Ex=,使用光流法對(duì)該點(diǎn)進(jìn)行追蹤完成對(duì)小球的追蹤,其流程步驟如圖3所示.
1.2.1 視頻預(yù)處理
視頻預(yù)處理主要分為以下幾個(gè)步驟.1.提取視頻;2.高斯濾波;3.增強(qiáng)邊緣.
霍夫圓變換的邊緣檢測(cè)算法利用的是圖像強(qiáng)度的一階和二階導(dǎo)數(shù),不過導(dǎo)數(shù)對(duì)噪聲很敏感,通常情況下圖片或多或少都會(huì)存在一定的噪點(diǎn),因此必須采用濾波器來改善圖片的噪聲質(zhì)量,本文采用的是高斯濾波.同時(shí)增強(qiáng)邊緣的目的是為了更加有效的提取輪廓線,因此需要對(duì)圖像進(jìn)行灰度化處理其次修改對(duì)比度增強(qiáng)邊緣.之后對(duì)視頻的預(yù)處理結(jié)束之后進(jìn)行小球的追蹤.
1.2.2 修改dp 分辨率
dp 是圓心的累加器圖像的分辨率與輸入圖像之比的倒數(shù),該參數(shù)與小球捕捉準(zhǔn)確性關(guān)系近似為二次函數(shù),通過調(diào)整該參數(shù)確定最佳數(shù)值提高小球捕捉準(zhǔn)確性.
圖3 改進(jìn)LK 光流法流程圖
1.2.3 建立小球三維圓錐模型
在笛卡爾坐標(biāo)系中圓的方程表示為:
其中,(a,b)是圓心,r是半徑,用極坐標(biāo)方程表述為:
令笛卡爾坐標(biāo)系是圖像空間,構(gòu)造abr 三維坐標(biāo)系作為參數(shù)空間,在參數(shù)空間中的一個(gè)點(diǎn)對(duì)應(yīng)圖像空間的一個(gè)圓,于是笛卡爾坐標(biāo)系中經(jīng)過某一點(diǎn)的所有圓映射到abr 坐標(biāo)系中就是一條三維圓錐.經(jīng)過笛卡爾坐標(biāo)系中所有的非零像素點(diǎn)的所有圓就構(gòu)成了abr 坐標(biāo)系中很多條三維圓錐.因?yàn)榈芽栕鴺?biāo)系中同一個(gè)圓上的所有點(diǎn)的圓方程是一樣的,它們映射到abr 坐標(biāo)系中的的點(diǎn)也就是是同一個(gè)點(diǎn),在abr 坐標(biāo)系中該點(diǎn)就應(yīng)該有圓的總像素N0個(gè)曲線相交.只要判斷abr 中每一點(diǎn)的相交(累積)數(shù)量,大于一定閾值的點(diǎn)就認(rèn)為是小球,接下來獲得確切的半徑范圍,以及圓心坐標(biāo)(x,y),將小球模型得到的圓心坐標(biāo)(x,y)確立為特征點(diǎn).
1.2.4 修改param 累加器
param2 表示檢測(cè)階段圓心累加器的閾值,同樣該參數(shù)與小球捕捉準(zhǔn)確性關(guān)系近似為二次函數(shù),通過調(diào)整該參數(shù)確定最佳數(shù)值再次提高小球捕捉準(zhǔn)確性.
1.2.5 LK 光流法金字塔層數(shù)確定
在LK 法中金字塔金字塔主要解決相鄰幀之間特征點(diǎn)位移變化較大,光流法追蹤不準(zhǔn)確的問題.通過提高金字塔層數(shù)來提高LK 法追蹤精度.
1.2.6 對(duì)特征點(diǎn)進(jìn)行灰度求導(dǎo)
對(duì)于該特征點(diǎn)(x,y) 在時(shí)刻t的灰度為定義為E=[Ex,Ey,Et]T,該點(diǎn)的水平分量為u(x,y)和垂直移動(dòng)分量v(x,y).于是
經(jīng)過t+Δt,假設(shè)運(yùn)動(dòng)后該點(diǎn)的灰度則為Et=[Ex+Δx,Ey+Δy,Et+Δt]T,當(dāng)Δt→0時(shí),可以認(rèn)為他們的灰度不變,于是
對(duì)Et進(jìn)行泰勒展開同時(shí)略去二階無窮小,有:
帶入式(3)化簡得
對(duì)下一幀圖片的像素點(diǎn)坐標(biāo)(x,y)的鄰域范圍內(nèi)進(jìn)行灰度求導(dǎo)得出一系列新的水平分量和垂直分量,利用式(6)確定亮度不變點(diǎn)為追蹤點(diǎn),最后,繪制特征點(diǎn)以及運(yùn)動(dòng)方向.
本文的實(shí)驗(yàn)均為同一臺(tái)電腦,基本配置如下:CPU:i5-7300HQ,內(nèi)存:8 GB DDR4 2400 MHZ,攝像頭:720 P.
為了后續(xù)實(shí)驗(yàn)的方便進(jìn)行,利用灰度直方圖對(duì)以下三幅背景圖片進(jìn)行定義.
圖4 背景圖片及其直方圖
由圖4中(a) 的灰度直方圖分布十分集中,標(biāo)準(zhǔn)差0.865132 和灰度均值0.163566 最低,定義為簡單背景.圖4(b)的灰度直方圖分布相對(duì)圖4(c)的灰度直方圖分布相對(duì)來說較為松散,標(biāo)準(zhǔn)差32.6324 和灰度均值53.3734 處于圖4(a)、(c)中間,定義為相對(duì)復(fù)雜背景.圖4(c)的灰度直方圖分布相對(duì)圖4(b)的灰度直方圖分布更為松散,標(biāo)準(zhǔn)差6 0.0 3 0 7 和灰度均值61.7127 最高,定義為復(fù)雜背景.
本實(shí)驗(yàn)主要分為以下兩個(gè)部分,第一部分關(guān)于改進(jìn)光流法參數(shù)的選定以及準(zhǔn)確率的影響,第二部分在三種不同背景環(huán)境下比較反向直方圖投影法、LK 法以及改進(jìn)LK 對(duì)小球追蹤速度.
2.1.1 dp 參數(shù)
dp 是圓心的累加器圖像的分辨率與輸入圖像之比的倒數(shù),此參數(shù)允許創(chuàng)建比輸入圖像分辨率低的累加器.dp 累加器與輸入圖像分辨率成反比關(guān)系dp=1,累加器和輸入圖像分辨率相等,當(dāng)dp=2 累加器分辨率僅為輸入圖像的一半高度和寬度.在板球系統(tǒng)中測(cè)試區(qū)間為[1,4]的dp 值對(duì)小球捕捉的影響,測(cè)試結(jié)果如圖5所示.
圖5 dp 值與準(zhǔn)確率關(guān)系
當(dāng)dp 值處于2.5 時(shí)準(zhǔn)確率最高,當(dāng)dp∈[1,2.5)會(huì)出現(xiàn)捕捉不上圓的情況,dp 值越小越難捕捉如圖6(a),當(dāng)dp∈(2.5,4]會(huì)捕捉不存在的圓,dp 值越大捕捉的不存在圓越多如圖6(b).
圖6 dp 值引起的誤差
2.1.2 param2 參數(shù)
param2 表示檢測(cè)階段圓心累加器的閾值.閾值越小,則檢測(cè)到更多根本不存在的圓,反之越大,通過檢測(cè)的圓更為接近標(biāo)準(zhǔn)的圓.在板球系統(tǒng)中測(cè)試區(qū)間為[80,200]的param2 值對(duì)小球捕捉的影響,測(cè)試結(jié)果如圖7所示.
圖7 param2 值與準(zhǔn)確率關(guān)系
當(dāng)param2 值處于param2∈[140,150]時(shí)準(zhǔn)確率最高,當(dāng)param2∈[80,140)會(huì)出現(xiàn)捕捉不存在圓的情況如圖8(a),當(dāng)param2∈(150,200]會(huì)捕捉不上的圓如圖8(b).
圖8 param2 值引起的誤差
2.1.3 maxLevel 參數(shù)
在LK 法中金字塔層數(shù)是影響著圖像光流變化準(zhǔn)確性的一個(gè)重要因素,金字塔主要解決相鄰幀之間變化較大,光流法追蹤不準(zhǔn)確的問題.假設(shè)底層L0為800×800 分辨率的圖像,若兩幀之間像素點(diǎn)位移為50×50,使用金字塔迭代至第Ln層,圖像尺寸和像素點(diǎn)位移均縮小2L,使用迭代后的圖像進(jìn)行光流計(jì)算,并將計(jì)算得到的光流值逐層帶入直至底層L0.
本次取金字塔層數(shù)[1,6],觀察金字塔層數(shù)對(duì)于小球捕捉的影響,如圖9所示.
圖9 金字塔層數(shù)與準(zhǔn)確率關(guān)系
當(dāng)金字塔層數(shù)[1,6]時(shí),準(zhǔn)確率非常的高,且隨著金字塔層數(shù)增加也沒有明顯的變化,因此選擇1 層金字塔作為迭代層數(shù).
分別使用反向直方圖投影法、LK 光流法以及改進(jìn)LK 光流法在簡單背景相對(duì)復(fù)雜背景以及復(fù)雜背景三種情況下對(duì)小球進(jìn)行捕捉跟蹤如圖10所示(時(shí)間為1 min).
圖10 上述三種方法在不同的背景下追蹤小球
上述三種方法分別在簡單背景、相對(duì)復(fù)雜背景及復(fù)雜背景下對(duì)小球目標(biāo)追蹤進(jìn)行,追蹤小球的每一循環(huán)程序平均運(yùn)行時(shí)間數(shù)如表1.
表1 運(yùn)行時(shí)間(ms)
所有光學(xué)鏡頭都存在幾何失真,幾何失真是由于鏡頭平面不同區(qū)域?qū)D像放大率不同而形成的變形現(xiàn)象,該現(xiàn)象在畫面兩邊最為明顯.因而導(dǎo)致了小球成像并非一個(gè)完整的圓,因此不能要求d p 值最低和param2 值最高.
霍夫圓變換的邊緣檢測(cè)算法利用的是圖像強(qiáng)度的一階和二階導(dǎo)數(shù),當(dāng)圖像噪點(diǎn)過大會(huì)影響邊緣檢測(cè)的準(zhǔn)確值,應(yīng)當(dāng)選取成像噪點(diǎn)小的攝像頭.
LK 法中增加金字塔迭代層數(shù)對(duì)于小球捕捉準(zhǔn)確率幾乎沒有影響,主要因?yàn)樵诎迩蛳到y(tǒng)中小球的運(yùn)動(dòng)速度不高,視頻尺寸不大,圖像沒有出現(xiàn)不連貫的情況,發(fā)揮不出金字塔迭代的優(yōu)勢(shì).
通過表1可以看出反向直方圖追蹤小球在三種背景下追蹤小球十分穩(wěn)定,同時(shí)小球目標(biāo)追蹤方框流暢沒有出現(xiàn)追蹤卡頓或者目標(biāo)丟失情況.但是隨著背景復(fù)雜程度的提高,運(yùn)行速度逐漸減慢.總體而言反向直方圖法表現(xiàn)良好,但是從程序運(yùn)行速度上看,該方法運(yùn)行速度還是不夠理想.
可以發(fā)現(xiàn)無論是應(yīng)對(duì)簡單背景還是復(fù)雜背景,光流法捕捉目標(biāo)十分穩(wěn)定,從運(yùn)行速度來看LK 法在這三種情況下分別提高了27.77、42.76、57.53 倍,運(yùn)行速度有一個(gè)很大的提高.同時(shí)面對(duì)三種不同情況的背景該方法的運(yùn)行速度相差很小.
修改后的光流法與反向直方圖法相比,運(yùn)行速度分別提高了33.48、42.76、69.49 倍.雖然基于LK 的改進(jìn)方法運(yùn)行速度較傳統(tǒng)的LK 法沒有明顯的提高,但是改良了傳統(tǒng)LK 法無法直接捕捉小球圓心這一弊端,可以直接定位圓心位置坐標(biāo)方便后續(xù)板球系統(tǒng)的控制.提高了后續(xù)控制的精度.究其原因是因?yàn)樵摲聪蛑狈綀D投影法匹配時(shí)采用的是平方差匹配法,其原理公式如下:
若匹配的平方差為0 則為最優(yōu),反之?dāng)?shù)值越大則越差.假設(shè)(x,y)為模板像素矩陣,(x’,y’)為圖像歸一化后的像素矩陣,由公式(7)可以得到為了得到與模板相匹配的目標(biāo)需要用模板對(duì)歸一化后的每一個(gè)像素矩陣進(jìn)行匹配,計(jì)算平方差.相當(dāng)于對(duì)圖像的每一個(gè)像素都進(jìn)行了運(yùn)算,運(yùn)算量龐大,所以導(dǎo)致了反向直方圖法與兩種光流算法相比運(yùn)行速度最慢.
LK 光流法主要是通過角點(diǎn)進(jìn)行追蹤,角點(diǎn)主要提取的是灰度梯度較大的地方,而這些地方通常存在于物體的邊界.同時(shí)角點(diǎn)的數(shù)量可通過精度的設(shè)置來改變,只需要對(duì)角點(diǎn)及其鄰域的像素進(jìn)行計(jì)算,與反向直方圖相比像素點(diǎn)計(jì)算數(shù)量大幅度減少,所以速度提升非???
改進(jìn)LK 光流法只需計(jì)算一個(gè)像素點(diǎn)及其鄰域像素,與傳統(tǒng)LK 法相比像素點(diǎn)的計(jì)算數(shù)量又一次降低,但是由于減少的像素點(diǎn)數(shù)量跨度很小,速度與LK 法相比提升不是十分明顯.
本文采用反向直方圖投影法、LK 法以及改進(jìn)后的LK 法在三種不同的背景下對(duì)小球進(jìn)行追蹤,改進(jìn)后的LK 光流法更為適合板球系統(tǒng)中對(duì)小球的追蹤:
(1) 使用LK 法追蹤小球相較反向直方圖投影法大幅度提高了運(yùn)行速度,但無法捕捉球心坐標(biāo).
(2) 通過將霍夫圓變換引入LK 法得到改進(jìn)的光流法,對(duì)小球進(jìn)行追蹤,小球球心點(diǎn)不會(huì)丟失,追蹤準(zhǔn)確.