1. 程式人生 > >基於單目視覺的智慧車輛視覺導航系統設計

基於單目視覺的智慧車輛視覺導航系統設計

基於計算機視覺的高速公路防撞系統是當前智慧交通管理系統研究的熱點之一。如何在多變的環境下快速準確地從視訊影象裡檢測到車道和前方車輛是實現這類系統面臨的最關鍵問題。近20年來,國內外很多研究人員對這個問題進行了大量研究,提出了多種多樣的實用演算法併成功開發了一些視覺系統。這些系統所採用的演算法基本上可以分為基於雙目視覺的方法、基於運動的方法、基於外形的方法和基於知識的方法。基於雙目立體視覺的方法計算量大,需要特殊硬體支援;基於運動的方法,無法檢測靜止目標且實時性差;基於外形的方法,因建立有效的培訓樣本仍然是需要研究的問題;基於知識的方法,在障礙物數量較少時效率較高,但複雜環境下錯誤率有所增加。

  針對常規演算法的不足,本文設計了一種精度高,穩定性好的基於單目視覺的車載追尾預警系統。它利用一種新的邊緣檢測演算法識別前方道路,然後利用陰影檢測與跟蹤相結合的方法識別前方車輛,接下來根據前後車距判斷其威脅等級,最終向駕駛員提供相應的聲光報警訊號。

  1 系統工作原理

  系統硬體部分包括MCC-4060型CCD攝像機、VT-121視訊採集卡、GPS、PC-104工控機和顯示終端。GPS通過串列埠向工控機發送本車車速資訊,安裝在車內擋風玻璃後的CCD攝像機將影象幀通過視訊採集卡送入工控機,經過軟體的處理分析後,在顯示終端上標註出前車障礙物和道路標線,同時根據車速、間距等判斷危險等級,發出相應的聲光報警訊號;

  系統的軟體部分包括道路檢測、道路跟蹤、車輛檢測、車輛跟蹤、測距、決策和報警等模組。當車速達到60km/h時,系統開始處理實時採集到的影象序列。對於每一幀影象,首先檢測並跟蹤影象中的車道白線,然後在車道確定的感興趣區域內檢測車輛。如果存在疑似障礙車輛,則啟動車輛跟蹤,利用跟蹤資訊進一步排除虛警。在實現對障礙車輛穩定跟蹤後,估算出兩車間距和相對運動速度,判定其威脅等級,併發出相應的報警訊號。

  2 系統關鍵技術

  2.1 道路檢測

  目前,車道線檢測演算法主要適用於光照充足的環境下。由於車道線與路面之間對比度大,因此很容易利用各種常規邊緣檢測運算元獲得清晰的車道輪廓資訊,然後選取合適的閾值對影象進行二值化處理,最後採用Hough變換識別車道線。然而在複雜光照環境下,影象會受到各種光線直射和物體多次反射形成雜散光的干擾,影象光強不能反映車道本身突變性質,導致無法正確檢測出車道。

  本系統採用了一種利用光密度差得到車道標線與路面反射率差,進而進行非線性邊緣檢測,再進行Hough變換的車道檢測演算法。此演算法可以有效解決在複雜光照條件下的車道檢測,也可以用於夜間的車道檢測。

  另外,目前車道線的跟蹤研究主要採用固定區域法或者Kalman濾波法,根據前一幀車道線檢測的結果來劃分感興趣區域,以實時跟蹤車道線。然而,固定區域法對2幀影象的相關性依賴大,劃分感興趣區域大,實時性差;而Kalman濾波法劃分感興趣區域小,容易產生檢測誤差,而造成跟蹤誤差累積,跟蹤正確率不高。因此,本系統在跟蹤車道線時採用了一種融合固定區域法和KaIman濾波法劃分感興趣區域的新方法。

  一般來說,只將車道邊界線交點(即滅點)以下、2車道線之間的區域作為感興趣區域,考慮到跨道行駛的車輛依然對本車有威脅,演算法把兩車道線分別向兩側平移40個畫素,使感興趣區域擴充套件到可以覆蓋跨道車輛的範圍。

  2.2 車輛檢測

  影象中包含車輛前方很大視野內的物體,如道路、樹木、護欄、標牌以及其他車輛,要從中準確檢測出前方車輛是一項困難的工作,而本文的車輛檢測模組會根據影象背景自動改變設定引數,以適應不斷變化的道路場景和光照條件。

  要實現車輛的快速檢測,首先需要根據車輛的基本特徵進行初步檢測,將所有可能的疑似車輛區域從影象中提取出來,然後再根據其他特徵對疑似區域進行篩選排除。

  2.2.1 車輛初步檢測

  初步檢測採用的特徵是車輛陰影,即一塊位於目標車輛底部、灰度值明顯比附近路面區域低的區域。在一般環境條件下,大部分車輛都具有這一顯著特徵。

  車輛初步檢測的流程如圖1所示。車輛陰影和車道一樣具有灰度突變的特點,因此可以呼叫車道檢測演算法對圖2(a)中的原始影象做二值化處理,得到圖2(b)中的邊緣二值化影象。同時還要對原始影象進行灰度二值化,得到圖2(c)中的灰度二值化影象。為提高檢測實時性,以本車附近路面區域的平均灰度作為二值化閾值。由於邊緣二值化影象和灰度二值化影象都包括了車輛的下底邊,將這兩幅影象進行“或”運算,就可以得到如圖2(d)所示的車輛陰影影象。

  在陰影影象中由下至上逐行搜尋,尋找連續陰影點超過一定閾值的線段,並以此線段為底邊劃出一個矩形區域作為疑似車輛區域。為保證疑似區域包含車輛整體,矩形的寬度比線段稍寬,高度由寬度按比例給出。為避免重複搜尋,將已搜尋到的疑似區域內陰影完全抹去。由於同一車輛的各個部分可能分別被檢測為疑似目標,因此還需要對各個相交的疑似區域進行合併。由於前方車輛的遮擋,可能會將多個目標認定為一個目標,但是對本車的安全無影響。

