本發(fā)明屬于智能交通監(jiān)控視頻
技術(shù)領(lǐng)域:
,涉及一種基于單目攝像頭三維估計(jì)的車型分類方法。
背景技術(shù):
:車型識別系統(tǒng)作為智能交通系統(tǒng)應(yīng)用領(lǐng)域中重要的分支,也是目前相對薄弱的技術(shù)環(huán)節(jié)?;谝曨l的車型識別系統(tǒng)中,現(xiàn)階段對車牌、輪廓、車標(biāo)、及特征匹配方面研究較多,這類方法在特定場景下,識別效果較好,但普遍適用性不強(qiáng),效果不穩(wěn)定。利用車輛三維尺寸進(jìn)行類型識別的研究較少,如能獲得車輛實(shí)際三維狀態(tài)特征,如車輛實(shí)際長、寬、高,車鼻高,車尾高以及其最小外界立方體填充度等等,這些特征是不隨時(shí)間、場景變化而變化的。而且不同車型的三維狀態(tài)特征具有良好的可分性。雖然雙目攝像頭三維重建算法成熟,但現(xiàn)有監(jiān)控系統(tǒng)中已經(jīng)安裝了大量的攝像頭,如果每一項(xiàng)監(jiān)控指標(biāo)都增加2~3個(gè)攝像頭,那么整個(gè)監(jiān)控系統(tǒng)就會變得龐大且擁堵,也不易維護(hù)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是提供一種基于單目攝像頭三維估計(jì)的車型分類方法,解決現(xiàn)有技術(shù)中對車輛進(jìn)行分類時(shí),應(yīng)用二維特征分類識別方法普適性不強(qiáng)且效果不穩(wěn)定;而采用三維狀態(tài)特征作為分類標(biāo)準(zhǔn),雙目三維重建方法時(shí)間滯后且成本高昂的問題。本發(fā)明所采用的技術(shù)方案是,一種基于單目攝像頭三維估計(jì)的車型分類方法,按照以下步驟實(shí)施:步驟1、獲取背景幀,提取車輛目標(biāo)的外接矩形框設(shè)采用混合高斯背景建模方法得到大小為h行、w列的背景幀[b(i,j)]h×w,設(shè)當(dāng)前幀為[f(i,j)]h×w,對當(dāng)前幀進(jìn)行背景差分計(jì)算,得到的目標(biāo)二值圖像設(shè)為[e(i,j)]h×w,對[e(i,j)]h×w中的每個(gè)連通域,用外接矩形框描述,獲得初提取的車輛目標(biāo)的外接矩形框集合,設(shè)為其中,是第t個(gè)車輛的外接矩形框左上角坐標(biāo),是第t個(gè)車輛的外接矩形框右下角坐標(biāo),n是當(dāng)前幀中出現(xiàn)的車輛個(gè)數(shù);步驟2、提取車輛目標(biāo)采用背景區(qū)域生長法去除步驟1所獲得的車輛目標(biāo)可能有的陰影干擾,實(shí)現(xiàn)對車輛目標(biāo)區(qū)域的提取;步驟3、對車輛目標(biāo)區(qū)域進(jìn)行填充和貼標(biāo)簽3.1)目標(biāo)邊緣提取,利用canny算法對二值圖進(jìn)行邊緣提取,再進(jìn)行閉運(yùn)算處理;3.2)斷裂輪廓閉合,將二值圖與閉運(yùn)算處理的圖疊加,疊加的方法是,對該兩個(gè)圖中所有對應(yīng)相同位置上的像素點(diǎn),至少在該兩個(gè)圖中,有一個(gè)是白色的點(diǎn),則結(jié)果圖相應(yīng)位置上的點(diǎn)也為白色,使得原本車輛輪廓斷裂部分能夠閉合;3.3)運(yùn)動(dòng)目標(biāo)區(qū)域填充,對閉合輪廓區(qū)域的空洞進(jìn)行填充;3.4)貼標(biāo)簽,對經(jīng)過區(qū)域填充后的所有連通域進(jìn)行貼標(biāo)簽處理;步驟4、計(jì)算車輛的最小外接立方體以貼標(biāo)簽圖像中車頭向左前方傾斜、車頭向左后方傾斜、以及車頭朝向正前方分別進(jìn)行處理;步驟5、對車輛類型進(jìn)行分類。本發(fā)明的有益效果是,在車輛管理系統(tǒng)、公路收費(fèi)系統(tǒng)、公安偵查系統(tǒng)中自動(dòng)識別車輛類型,步驟簡單,便于實(shí)施,計(jì)算量小,結(jié)果準(zhǔn)確性高,給出的結(jié)果能夠正確對行駛車輛進(jìn)行分類。附圖說明圖1是本發(fā)明方法中的背景差分圖獲得的運(yùn)動(dòng)目標(biāo),其中,(a)是原始視頻幀,(b)是運(yùn)動(dòng)車輛目標(biāo)及其外接矩形框;圖2是本發(fā)明方法中的單個(gè)車輛的外接矩形框內(nèi)的目標(biāo)區(qū)域;圖3是本發(fā)明方法中的單個(gè)車輛的外接矩形框內(nèi)的灰度圖;圖4是本發(fā)明方法中的車輛目標(biāo)提取結(jié)果;圖5是本發(fā)明方法中的目標(biāo)區(qū)域填充,其中,(a)是目標(biāo)輪廓的提取結(jié)果,(b)是輪廓線與圖4的疊加結(jié)果,(c)是連通域填充結(jié)果;圖6是本發(fā)明方法中的貼標(biāo)簽處理結(jié)果;圖7是本發(fā)明方法中的車輛連通域的最小外接立方體;圖8是本發(fā)明方法中車頭向左前方傾斜的車輛4最小外接立方體計(jì)算示意圖;圖9是本發(fā)明方法中車頭向左后方傾斜的車輛6最小外接立方體計(jì)算示意圖;圖10是本發(fā)明方法中車頭朝向正前方的車輛7最小外接立方體計(jì)算示意圖;圖11是本發(fā)明方法中同一尺寸不同類型車輛立方體填充度示意圖,其中,(a)卡車,(b)公交車。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明基于單目攝像頭三維估計(jì)的車型分類方法,按照以下步驟實(shí)施:步驟1、獲取背景幀,提取車輛目標(biāo)的外接矩形框根據(jù)目標(biāo)運(yùn)動(dòng)、背景靜止的原理,采用背景差分法來提取出運(yùn)動(dòng)目標(biāo)。設(shè)采用混合高斯背景建模方法(該背景建模方法為現(xiàn)有技術(shù))得到大小為h行、w列的背景幀[b(i,j)]h×w,設(shè)當(dāng)前幀為[f(i,j)]h×w,對當(dāng)前幀進(jìn)行背景差分計(jì)算,得到的目標(biāo)二值圖像設(shè)為[e(i,j)]h×w,對[e(i,j)]h×w中的每個(gè)連通域,用外接矩形框描述,獲得初提取的車輛目標(biāo)的外接矩形框集合,設(shè)為其中,是第t個(gè)車輛的外接矩形框左上角坐標(biāo),是第t個(gè)車輛的外接矩形框右下角坐標(biāo),n是當(dāng)前幀中出現(xiàn)的車輛個(gè)數(shù)。例如,對圖1(a)的視頻原圖進(jìn)行背景差分后,得到目標(biāo)二值圖像如圖1(b)所示,保存所有被外接矩形框框住的車輛目標(biāo)區(qū)域,例如圖2是圖1(b)中一個(gè)車輛的外接矩形框區(qū)域,其中的白色點(diǎn)(像素值為255)是車輛目標(biāo)點(diǎn),黑色點(diǎn)(像素值為0)是背景點(diǎn)。以下以圖2所示的車輛局部區(qū)域?yàn)槔瑢囕v目標(biāo)提取的后續(xù)步驟進(jìn)行說明。步驟2、提取車輛目標(biāo)考慮到車輛目標(biāo)外接矩形框內(nèi)背景的單一性以及與前景的相似性,采用背景區(qū)域生長法去除步驟1所獲得的車輛目標(biāo)可能有的陰影干擾,實(shí)現(xiàn)對車輛目標(biāo)區(qū)域的提取。首先獲取(圖2)車輛目標(biāo)所對應(yīng)的灰度圖如圖3所示,再進(jìn)行背景區(qū)域生長(背景區(qū)域生長法為現(xiàn)有技術(shù)),具體過程如下:2.1)令圖3所示的灰度圖最左上點(diǎn)為中心,構(gòu)造一個(gè)3×3的領(lǐng)域,中心點(diǎn)為種子點(diǎn),對其8鄰域的像素進(jìn)行區(qū)域生長;2.2)判斷是否滿足生長條件:判斷步驟2.1)的中心點(diǎn)的8鄰域像素域中心點(diǎn)相比,像素值的差異滿足容差條件,容差優(yōu)選為3~5,則(圖2)相應(yīng)位置上的值令其為0;2.3)按照從左到右,從上到下的順序,選出步驟2.2)的8鄰域中一個(gè)滿足容差條件的點(diǎn),為下一次種子點(diǎn),轉(zhuǎn)回步驟2.2)重新執(zhí)行,直到8鄰域中沒有符合容差條件的點(diǎn),則生長結(jié)束。整幅圖像中車輛目標(biāo)提取的結(jié)果如圖4所示。步驟3、對車輛目標(biāo)區(qū)域進(jìn)行填充和貼標(biāo)簽對步驟2得到的車輛目標(biāo)區(qū)域的空缺部分進(jìn)行填充,具體步驟如下:3.1)目標(biāo)邊緣提取,利用canny算法對圖4的二值圖進(jìn)行邊緣提取,得到結(jié)果再進(jìn)行閉運(yùn)算處理,閉運(yùn)算處理結(jié)果如圖5(a)所示;3.2)斷裂輪廓閉合,將圖4的二值圖與圖5(a)閉運(yùn)算處理的圖疊加,疊加的方法是,對所有圖4和圖5(a)對應(yīng)相同位置上的像素點(diǎn),至少在圖4或者圖5(a)中,有一個(gè)是白色的點(diǎn),則結(jié)果圖相應(yīng)位置上的點(diǎn)也為白色,使得原本車輛輪廓斷裂部分能夠閉合,效果如圖5(b)所示;3.3)運(yùn)動(dòng)目標(biāo)區(qū)域填充,對閉合輪廓區(qū)域的空洞進(jìn)行填充,填充后如圖5(c)所示。3.4)貼標(biāo)簽,對經(jīng)過區(qū)域填充后的所有連通域進(jìn)行貼標(biāo)簽處理(貼標(biāo)簽處理方法為現(xiàn)有技術(shù)),例如對圖5進(jìn)行貼標(biāo)簽處理之后得到如圖6所示的貼標(biāo)簽圖像。步驟4、計(jì)算車輛的最小外接立方體分別以圖6所示貼標(biāo)簽圖像中車頭向左前方傾斜的車輛4,車頭向左后方傾斜的車輛6以及車頭朝向正前方的車輛7為例(該三個(gè)姿態(tài)是最具有代表性的),對求取車輛最小外接立方體的步驟分別進(jìn)行說明,示意圖如圖7所示。4.1)對車頭向左前方傾斜的車輛(以圖7中的車輛4為例)最小外接立方體按照如下步驟進(jìn)行求取,效果圖如圖8所示,坐標(biāo)系的方向見圖8:4.1.1)對車輛目標(biāo)連通域做水平方向投影,能夠得到投影值大于零的起始坐標(biāo)ymin與終止坐標(biāo)ymax,考慮到消除噪聲的影響,給出上方水平直線表達(dá)式為yup=y(tǒng)min+0.1·(ymax-ymin),下方水平直線表達(dá)式為ydown=y(tǒng)max-0.1·(ymax-ymin);4.1.2)同理,對車輛目標(biāo)連通域做垂直方向的投影,能夠得到投影值大于零的起始坐標(biāo)xmin與xmax,則左側(cè)的垂直直線表達(dá)式為xleft=xmin+0.1·(xmax-xmin),右側(cè)的垂直直線表達(dá)式為xright=xmax-0.1·(xmax-xmin);4.1.3)上方的水平直線yup和右側(cè)的垂直直線xright的交點(diǎn)為①,得到坐標(biāo)為(x1,y1),x1=xright,y1=y(tǒng)up,即確定了水平直線①④的右側(cè)端點(diǎn)、以及垂直直線①⑤的上方端點(diǎn);同理,下方水平直線ydown和左側(cè)垂直直線xleft的交點(diǎn)為⑦,坐標(biāo)為(x7,y7),x7=xleft,y7=y(tǒng)down,由此確定了水平直線⑥⑦的左側(cè)端點(diǎn)、以及垂直直線③⑦的下方端點(diǎn);4.1.4)根據(jù)以上得到的頂點(diǎn)⑦,向其右側(cè)延伸至下方水平直線ydown上最右側(cè)的白點(diǎn)處,即為x6的坐標(biāo)值,獲得頂點(diǎn)⑥,坐標(biāo)為(x6,y6),y6=y(tǒng)down,得到立方體的一條邊長為l=x6-x7;4.1.5)根據(jù)以上得到的頂點(diǎn)①,向其上方延伸至左側(cè)垂直直線xleft上連續(xù)線段的最上方白點(diǎn)處,即為y3的坐標(biāo)值,獲得頂點(diǎn)③,坐標(biāo)為(x3,y3),x3=xleft得到立方體的另一條邊長為h=y(tǒng)7-y3;4.1.6)依據(jù)立方體中,線段⑥⑦與線段②③、線段①④長度相等,且三條線平行的原則,由頂點(diǎn)③水平向右延伸長度l后得到頂點(diǎn)②,其坐標(biāo)為(x2,y2),x2=x3+l,y2=y(tǒng)3;由頂點(diǎn)①水平向左延伸長度l后得到頂點(diǎn)④,其坐標(biāo)為(x4,y4),x4=x1-l,y4=y(tǒng)1;4.1.7)依據(jù)立方體中,線段③⑦與線段②⑥、線段①⑤長度相等,且三條線平行的原則,由頂點(diǎn)①垂直向下延伸長度h后得到頂點(diǎn)⑤,其坐標(biāo)為(x5,y5),其中,x5=x1,y5=y(tǒng)1+h;4.1.8)至此,頂點(diǎn)①②③④⑤⑥⑦分別確定,連接端點(diǎn)①②,①④,①⑤,②③,②⑥,③④,③⑦,⑤⑥,⑥⑦,便得到了該車輛目標(biāo)的最小外接立方體。4.2)對車頭向左后方傾斜的車輛(以圖7中的車輛6為例)最小外接立方體按照以下步驟進(jìn)行求取,效果圖如圖9所示,坐標(biāo)系的方向見圖9:4.2.1)同步驟4.1.1),對車輛目標(biāo)連通域做水平方向投影,能夠得到投影值大于零的起始坐標(biāo)ymin與終止坐標(biāo)ymax,則上方的水平直線表達(dá)式為yup=y(tǒng)min+0.1·(ymax-ymin),下方的水平直線表達(dá)式為ydown=y(tǒng)max-0.1·(ymax-ymin);4.2.2)同步驟4.1.2),對車輛目標(biāo)連通域做垂直方向的投影,能夠得到投影值大于零的起始坐標(biāo)xmin與xmax,則左側(cè)的垂直直線表達(dá)式為xleft=xmin+0.1·(xmax-xmin),右側(cè)的垂直直線表達(dá)式為xright=xmax-0.1·(xmax-xmin);4.2.3)上方水平直線yup和左側(cè)垂直直線xleft的交點(diǎn)為①,坐標(biāo)為(x1,y1),x1=xleft,y1=y(tǒng)up,由此確定了水平直線①④的左側(cè)端點(diǎn)、以及垂直直線①⑤的上方端點(diǎn);同理,下方水平直線ydown和右側(cè)垂直直線xright的交點(diǎn)為⑦,坐標(biāo)為(x7,y7),其中,x7=xright,y7=y(tǒng)down,由此確定了水平直線⑥⑦的右側(cè)端點(diǎn)、以及垂直直線③⑦的下方端點(diǎn);4.2.4)根據(jù)以上得到的頂點(diǎn)⑦,向其右側(cè)延伸至直線ydown上最左側(cè)的白點(diǎn)處,即為x6的坐標(biāo)值,獲得頂點(diǎn)⑥,坐標(biāo)為(x6,y6),y6=y(tǒng)down,得到立方體的一條邊長為l=x6-x7;4.2.5)根據(jù)以上得到的頂點(diǎn)⑦,向其上方延伸至直線xright上連續(xù)線段的最上方白點(diǎn)處,即為y3的坐標(biāo)值,獲得頂點(diǎn)③,坐標(biāo)為(x3,y3),x3=x7,得到立方體的另一條邊長為h=y(tǒng)7-y3;4.2.6)依據(jù)立方體中,線段⑥⑦與線段②③、線段①④長度相等,且三條線平行的原則,由頂點(diǎn)③水平向左延伸長度l后得到頂點(diǎn)②,其坐標(biāo)為(x2,y2),x2=x3-l,y2=y(tǒng)3;由頂點(diǎn)①水平向右延伸長度l后得到頂點(diǎn)④,其坐標(biāo)為(x4,y4),x4=x1+l,y4=y(tǒng)1;4.2.7)依據(jù)立方體中,線段③⑦與線段②⑥、線段①⑤長度相等,且三條線平行的原則,由頂點(diǎn)①垂直向下延伸長度h后得到頂點(diǎn)⑤,其坐標(biāo)為(x5,y5),x5=x1,y5=y(tǒng)1+h;4.2.8)至此,頂點(diǎn)①②③④⑤⑥⑦分別確定,連接端點(diǎn)①②,①④,①⑤,②③,②⑥,③④,③⑦,⑤⑥,⑥⑦,便得到了該車輛目標(biāo)的最小外接立方體;4.3)對車頭正向的車輛(以圖7中的車輛7為例)最小外接立方體按照如下步驟進(jìn)行求取,效果圖如圖10所示,坐標(biāo)系的方向見圖10:4.3.1)同步驟4.1.1),對車輛目標(biāo)連通域做水平方向投影,能夠得到投影值大于零的起始坐標(biāo)ymin與終止坐標(biāo)ymax,則上方水平直線表達(dá)式為yup=y(tǒng)min+0.1·(ymax-ymin),下方水平直線表達(dá)式為ydown=y(tǒng)max-0.1·(ymax-ymin);4.3.2)同步驟4.1.2),對車輛目標(biāo)連通域做垂直方向的投影,能夠得到投影值大于零的起始坐標(biāo)xmin與xmax,則左側(cè)的垂直直線表達(dá)式為xleft=xmin+0.1·(xmax-xmin),右側(cè)垂直直線表達(dá)式為xright=xmax-0.1·(xmax-xmin);4.3.3)下方水平直線ydown和左側(cè)垂直直線xleft的交點(diǎn)為⑤,坐標(biāo)為(x5,y5),x5=xleft,y5=y(tǒng)down,由此確定了水平直線⑤⑥的左側(cè)端點(diǎn)、以及垂直直線④⑤的下方端點(diǎn);同時(shí),下方水平直線ydown和右側(cè)垂直直線xright的交點(diǎn)為⑥,坐標(biāo)為(x6,y6),x6=xright,y6=y(tǒng)down,由此確定了水平直線⑤⑥的右側(cè)端點(diǎn)、以及垂直直線③⑥的下方端點(diǎn);4.3.4)依據(jù)以上得到的頂點(diǎn)⑤,向其上方延伸至直線xleft上連續(xù)線段的最上方白點(diǎn)處,即為y4的坐標(biāo)值,獲得頂點(diǎn)④,坐標(biāo)為(x4,y4),x4=x5得到立方體的一條邊長為h=y(tǒng)5-y4;4.3.5)依據(jù)線段④⑤和線段③⑥平行且長度相同的準(zhǔn)則,由以上得到的頂點(diǎn)⑥,沿著xright向上方延伸長度h,獲得頂點(diǎn)③,坐標(biāo)為(x3,y3),x3=x6,y3=y(tǒng)6-h;4.3.6)沿著上方水平直線yup在x∈[xleft,xright]范圍內(nèi)搜索最左端的白點(diǎn)和最右邊的白點(diǎn),最左端的白點(diǎn)處為x1的坐標(biāo)值,即為直線的左端點(diǎn)①,坐標(biāo)為(x1,y1),x1∈(xleft,xright),y1=y(tǒng)up,最右端的白點(diǎn)處為x2的坐標(biāo)值,右端點(diǎn)②,坐標(biāo)為(x2,y2),x2∈(xleft,xright),x2>x1,y2=y(tǒng)up;4.3.7)至此,頂點(diǎn)①②③④⑤⑥分別確定,連接端點(diǎn)①②,①③,①④,④⑤,③⑥,便得到了該車輛目標(biāo)的最小外接立方體。步驟5、對車輛類型進(jìn)行分類將分類的車輛類型劃分為六類:即小型客車(包括小汽車與小型面包車)、小型卡車、中型客車(包括公交車與中型大巴車)、中型卡車、大型客車、大型卡車;再按照車輛尺寸大小劃分為三類:即小型車(小型客車與小型卡車)、中型車(中型客車與中型卡車)、大型車(大型客車與大型卡車)。根據(jù)上述步驟4求得車輛最小外接立方體尺寸后,按照下表的標(biāo)準(zhǔn)確定屬于哪一類:車型小型車中型車大型車體積(長×寬×高)(單位:m3)15~4040~9090~120同一尺寸類型的車輛中,卡車與客車的二維投影面積s與其最小外界立方體二維投影面積sv的比值fd稱為該目標(biāo)車輛的立方體填充度,fd=s/sv,該比值fd作為分類的最后標(biāo)準(zhǔn),設(shè)閾值t∈[0.75~0.85],當(dāng)fd>t時(shí),車輛類型即判定為客車,反之則為卡車,判定結(jié)果如圖11所示,其中的圖11(a)為卡車,圖11(b)為公交車;至此,完成車輛目標(biāo)所屬的車型分類。當(dāng)前第1頁12