??? 摘 要: 通過對圖像中的斑塊進(jìn)行分析,,獲得斑塊在圖像中的信息,,由非線性校正算法將其恢復(fù)為實(shí)際道路中信息。依據(jù)一定的條件將斑塊聚合為車輛以提取車輛信息,,進(jìn)而判斷是否有車輛隊(duì)列,,得到較為準(zhǔn)確的車流長度" title="車流長度">車流長度。實(shí)驗(yàn)結(jié)果表明,,該檢測算法有較高的準(zhǔn)確性,,且能滿足監(jiān)控的實(shí)時(shí)性。
??? 關(guān)鍵詞: 車流長度,斑塊處理" title="斑塊處理">斑塊處理,車輛聚合,非線性形變
?
??? 近年來,,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展和高分辨率成像技術(shù)的運(yùn)用,,數(shù)字圖像處理分析技術(shù)在車輛自動(dòng)監(jiān)視系統(tǒng)中的應(yīng)用越來越廣泛。道路上車輛運(yùn)行狀況與車流長度的實(shí)時(shí)檢測是智能交通管理的重要功能之一,。參考文獻(xiàn)[1]中提出了基于FFT的隊(duì)列檢測方法,,根據(jù)圖像上檢測區(qū)域內(nèi)有車與無車對應(yīng)頻譜的不同,檢測車道上是否存在車輛,,但該算法不能定量地給出車輛的排隊(duì)長度,。參考文獻(xiàn)[2]中利用圖像的點(diǎn)特征與線特征來檢測隊(duì)列的長度,當(dāng)圖像中存在陰影或遮擋時(shí),,角點(diǎn)檢測的魯棒性不夠,。本文通過對單目圖像序列的斑塊分析、圖像非線性形變" title="非線性形變">非線性形變校正等,,提出了一種有效的車輛排隊(duì)長度檢測算法,。該算法具有較高的檢測精度與較強(qiáng)的魯棒性。
1 系統(tǒng)概述
??? 在視頻監(jiān)控系統(tǒng)中,,由攝像機(jī)獲取交通視頻圖像,,通過前景與背景作差法可將運(yùn)動(dòng)目標(biāo)從背景中提取出來;然后經(jīng)過自適應(yīng)的圖像閾值選擇,,將前景圖像二值化后,,可以看到車輛目標(biāo)以一個(gè)個(gè)連通區(qū)域的形式表現(xiàn)在圖像上,稱這些連通區(qū)域?yàn)榘邏K(Blob),,如圖1所示,。
?
??? 從圖1中可以看到,這些斑塊在分布上并沒有什么規(guī)律,,非常隨機(jī)地分布在圖像的各個(gè)位置,,其中有一些是車輛前景的斑塊,,另一些則是具有干擾性的噪聲斑點(diǎn)。本文介紹的系統(tǒng)中,,利用基本的斑塊分析算法提取目標(biāo)圖像中所有斑塊的基本參數(shù)(包括斑塊的位置信息" title="位置信息">位置信息,、周長和面積信息、斑塊的外接矩形的各個(gè)參數(shù)),,然后根據(jù)斑塊的大小和位置信息,,濾除噪聲點(diǎn)斑塊,將屬于同一輛車的斑塊進(jìn)行聚合,,實(shí)現(xiàn)從斑塊到車輛的提取,。由于排隊(duì)車輛間的距離是比較小的,因此利用各車輛斑塊的位置與距離關(guān)系確定隊(duì)列的起始與終止點(diǎn),,從而可確定車流的長度或排隊(duì)車輛數(shù)等信息,。
??? 由于單目攝像機(jī)位置所處的高度和角度的不同會(huì)導(dǎo)致圖像不同程度的非線性形變,使得圖像中的長度與位置信息不能正確反映實(shí)際的情況,。本文提出基于圖像網(wǎng)格的非線性形變校正算法,,對圖像進(jìn)行形變校正,以獲得較為準(zhǔn)確的隊(duì)列長度,。
2 斑塊分析算法
2.1 斑塊邊緣檢測
??? 由于斑塊在圖像上的分布是雜亂且沒有規(guī)律的,,這對于斑塊處理程序的魯棒性提出了較高的要求,尤其是斑塊會(huì)呈現(xiàn)出各種形態(tài),,包括斑塊中間會(huì)有空洞也會(huì)有孤立的點(diǎn)等,。因此,斑塊處理程序必然要求有足夠的適應(yīng)性[3],,能處理各種形狀的斑塊,,并記錄它們的信息。斑塊邊緣檢測" title="邊緣檢測">邊緣檢測的具體步驟如下:
??? (1)保存原圖像
??? 由于在后續(xù)的斑塊操作中,,需要對找到的斑塊進(jìn)行填充,,會(huì)破壞原圖,所以要將原圖像存入一個(gè)緩沖區(qū),,實(shí)際處理的是原圖像的一個(gè)鏡像,。這樣原圖像的斑塊仍可以作為源進(jìn)行后續(xù)跟蹤處理。
??? (2)尋找斑塊起始點(diǎn)
??? 經(jīng)過二值化處理后的圖像,,斑塊處的像素點(diǎn)是白色的(像素值為1),,其余像素點(diǎn)均為黑色(像素值為0)。從圖像的左下角開始,,按自下而上,自左而右的方向進(jìn)行搜索,,當(dāng)遇到第一個(gè)白色的像素點(diǎn)時(shí),,該點(diǎn)就作為第一個(gè)斑塊的邊緣起點(diǎn),,并記下該點(diǎn)的坐標(biāo),且在斑塊計(jì)數(shù)值上加1,。
??? (3)斑塊邊緣信息分析
??? 斑塊邊緣信息分析是指從起始點(diǎn)開始搜索斑塊的邊緣,,繞邊緣一圈,將整個(gè)斑塊的邊界信息提取出來,。本文采取順時(shí)針方向的檢測準(zhǔn)則,。由于每個(gè)像素點(diǎn)都有八個(gè)相鄰的像素點(diǎn),根據(jù)該像素點(diǎn)與可能的相鄰點(diǎn)之間的相位關(guān)系確定了八個(gè)不同方向的向量,,如圖2所示,,按順時(shí)針方向依次搜索邊界點(diǎn)。
?
??? 搜索過程從確定的起始點(diǎn)開始,,首先判斷第一個(gè)方向向量上相鄰點(diǎn)的像素值是否為1,,若是,則為下一個(gè)邊緣點(diǎn),,記下該點(diǎn)的像素坐標(biāo),;否則在該方向向量基礎(chǔ)上順轉(zhuǎn)45°,即檢測下一方向向量上的相鄰點(diǎn),,直到找到下一個(gè)邊界點(diǎn),。為了提高檢測的速度,同時(shí)又要保證檢測的準(zhǔn)確性,,考慮到有可能存在比較孤立的邊界點(diǎn),,將最近找到的邊界點(diǎn)到上一邊界點(diǎn)的方向向量逆轉(zhuǎn)90°,定為搜索下一邊界點(diǎn)的初始向量(并非每次都從第一方向向量開始搜索),。重復(fù)上面的操作,,依次尋找像素值為1的下個(gè)邊界點(diǎn),并保存這些點(diǎn)的像素坐標(biāo),,同時(shí)判斷找到的點(diǎn)是否為初始起點(diǎn),,若是,則表示該斑塊的邊緣檢測過程結(jié)束,。圖3為斑塊邊緣檢測的具體過程,,圖中“1”代表白色像素點(diǎn),即斑塊所在位置,,其余的為“0”(省略),,代表黑色像素點(diǎn)。
??? 根據(jù)斑塊邊緣檢測過程中記錄的各邊界點(diǎn)的坐標(biāo)值,,可以得到該斑塊的面積,、周長、中心位置、外接矩形等信息,。
2.2 斑塊填充
??? 斑塊填充就是在起始點(diǎn)的基礎(chǔ)上將整個(gè)斑塊填為黑色,,實(shí)現(xiàn)將斑塊從圖像中移除的效果[4]。由于斑塊的分布極為散亂,,對圖像上所有斑塊進(jìn)行分析時(shí),,需要將已經(jīng)找到且已得到基本信息的斑塊從圖像中除去,以不影響其他斑塊的分析,。因此斑塊填充過程是不可或缺的一步,。
????考慮到斑塊形狀的復(fù)雜性,如中空的斑塊中間可能還有小斑塊等,,因此不能僅依靠邊界點(diǎn)來填充,,需要探求其中的每一個(gè)像素點(diǎn)。同時(shí)填充過程的耗時(shí)在整個(gè)斑塊處理過程中所占的比重也是最大的,,因此斑塊填充算法需要有較高的魯棒性與實(shí)時(shí)性,。本文研究了兩種填充算法:點(diǎn)處理方法與線處理方法。
??? 點(diǎn)處理就是在斑塊的填充過程中采用逐點(diǎn)處理的方法,,又稱為漫水法,。該算法實(shí)現(xiàn)簡單,沒有考慮斑塊內(nèi)部各個(gè)像素點(diǎn)之間的相關(guān)性,,而是孤立地對各個(gè)像素進(jìn)行測試,,所以實(shí)現(xiàn)起來比較費(fèi)時(shí)。如果考慮像素點(diǎn)間的相關(guān)性,,在一個(gè)連通的像素段上進(jìn)行掃描,,則采用線處理的方法。即先取出一個(gè)種子像素,,以此為中心向左和向右進(jìn)行填充,,直到斑塊的邊界點(diǎn)。線處理的具體實(shí)現(xiàn)過程如圖4所示,。其步驟如下:
??? (1)將斑塊的第一個(gè)邊界點(diǎn)作為種子像素,,將其進(jìn)行填充。
??? (2)沿線掃描,,對種子的左,、右像素進(jìn)行填充,直到遇到像素值為0的點(diǎn),,即斑塊的邊界處,,記下這個(gè)填充的邊界坐標(biāo)X。由于斑塊可能是中空的,,所以填充邊界并非斑塊分析階段得到的左右邊界極值Xl或Xr,。
??? (3)當(dāng)Xl
??? (4)從堆棧中取種子像素,重復(fù)(2),、(3)步驟,,直到堆棧為空,整個(gè)斑塊的填充過程結(jié)束,。
??? 由于考慮了像素點(diǎn)之間的連通性與相關(guān)性,,該算法在遞歸和堆棧的深度上遠(yuǎn)遠(yuǎn)低于點(diǎn)處理,特別是堆棧深度不會(huì)大于三層,,在很大程度上解決了時(shí)間和空間復(fù)雜度的問題,。實(shí)踐證明,這種方法可以實(shí)現(xiàn)實(shí)時(shí)的斑塊分析操作,。
??? 經(jīng)斑塊分析算法找到并提取斑塊的邊緣信息,,再由斑塊填充算法將該斑塊從圖像中移去后,在留下的圖像中仍采用自下而上,,自左至右的方向?qū)ふ野咨南袼攸c(diǎn),,即搜索新的斑塊,直到得到所有斑塊的信息,。
2.3 斑塊聚合
??? 經(jīng)過斑塊邊緣檢測得到了圖像中單個(gè)斑塊的信息,,需要根據(jù)各個(gè)斑塊的特性將屬于同一輛車的斑塊聚合起來,實(shí)現(xiàn)對一輛整車的信息提取,。根據(jù)聚合后車輛斑塊的位置信息,,將排隊(duì)車輛進(jìn)一步聚合,以得到圖像中的隊(duì)列信息,。本文主要依據(jù)斑塊之間的距離與斑塊的面積信息來判定多個(gè)斑塊目標(biāo)是否屬于同一個(gè)區(qū)域,,對符合條件的斑塊進(jìn)行合并。
??? 在聚合過程中,,首先對搜索區(qū)域內(nèi)的斑塊進(jìn)行初步篩選,,將面積小于一定門限的斑塊置于考慮范圍之外,從而濾除這些噪聲點(diǎn)斑塊的干擾,,從而在區(qū)域合并過程中進(jìn)一步剔除了噪聲,。區(qū)域合并主要依據(jù)斑塊的中心位置與外接矩形的邊界條件等,將滿足條件的,、具有相似性的多個(gè)斑塊進(jìn)行聚合,。在該過程中,不斷將聚合后的斑塊信息來更新目標(biāo)信息。
3 非線性校正算法
??? 在斑塊聚合中需要以各斑塊的大小與位置信息為依據(jù),,但由于攝像機(jī)所處位置的高度與角度的不同,,會(huì)導(dǎo)致圖像不同程度的非線性形變,圖像中的斑塊信息不能正確反映實(shí)際的信息,,需要由校正算法對其進(jìn)行參數(shù)恢復(fù)[5],。本文提出一種基于圖像網(wǎng)格的非線性校正算法。
??? 在所攝取的圖像上建立坐標(biāo)系,,規(guī)定圖像的左上角頂點(diǎn)為坐標(biāo)原點(diǎn),。根據(jù)如圖5所示的道路的交通標(biāo)志線設(shè)定圖像中的網(wǎng)格線,對應(yīng)到如圖6所示的實(shí)際道路中的網(wǎng)格線和坐標(biāo)系,。通過在圖像上取點(diǎn)獲取像素坐標(biāo)即可以計(jì)算出圖像網(wǎng)格中每條直線的方程,,從而得到各線交點(diǎn)的坐標(biāo)。在實(shí)際道路中,,由道路的寬度和交通標(biāo)志線得到實(shí)際網(wǎng)格的交點(diǎn)坐標(biāo),,這兩類交點(diǎn)坐標(biāo)有一一對應(yīng)的關(guān)系。根據(jù)這些點(diǎn)坐標(biāo)的對應(yīng),,可以找到一個(gè)函數(shù)關(guān)系來反映圖像中所有點(diǎn)的坐標(biāo)到實(shí)際坐標(biāo)的映射,。
???
??? 由于圖像上不同位置的點(diǎn),其非線性形變的程度不同,,所有點(diǎn)都對應(yīng)同一個(gè)映射關(guān)系不能保證校正的準(zhǔn)確性,。為了使坐標(biāo)的變換更為準(zhǔn)確,可以建立小網(wǎng)格模型,。在圖像中的每一個(gè)網(wǎng)格上取若干個(gè)點(diǎn),,分別對應(yīng)到實(shí)際網(wǎng)格的若干個(gè)點(diǎn)上,由這些點(diǎn)的坐標(biāo)對應(yīng)關(guān)系建立每個(gè)網(wǎng)格的坐標(biāo)映射函數(shù),。這樣在進(jìn)行非線性坐標(biāo)變換時(shí),,首先判斷被計(jì)算點(diǎn)所處的網(wǎng)格位置,再選擇相應(yīng)的映射函數(shù)進(jìn)行變換,。
??? 當(dāng)確切的函數(shù)難以求得時(shí),,通常采用近似的方法來盡可能地逼近所求函數(shù)。這里采用曲線擬合的最小二乘法[6]來求映射函數(shù),。取基底為:
???
??? 則所求的映射函數(shù)用矩陣表示為:
???
式中,,(x,y)為圖像中的像素坐標(biāo),,(X,,Y)為轉(zhuǎn)換后標(biāo)準(zhǔn)坐標(biāo)。
??? 將得到的斑塊邊界點(diǎn)的像素坐標(biāo),,經(jīng)非線性算法校正后得到邊界點(diǎn)的實(shí)際坐標(biāo)值,,從而可以計(jì)算實(shí)際斑塊的大小和面積、斑塊間的距離等,。根據(jù)這些恢復(fù)后的參數(shù)來對斑塊進(jìn)行聚合,,得到車輛的排隊(duì)長度。
4 實(shí)驗(yàn)結(jié)果
??? 將上述斑塊處理算法與非線性校正算法相結(jié)合的車流檢測算法應(yīng)用于實(shí)際的交通檢測中,,以檢驗(yàn)算法的有效性,。
??? 以上海龍陽路段為檢測對象,對圖像進(jìn)行二值化且經(jīng)斑塊處理后,,得到某時(shí)刻的車輛隊(duì)列斑塊如圖7所示(已除噪處理),。聚合后的隊(duì)列斑塊的外接四邊形在圖像中的信息如表1前兩列所示;經(jīng)非線性校正后得到的該斑塊實(shí)際信息如表1后兩列所示,。由上下兩條邊的平均縱坐標(biāo)值可計(jì)算得到實(shí)際道路中的隊(duì)列長度為111.2米,檢測的平均誤差為1.4%,。
????
?
??? 該斑塊處理算法只對車道范圍進(jìn)行分析處理,,而不是對整個(gè)圖像進(jìn)行處理,所以其實(shí)現(xiàn)速度較快,,能滿足視頻監(jiān)控系統(tǒng)的實(shí)時(shí)性要求,。
??? 本文通過對二值圖像中的斑塊進(jìn)行分析,將不規(guī)則的斑塊按一定的條件聚合為整車,,再根據(jù)車輛間的信息關(guān)系聚合為隊(duì)列斑塊,,提出了基于斑塊分析的車輛排隊(duì)檢測算法??紤]到圖像的非線性形變,,提出了基于圖像網(wǎng)格的校正算法,對參數(shù)進(jìn)行恢復(fù),,使測得的隊(duì)列長度更為準(zhǔn)確,。實(shí)驗(yàn)結(jié)果表明,該算法有較高的檢測精度,,其處理速度能滿足實(shí)時(shí)性要求,,能很好地應(yīng)用于智能交通管理中。
參考文獻(xiàn)
[1] ROURKE A,,BELL M G H.Quene detection and congestion monitoring using image processing[J].Traffic Eng.& Control,,1991:411-421.
[2] 李巖,張學(xué)工.應(yīng)用圖像處理方法自動(dòng)檢測路口車輛排隊(duì)長度[J].計(jì)算機(jī)應(yīng)用與軟件,,2003,,(12):47-49.
[3] KOLLER D.Moving object recognition and classification?based on recursive shape parameter estimation[J].in Proc.12th Israel Conf.Artificial Intelligence,Computer Vision,,Dec.1993:27-28.
[4] BEYMER D,,MCLAUCHLAN P,,COIFMAN B,et al.A?real-time computer vision system for measuring traffic?parameters[J].IEEE Conf.Computer Vision and Pattern?Recognition,,Puerto Rico,,June 1997:496-501.
[5] 韓鳳磊,龐其昌.一種圖像非線性形變的恢復(fù)方法[J].光學(xué)技術(shù),,2003,,(5).
[6] 沈劍華.數(shù)值計(jì)算基礎(chǔ)[M].上海:同濟(jì)大學(xué)出版社,1999.