基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法
【專利摘要】本發(fā)明公開了一種基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,一次性離線訓(xùn)練得到車輛模型,用此車輛模型在視頻流中實時檢測車輛團(tuán)塊Blob,并對每個車輛團(tuán)塊Blob計算特征點集進(jìn)行雙向金字塔光流跟蹤,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,形成車輛軌跡。本發(fā)明提供的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,是一完整的車輛跟蹤解決方案,在實際的智能交通、電子警察、視頻監(jiān)控、無人駕駛等領(lǐng)域可廣闊應(yīng)用;使用本發(fā)明的跟蹤方法,用戶可很好的解決當(dāng)前跟蹤算法中的經(jīng)典難題,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,如場景中車輛長期停留、尺度變化、陰影、局部遮擋、粘連等;特別對于惡劣天氣、低照度、高噪點也有較好結(jié)果。
【專利說明】基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,屬于車輛跟蹤技術(shù)。
【背景技術(shù)】
[0002]車輛跟蹤在智能交通、視頻監(jiān)控、無人駕駛等領(lǐng)域有非常廣泛的研究和應(yīng)用?;谝曨l的車輛跟蹤包括車輛的檢測和跟蹤兩個模塊,當(dāng)前絕大多數(shù)的車輛檢測都采用基于背景差分的方法,比如通過滑動平均、混合高斯、codebook或Vibe等算法得到背景模型,再通過差分、二值化、形態(tài)學(xué)處理、連通域分析,得到車輛團(tuán)塊Blob。該方法基于像素特征作處理,難以解決光照突變、車輛等紅燈時長時間停留、粘連、陰影、攝像機(jī)抖動等問題;通過后續(xù)的跟蹤算法也只能部分解決上述問題。
[0003]不依賴背景的車輛檢測與跟蹤方法有了一些研究成果。比如,基于特征點的車輛跟蹤算法,比如提取圖像的角點,通過光流法或不變量特征進(jìn)行幀間的匹配和跟蹤,該方法不受光照突變、車輛長時間停留、陰影、攝像機(jī)抖動等問題的影響,但其難點是如何把這些特征點歸類為獨立的車輛。又比如,基于知識的車輛檢測,比如基于邊緣對稱性、車窗、車輛輪廓模型等車輛檢測方法,但單獨采用這些車輛檢測方法的誤檢率比較高,比較適合作為輔助檢測方法。傳統(tǒng)的MeanShift跟蹤算法和粒子跟蹤算法,對跟蹤區(qū)域的全局特征進(jìn)行建模,通過一定策略尋找最佳候選區(qū)域,其不足是特征單一(顏色直方圖或LBP紋理),對顏色單調(diào)的目標(biāo)或者多目標(biāo)粘連時,容易漂移。TLD跟蹤算法將在線學(xué)習(xí)和光流跟蹤結(jié)合起來,通過在線檢測來修正跟蹤的錯誤,對單目標(biāo)可實現(xiàn)長時間的跟蹤,但該框架不適合多目標(biāo)尤其是多個同類目標(biāo)的跟蹤,而且在線學(xué)習(xí)較耗時。
【發(fā)明內(nèi)容】
[0004]發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,不使用傳統(tǒng)的背景差分法來檢測車輛,而是通過機(jī)器學(xué)習(xí)的方法,直接在視頻畫面中檢測出車輛團(tuán)塊Blob,并采用雙向金字塔光流的跟蹤方法,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,有效排除跟蹤錯誤的點,可以處理場景中車輛長時間停留、陰影、粘連、攝像機(jī)抖動等難題,形成穩(wěn)定的目標(biāo)軌跡,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,達(dá)到95%以上的準(zhǔn)確率。
[0005]技術(shù)方案:為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0006]基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,一次性離線訓(xùn)練得到車輛模型,用此車輛模型在視頻流中實時檢測車輛團(tuán)塊Blob,并對每個車輛團(tuán)塊Blob計算特征點集進(jìn)行雙向金字塔光流跟蹤,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,形成車輛軌跡,具體包括如下步驟:
[0007]首先說明,本發(fā)明所有使用到的圖像均為預(yù)處理后的圖像,所述預(yù)處理的方法如下:將輸入圖像由RGB圖像轉(zhuǎn)換為灰度圖像,并進(jìn)行尺寸歸一化,計算尺寸歸一化后的灰度圖像的平均亮度和直方圖分布,根據(jù)計算結(jié)果判斷檢測到的圖像的場景為白天、傍晚還是夜間:若檢測到的圖像的場景屬于白天或傍晚,則完成圖像預(yù)處理;若檢測到的圖像的場景屬于傍晚,則對尺寸歸一化后的灰度圖像作對比度拉伸和/或直方圖均衡化處理,完成圖像預(yù)處理;
[0008](I)離線訓(xùn)練車輛模型:收集白天和夜間的正負(fù)樣本圖像,通過機(jī)器學(xué)習(xí)算法,提取圖像特征,進(jìn)行學(xué)習(xí)訓(xùn)練,得到白天車輛模型和夜間車輛模型;
[0009](2)車輛檢測:對于預(yù)處理后的灰度圖像,采用與學(xué)習(xí)訓(xùn)練相同的機(jī)器學(xué)習(xí)算法,提取與學(xué)習(xí)訓(xùn)練相同的圖像特征,用學(xué)習(xí)訓(xùn)練好的模型,進(jìn)行車輛檢測,以車輛團(tuán)塊Blob表征車輛,獲取圖像中的所有車輛團(tuán)塊Blob:若為白天和傍晚場景則調(diào)用白天車輛模型,若為夜間場景則調(diào)用夜間車輛模型;所述車輛團(tuán)塊Blob使用矩形表示,包括質(zhì)心坐標(biāo)(cx, cy)和尺寸信息,所述尺寸包括寬度width和高度height ;將當(dāng)前幀中檢測得到的車輛團(tuán)塊Blob送入車輛軌跡匹配模塊;在檢測車輛過程中,對滑動窗口進(jìn)行預(yù)處理,不滿足預(yù)處理條件的滑動窗口直接跳過;
[0010](3)車輛跟蹤:分析前一幀圖像和當(dāng)前幀圖像:對于存在于前一幀圖像中的車輛,通過對應(yīng)的跟蹤器跟蹤得到該車輛在當(dāng)前幀圖像中的軌跡;對于前一幀圖像中不存在而當(dāng)前幀中存在的車輛,則將該車輛作為新的車輛,并分配一個對應(yīng)的跟蹤器,在后續(xù)幀圖像中對該車輛進(jìn)行跟蹤;所述跟蹤器采用的跟蹤算法為雙向金字塔光流算法,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,形成車輛軌跡;所述雙向金字塔光流算法具體包括如下步驟:
[0011](31)對前一幀圖像,在每個車輛團(tuán)塊Blob內(nèi)部,計算Harris角點,如果角點數(shù)目NI少于閾值Tl,則計算差值N2=T1-N1,求不小于N2且能完全開方的最小整數(shù)N3,在車輛團(tuán)塊Blob內(nèi)部按照等間隔取N3個點,將N3個采樣點和NI個Harris角點一起作為光流跟蹤的原始點集Pl ;
[0012](32)根據(jù)前一幀圖像和當(dāng)前幀圖像:首先對原始點集Pl進(jìn)行L層金字塔光流跟蹤,運(yùn)動方向為從前一幀圖像到當(dāng)前幀圖像,得到跟蹤結(jié)果點集P2 ;再對跟蹤結(jié)果點集P2做反向的L層金字塔流光跟蹤,運(yùn)動方向為從當(dāng)前幀圖像到前一幀圖像,得到反向跟蹤結(jié)果點集PO ;
[0013](33)對反向跟蹤結(jié)果點集PO與原始點集Pl進(jìn)行誤差分析:分別計算PO和Pl中對應(yīng)點的歐氏距離及其中值,標(biāo)記出歐氏距離超過中值或者超過閾值T2的點;分別計算PO和Pl中對應(yīng)點的NXN鄰域的歸一化互相關(guān)系數(shù)及其中值,標(biāo)記出互相關(guān)系數(shù)小于中值的點;將所有標(biāo)記出的點在原始點集PU跟蹤結(jié)果點集P2和反向跟蹤結(jié)果點集PO中刪除,最終得到過濾后的原始點集P1’、過濾后的跟蹤結(jié)果點集P2’和過濾后的反向跟蹤結(jié)果點集PO,;
[0014](34)判斷車輛判為跟蹤是否可信,若車輛判為跟蹤不可信,則使用Kalman濾波方法,根據(jù)該車輛團(tuán)塊Blob在前幾幀圖像中的位置進(jìn)行預(yù)測,將預(yù)測出的位置作為車輛在當(dāng)前幀中的預(yù)測軌跡,將預(yù)測軌跡送入車輛軌跡匹配模塊中;
[0015]車輛判為跟蹤不可信的判據(jù)為:若過濾后的跟蹤結(jié)果點集P2’中的點的數(shù)目少于閾值T3,則該車輛判為跟蹤不可信;計算PO’和P1’中對應(yīng)點的歐氏距離及其中值,若中值大于閾值T4,則該車輛判為跟蹤不可信;否則車輛判為跟蹤可信;
[0016](35)若車輛判為跟蹤可信,則計算車輛在當(dāng)前幀的軌跡:[0017]計算Ρ1`和P2’中對應(yīng)點在X方向和y方向上的位移Dx和Dy,分別取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的X方向和y方向位移dx和dy ;計算P1’中任意兩點在X方向和y方向上的間距Dx1和Dy1,計算P2’中任意兩點在X方向和y方向上的間距Dx2和Dy2 ;將對應(yīng)的Dx1和Dx2相除,得到一系列比值Dx2ZDx1,取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的X方向的變換尺度Sx ;將對應(yīng)的Dy1和Dy2相除,得到一系列比值DyVDy1,取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的y方向的變換尺度Sy ;
[0018]根據(jù)該車輛團(tuán)塊Blob在前一幀圖像中的質(zhì)心坐標(biāo)、尺寸、位移和變化尺度,得到該車輛團(tuán)塊Blob在當(dāng)前幀圖像中的位置(以Blob表征),計算方法如下:
[0019]Cx' =cx+dx
[0020]c; =cy+dy
[0021]width’=WidthX sx
[0022]height’ =height X sy
[0023]以(cx, cy)、width和height表示車輛團(tuán)塊Blob在前一幀圖像中的信息,以(cx’,cy’)、width’和height’表示車輛團(tuán)塊Blob在當(dāng)前幀圖像中的信息;
[0024](36)對計算得到的所有車輛軌跡進(jìn)行合理性檢驗:若車輛軌跡不合理,則使用Kalman濾波方法, 根據(jù)該車輛團(tuán)塊Blob在前幾幀圖像中的位置進(jìn)行預(yù)測,將預(yù)測出的位置作為車輛在當(dāng)前幀中的預(yù)測軌跡(以Blob表征);車輛在當(dāng)前幀中的預(yù)測軌跡和光流跟蹤得到的軌跡統(tǒng)稱為車輛當(dāng)前幀軌跡,將車輛當(dāng)前幀軌跡送入車輛軌跡匹配模塊中;
[0025]車輛軌跡合理性判據(jù)為:根據(jù)車輛軌跡,計算車輛在當(dāng)前幀相對于前一幀的位移Lxl> Lyl和相對于起始幀的位移Lx2、Ly2 ;如果Lxl、Lyl有向左后或右后方的分量且超過閾值T5,則判為不合理;如果Lxl與Lx2的方向相反且Lxl超過閾值T5、或Lyl與Ly2的方向相反且Lyl超過閾值T5,則判為不合理;
[0026](4)車輛軌跡匹配:使用車輛軌跡匹配模塊,將所有車輛當(dāng)前幀軌跡分別與當(dāng)前幀中檢測得到的所有車輛團(tuán)塊Blob進(jìn)行兩兩匹配:若車輛當(dāng)前幀軌跡與某個車輛團(tuán)塊Blob相匹配,則用該車輛團(tuán)塊Blob替代車輛當(dāng)前幀軌跡;
[0027]兩個Blob匹配的準(zhǔn)則為:計算寬度差dw、高度差dh、質(zhì)心距離dcx和dcy,分別滿足:dw小于最小寬度的一半,dh小于最小高度的一半,dcx小于最小寬度的1.5倍,dcy小
于最小高度的一半;
[0028](5)車輛軌跡刪除:在當(dāng)前幀中,對于車輛當(dāng)前幀軌跡中的預(yù)測軌跡,若未與任何檢測得到的車輛團(tuán)塊Blob匹配,則予以刪除;對于車輛當(dāng)前幀軌跡,若質(zhì)心超出圖像邊界、或在前后連續(xù)5幀中均未被匹配,則予以刪除。
[0029]所述步驟(1)中,正負(fù)樣本圖像中,正樣本圖像為各種類型車輛的頭部和尾部區(qū)域圖像,負(fù)樣本圖像為正樣本圖像以外的圖像;所述車輛類型包括轎車、面包車、公交車、卡車和渣土車等。
[0030]所述步驟(1)中,機(jī)器學(xué)習(xí)算法為Adaboost或SVM ;圖像特征為Haar Like特征、LBP特征和HOG特征中的一種或兩種以上的組合。
[0031]在圖像預(yù)處理過程中,對于檢測到的圖像,首先將其縮小到規(guī)定分辨率后,再進(jìn)行灰度圖像的轉(zhuǎn)換。
[0032]所述步驟(2)中,對滑動窗口進(jìn)行預(yù)處理,具體為:計算滑動窗口的像素均值、方差和梯度和,如果不在設(shè)定范圍內(nèi)時,判定滑動窗口不滿足預(yù)處理條件。
[0033]所述步驟(3)中,相關(guān)參數(shù)的取值范圍如下:采樣點數(shù)目閾值Tl取值[25,100],金字塔層數(shù)L取值[4,7],歐氏距離閾值T2取值[5,10],互相關(guān)鄰域窗口尺寸N取值[5,10],正確跟蹤的光流點數(shù)目閾值T3取值[5,20],反向跟蹤誤差閾值T4取值[10,20],位移閾值T5 取值[10,20]。
[0034]通過以上步驟,每幀的車輛軌跡會不斷更新,基本上經(jīng)過3?5幀左右即可達(dá)到穩(wěn)定,認(rèn)為是穩(wěn)定的車輛,其中的信息包括所屬特征點的軌跡、目標(biāo)尺寸、質(zhì)心、速度、方向等,可以用來做交通違章檢測、交通流量統(tǒng)計、視覺導(dǎo)航等高級應(yīng)用。
[0035]有益效果:本發(fā)明提供的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,是一個完整的車輛跟蹤解決方案,在實際的智能交通、電子警察、視頻監(jiān)控、無人駕駛等領(lǐng)域可廣闊應(yīng)用;與現(xiàn)有技術(shù)相比,使用本發(fā)明的跟蹤方法,用戶可以很好的解決當(dāng)前跟蹤算法中的經(jīng)典難題,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,比如場景中車輛長期停留、尺度變化、陰影、局部遮擋、粘連等問題;特別對于惡劣天氣、低照度、高噪點也有較好的結(jié)果。
【專利附圖】
【附圖說明】
[0036]圖1為本發(fā)明方法流程圖。
【具體實施方式】
[0037]下面結(jié)合附圖對本發(fā)明作更進(jìn)一步的說明。
[0038]如圖1所示,基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,一次性離線訓(xùn)練得到車輛模型,用此車輛模型在視頻流中實時檢測車輛團(tuán)塊Blob,并對每個車輛團(tuán)塊Blob進(jìn)行雙向金字塔光流跟蹤,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,形成車輛軌跡,下面就具體步驟加以說明。
[0039](I)離線訓(xùn)練車輛模型:收集白天和夜間的正負(fù)樣本圖像,通過機(jī)器學(xué)習(xí)算法,提取圖像特征,進(jìn)行學(xué)習(xí)訓(xùn)練,得到白天車輛模庫和夜間車輛模型。
[0040]具體為:收集各種車輛圖像作為正樣本,包括轎車、面包車、公交車、卡車和渣土車等,取其頭部和尾部區(qū)域圖像;收集不包含上述車輛的圖像作為負(fù)樣本;一般要求正樣本要超過3000張圖片,負(fù)樣本要超過6000張;通過Adaboost機(jī)器學(xué)習(xí)方法,提取10種HaarLike特征,進(jìn)行學(xué)習(xí)訓(xùn)練,得到車輛模型,保存在車輛模型庫中;白天和夜間的車輛模型獲得方法相同。
[0041]在訓(xùn)練時取全部特征的10%作為特征集,在結(jié)果基本不變的情況下,能夠大大減少訓(xùn)練時間;最終選取10種Haar Like特征,其中5個水平垂直特征,5個旋轉(zhuǎn)特征。
[0042]在車輛模型訓(xùn)練完成后,需要進(jìn)行系統(tǒng)初始化,為系統(tǒng)分配必須的變量和內(nèi)存,讀入已經(jīng)訓(xùn)練好的車輛模型文件,設(shè)置算法參數(shù)等。
[0043](2)圖像預(yù)處理:對于輸入圖像,將RGB彩色圖像轉(zhuǎn)換為灰度圖像,并進(jìn)行尺寸歸一化到CIF分辨率(352*288),計算灰度圖像平均亮度和直方圖分布,判斷圖像場景屬于白天、傍晚還是夜間;若為白天,則調(diào)用白天車輛模型庫;若為傍晚,則對圖像作對比度拉伸和/或直方圖均衡化處理,再調(diào)用白天車輛模型庫;若為夜間,則調(diào)用夜間車輛模型庫。
[0044](2)車輛檢測:對于預(yù)處理后的灰度圖像,采用與學(xué)習(xí)訓(xùn)練相同的機(jī)器學(xué)習(xí)算法,提取與學(xué)習(xí)訓(xùn)練相同的圖像特征,用學(xué)習(xí)訓(xùn)練好的模型,進(jìn)行車輛檢測,以車輛團(tuán)塊Blob表征車輛,獲取圖像中的所有車輛團(tuán)塊BI ο b:若為白天和傍晚場景則調(diào)用白天車輛模型,若為夜間場景則調(diào)用夜間車輛模型;所述車輛團(tuán)塊Blob使用矩形表示,包括質(zhì)心坐標(biāo)(cx, cy)和尺寸信息,所述尺寸包括寬度width和高度height ;將當(dāng)前幀中檢測得到的車輛團(tuán)塊Blob送入車輛軌跡匹配模塊;在檢測車輛過程中,對滑動窗口進(jìn)行預(yù)處理,不滿足預(yù)處理條件的滑動窗口直接跳過;對滑動窗口進(jìn)行預(yù)處理,具體為:計算滑動窗口的像素均值、方差和梯度和,如果不在設(shè)定范圍內(nèi)時,判定檢測圖片不滿足預(yù)處理條件。
[0045](3)車輛跟蹤:分析前一幀圖像和當(dāng)前幀圖像:對于存在于前一幀圖像中的車輛,通過對應(yīng)的跟蹤器跟蹤得到該車輛在當(dāng)前幀圖像中的軌跡;對于前一幀圖像中不存在而當(dāng)前幀中存在的車輛,則將該車輛作為新的車輛,并分配一個對應(yīng)的跟蹤器,在后續(xù)幀圖像中對該車輛進(jìn)行跟蹤;所述跟蹤器采用的跟蹤算法為雙向金字塔光流算法,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,形成車輛軌跡;所述雙向金字塔光流算法具體包括如下步驟:
[0046](31)對前一幀圖像,在每個車輛團(tuán)塊Blob內(nèi)部,計算Harris角點,如果角點數(shù)目NI少于閾值Tl,則計算差值N2=T1-N1,求不小于N2且能完全開方的最小整數(shù)N3,在車輛團(tuán)
塊Blob內(nèi)部按照拋X V^3等間隔取N3個點,將N3個采樣點和NI個Harris角點一起作
為光流跟蹤的原始點集Pl ;T1=25 ;
[0047](32)根據(jù)前一幀圖像和當(dāng)前幀圖像:首先對原始點集Pl進(jìn)行L層金字塔光流跟蹤,運(yùn)動方向為從前一幀圖像到當(dāng)前幀圖像,得到跟蹤結(jié)果點集Ρ2 ;再對跟蹤結(jié)果點集Ρ2做反向的L層金字塔流光跟蹤,運(yùn)動方向為從當(dāng)前幀圖像到前一幀圖像,得到反向跟蹤結(jié)果點集PO ;L=4 ;
[0048](33)對反向跟蹤結(jié)`果點集PO與原始點集Pl進(jìn)行誤差分析:分別計算PO和Pl中對應(yīng)點的歐氏距離及其中值,標(biāo)記出歐氏距離超過中值或者超過閾值T2的點;分別計算PO和Pl中對應(yīng)點的NXN鄰域的歸一化互相關(guān)系數(shù)及其中值,標(biāo)記出互相關(guān)系數(shù)小于中值的點;將所有標(biāo)記出的點在原始點集PU跟蹤結(jié)果點集P2和反向跟蹤結(jié)果點集PO中刪除,最終得到過濾后的原始點集P1’、過濾后的跟蹤結(jié)果點集P2’和過濾后的反向跟蹤結(jié)果點集PO’ ;T2=8, N=IO ;
[0049](34)判斷車輛判為跟蹤是否可信,若車輛判為跟蹤不可信,則使用Kalman濾波方法,根據(jù)該車輛團(tuán)塊Blob在前幾幀圖像中的位置進(jìn)行預(yù)測,將預(yù)測出的位置作為車輛在當(dāng)前幀中的預(yù)測軌跡,將預(yù)測軌跡送入車輛軌跡匹配模塊中;
[0050]車輛判為跟蹤不可信的判據(jù)為:若過濾后的跟蹤結(jié)果點集Ρ2’中的點的數(shù)目少于閾值Τ3,則該車輛判為跟蹤不可信;計算PO’和Ρ1’中對應(yīng)點的歐氏距離及其中值,若中值大于閾值Τ4,則該車輛判為跟蹤不可信;否則車輛判為跟蹤可信;Τ3=10,Τ4=15。
[0051](35)若車輛判為跟蹤可信,則計算車輛在當(dāng)前幀的軌跡:
[0052]計算Ρ1’和Ρ2’中對應(yīng)點在X方向和y方向上的位移Dx和Dy,分別取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的X方向和y方向位移dx和dy ;計算P1’中任意兩點在X方向和y方向上的間距Dx1和Dy1,計算P2’中任意兩點在X方向和y方向上的間距Dx2和Dy2 ;將對應(yīng)的Dx1和Dx2相除,得到一系列比值Dx2ZDx1,取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的X方向的變換尺度Sx ;將對應(yīng)的Dy1和Dy2相除,得到一系列比值Dy2/Dyi,取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的y方向的變換尺度sy。
[0053]根據(jù)該車輛團(tuán)塊Blob在前一幀圖像中的質(zhì)心坐標(biāo)、尺寸、位移和變化尺度,得到該車輛團(tuán)塊Blob在當(dāng)前幀圖像中的位置(以Blob表征),計算方法如下:
[0054]cx,=cx+dx
[0055]cy,=cy+dy
[0056]width’=WidthX sx
[0057]height’=height X sy
[0058]以(cx, cy)、width和height表示車輛團(tuán)塊Blob在前一巾貞圖像中的信息,以(cx’,cy’)、width’和height’表示車輛團(tuán)塊Blob在當(dāng)前巾貞圖像中的信息;
[0059](36)對計算得到的所有車輛軌跡進(jìn)行合理性檢驗:若車輛軌跡不合理,則使用Kalman濾波方法,根據(jù)該車輛團(tuán)塊Blob在前幾幀圖像中的位置進(jìn)行預(yù)測,將預(yù)測出的位置(以Blob表征)作為車輛在當(dāng)前幀中的預(yù)測軌跡;車輛在當(dāng)前幀中的預(yù)測軌跡和光流跟蹤得到的軌跡統(tǒng)稱為車輛當(dāng)前幀軌跡,將車輛當(dāng)前幀軌跡送入車輛軌跡匹配模塊中。
[0060]車輛軌跡合理性判據(jù)為:根據(jù)車輛軌跡,計算車輛在當(dāng)前幀相對于前一幀的位移Lxl> Lyl和相對于起始幀的位移Lx2、Ly2 ;如果Lxl、Lyl有向左后或右后方的分量且超過閾值T5,則判為不合理;如果Lxl與Lx2的方向相反且Lxl超過閾值T5、或Lyl與Ly2的方向相反且Lyl超過閾值T5,則判為不合理;T5=10。
[0061](4)車輛軌跡匹配:使用車輛軌跡匹配模塊,將所有車輛當(dāng)前幀軌跡分別與當(dāng)前幀中檢測得到的所有車輛團(tuán)塊Blob進(jìn)行兩兩匹配:若車輛當(dāng)前幀軌跡與某個車輛團(tuán)塊Blob相匹配,則用該車輛團(tuán)塊Blob替代車輛當(dāng)前幀軌跡。
[0062]兩個Blob匹配的準(zhǔn)則為:計算寬度差dw、高度差dh、質(zhì)心距離dcx和dcy,分別滿足:dw小于最小寬度的一半,dh小于最小高度的一半,dcx小于最小寬度的1.5倍,dcy小
于最小高度的一半。
[0063](5)車輛軌跡刪除:在當(dāng)前幀中,對于車輛當(dāng)前幀軌跡中的預(yù)測軌跡,若未與任何檢測得到的車輛團(tuán)塊Blob匹配,則予以刪除;對于車輛當(dāng)前幀軌跡,若質(zhì)心超出圖像邊界、或在前后連續(xù)5幀中均未被匹配,則予以刪除。
[0064]通過以上步驟,每幀的車輛軌跡會不斷更新,基本上經(jīng)過3?5幀左右即可達(dá)到穩(wěn)定,認(rèn)為是穩(wěn)定的車輛,其中的信息包括所屬特征點的軌跡、目標(biāo)尺寸、質(zhì)心、速度、方向等,可以用來做交通違章檢測、交通流量統(tǒng)計、視覺導(dǎo)航等高級應(yīng)用。
[0065]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出:對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,其特征在于:所有使用到的圖像均為預(yù)處理后的圖像,所述預(yù)處理的方法如下:將輸入圖像由RGB圖像轉(zhuǎn)換為灰度圖像,并進(jìn)行尺寸歸一化,計算尺寸歸一化后的灰度圖像的平均亮度和直方圖分布,根據(jù)計算結(jié)果判斷檢測到的圖像的場景為白天、傍晚還是夜間:若檢測到的圖像的場景屬于白天或傍晚,則完成圖像預(yù)處理;若檢測到的圖像的場景屬于傍晚,則對尺寸歸一化后的灰度圖像作對比度拉伸和/或直方圖均衡化處理,完成圖像預(yù)處理;該車輛跟蹤方法具體包括如下步驟: (1)離線訓(xùn)練車輛模型:收集白天和夜間的正負(fù)樣本圖像,通過機(jī)器學(xué)習(xí)算法,提取圖像特征,進(jìn)行學(xué)習(xí)訓(xùn)練,得到白天車輛模型和夜間車輛模型; (2)車輛檢測:對于預(yù)處理后的灰度圖像,采用與學(xué)習(xí)訓(xùn)練相同的機(jī)器學(xué)習(xí)算法,提取與學(xué)習(xí)訓(xùn)練相同的圖像特征,用學(xué)習(xí)訓(xùn)練好的模型,進(jìn)行車輛檢測,以車輛團(tuán)塊Blob表征車輛,獲取圖像中的所有車輛團(tuán)塊Blob:若為白天和傍晚場景則調(diào)用白天車輛模型,若為夜間場景則調(diào)用夜間車輛模型;所述車輛團(tuán)塊Blob使用矩形表示,包括質(zhì)心坐標(biāo)(cx,cy)和尺寸信息,所述尺寸包括寬度width和高度height ;將當(dāng)前幀中檢測得到的車輛團(tuán)塊Blob送入車輛軌跡匹配模塊;在檢測車輛過程中,對滑動窗口進(jìn)行預(yù)處理,不滿足預(yù)處理條件的滑動窗口直接跳過; (3)車輛跟蹤:分析前一幀圖像和當(dāng)前幀圖像:對于存在于前一幀圖像中的車輛,通過對應(yīng)的跟蹤器跟蹤得到該車輛在當(dāng)前幀圖像中的軌跡;對于前一幀圖像中不存在而當(dāng)前幀中存在的車輛,則將該車輛作為新的車輛,并分配一個對應(yīng)的跟蹤器,在后續(xù)幀圖像中對該車輛進(jìn)行跟蹤;所述跟蹤器采用的跟蹤算法為雙向金字塔光流算法,通過對前向和反向的光流跟蹤結(jié)果進(jìn)行分析過濾,實現(xiàn)對多目標(biāo)的穩(wěn)定精確跟蹤,形成車輛軌跡;所述雙向金字塔光流算法具體包括如下步驟: (31)對前一幀圖像,在每個車輛團(tuán)塊Blob內(nèi)部,計算Harris角點,如果角點數(shù)目NI少于閾值Tl,則計算差值N2=T1-N1,求不小于N2且能完全開方的最小整數(shù)N3,在車輛團(tuán)塊`Blob內(nèi)部按照#等間隔取N3個點,將N3個采樣點和NI個Harris角點一起作為光流跟蹤的原始點集Pl ; (32)根據(jù)前一幀圖像和當(dāng)前幀圖像:首先對原始點集Pl進(jìn)行L層金字塔光流跟蹤,運(yùn)動方向為從前一幀圖像到當(dāng)前幀圖像,得到跟蹤結(jié)果點集P2;再對跟蹤結(jié)果點集P2做反向的L層金字塔流光跟蹤,運(yùn)動方向為從當(dāng)前幀圖像到前一幀圖像,得到反向跟蹤結(jié)果點集PO ; (33)對反向跟蹤結(jié)果點集PO與原始點集Pl進(jìn)行誤差分析:分別計算PO和Pl中對應(yīng)點的歐氏距離及其中值,標(biāo)記出歐氏距離超過中值或者超過閾值T2的點;分別計算PO和Pl中對應(yīng)點的NXN鄰域的歸一化互相關(guān)系數(shù)及其中值,標(biāo)記出互相關(guān)系數(shù)小于中值的點;將所有標(biāo)記出的點在原始點集P1、跟蹤結(jié)果點集P2和反向跟蹤結(jié)果點集PO中刪除,最終得到過濾后的原始點集P1’、過濾后的跟蹤結(jié)果點集P2’和過濾后的反向跟蹤結(jié)果點集PO’ ; (34)判斷車輛判為跟蹤是否可信,若車輛判為跟蹤不可信,則使用Kalman濾波方法,根據(jù)該車輛團(tuán)塊Blob在前幾幀圖像中的位置進(jìn)行預(yù)測,將預(yù)測出的位置作為車輛在當(dāng)前幀中的預(yù)測軌跡,將預(yù)測軌跡送入車輛軌跡匹配模塊中;車輛判為跟蹤不可信的判據(jù)為:若過濾后的跟蹤結(jié)果點集P2’中的點的數(shù)目少于閾值T3,則該車輛判為跟蹤不可信;計算PO’和Ρ1’中對應(yīng)點的歐氏距離及其中值,若中值大于閾值Τ4,則該車輛判為跟蹤不可信;否則車輛判為跟蹤可信; (35)若車輛判為跟蹤可信,則計算車輛在當(dāng)前幀的軌跡: 計算Ρ1’和Ρ2’中對應(yīng)點在X方向和y方向上的位移Dx和Dy,分別取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的X方向和y方向位移dx和dy ;計算P1’中任意兩點在X方向和y方向上的間距Dx1和Dy1 ,計算P2’中任意兩點在X方向和y方向上的間距Dx2和Dy2 ;將對應(yīng)的Dx1和Dx2相除,得到一系列比值Dx2ZDx1,取中值作為該車輛團(tuán)塊Blob從前一中貞運(yùn)動到當(dāng)前幀的X方向的變換尺度Sx ;將對應(yīng)的Dy1和Dy2相除,得到一系列比值Dy2/Dy1,取中值作為該車輛團(tuán)塊Blob從前一幀運(yùn)動到當(dāng)前幀的I方向的變換尺度sy ; 根據(jù)該車輛團(tuán)塊Blob在前一幀圖像中的質(zhì)心坐標(biāo)、尺寸、位移和變化尺度,得到該車 輛團(tuán)塊Blob在當(dāng)前幀圖像中的位置,計算方法如下: cx,=cx+dx cy,=cy+dy width’ =WidthX sx height’ =height X sy 以(cx, cy)、width和height表示車輛團(tuán)塊Blob在前一幀圖像中的信息,以(cx’,cy’)、width’和height’表示車輛團(tuán)塊Blob在當(dāng)前幀圖像中的信息; (36)對計算得到的所有車輛軌跡進(jìn)行合理性檢驗:若車輛軌跡不合理,則使用Kalman濾波方法,根據(jù)該車輛團(tuán)塊Blob在前幾幀圖像中的位置進(jìn)行預(yù)測,將預(yù)測出的位置作為車輛在當(dāng)前幀中的預(yù)測軌跡;車輛在當(dāng)前幀中的預(yù)測軌跡和光流跟蹤得到的軌跡統(tǒng)稱為車輛當(dāng)前幀軌跡,將車輛當(dāng)前幀軌跡送入車輛軌跡匹配模塊中; 車輛軌跡合理性判據(jù)為:根據(jù)車輛軌跡,計算車輛在當(dāng)前幀相對于前一幀的位移Lxl、Lyl和相對于起始幀的位移Lx2、Ly2 ;如果Lxl、Lyl有向左后或右后方的分量且超過閾值T5,則判為不合理;如果Lxl與Lx2的方向相反且Lxl超過閾值T5、或Lyl與Ly2的方向相反且Lyl超過閾值T5,則判為不合理; (4)車輛軌跡匹配:使用車輛軌跡匹配模塊,將所有車輛當(dāng)前幀軌跡分別與當(dāng)前幀中檢測得到的所有車輛團(tuán)塊Blob進(jìn)行兩兩匹配:若車輛當(dāng)前幀軌跡與某個車輛團(tuán)塊Blob相匹配,則用該車輛團(tuán)塊Blob替代車輛當(dāng)前幀軌跡; 兩個Blob匹配的準(zhǔn)則為:計算寬度差dw、高度差dh、質(zhì)心距離dcx和dcy,分別滿足:dw小于最小寬度的一半,dh小于最小高度的一半,dcx小于最小寬度的1.5倍,dcy小于最小高度的一半; (5)車輛軌跡刪除:在當(dāng)前幀中,對于車輛當(dāng)前幀軌跡中的預(yù)測軌跡,若未與任何檢測得到的車輛團(tuán)塊Blob匹配,則予以刪除;對于車輛當(dāng)前幀軌跡,若質(zhì)心超出圖像邊界、或在前后連續(xù)5幀中均未被匹配,則予以刪除。
2.根據(jù)權(quán)利要求1所述的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,其特征在于:所述步驟(I)中,正負(fù)樣本圖像中,正樣本圖像為各種類型車輛的頭部和尾部區(qū)域圖像,負(fù)樣本圖像為正樣本圖像以外的圖像;所述車輛類型包括轎車、面包車、公交車、卡車和渣土車。
3.根據(jù)權(quán)利要求1所述的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,其特征在于:所述步驟(I)中,機(jī)器學(xué)習(xí)算法為Adaboost或SVM ;圖像特征為Haar Like特征、LBP特征和HOG特征中的一種或兩種以上的組合。
4.根據(jù)權(quán)利要求1所述的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,其特征在于:在圖像預(yù)處理過程中,對于檢測到的圖像,首先將其縮小到規(guī)定分辨率后,再進(jìn)行灰度圖像的轉(zhuǎn)換。
5.根據(jù)權(quán)利要求1所述的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,其特征在于:所述步驟(2)中,對滑動窗口進(jìn)行預(yù)處理,具體為:計算滑動窗口的像素均值、方差和梯度和,如果不在設(shè)定范圍內(nèi)時,判定檢測圖片不滿足預(yù)處理條件。
6.根據(jù)權(quán)利要求1所述的基于機(jī)器學(xué)習(xí)和光流的車輛跟蹤方法,其特征在于:所述步驟(3)中,相關(guān) 參數(shù)的取值范圍如下:采樣點數(shù)目閾值Tl取值[25,100],金字塔層數(shù)L取值[4,7],歐氏距離閾值T2取值[5,10],互相關(guān)鄰域窗口尺寸N取值[5,10],正確跟蹤的光流點數(shù)目閾值T3取值[5,20],反向跟蹤誤差閾值T4取值[10,20],位移閾值T5取值[10,20]。
【文檔編號】G06T7/20GK103871079SQ201410099904
【公開日】2014年6月18日 申請日期:2014年3月18日 優(yōu)先權(quán)日:2014年3月18日
【發(fā)明者】騫森 申請人:南京金智視訊技術(shù)有限公司