摘要: 為提高城市交通環境下車輛主動安全性,保障行人安全,提出了基于車載視覺傳感器的行人保護方法。利用Adaboost 算法實現行人的快速檢測,結合Kalman 濾波原理跟蹤行人,以獲取其運行軌跡。 該方法利用離散Adaboost 算法訓練樣本類Haar 特征,得到識別行人的級聯分類器,遍歷車載視覺采集的圖像,以獲取行人目標;結合Kalman 濾波原理,對檢測到的行人目標進行跟蹤,建立檢測行人的動態感興趣區域,利用跟蹤結果分析行人的運行軌跡。 試驗表明: 該方法平均耗時約80 ms /幀,檢測率達到88%; 結合Kalman 濾波原理跟蹤后,平均耗時降到55 ms /幀,實時性較好。
隨著汽車保有量的不斷增加,道路交通事故和因車禍傷亡的人數居高不下。 為滿足人們對汽車安全性能要求的日益提高,越來越多的先進技術被應用到汽車主動安全領域。在道路交通事故中,主要的受害群體是參與交通系統中的行人和騎自行車的人等。據美國高速公路安全管理局( NHTSA) 的資料顯示,2008 年美國由于交通事故導致69 000 個行人死亡或者受傷、4 378 個行人死亡,行人死亡人數占全年交通事故死亡總人數的11. 7%。2007 年我國因交通事故導致行人死亡的人數為21 106 人,占交通事故死亡總人數的25. 9%,行人受傷人數為70 838 人,占交通事故受傷總人數的18. 6%. 與一些發達國家相比,由于我國的交通模式主要是混合交通模式,導致交通事故死亡原因和傷害模式與發達國家不同。
近年來,為保障行人安全、提高汽車主動安全性能,國內外一些科研院所對行人保護技術進行了研究探討,在不斷完善汽車被動安全系統的同時,逐漸發展和應用主動安全系統,結合行人保護概念和技術的引入,完善對行人的保護。 如Bajracharya等建立了雙目視覺行人保護集成系統,實現道路交通場景下40 m 距離范圍內行人的檢測與跟蹤。
Munder 等融合行人的點分布形狀模型和紋理特征建立了行人識別分類器,采用基于粒子濾波的貝葉斯方法實現行人的跟蹤。德國Enzweiler 等分別針對統計學習中的小波特征、線性支持向量機以及神經網絡的方法進行比較分析,通過設計不同尺度的分類器來檢測圖像中的行人。清華大學的江帆等提出一種基于模型融合的行人跟蹤算法,結合離線學習和在線互學習對模型進行更新。中國科學技術大學程有龍等將行人檢測的先驗知識融入到跟蹤模型自學習過程中,對被跟蹤行人進行動態建模,從而實現在真實監控場合下跟蹤具有復雜運動的行人。多傳感器信息融合以及行人模型的建立要求較大的計算量和計算參數,很難滿足類似車輛主動安全預警等系統實時性要求。 本文采用車載單目視覺傳感器,利用訓練得到的行人識別級聯分類器實時獲取車輛前方的行人,并對其進行跟蹤以記錄其運動軌跡,從而為駕駛員和行人的有效預警提供技術參考。
1 基于Adaboost 算法的行人檢測
1. 1 Adaboost 算法原理
Adaboost 算法通過訓練得到由分類能力一般的弱分類器疊加而成的強分類器,再將若干個強分類器串連成一個級聯分類器來遍歷圖像。為快速實現行人的檢測和防撞預警,鑒于Adaboost 算法的特點,本文選擇離散Adaboost 算法訓練得到識別行人的級聯分類器,以快速排除圖像中大部分非行人窗口,其結構如圖1 所示。 其中,各階段的強分類器訓練過程如圖2 所示。
圖1 N 階級聯分類器結構示意
圖2 離散Adaboost 訓練算法
從其訓練過程可知,該算法主要通過調整訓練樣本的權重,強化對錯誤分類樣本的訓練,最后通過權重組合級聯所有的弱分類器形成強分類器。
1. 2 樣本的離線訓練與行人的在線檢測
本文采用Adaboost 算法訓練得到識別行人的級聯分類器,通過程序加載分類器實現行人的在線檢測,檢測流程如圖3 所示。
樣本的離線訓練模塊主要是為了獲得識別行人的級聯分類器,具體過程如下所示。
(1) 樣本獲取及預處理: 行人樣本通過離線手動分割的車輛前方不同距離、不同走向、不同衣著和尺寸的行人圖像,統一縮放為16 × 32 像素的尺寸; 非行人樣本是從不含行人的背景圖像中分割得到的。 為減小訓練樣本的類內差異,降低光照不同對訓練結果的影響,采用直方圖均衡化方法對樣本進行預處理。 本文選擇的訓練樣本共3 060 幅,其中行人樣本2 100 幅,非行人樣本960 幅;
(2) 樣本特征提取: 選用P. Viola 等提出的類Haar 特征作為行人檢測的特征,該特征主要描述圖像模式相鄰區域的特征差異,可用積分圖快速計算矩形區域的特征值;
(3) 訓練結果: 訓練得到的級聯分類器由20 級強分類器組成,每個強分類器包含了不同個數的弱分類器,每個弱分類器由一個類Haar 特征、閾值和指示不等號方向組成。 隨著分類器級數的增大,強分類器中所包含弱分類器即類Haar 特征數量也越多。 訓練得到的前6 級強分類器中所包含的類Haar 特征及其數量見表1 所示。
行人在線檢測模塊是根據訓練得到的分類器對待檢圖像的各子窗口進行判別,檢測結果是一系列的目標矩形,顯示行人在圖像中的位置,本文通過縮放檢測子窗口來遍歷待檢圖像,以分割圖像中大小未知的行人目標,具體檢測過程如下。
(1) 獲取大小為320 × 240 像素的待檢圖像,設置最小檢測窗口大小為32 × 64 像素,從圖像的左下角開始逐行向右每隔一個像素移動檢測窗口,直至達到圖像邊緣為止;
(2) 利用訓練模塊得到的級聯分類器按圖1所示方法對各待檢子窗口進行判決,完成該級檢測窗口大小的掃描: 如果該待檢子窗口能通過所有級聯分類器則說明其為行人窗口; 如果有任何一個強分類器不能通過就可以判定其為非行人窗口;
(3) 按照試驗確定的比例系數放大檢測子窗口大小,并按上述步驟重新對待檢圖像進行掃描,獲取較大尺寸的行人目標。
2 基于Kalman 濾波的行人跟蹤
使用離散Kalman 濾波預測行人在下一時刻可能出現的區域,縮短目標搜索時間,實現行人的快速跟蹤定位。 行人跟蹤結果不但能獲得行人的運動軌跡,也能為行人的運動分析提供可靠的數據來源。
2. 1 Kalman 濾波算法原理
Kalman 濾波由動態過程模型和反饋修正環節組成。 動態過程模型實現預測功能,反饋修正環節則把增益和殘差的乘積作為強制函數作用在模型上。 設系統的狀態方程和觀測方程如下:
式中: Xk是時刻k 的n 維狀態向量; Zk是時刻k的m 維觀測向量; n 階方陣Фk - 1為狀態轉移矩陣;m × n 階矩陣Hk為觀測矩陣; Wk - 1、Vk是2 個服從正態分布的零均值高斯白噪聲序列,方差陣分別為Qk、Rk 。
Kalman 濾波過程可由預測方程:
和濾波遞推方程:
表示,其中:
為濾波器增益;
為預測誤差方差陣;
為濾波誤差方差陣。
2. 2 行人跟蹤
根據Kalman 濾波原理,本文對檢測得到的車輛前方行人質心位置和行人外接矩形的高度與寬度進行跟蹤。 在每幀圖像中,行人的狀態可以用其質心的位置、位置變化率和外界矩形框的大小來表示。 假設(xt,yt) 代表行人區域質心點在第t 幀圖像的像素位置; (Δxt,Δyt) 分別代表質心的變化; (ht,wt) 是包圍行人外接矩形的高度和寬度; (Δht,Δwt) 是高度和寬度的變化。 因此,在第t 幀圖像中行人的狀態向量可以表示為:
由于行人的運動速度較慢,相鄰2 幀圖像之間的時間間隔較短,可假設行人在單位時間間隔內做勻速運動,狀態轉移矩陣可以表示如下:
為了觀測道路區域各個狀態變量,取觀測向量Zt = ( xt,yt,ht,wt) T,選取系統測量矩陣為:
為應用Kalman 濾波跟蹤車輛前方行人,必須確定狀態變量和誤差方差矩陣的初始值。 本文在連續2 幀圖像成功實現行人的識別定位后開始進行基于Kalman 濾波跟蹤。 假設檢測到行人的圖像是第t 幀和t + 1 幀,初始狀態向量X0可表示為:
此外,還需要定義相應的協方差矩陣P0 。 由于Pt隨著獲取更多的圖像反復更新,為此可以給它一個較大的初值。 假設預測位置在x 和y 方向上離真實位置具有± 10 個像素誤差,在x 和y 方向上速度離真實速度有± 5 個像素誤差。 由于行人腿部的運動,使得行人外界矩形的寬度要比高度有較大的變化,所以假設外接矩形窗口的高度與實際行人矩形窗口的高度誤差有± 5 個像素,高度的變化率有± 3 個像素誤差; 寬度的誤差為± 10 個像素,寬度的變化率有± 5 個像素誤差。 由此,誤差協方差矩陣P0可定義為:
除了X0和P0,還需要估計系統狀態方程和測量方程的誤差協方差矩陣Q 和R。通過觀察,可認為系統狀態噪聲如下: 在x 和y 方向上系統定位誤差的標準偏差是5 個像素,由此進一步認為速度的標準偏差為每幀2 個像素。 而行人外界矩形窗口的高度標準偏差為3 個像素,其變化率為1 個像素,行人矩形窗口寬度的標準偏差為5 個像素,其變化率為2 個像素。 因此,狀態變量噪聲協方差矩陣可以表示為:
類似地,定義測量方程在x 和y 方向上的標準偏差為3 個像素,高度標準偏差為2 個像素,寬度的標準偏差為3 個像素。 因此:
利用上述的狀態預測和更新方程以及初始條件,可估計每一幀圖像狀態向量X^k(-) 和相應的協方差矩陣Pk( + )。協方差矩陣Pk( + ) 表示預測下一幀檢測行人矩形窗口位置的不確定范圍,Pk( + ) 越大,估計值越不穩定,搜索區域也就越大,此時,自動調整搜索區域[17]。
3 試驗及分析
行人檢測與跟蹤識別流程如下:
(1) 按照圖3 所示的在線檢測模塊分析CCD采集的序列圖像中是否存在行人,并記錄行人目標矩形的相關信息;
(2) 如果在序列圖像中連續2 幀檢測到行人,則啟動行人跟蹤程序,并用檢測結果更新Kalman濾波器,使其能預測下一幀中行人可能存在的區域;
(3) 對預測區域按照以下策略進行修正:以行人質心位置的估計值作為中心,將預測得出的行人矩形的高度和寬度各放大1. 5 倍,建立行人搜索的感興趣區域,在新的感興趣區域中用級聯分類器進行目標檢測,然后將檢測到的行人質心和矩形寬度與高度作為下一步預測的初始值;
(4) 跟蹤失效的處理: 在跟蹤過程中,如果檢測失效,則保持前一幀的行人信息,并在后續幀中繼續檢測,以防止由于偶然的漏檢造成跟蹤失效。
如檢測失敗超過一定的幀數( 本文設定為3 幀) ,則認為行人目標已消失,不再繼續跟蹤。
為驗證本文方法的有效性,在校內柏油道路上進行了白天正常光照條件下的試驗驗證,試驗平臺為所開發的無人駕駛試驗平臺DLUTIV-I,如圖3所示。 CCD 選用美國AVT 公司生產的F-033 黑白數字相機,圖像分辨率為320 × 240 像素,鏡頭視場角為25°,焦距為12 mm,采用酷睿2 雙核2. 2 GHz、2 GB 內存的工控機。 試驗結果表明,本文算法能實現10 ~ 30 m 范圍內的行人檢測,識別算法每幀約為80 ms,正確檢測率能達88% 左右; 利用Kalman 跟蹤預測后,由于建立了行人檢測的感興趣區域,有效減少了在圖像中掃描行人的時間,算法平均耗時約為55 ms /幀,實時性較好。 表2 統計了車輛在靜止和運動兩種狀態下行人檢測與跟蹤結果,在車輛運動的情況下,由于背景和行人在圖像中位置變化較大,造成誤警率較高。
表2 行人檢測與跟蹤試驗結果統計
圖4 是車輛由靜止到運動狀態下對前方1 個行人的跟蹤結果
行人在車輛靜止時背對著車輛向前方行走,行走到一定位置之后等候車輛起動,待車輛向前行駛一段距離后,行人繼續向前運動,并伴有橫穿道路等動作。 從圖5 的跟蹤曲線可以看出,識別行人的外接矩形寬度變化比較顯著,這符合實際情況,由于行人行走時腿部跨度造成封閉矩形寬度變化明顯; 由于行人相對于本車的距離變化是連續的,使得行人外接矩形的高度變化比較連續。
試驗表明,光照條件不同會對行人的識別與跟蹤結果產生一定影響,尤其當光照較強時,行人某些部位與地面或背景融為一體,灰度差值很小,造成行人定位不精確或者識別失效,如圖6 所示。
4 結束語
本文提出一種基于Adaboost 算法的行人檢測方法,根據行人運動速度慢的特點,提出利用Kalman 濾波對行人外接矩形的中心及其寬度和高度進行預測,建立動態可變的行人搜索感興趣區域,使每幀圖像處理的平均耗時由80 ms 左右降至55 ms,從而滿足實時性要求。 試驗表明,本文方法能夠識別車輛前方靜止和運動的行人,檢測率達到約88%。
行人檢測技術是汽車安全輔助駕駛研究領域的重要組成部分,下一步需要在行人檢測的基礎上,分析其運動狀態以及本車對其構成的危險程度。 在車輛與行人可能發生碰撞時,及時向駕駛員發出警示信息,當駕駛員沒有采取有效避碰措施時,系統啟動減速或緊急制動等操作,有效保障行人的安全。
試驗表明,本文研究工作還存在一定的不足,考慮因素還不全面,受光照條件的影響較。 下一步擬采取CCD 光圈自動調節裝置來改善白天強光照條件或者暗光照條件的成像質量,并研究如何提取有效表征和區分行人目標的特征、增加訓練樣本或者改進訓練方法。 同時,結合紅外傳感器研究傍晚或夜間等條件下的行人檢測。
評論
查看更多