2.2.2 篩選驗證

  如果單純採用陰影特徵進行車輛檢測,在保證較低“漏警”率的同時,也造成了較高的“虛警”率,因此還需要對疑似區域進行篩選和驗證。

  對於結構化道路,車輛寬度與車道寬度的比值應該是大致固定的,那麼當攝像機的焦距、俯仰角等引數固定後,影象上車道寬度(畫素數)與車輛寬度(畫素數)也滿足這個比例。根據之前檢測的車道方程,就可以計算出感興趣區域內任意縱座標上車輛影象寬度的範圍,並剔除寬度不在此範圍內的疑似區域。

  在以往的車輛驗證方法中,最常用的是對稱性測度驗證。這種演算法的計算量較大,且對於背景複雜,對稱度差影象的驗證效果不盡人意。為了解決這個問題,該系統採用了一種基於邊緣二值化影象,通過搜尋車輛左右邊緣進行驗證的演算法。

  假設疑似區域的寬度為W,區域左邊緣的座標為(X1,Y1),右邊緣的水平座標為(X2,Y2)。定義函式:

  式中:f(x,y)為(x,y)點的灰度值。在區間(X1-W/4,X1+W/4)內搜尋g(u)的最大值點,該點對應的水平座標X1’就是車輛的左邊緣座標。同理也可以搜尋到車輛的右邊緣X2’。如果左右邊緣的g(u)值均大於某閾值,那麼就可以認定該車輛確實存在。實驗證明,該演算法能排除掉大量的“虛警”區域並得到真實車輛的兩側邊緣。

  2.3 車輛跟蹤

  現關心的是前方車輛與本車相對的二維位置和速度,因此只需要使用卡爾曼濾波器預測橫座標x、橫向速度Vx、縱座標y、縱向座標Vy這四個狀態向量。此外由於x方向和y方向的狀態向量沒有直接聯絡,所以可以將其分為兩組分別處理。

  在車輛行駛過程中,由於顛簸或遮擋等原因,系統可能會將路牌、灌木叢等物體誤認為是車輛檢測出來,產生虛警。而這些虛警物體往往只能在連續數幀影象中存在。如果不採取措施,系統就會時常產生短促的報警。

  當影象取樣間隔足夠短時,相鄰幀內同一車輛的位置會具有很大的相關性。

  系統採用檢測與跟蹤相結合的方法,根據第n幀影象獲得的資訊,預測車輛在第n+1幀影象中的位置等資訊,並與n+1幀影象中實際檢測到的結果進行比對。如果二者匹配度最大且超出一定值,則認定為同一車輛,繼續進行跟蹤、報警,否則認為此車已被遮擋或消失,暫時不做處理,數幀後被剔除出去。

  2.4 測距報警

  車間測距通常採用幾何投影模型,採用了一種簡化的車距模型公式L×W=C,其中L為兩車間距,單位為m;W為影象上目標車輛處車道寬度,單位為pixel;C為常數,可通過事先的標定獲得。然而兩車間安全車距S採用文獻推導的臨界安全車距公式動態得到。

  式中:Vr為相對車速,由對測出車距求導得到相對車速後進行卡爾曼濾波得到;Vb為本車車速,由GPS得到。

  如果告警頻率過高,容易使駕駛員麻痺大意,過低可能使駕駛員來不及做出反應,因此該系統採用由遠至近的三段報警。

  若車距d≥1.5S,判定為3級威脅,發出長而緩的報警聲,提醒駕駛員前方有障礙物,但暫無危險;若車距S≤d≤1.5S,判定為2級威脅,發出較急促的報警聲,提醒駕駛員減速;若車距d≤S,判定為1級威脅,發出短而急的報警聲,提醒駕駛員制動;3種狀態下的告警聲差異很大,駕駛員可以很容易地根據報警聲判斷威脅等級。

  3 試驗結果

  系統框架及所有演算法在Boiland C++ Builder 6環境下編譯完成。為了驗證系統演算法的可靠性和實時性,利用在合肥市環城高速公路上採集不同車型、不同路段、不同環境光下多組道路影象作為測試序列,進行了大量實驗。

  圖3為典型道路場景下的實驗結果,圖3(a)為大型卡車;(b)為小型麵包車;(c)為遠距離處;(d)為近距離處的檢測結果。系統將檢測到的目標用黑框標記出來。

  可以看出,系統能夠檢測到本車道內不同距離上的各種車型車輛。在高速公路上的實驗結果表明,在最大車速100 km/h的情況下,系統在Celeron M 600 MHz處理器上的處理速度為8 j/s左右,也就是說處理一幀影象的時間內車輛行駛3~4 m,基本滿足實時報警的要求。在一般光照條件下,系統正常報警的縱向距離超過200 m,視場角遠遠大於雷達(一般為±7°)。

  為了驗證單目視覺測距準確性,在市內道路上採集了前車與本車距離從5~100 m的一組影象。對採集的影象進行處理後,根據公式推匯出本車與前車距離以及實際距離見表1。表中資料顯示,單目視覺測距的相對誤差都在5%以內,可以滿足實際工作中測距告警的需要。

  4 結語

  本文設計了一個基於單目視覺的汽車追尾預警系統。該系統採用了一種基於光密度差的道路檢測演算法,並使用了一種以車輛陰影檢測為主、左右邊緣檢測為輔的車輛探測方法,同時採用了簡單、實用的測距和報警方法。高速公路上的實驗結果證明了該系統的實時性、魯棒性和準確性。該系統目前還沒有在雨霧天氣或缺少照明的夜間環境下進行試驗,未來我們將針對這些使用環境對系統做進一步改進和優化。