国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種視頻多車輛輪廓檢測(cè)方法

      文檔序號(hào):7853907閱讀:222來源:國(guó)知局
      專利名稱:一種視頻多車輛輪廓檢測(cè)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種視頻多車輛輪廓檢測(cè)方法,屬于交通監(jiān)控、視頻圖像處理、機(jī)器視覺技術(shù)領(lǐng)域。
      背景技術(shù)
      近些年來,利用視頻技術(shù)進(jìn)行車輛檢測(cè)成為車輛檢測(cè)技術(shù)中的一個(gè)熱點(diǎn),它可模仿人的視覺功能進(jìn)行車輛檢測(cè)和跟蹤,具備可檢測(cè)多個(gè)車道、安裝維修簡(jiǎn)單等優(yōu)點(diǎn)。視頻車輛檢測(cè)技術(shù)從策略上可以分為兩類基于虛擬線圈和基于跟蹤的方法。虛擬線圈法通過檢測(cè)特定檢測(cè)區(qū)域內(nèi)圖像變化可以檢測(cè)通過該區(qū)域的運(yùn)動(dòng)車輛,檢測(cè)區(qū)域的選取依賴人的先驗(yàn)知識(shí),可大幅度的減少干擾并減輕計(jì)算負(fù)擔(dān),該方法簡(jiǎn)單高效,適用于車 輛計(jì)數(shù),但該類方法很難得到車輛圖像的完整輪廓和車輛運(yùn)動(dòng)軌跡。基于跟蹤的方法可以識(shí)別并記憶每輛車在視頻幀序列中的圖像輪廓和運(yùn)動(dòng)軌跡,適用于更廣泛更高級(jí)的應(yīng)用,如交通事件檢測(cè)?;诟櫟姆椒ㄖ校囕v的檢測(cè)通常采用檢測(cè)車輛的完整前景邊緣或查找前景連通域的方法。該類方法是建立在車輛前景連通的基礎(chǔ)上的,然而,為了得到連通的車輛前景,往往造成干擾信號(hào)被放大或者鄰近車輛互相粘連的結(jié)果,這種結(jié)果會(huì)降低車輛檢測(cè)的準(zhǔn)確性。既能抑制干擾信號(hào)又使不同車輛互相分離的圖像處理方法,往往造成單個(gè)車輛的前景分裂成若干連通區(qū)域而不是一個(gè)連通的整體,這使得車輛的完整輪廓難以獲得,尤其當(dāng)多輛車同時(shí)出現(xiàn)在視頻中時(shí),問題更為嚴(yán)重。另外,道路兩旁樹木搖曳、攝像機(jī)輕微抖動(dòng)、行人走動(dòng)等情況也會(huì)對(duì)車輛檢測(cè)造成干擾。

      發(fā)明內(nèi)容
      本發(fā)明針對(duì)現(xiàn)有技術(shù)在面對(duì)多個(gè)車輛同時(shí)進(jìn)入監(jiān)控區(qū)域、攝像機(jī)輕微抖動(dòng)、背景復(fù)雜等問題時(shí)的不足,提出一種視頻多車輛輪廓檢測(cè)方法,其特征在于步驟I :初始化步驟I. I :獲取一段視頻,再?gòu)囊曨l獲取背景圖像;步驟I. 2 :以圖像左上角的像素位置為原點(diǎn),像素為單位長(zhǎng)度,從左到右的方向?yàn)閄軸正方向,從上到下的方向?yàn)閅軸正方向,建立坐標(biāo)系;步驟I. 3 :用一個(gè)多邊形在視頻場(chǎng)景中圈出監(jiān)控區(qū)域,該多邊形稱為虛擬圍欄,如果車輛行駛方向?yàn)閺南轮辽?,則虛擬圍欄的底部為水平線,該底部水平線稱為入境線,如果車輛行駛方向?yàn)閺纳现料?,則虛擬圍欄的頂部為水平線,該頂部水平線稱為入境線,入境線的Y軸坐標(biāo)表示為Y_IN ;步驟1.4 :獲取一幀有轎車剛好完全駛?cè)氡O(jiān)控區(qū)域的圖像,車輛剛好完全駛?cè)氡O(jiān)控區(qū)域是指車輛尾部緊貼入境線,在該車的車頭前畫一條水平線,稱為最小車長(zhǎng)線,最小車長(zhǎng)線的Y軸坐標(biāo)表示為Y_L0NG,在最小車長(zhǎng)線與入境線之間畫一條水平線,稱為觸發(fā)線,觸發(fā)線的Y軸坐標(biāo)表示為Y_T0UCH,觸發(fā)線與最小車長(zhǎng)線的距離和觸發(fā)線與入境線的距離之比為3: f 4:1,在該車兩側(cè)畫2條豎直線,使2條豎直線之間的距離為該車寬度的I. 3^1. 5倍,該豎直線稱為車寬線,2條車寬線之間的距離表示為WIDE ;步驟1.5 :用變量S表示整段視頻中已檢測(cè)出來的車輛總數(shù),用變量k表示正在檢測(cè)的圖像在視頻中的幀序,第k幀圖像表示為f(k),第k幀圖像中的車輛的集合表示為CARS(k),第k巾貞圖像中的編號(hào)為n的車表示為car(n, k),編號(hào)n表示car (n, k)是整段視頻中第n輛被檢測(cè)出來的車,car (n, k)的輪廓表示為c (n, k);設(shè)第k幀圖像f(k)是由MXN個(gè)像素構(gòu)成的像素矩陣,將第k幀圖像f(k)劃分為(M — m + I) X (N — m + I)個(gè)塊,每個(gè)塊是由mXm個(gè)像素構(gòu)成的像素矩陣,m取值為WIDE的0.廣0. 3倍,第k幀圖像中的中心點(diǎn)坐標(biāo)為(x,y)的塊表示為8油(1,7,10,屬于編號(hào)為11的車car (n, k)的塊集合表示為SUBS (n, k);步驟I. 6 :令表示幀序的變量k為O,整段視頻中已檢測(cè)出來的車輛總數(shù)S為O,第O幀車輛集合CARS(O)為空集; 步驟2 :表示幀序的變量k自增1,獲取第k幀圖像f(k),令第k幀圖像的車輛集合CARS (k)為空集;步驟3 :獲取車身輪廓集合步驟3. I :取第k幀圖像f (k)與背景圖像之差的絕對(duì)值圖像作為第k幀差分圖dif(k);步驟3. 2 :第k幀差分圖dif (k)中處于監(jiān)控區(qū)域內(nèi)且灰度值大于閾值Tl的像素稱為前景像素,否則稱為背景像素,令前景像素灰度值為255,背景像素灰度值為O,得到第k幀二值圖binary (k),Tl可取值為20 50 ;步驟3.3 :,對(duì)第k幀二值圖binary (k)進(jìn)行形態(tài)學(xué)開運(yùn)算,得到第k幀前景圖像obj (k),形態(tài)學(xué)開運(yùn)算中的核是邊長(zhǎng)為m/2的矩形,核的參考點(diǎn)是核的中心點(diǎn);步驟3. 4 :采用公知的Canny邊緣檢測(cè)法檢測(cè)第k幀前景圖像obj (k)中的邊緣像素點(diǎn),令邊緣像素點(diǎn)的灰度值為255,非邊緣像素點(diǎn)的灰度值為0,得到第k幀邊緣圖con(k);步驟3. 5 :采用公知的爬蟲法獲取第k幀邊緣圖con (k)中的所有車身輪廓,第k幀圖像中的車身輪廓的集合表示為BODYS (k),車身輪廓是第k幀邊緣圖con(k)中邊緣像素點(diǎn)的集合,對(duì)于任意一個(gè)車身輪廓body I內(nèi)的任意一個(gè)像素點(diǎn)Dl,存在一個(gè)車身輪廓body I內(nèi)的像素點(diǎn)D2,像素點(diǎn)D2是像素點(diǎn)Dl的8鄰域像素點(diǎn)之一。步驟3.6 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除邊界框脫離觸發(fā)線的車身輪廓,輪廓的邊界框是指包圍輪廓的最小矩形,邊界框脫離觸發(fā)線是指如果車輛行駛方向?yàn)閺南轮辽希吔缈虻?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均小于Y_T0UCH,如果車輛行駛方向?yàn)閺纳现料?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均大于Y_T0UCH ;步驟4:跟蹤舊車如果第k-1幀圖像的車輛集合CARS(k-l)為空集,則進(jìn)入步驟5,否則將第k_l幀圖像中的車輛集合CARS (k-1)中的每輛車跟蹤到第k幀圖像,將第k-1幀圖像的車輛集合CARS (k-1)中編號(hào)為n的車car(n, k-1)跟蹤到第k巾貞圖像的步驟如下步驟4. I :在第k幀圖像的車輛集合CARS (k)中添加編號(hào)為n的車car (n, k),令車car (n, k)的塊集合SUBS (n, k)為空集;
      步驟4. 2 :將車car(n,k-1)的塊集合SUBS(n,k-1)中每一個(gè)塊跟蹤到第k幀圖像;步驟4. 3 :如果車car (n,k)的塊集合SUBS (n,k)為空集,則從第k幀圖像的車輛集合CARS(k)中刪除車car(n, k),并結(jié)束對(duì)車car(n, k-1)的跟蹤,否則進(jìn)行步驟4. 4 ;步驟4. 4 :標(biāo)記車car (n,k)為舊車;步驟4. 5 :獲取包圍車car(n,k)的塊集合SUBS(n,k)中所有塊的頂點(diǎn)的凸包,令車car (n, k)的輪廓c (n, k)等于該凸包;步驟4. 6 :計(jì)算車car (n, k)的塊集合SUBS (n, k)中所有塊的運(yùn)動(dòng)矢量的平均值,將該平均值保存為車car (n, k)的運(yùn)動(dòng)矢量mean (n, k);塊的運(yùn)動(dòng)矢量是指塊的中心點(diǎn)坐標(biāo)減去前一幀與該塊對(duì)應(yīng)的塊的中心點(diǎn)坐標(biāo)得到的矢量; 步驟5:更新舊車輪廓如果第k幀圖像的車輛集合CARS(k)為空集或者第k幀圖像的車身輪廓集合BODYS (k)為空集,則進(jìn)入步驟6,否則進(jìn)入步驟5. I ;步驟5. I :將第k幀圖像的車身輪廓集合BODYS (k)中的所有車身輪廓標(biāo)記為未查看;步驟5. 2 :從第k幀圖像的車身輪廓集合BODYS (k)中獲取一個(gè)標(biāo)記為未查看的車身輪廓,如果獲取成功,將該車身輪廓標(biāo)記為已查看,否則進(jìn)入步驟6 ;步驟5.3 :從第k幀圖像的車輛集合CARS(k)中找出邊界框與該車身輪廓的邊界框距離最近的車輛,兩邊界框之間的距離是指邊界框中心點(diǎn)之間的距離,車輛的邊界框是指車輛的輪廓的邊界框;步驟5. 4 :判斷該車輛能否吞并該車身輪廓;步驟5. 5 :如果該車輛能吞并該車身輪廓,則該車輛吞并該車身輪廓;車輛吞并車身輪廓的方法如下步驟5. 5. I :合并車輛的輪廓與車身輪廓,得到點(diǎn)集A ;步驟5. 5. 2 :采用公知的Graham掃描法獲取點(diǎn)集A的凸包,令該車身輪廓等于點(diǎn)集A的凸包;步驟5. 5. 3 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除該車身輪廓;步驟5.6 :返回步驟5.2 ;步驟6 :檢測(cè)新車如果第k幀圖像的車身輪廓集合BODYS (k)為空集,則進(jìn)入步驟I ;步驟6. I :從第k幀圖像的車身輪廓集合BODYS(k)中獲取一個(gè)邊界框?qū)挾却笥赪IDE/3的車身輪廓,如果獲取失敗,則進(jìn)入步驟7 ;步驟6. 2 :車輛總數(shù)S自增1,在第k幀圖像的車輛集合CARS(k)中增加編號(hào)為S的車car (S,k),標(biāo)記car (S,k)為新車,令車car (S,k)的輪廓c(S,k)等于由步驟6. I獲取的車身輪廓的凸包,令車car (S,k)的塊集合SUBS (S,k)為空集;步驟6. 3 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除由步驟6. I獲取的車身輪廓;步驟6. 4 :采用車輛吞并車身輪廓的方法,用車car (S,k)吞并第k幀圖像的車身輪廓集合BODYS (k)中所有能被car (S,k)吞并的車身輪廓;步驟6. 5 :返回步驟6. I ;步驟7 :添加填充塊如果第k幀圖像的車輛集合CARS(k)為空集,則返回步驟2,否則在為第k幀圖像的車輛集合CARS (k)中的每輛車添加填充塊之后返回步驟2,為CARS (k)中任意一輛車car (n, k)添加填充塊的步驟如下對(duì)車car (n, k)的輪廓c (n, k)上的每個(gè)點(diǎn)進(jìn)行如下操作—設(shè)車car (n, k)的輪廓c (n, k)上的點(diǎn)坐標(biāo)為(xl, yl),從以車car (n, k)的輪廓c(n,k)上的點(diǎn)(xl,yl)為頂點(diǎn)之一的四個(gè)塊sub (xl_m/2,yl_m/2,k)、sub (xl-m/2, yl+m/2, k)、sub (xl+m/2, yl-m/2, k)、sub (xl+m/2, yl+m/2, k)中找出 4 個(gè)頂點(diǎn)全被c(n, k)所包圍的塊作為填充塊,并標(biāo)記填充塊為sub(x2, y2, k),判斷一個(gè)點(diǎn)D3是否被一個(gè)輪廓包圍的方法是如果一個(gè)輪廓上有奇數(shù)個(gè)點(diǎn)滿足X軸坐標(biāo)值大于點(diǎn)D3的X軸坐標(biāo)值,Y軸坐標(biāo)值等于D3的Y軸坐標(biāo)值,則點(diǎn)D3被該輪廓包圍,二在第k幀二值圖binary(k)中與填充塊sub (x2,y2, k)位置和大小都對(duì)應(yīng)的像素矩陣稱為填充塊sub (x2, y2, k)的二值塊,如果填充塊sub (x2, y2, k)的二值塊的非零像素個(gè)數(shù)大于閾值T2并且車car(n,k)的塊集合SUBS (n, k)中沒有與填充塊sub (x2, y2, k)重疊面積大于mXm/2的塊,則將填充塊sub (x2,y2, k)加入車car (n,k)的塊集合SUBS (n,k),閾值T2取值為mXm的 0. 6^0. 8 倍。步驟4. 2中將第k-1幀圖像中編號(hào)為n的車car(n,k-1)的塊集合SUBS(n,k-1)中的塊sub(x, y, k-1)跟蹤到第k巾貞圖像的步驟如下步驟4. 2. I :設(shè)置矩形搜索區(qū)域rect, rect的中心點(diǎn)坐標(biāo)表示為(xr,yr),如果車car(n,k_l)被標(biāo)記為新車,則rect的中心點(diǎn)坐標(biāo)等于塊sub (x, y, k_l)的中心點(diǎn)坐標(biāo),xr等于x, yr等于y, rect的邊長(zhǎng)為WIDE/2,如果車car (n, k-1)被標(biāo)記為舊車,則xr等于 x+mean (n, k-1). x, yr 等于 y+mean (n, k-1). y, rect 的邊長(zhǎng)為 mean (n, k-1)的長(zhǎng)度,其中mean (n, k-1). x 和 mean (n, k-1). y 分別表示車 car (n, k-1)的運(yùn)動(dòng)矢量 mean (n, k-1)的 X 軸分量和Y軸分量;步驟4. 2. 2 :按下式計(jì)算塊sub (x, y, k_l)與第k巾貞圖像中矩形搜索區(qū)域rect內(nèi)的每個(gè)塊的匹配值match(.\*3. r3, k)= ^ \P(zx — x3 - x. zy — y3 — yi) - P(zx. zy.k -1)|式中,match (x3, y3, k)表示塊sub (x, y, k_l)與第k巾貞圖像中矩形搜索區(qū)域rect內(nèi)中心點(diǎn)坐標(biāo)為(x3, y3)的塊sub(x3, y3, k)的匹配值,(zx, zy)表示塊sub(x,y, k_l)中的像素的坐標(biāo),P(zx+x3_x, zy+y3_y,k)表示第k巾貞圖像f(k)中坐標(biāo)為(zx+x3_x, zy+y3_y)的像素的灰度值,P(zx, zy, k-1)表示第k-1幀圖像f (k-1)中坐標(biāo)為(zx,zy)的像素的灰度值,將第k幀圖像中矩形搜索區(qū)域rect內(nèi)的所有塊中與塊sub (x,y,k-1)的匹配值最小的塊表示為sub (x4, y4, k);步驟4. 2. 3 :在第k幀差分圖dif (k)中與塊sub (x4,y4, k)位置和大小都對(duì)應(yīng)的像素矩陣稱為塊sub (x4, y4, k)的差分塊,如果塊sub (x4, y4, k)的差分塊中的所有像素的平均灰度值大于閾值T3,則將塊sub (x4, y4, k)加入到車car (n, k)的塊集合SUBS (n, k)中,并保存塊sub (x4, y4, k)的運(yùn)動(dòng)矢量為(X4-X,y4_y),T3取值20 30。步驟4. 5中獲取包圍車car(n,k)的塊集合SUBS (n,k)中所有塊的頂點(diǎn)的凸包的步驟如下步驟4. 5. I :將SUBS (n, k)中每一個(gè)塊的4個(gè)頂點(diǎn)加入點(diǎn)集B ;步驟4. 5. 2 :采用公知的Graham掃描法獲取點(diǎn)集B的凸包,該凸包即包圍SUBS (n,k)中所有塊的凸包,點(diǎn)集的凸包是指一個(gè)最小凸多邊形,滿足點(diǎn)集中的點(diǎn)或者在多邊形邊上或者在其內(nèi)。步驟5. 4中判斷車輛能否吞并車身輪廓的步驟如下步驟5. 4. I :如果車輛的輪廓的邊界框與車身輪廓的邊界框之間有交集,則車輛能吞并車身輪廓,結(jié)束判斷車輛能否吞并車身輪廓,否則進(jìn)入步驟5. 4. 2 ; 步驟5. 4. 2 :如果車輛的輪廓的邊界框脫離最小車長(zhǎng)線,則車輛不能吞并車身輪廓,結(jié)束判斷車輛能否吞并車身輪廓,否則進(jìn)行步驟5. 4. 3 ;邊界框脫離最小車長(zhǎng)線是指如果車輛行駛方向?yàn)閺南轮辽?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均小于Y_L0NG,如果車輛行駛方向?yàn)閺纳现料?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均大于Y_L0NG ;步驟5. 4. 3:如果車輛的輪廓的邊界框與車身輪廓的邊界框的并集的寬小于WIDE,則車輛能吞并車身輪廓。有益效果I.通過畫虛擬圍欄的方法,圈出監(jiān)控區(qū)域,使視頻中非路面區(qū)域的圖像不參與車輛檢測(cè),簡(jiǎn)化了場(chǎng)景,避免了道路兩旁樹木搖曳、行人走動(dòng)等對(duì)車輛檢測(cè)造成的干擾。2.通過形態(tài)學(xué)開運(yùn)算消除細(xì)小輪廓,有效消除攝像機(jī)抖動(dòng)形成的前景區(qū)域噪聲,同時(shí)使鄰近車輛的前景區(qū)域分離,避免了鄰近車輛之間輪廓的粘連。3.通過將車輛圖像劃分為多個(gè)塊,查找前一幀的塊在當(dāng)前幀的最佳匹配塊,實(shí)現(xiàn)車輛在連續(xù)兩幀圖像間的跟蹤,使同一輛車在多幀視頻圖像中不會(huì)被誤識(shí)別成多輛車,同一幀圖像中的多輛車不會(huì)相互混淆。由于塊與像素的個(gè)數(shù)幾乎相等,車輛塊的凸包可以作為車輛的輪廓。4.通過對(duì)車輛的塊求凸包,以此凸包為車輛初始輪廓,結(jié)合車寬、最小車長(zhǎng)等參數(shù)吞并同屬本車的車身輪廓,使正在駛?cè)氡O(jiān)控區(qū)域的車輛的輪廓更加完整,同時(shí)避免一幀圖像中一輛車被誤識(shí)別為多輛車;從剩余的車身輪廓中選擇較大的輪廓,作為新車初始輪廓,再吞并同屬本新車的車身輪廓,使得新駛?cè)氡O(jiān)控區(qū)域的車輛被及時(shí)地檢測(cè)出來。


      I.圖I是視頻多車輛輪廓檢測(cè)總體流程圖。2.圖2是建立坐標(biāo)系以及虛擬線圈畫法示意圖。3 圖3是實(shí)例中第126幀背景差分圖。4.圖4是實(shí)例中第126幀二值圖。5.圖5是實(shí)例中第126幀前景圖。6.圖6是實(shí)例中第126幀邊緣圖。7.圖7是實(shí)例中第126幀圖像中刪除脫離觸發(fā)線的車身輪廓后剩余的車身輪廓。
      8.圖8是實(shí)例中第125幀圖像中檢測(cè)出來的所有車輛。9.圖9是實(shí)例中第125幀圖像中檢測(cè)出來的所有車輛被跟蹤到第126幀圖像的結(jié)果。10.圖10是實(shí)例中第126幀舊車輪廓與車身輪廓的位置關(guān)系。11 圖11是新車檢測(cè)流程圖12 圖12是舊車輪廓更新流程圖。13.圖13是實(shí)例中第126幀圖像中所有車輛輪廓檢測(cè)結(jié)果。 14.圖14是為實(shí)例中第126幀圖像中的車輛添加填充塊后的效果圖。
      具體實(shí)施例方式為了更好的理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖及某公路上的視頻實(shí)例對(duì)本發(fā)明作進(jìn)一步描述。該方法的總體流程圖見圖1,該方法實(shí)現(xiàn)步驟如下步驟I :初始化步驟I. I :獲取一段視頻,本實(shí)例中車輛行駛方向?yàn)閺南碌缴?,再?gòu)囊曨l獲取背景圖像,背景圖像可采用多種方式獲取,例如直接拍攝法或者多幀均值法,直接拍攝法是指直接抓拍視頻場(chǎng)景中無車的圖像作為背景圖像,多幀均值法是指用多幀圖像的平均值圖像作為背景圖像,本實(shí)例中采用多幀均值法獲取背景圖像;步驟I. 2 :以圖像左上角的像素位置為原點(diǎn),像素為單位長(zhǎng)度,從左到右的方向?yàn)閄軸正方向,從上到下的方向?yàn)閅軸正向,建立坐標(biāo)系,本實(shí)例中坐標(biāo)系見圖2 ;步驟1.3 :用一個(gè)多邊形在視頻場(chǎng)景中圈出監(jiān)控區(qū)域,該多邊形稱為虛擬圍欄,如果車輛行駛方向?yàn)閺南轮辽?,則虛擬圍欄的底部需畫成水平線,該底部水平線稱為入境線,如果車輛行駛方向?yàn)閺纳现料拢瑒t虛擬圍欄的頂部需畫成水平線,該頂部水平線稱為入境線,入境線的Y軸坐標(biāo)表示為Y_IN,本實(shí)例中虛擬圍欄畫法見圖2,入境線的Y軸坐標(biāo)Y_IN為 574;步驟I. 4 :獲取一幀有轎車剛好完全駛?cè)氡O(jiān)控區(qū)域的圖像,車輛剛好完全駛?cè)氡O(jiān)控區(qū)域是指車輛尾部緊貼入境線,在該車的車頭前畫一條水平線,稱為最小車長(zhǎng)線,最小車長(zhǎng)線的Y軸坐標(biāo)表示為Y_L0NG,在最小車長(zhǎng)線與入境線之間畫一條水平線,稱為觸發(fā)線,觸發(fā)線的Y軸坐標(biāo)表示為Y_T0UCH,觸發(fā)線與最小車長(zhǎng)線的距離和觸發(fā)線與入境線的距離之比為3: f 4:1,例如觸發(fā)線的Y軸坐標(biāo)表示為Y_T0UCH,觸發(fā)線與最小車長(zhǎng)線的距離和觸發(fā)線與入境線的距離之比為3:1、3. 5:1或4:1,本實(shí)例中最小車長(zhǎng)線的Y軸坐標(biāo)Y_L0NG為353,觸發(fā)線的Y軸坐標(biāo)Y_T0UCH為521,在該車兩側(cè)畫2條豎直線,使2條豎直線之間的距離為該車寬度的I. 3 1. 5倍,例如2條豎直線之間的距離為該車寬度的I. 3、I. 4或I. 5倍,該豎直線稱為車寬線,2條車寬線之間的距離表示為WIDE,本實(shí)例中,2條車寬線之間的距離WIDE為209,是該車寬度(該車最左邊像素L點(diǎn)和最右邊像素R點(diǎn)的X軸距離)的I. 3倍,最小車長(zhǎng)線、觸發(fā)線、車寬線畫法見圖2 ;步驟1.5 :用變量S表示整段視頻中已檢測(cè)出來的車輛總數(shù),用變量k表示正在檢測(cè)的圖像在視頻中的幀序,第k幀圖像表示為k),第k幀檢測(cè)出來的車輛的集合表示為CARS (k),CARS (k)中的編號(hào)為n的車表示為car (n, k),編號(hào)n表示car (n, k)是整段視頻中第n輛被檢測(cè)出來的車,car (n, k)的輪廓表示為c (n, k);
      設(shè)f (k)是由MXN個(gè)像素構(gòu)成的像素矩陣,將f (k)劃分為(M — m + I) X (N —m+ I)個(gè)塊,每個(gè)塊是由mXm個(gè)像素構(gòu)成的像素矩陣,m取值為WIDE的0. f 0.3倍,例如m取值為WIDE的0. 1,0. 15或0. 3倍,本實(shí)例中,M為720,N為576,m為21,中心點(diǎn)坐標(biāo)為(X, y)的塊表示為sub (X,y, k),屬于編號(hào)為n的車car (n, k)的塊集合表示為SUBS (n, k);步驟1.6:令1^為0^為0,CARS(0)為空集;步驟2 :表示幀序的變量k自增1,獲取第k幀圖像f(k),令CARS(k)為空集;步驟3 :獲取車身輪廓集合步驟3. I :取第k幀圖像f (k)與背景圖像之差的絕對(duì)值圖像作為第k幀差分圖dif (k),本實(shí)例中第126幀差分圖dif (126)見圖3 ;步驟3. 2 :第k幀差分圖dif (k)中處于監(jiān)控區(qū)域內(nèi)且灰度值大于閾值Tl的像素 稱為前景像素,否則稱為背景像素,令前景像素灰度值為255,背景像素灰度值為0,得到第k幀二值圖binary (k),Tl取值為20 50,例如,Tl取值為20、30或50 ;本實(shí)例中Tl取值為22,第126幀二值圖binary (126)見圖4 ;步驟3. 3 :對(duì)binary (k)進(jìn)行形態(tài)學(xué)開運(yùn)算,得到第k巾貞前景圖像ob (k),形態(tài)學(xué)開運(yùn)算中的核是邊長(zhǎng)為m/2的矩形,核的參考點(diǎn)是核的中心點(diǎn),本實(shí)例中第126幀前景圖像obj (126)見圖 5 ;形態(tài)學(xué)開運(yùn)算是圖像處理領(lǐng)域公知的算法,形態(tài)學(xué)開運(yùn)算是指先腐蝕再膨脹,腐蝕是指將像素值設(shè)為與該像素對(duì)應(yīng)的核覆蓋下所有點(diǎn)中的最小值,膨脹是指將像素值設(shè)為與該像素對(duì)應(yīng)的核覆蓋下所有點(diǎn)中的最大值,核可以是任何的形狀或大小,并擁有一個(gè)單獨(dú)定義的參考點(diǎn);步驟3. 4 :采用公知的Canny邊緣檢測(cè)法檢測(cè)第k幀前景圖像ob(k)中的邊緣像素點(diǎn),令邊緣像素點(diǎn)的灰度值為255,非邊緣像素點(diǎn)的灰度值為0,得到第k幀邊緣圖con(k),本實(shí)例中第126幀邊緣圖con(126)見圖6 ;Canny邊緣檢測(cè)法是圖像邊緣檢測(cè)領(lǐng)域的公知算法,該算法主要步驟如下首先,用高斯濾波器平滑圖像,然后用一階有限差分計(jì)算梯度幅值和方向,然后對(duì)梯度幅值進(jìn)行非極大值抑制,用雙閾值算法檢測(cè)和連接邊緣,本實(shí)例中Canny邊緣檢測(cè)法的雙閾值都取值為100。步驟3. 5 :采用公知的爬蟲法獲取第k幀邊緣圖con (k)中的所有車身輪廓,第k幀圖像中的車身輪廓的集合表示為BODYS (k),車身輪廓是第k幀邊緣圖con(k)中邊緣像素點(diǎn)的集合,對(duì)于任意一個(gè)車身輪廓body I內(nèi)的任意一個(gè)像素點(diǎn)Dl,存在一個(gè)車身輪廓body I內(nèi)的像素點(diǎn)D2,像素點(diǎn)D2是像素點(diǎn)Dl的8鄰域像素點(diǎn)之一,像素點(diǎn)Dl的8鄰域像素點(diǎn)是指與像素點(diǎn)Dl相比X軸坐標(biāo)值或Y軸坐標(biāo)值相差為I的像素點(diǎn);爬蟲法是一種獲取圖像中物體輪廓的公知方法,它采用如下規(guī)則進(jìn)行處理(I)任取一個(gè)邊緣像素點(diǎn)作為起始點(diǎn),每次只前進(jìn)一步,步距為一個(gè)象素;(2)跨步由背景區(qū)進(jìn)入目標(biāo)區(qū)后各步向左轉(zhuǎn),直到穿出目標(biāo)區(qū)為止;(3)跨步由目標(biāo)區(qū)進(jìn)入背景區(qū)后各步向右轉(zhuǎn),直到穿出背景區(qū)為止,圍繞目標(biāo)物循環(huán)一周后,回到起始點(diǎn),所走過的軌跡便是對(duì)象物的輪廓;步驟3.6 :從BODYS(k)中刪除邊界框脫離觸發(fā)線的車身輪廓,輪廓的邊界框是指包圍輪廓的最小矩形,分別以輪廓上所有點(diǎn)的X軸坐標(biāo)的最小值和最大值作為輪廓的邊界框的左邊和右邊的X軸坐標(biāo),以輪廓上所有點(diǎn)的Y軸坐標(biāo)的最小值和最大值作為輪廓的邊界框的上邊和下邊的Y軸坐標(biāo)值,邊界框脫離觸發(fā)線是指如果車輛行駛方向?yàn)閺南轮辽?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均小于Y_TOUCH,如果車輛行駛方向?yàn)閺纳现料?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均大于Y_TOUCH ;本實(shí)例中,刪除脫離觸發(fā)線的車身輪廓后剩余的車身輪廓見圖7 ;步驟4:跟蹤舊車如果第k-1幀圖像的車輛集合CARS (k-1)為空集,則進(jìn)入步驟5,否則將第k-1幀圖像中的車輛集合CARS (k-1)中的每輛車跟蹤到第k幀圖像,將第k-1幀圖像的車輛集合CARS (k-1)中編號(hào)為n的車car(n, k-1)跟蹤到第k巾貞圖像的步驟如下步驟4. I :在第k幀圖像的車輛集合CARS (k)中添加編號(hào)為n的車car (n,k),令車 car (n, k)的塊集合SUBS (n, k)為空集;步驟4. 2 :將車car(n,k-1)的塊集合SUBS(n,k-1)中每一個(gè)塊跟蹤到第k幀圖像;步驟4. 3 :如果車car(n,k)的塊集合SUBS(n,k)為空集,則從第k幀圖像的車輛集合CARS(k)中刪除車car(n, k),并結(jié)束對(duì)車car(n, k-1)的跟蹤,否則進(jìn)行步驟4. 4 ;步驟4.4 :標(biāo)記車car (n,k)為舊車;步驟4.5 :獲取包圍車car (n,k)的塊集合SUBS(n,k)中所有塊的頂點(diǎn)的凸包,令車car (n, k)的輪廓c (n, k)等于該凸包;步驟4. 6 :計(jì)算車car (n,k)的塊集合SUBS (n,k)中所有塊的運(yùn)動(dòng)矢量的平均值,將該平均值保存為車car (n, k)的運(yùn)動(dòng)矢量mean (n, k);塊的運(yùn)動(dòng)矢量是指塊的中心點(diǎn)坐標(biāo)減去前一幀與該塊對(duì)應(yīng)的塊的中心點(diǎn)坐標(biāo)得到的矢量;本實(shí)例中,第125幀圖像中的車輛集合CARS(125)中的所有車見圖8,第125幀圖像中的車輛集合CARS (125)中的所有車被跟蹤到第126幀圖像的結(jié)果見圖9,第126幀圖像中舊車輪廓與車身輪廓的位置關(guān)系見圖10 ;步驟5:更新舊車輪廓如果第k幀圖像的車輛集合CARS(k)為空集或者第k幀圖像的車身輪廓集合BODYS (k)為空集,則進(jìn)入步驟6,否則進(jìn)入步驟5. I ;步驟5. I :將第k幀圖像的車身輪廓集合BODYS (k)中的所有車身輪廓標(biāo)記為未查看;步驟5. 2 :從第k幀圖像的車身輪廓集合BODYS (k)中獲取一個(gè)標(biāo)記為未查看的車身輪廓,如果獲取成功,將該車身輪廓標(biāo)記為已查看,否則進(jìn)入步驟6 ;步驟5.3 :從第k幀圖像的車輛集合CARS(k)中找出邊界框與該車身輪廓的邊界框距離最近的車輛,兩邊界框之間的距離是指邊界框中心點(diǎn)之間的距離,車輛的邊界框是指車輛的輪廓的邊界框;步驟5. 4 :判斷該車輛能否吞并該車身輪廓;步驟5. 5 :如果該車輛能吞并該車身輪廓,則該車輛吞并該車身輪廓;車輛吞并車身輪廓的方法如下步驟5. 5. I :合并車輛的輪廓與車身輪廓,得到點(diǎn)集A ;
      步驟5.5. 2 :采用公知的Graham掃描法獲取點(diǎn)集A的凸包,令該車身輪廓等于點(diǎn)集A的凸包;點(diǎn)集的凸包是指一個(gè)最小凸多邊形,滿足該點(diǎn)集中的點(diǎn)或者在該最小凸多邊形邊上或者在其內(nèi)。Graham掃描法是獲取點(diǎn)集的凸包的公知算法,首先,找到所有點(diǎn)中Y軸坐標(biāo)最小的點(diǎn),如果Y軸坐標(biāo)相同,找X軸坐標(biāo)最小的點(diǎn).,以這個(gè)點(diǎn)為基準(zhǔn)求所有點(diǎn)的極角,并按照極角從小到大的順序?qū)@些點(diǎn)排序,基準(zhǔn)點(diǎn)排在最前,建立一個(gè)棧,初始時(shí)前3個(gè)點(diǎn)進(jìn)棧,對(duì)于每個(gè)剩余的點(diǎn),設(shè)該剩余的點(diǎn)的坐標(biāo)為(x5, y5),棧頂?shù)狞c(diǎn)的前一個(gè)點(diǎn)的坐標(biāo)為(x6,y6),棧頂?shù)狞c(diǎn)坐標(biāo)為(x7,y7),若(x6_x5)*(y7_y5) - (x7_x5)*(y6_y5)為正值,則將棧頂?shù)狞c(diǎn)出棧,直至沒有點(diǎn)需要出棧以后將該剩余的點(diǎn)進(jìn)棧,所有點(diǎn)處理完之后棧中保存的點(diǎn)就是凸包上的點(diǎn)。步驟5. 5. 3 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除該車身輪廓;步驟5. 6 :返回步驟5. 2 ;更新舊車輪廓流程圖見圖11 ;步驟6:檢測(cè)新車如果BODYS(k)為空集,則省略該步驟;如果第k幀圖像的車身輪廓集合BODYS (k)為空集,則進(jìn)入步驟7 ;步驟6. I :從第k幀圖像的車身輪廓集合BODYS(k)中獲取一個(gè)邊界框?qū)挾却笥赪IDE/3的車身輪廓,如果獲取失敗,則進(jìn)入步驟7 ;步驟6.2 :車輛總數(shù)S自增I,在第k幀圖像的車輛集合CARS (k)中增加編號(hào)為S的車car (S,k),標(biāo)記car (S,k)為新車,令車car (S,k)的輪廓c(S,k)等于由步驟6. I獲取的車身輪廓的凸包,令車car (S,k)的塊集合SUBS(S,k)為空集;步驟6. 3 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除由步驟6. I獲取的車身輪廓;步驟6. 4 :采用車輛吞并車身輪廓的方法,用車car (S,k)吞并第k幀圖像的車身輪廓集合BODYS (k)中所有能被car (S,k)吞并的車身輪廓;
      步驟6. 5 :返回步驟6. I ;檢測(cè)新車流程圖見圖12 ;本實(shí)例中,第126幀圖像的車輛輪廓檢測(cè)結(jié)果見圖13,其中編號(hào)為5的車是新車。步驟7 :添加填充塊如果第k幀圖像的車輛集合CARS(k)為空集,則返回步驟2,否則在為第k幀圖像的車輛集合CARS (k)中的每輛車添加填充塊之后返回步驟2,為CARS (k)中任意一輛車car (n, k)添加填充塊的步驟如下對(duì)車car(n, k)的輪廓c (n, k)上的每個(gè)點(diǎn)進(jìn)行如下操作—設(shè)車car (n, k)的輪廓c (n, k)上的點(diǎn)坐標(biāo)為(xl, yl),從以車car (n, k)的輪廓c(n,k)上的點(diǎn)(xl,yl)為頂點(diǎn)之一的四個(gè)塊sub (xl-m/2, yl-m/2, k)、sub (xl-m/2, yl+m/2, k) > sub (xl+m/2, yl-m/2, k) > sub (xl+m/2, yl+m/2, k)中找出 4 個(gè)頂點(diǎn)全被車car (n, k)的輪廓c(n, k)包圍的塊作為填充塊,并標(biāo)記填充塊為sub (x2, y2, k),判斷任意一個(gè)頂點(diǎn)D3是否被一個(gè)輪廓包圍的方法是如果一個(gè)輪廓上有奇數(shù)個(gè)點(diǎn)滿足X軸坐標(biāo)值大于頂點(diǎn)D3的X軸坐標(biāo)值,Y軸坐標(biāo)值等于頂點(diǎn)D3的Y軸坐標(biāo)值,則頂點(diǎn)D3被該輪廓包圍,二在第k巾貞二值圖binary (k)中與填充塊sub (x2, y2, k)位置和大小都對(duì)應(yīng)的像素矩陣稱為填充塊sub (x2, y2, k)的二值塊,如果填充塊sub (x2, y2, k)的二值塊的非零像素個(gè)數(shù)大于閾值T2并且車car (n,k)的塊集合SUBS (n,k)中沒有與填充塊sub (x2,y2,k)重疊面積大于mXm/2的塊,則將填充塊sub (x2, y2, k)加入車car (n, k)的塊集合SUBS (n, k),閾值T2取值為mXm的0. 6^0. 8倍,例如閾值T2取值為mXm的0. 6,0. 7或0. 8倍。本實(shí)例中,T2取值為mXm的0. 7倍,為第126幀圖像的車輛添加填充塊后的結(jié)果見圖14。步驟4. 2中將第k-1幀圖像中編號(hào)為n的車car(n, k-1)的塊集合SUBS(n,k-1)中的塊sub (x, y, k-1)跟蹤到第k巾貞圖像的步驟如下步驟4. 2. I :設(shè)置矩形搜索區(qū)域rect, rect的中心點(diǎn)坐標(biāo)表示為(xr,yr),如果車car (n, k-1)被標(biāo)記為新車,則rect的中心點(diǎn)坐標(biāo)等于塊sub (x, y, k_l)的中心點(diǎn)坐標(biāo),xr等于x, yr等于y, rect的邊長(zhǎng)為WIDE/2,如果車car (n, k-1)被標(biāo)記為舊車,則xr等于 x+mean (n, k-1). x, yr 等于 y+mean (n, k-1). y, rect 的邊長(zhǎng)為 mean (n, k-1)的長(zhǎng)度,其中mean (n, k-1). x 和 mean (n, k-1). y 分別表示車 car (n, k-1)的運(yùn)動(dòng)矢量 mean (n, k-1)的 ·X 軸分量和Y軸分量;步驟4. 2. 2 :按下式計(jì)算塊sub (x, y, k-1)與第k巾貞圖像中矩形搜索區(qū)域rect內(nèi)的每個(gè)塊的匹配值matdi(,\*3. r3. k)~ Y \P(zx - .\*3 — zy -1'3 — \\ k) — P(zx, zr. k —1)|式中,match (x3, y3, k)表示塊sub (x, y, k-1)與第k巾貞圖像中矩形搜索區(qū)域rect內(nèi)中心點(diǎn)坐標(biāo)為(x3, y3)的塊sub(x3, y3, k)的匹配值,(zx, zy)表示塊sub(x,y, k_l)中的像素的坐標(biāo),P(zx+x3_x, zy+y3_y,k)表示第k巾貞圖像f(k)中坐標(biāo)為(zx+x3_x, zy+y3_y)的像素的灰度值,P(zx, zy, k-1)表示第k-1幀圖像f (k-1)中坐標(biāo)為(zx,zy)的像素的灰度值,將第k幀圖像中矩形搜索區(qū)域rect內(nèi)的所有塊中與塊sub (x,y,k-1)的匹配值最小的塊表示為sub (x4, y4, k);步驟4. 2. 3 :在第k幀差分圖dif(k)中與塊sub (x4, y4, k)位置和大小都對(duì)應(yīng)的像素矩陣稱為塊sub (x4, y4, k)的差分塊,如果塊sub (x4, y4, k)的差分塊中的所有像素的平均灰度值大于閾值T3,則將塊sub (x4, y4, k)加入到車car (n, k)的塊集合SUBS (n, k)中,并保存塊sub (x4,y4,k)的運(yùn)動(dòng)矢量為(叉41,741),13取值20 30,例如:T3取值20、25或30,本實(shí)例中,T3取值25。步驟4. 5中獲取包圍車car(n,k)的塊集合SUBS (n,k)中所有塊的頂點(diǎn)的凸包的步驟如下步驟4. 5. I :將SUBS (n, k)中每一個(gè)塊的4個(gè)頂點(diǎn)加入點(diǎn)集B ;步驟4. 5. 2 :采用公知的Graham掃描法獲取點(diǎn)集B的凸包,該凸包即包圍SUBS (n,k)中所有塊的凸包,步驟5. 4中判斷車輛能否吞并車身輪廓的步驟如下步驟5. 4. I :如果車輛的輪廓的邊界框與車身輪廓的邊界框之間有交集,則車輛能吞并車身輪廓,結(jié)束判斷車輛能否吞并車身輪廓,否則進(jìn)入步驟5. 4. 2 ;步驟5. 4. 2 :如果車輛的輪廓的邊界框脫離最小車長(zhǎng)線,則車輛不能吞并車身輪廓,結(jié)束判斷車輛能否吞并車身輪廓,否則進(jìn)行步驟5. 4. 3 ;
      邊界框脫離最小車長(zhǎng)線是指如果車輛行駛方向?yàn)閺南轮辽?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均小于Y_L0NG,如果車輛行駛方向?yàn)閺纳现料?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo) 值均大于Y_L0NG ;步驟5. 4. 3 :如果車輛的輪廓的邊界框與車身輪廓的邊界框的并集的寬小于WIDE,則車輛能吞并車身輪廓。
      權(quán)利要求
      1.一種視頻多車輛輪廓檢測(cè)方法,其特征在于 步驟1:初始化 步驟1.1:獲取一段視頻,再?gòu)囊曨l獲取背景圖像; 步驟I. 2 :以圖像左上角的像素位置為原點(diǎn),像素為單位長(zhǎng)度,從左到右的方向?yàn)閄軸正方向,從上到下的方向?yàn)閅軸正方向,建立坐標(biāo)系; 步驟1.3 :用一個(gè)多邊形在視頻場(chǎng)景中圈出監(jiān)控區(qū)域,該多邊形稱為虛擬圍欄,如果車輛行駛方向?yàn)閺南轮辽希瑒t虛擬圍欄的底部為水平線,該底部水平線稱為入境線,如果車輛行駛方向?yàn)閺纳现料?,則虛擬圍欄的頂部為水平線,該頂部水平線稱為入境線,入境線的Y軸坐標(biāo)表示為Y_IN ; 步驟I. 4 :獲取一幀有轎車剛好完全駛?cè)氡O(jiān)控區(qū)域的圖像,車輛剛好完全駛?cè)氡O(jiān)控區(qū)域是指車輛尾部緊貼入境線,在該車的車頭前畫一條水平線,稱為最小車長(zhǎng)線,最小車長(zhǎng)線的Y軸坐標(biāo)表示為Y_LONG,在最小車長(zhǎng)線與入境線之間畫一條水平線,稱為觸發(fā)線,觸發(fā)線的Y軸坐標(biāo)表示為Y_TOUCH,觸發(fā)線與最小車長(zhǎng)線的距離和觸發(fā)線與入境線的距離之比為.3: f 4:1,在該車兩側(cè)畫2條豎直線,使2條豎直線之間的距離為該車寬度的I. 3^1. 5倍,該豎直線稱為車寬線,2條車寬線之間的距離表示為WIDE ; 步驟I. 5 :用變量S表示整段視頻中已檢測(cè)出來的車輛總數(shù),用變量k表示正在檢測(cè)的圖像在視頻中的幀序,第k幀圖像表示為f(k),第k幀圖像中的車輛的集合表示為CARS(k),第k巾貞圖像中的編號(hào)為n的車表示為car (n, k),編號(hào)n表示car (n, k)是整段視頻中第n輛被檢測(cè)出來的車,car (n, k)的輪廓表示為c (n, k); 設(shè)第k幀圖像f(k)是由MXN個(gè)像素構(gòu)成的像素矩陣,將第k幀圖像f(k)劃分為(M —m + I) X (N — m + I)個(gè)塊,每個(gè)塊是由mXm個(gè)像素構(gòu)成的像素矩陣,m取值為WIDE的.0.廣0. 3倍,第k幀圖像中的中心點(diǎn)坐標(biāo)為(x,y)的塊表示為8111^,7,10,屬于編號(hào)為11的車car (n, k)的塊集合表示為SUBS (n, k); 步驟I. 6 :令表示幀序的變量k為0,整段視頻中已檢測(cè)出來的車輛總數(shù)S為0,第0幀車輛集合CARS(O)為空集; 步驟2:表示幀序的變量k自增1,獲取第k幀圖像f(k),令第k幀圖像的車輛集合CARS(k)為空集; 步驟3 :獲取車身輪廓集合 步驟3. I :取第k幀圖像f(k)與背景圖像之差的絕對(duì)值圖像作為第k幀差分圖dif(k); 步驟3. 2 :第k幀差分圖dif (k)中處于監(jiān)控區(qū)域內(nèi)且灰度值大于閾值Tl的像素稱為前景像素,否則稱為背景像素,令前景像素灰度值為255,背景像素灰度值為0,得到第k幀二值圖binary (k),Tl可取值為20 50 ; 步驟3. 3 :,對(duì)第k幀二值圖binary (k)進(jìn)行形態(tài)學(xué)開運(yùn)算,得到第k幀前景圖像obj (k),形態(tài)學(xué)開運(yùn)算中的核是邊長(zhǎng)為m/2的矩形,核的參考點(diǎn)是核的中心點(diǎn); 步驟3.4 :采用公知的Canny邊緣檢測(cè)法檢測(cè)第k幀前景圖像obj(k)中的邊緣像素點(diǎn),令邊緣像素點(diǎn)的灰度值為255,非邊緣像素點(diǎn)的灰度值為0,得到第k幀邊緣圖con(k);步驟3. 5 :采用公知的爬蟲法獲取第k幀邊緣圖con(k)中的所有車身輪廓,第k幀圖像中的車身輪廓的集合表示為BODYS (k),車身輪廓是第k幀邊緣圖con (k)中邊緣像素點(diǎn)的集合,對(duì)于任意一個(gè)車身輪廓body I內(nèi)的任意一個(gè)像素點(diǎn)Dl,存在一個(gè)車身輪廓body I內(nèi)的像素點(diǎn)D2,像素點(diǎn)D2是像素點(diǎn)Dl的8鄰域像素點(diǎn)之一。
      步驟3.6 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除邊界框脫離觸發(fā)線的車身輪廓,輪廓的邊界框是指包圍輪廓的最小矩形,邊界框脫離觸發(fā)線是指如果車輛行駛方向?yàn)閺南轮辽?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均小于Y_T0UCH,如果車輛行駛方向?yàn)閺纳现料拢吔缈虻?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均大于Y_T0UCH ; 步驟4:跟蹤舊車 如果第k-1幀圖像的車輛集合CARS (k-1)為空集,則進(jìn)入步驟5,否則將第k-1幀圖像中的車輛集合CARS(k-1)中的每輛車跟蹤到第k幀圖像,將第k-1幀圖像的車輛集合CARS (k-1)中編號(hào)為n的車car (n, k-1)跟蹤到第k巾貞圖像的步驟如下 步驟4. I :在第k幀圖像的車輛集合CARS(k)中添加編號(hào)為n的車car (n,k),令車 car (n, k)的塊集合SUBS (n, k)為空集; 步驟4. 2 :將車car (n,k-1)的塊集合SUBS (n,k-1)中每一個(gè)塊跟蹤到第k幀圖像;步驟4. 3 :如果車car (n,k)的塊集合SUBS (n,k)為空集,則從第k幀圖像的車輛集合CARS (k)中刪除車car (n, k),并結(jié)束對(duì)車car (n, k-1)的跟蹤,否則進(jìn)行步驟4. 4 ; 步驟4. 4 :標(biāo)記車car (n, k)為舊車; 步驟4.5 :獲取包圍車car (n,k)的塊集合SUBS (n,k)中所有塊的頂點(diǎn)的凸包,令車car (n, k)的輪廓c (n, k)等于該凸包; 步驟4. 6 :計(jì)算車car (n, k)的塊集合SUBS (n, k)中所有塊的運(yùn)動(dòng)矢量的平均值,將該平均值保存為車car (n, k)的運(yùn)動(dòng)矢量mean (n, k); 塊的運(yùn)動(dòng)矢量是指塊的中心點(diǎn)坐標(biāo)減去前一幀與該塊對(duì)應(yīng)的塊的中心點(diǎn)坐標(biāo)得到的矢量; 步驟5:更新舊車輪廓 如果第k幀圖像的車輛集合CARS (k)為空集或者第k幀圖像的車身輪廓集合BODYS (k)為空集,則進(jìn)入步驟6,否則進(jìn)入步驟5. I ; 步驟5. I :將第k幀圖像的車身輪廓集合BODYS (k)中的所有車身輪廓標(biāo)記為未查看;步驟5. 2 :從第k幀圖像的車身輪廓集合BODYS (k)中獲取一個(gè)標(biāo)記為未查看的車身輪廓,如果獲取成功,將該車身輪廓標(biāo)記為已查看,否則進(jìn)入步驟6 ; 步驟5.3 :從第k幀圖像的車輛集合CARS(k)中找出邊界框與該車身輪廓的邊界框距離最近的車輛,兩邊界框之間的距離是指邊界框中心點(diǎn)之間的距離,車輛的邊界框是指車輛的輪廓的邊界框; 步驟5. 4 :判斷該車輛能否吞并該車身輪廓; 步驟5. 5 :如果該車輛能吞并該車身輪廓,則該車輛吞并該車身輪廓; 車輛吞并車身輪廓的方法如下 步驟5. 5. I :合并車輛的輪廓與車身輪廓,得到點(diǎn)集A ; 步驟5. 5. 2 :采用公知的Graham掃描法獲取點(diǎn)集A的凸包,令該車身輪廓等于點(diǎn)集A的凸包; 步驟5. 5. 3 :從第k幀圖像的車身輪廓集合BODYS (k)中刪除該車身輪廓; 步驟5. 6 :返回步驟5. 2 ;步驟6 :檢測(cè)新車 如果第k幀圖像的車身輪廓集合BODYS (k)為空集,則進(jìn)入步驟7 ; 步驟6. I :從第k幀圖像的車身輪廓集合BODYS (k)中獲取一個(gè)邊界框?qū)挾却笥赪IDE/3的車身輪廓,如果獲取失敗,則進(jìn)入步驟7 ; 步驟6. 2 :車輛總數(shù)S自增1,在第k幀圖像的車輛集合CARS(k)中增加編號(hào)為S的車car (S,k),標(biāo)記car (S,k)為新車,令車car (S,k)的輪廓c(S,k)等于由步驟6. I獲取的車身輪廓的凸包,令車car (S,k)的塊集合SUBS(S,k)為空集; 步驟6.3 :從第k幀圖像的車身輪廓集合BODYS(k)中刪除由步驟6. I獲取的車身輪 廓; 步驟6. 4 :采用車輛吞并車身輪廓的方法,用車car (S,k)吞并第k幀圖像的車身輪廓集合BODYS (k)中所有能被car (S,k)吞并的車身輪廓; 步驟6. 5 :返回步驟6. I ; 步驟7 :添加填充塊 如果第k幀圖像的車輛集合CARS(k)為空集,則返回步驟2,否則在為第k幀圖像的車輛集合CARS(k)中的每輛車添加填充塊之后返回步驟2,為CARS(k)中任意一輛車car (n, k)添加填充塊的步驟如下 對(duì)車car(n, k)的輪廓c (n, k)上的每個(gè)點(diǎn)進(jìn)行如下操作 一設(shè)車car (n, k)的輪廓c (n, k)上的點(diǎn)坐標(biāo)為(xl, yl),從以車car (n, k)的輪廓c(n,k)上的點(diǎn)(xl,yl)為頂點(diǎn)之一的四個(gè)塊sub (xl_m/2,yl_m/2,k)、sub (xl-m/2, yl+m/2, k)、sub (xl+m/2, yl-m/2, k)、sub (xl+m/2, yl+m/2, k)中找出 4 個(gè)頂點(diǎn)全被c(n, k)所包圍的塊作為填充塊,并標(biāo)記填充塊為sub(x2, y2, k),判斷一個(gè)點(diǎn)D3是否被一個(gè)輪廓包圍的方法是如果一個(gè)輪廓上有奇數(shù)個(gè)點(diǎn)滿足X軸坐標(biāo)值大于點(diǎn)D3的X軸坐標(biāo)值,Y軸坐標(biāo)值等于D3的Y軸坐標(biāo)值,則點(diǎn)D3被該輪廓包圍,二在第k幀二值圖binary (k)中與填充塊sub (x2,y2, k)位置和大小都對(duì)應(yīng)的像素矩陣稱為填充塊sub (x2, y2, k)的二值塊,如果填充塊sub (x2, y2, k)的二值塊的非零像素個(gè)數(shù)大于閾值T2并且車car(n,k)的塊集合SUBS (n, k)中沒有與填充塊sub (x2, y2, k)重疊面積大于mXm/2的塊,則將填充塊sub (x2,y2, k)加入車car (n,k)的塊集合SUBS (n,k),閾值T2取值為mXm的 0. 6^0. 8 倍。
      2.如權(quán)利要求I所述的視頻多車輛輪廓檢測(cè)方法,其特征在于步驟4. 2中將第k-1幀圖像中編號(hào)為n的車car (n, k-1)的塊集合SUBS (n, k_l)中的塊sub (x, y, k_l)跟蹤到第k幀圖像的步驟如下 步驟4. 2. I :設(shè)置矩形搜索區(qū)域rect, rect的中心點(diǎn)坐標(biāo)表示為(xr, yr),如果車car(n,k_l)被標(biāo)記為新車,則rect的中心點(diǎn)坐標(biāo)等于塊sub (x, y, k_l)的中心點(diǎn)坐標(biāo),xr等于x, yr等于y, rect的邊長(zhǎng)為WIDE/2,如果車car (n, k-1)被標(biāo)記為舊車,則xr等于 x+mean (n, k-1). x, yr 等于 y+mean (n, k-1). y, rect 的邊長(zhǎng)為 mean (n, k-1)的長(zhǎng)度,其中mean (n, k-1). x 和 mean (n, k-1). y 分別表示車 car (n, k-1)的運(yùn)動(dòng)矢量 mean (n, k-1)的 X 軸分量和Y軸分量; 步驟4. 2. 2 :按下式計(jì)算塊sub (X,y, k_l)與第k巾貞圖像中矩形搜索區(qū)域rect內(nèi)的每個(gè)塊的匹配值式中,match (x3, y3, k)表示塊sub (x, y, k_l)與第k巾貞圖像中矩形搜索區(qū)域rect內(nèi)中心點(diǎn)坐標(biāo)為(x3, y3)的塊sub(x3, y3, k)的匹配值,(zx, zy)表示塊sub(x,y, k_l)中的像素的坐標(biāo),P(zx+x3-x, zy+y3-y, k)表示第k巾貞圖像f(k)中坐標(biāo)為(zx+x3_x, zy+y3_y)的像素的灰度值,P(zx,zy,k-1)表示第k-1幀圖像k-1)中坐標(biāo)為(zx,zy)的像素的灰度值,將第k幀圖像中矩形搜索區(qū)域rect內(nèi)的所有塊中與塊sub (x,y,k-1)的匹配值最小的塊表示為 sub (x4, y4, k); 步驟4. 2. 3 :在第k幀差分圖dif(k)中與塊sub (x4, y4, k)位置和大小都對(duì)應(yīng)的像素矩陣稱為塊sub (x4, y4, k)的差分塊,如果塊sub (x4, y4, k)的差分塊中的所有像素的平均灰度值大于閾值T3,則將塊sub (x4, y4, k)加入到車car (n, k)的塊集合SUBS (n, k)中,并保存塊sub (x4, y4, k)的運(yùn)動(dòng)矢量為(x4-x, y 4_y),T3取值20 30。
      3.如權(quán)利要求I所述的視頻多車輛輪廓檢測(cè)方法,其特征在于步驟4.5中獲取包圍車car(n,k)的塊集合SUBS(n,k)中所有塊的頂點(diǎn)的凸包的步驟如下 步驟4. 5. I :將SUBS (n, k)中每一個(gè)塊的4個(gè)頂點(diǎn)加入點(diǎn)集B ; 步驟4. 5. 2 :采用公知的Graham掃描法獲取點(diǎn)集B的凸包,該凸包即包圍SUBS (n,k)中所有塊的凸包,點(diǎn)集的凸包是指一個(gè)最小凸多邊形,滿足點(diǎn)集中的點(diǎn)或者在多邊形邊上或者在其內(nèi)。
      4.如權(quán)利要求I所述的視頻多車輛輪廓檢測(cè)方法,其特征在于步驟5.4中判斷車輛能否吞并車身輪廓的步驟如下 步驟5. 4. I :如果車輛的輪廓的邊界框與車身輪廓的邊界框之間有交集,則車輛能吞并車身輪廓,結(jié)束判斷車輛能否吞并車身輪廓,否則進(jìn)入步驟5. 4. 2 ; 步驟5. 4. 2 :如果車輛的輪廓的邊界框脫離最小車長(zhǎng)線,則車輛不能吞并車身輪廓,結(jié)束判斷車輛能否吞并車身輪廓,否則進(jìn)行步驟5. 4. 3 ; 邊界框脫離最小車長(zhǎng)線是指如果車輛行駛方向?yàn)閺南轮辽?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均小于Y_LONG,如果車輛行駛方向?yàn)閺纳现料?,邊界框?個(gè)頂點(diǎn)的Y軸坐標(biāo)值均大于 Y_LONG ; 步驟5. 4. 3 :如果車輛的輪廓的邊界框與車身輪廓的邊界框的并集的寬小于WIDE,則車輛能吞并車身輪廓。
      全文摘要
      一種視頻多車輛輪廓檢測(cè)方法,首先畫虛擬圍欄圈出監(jiān)控區(qū)域,畫虛擬檢測(cè)器獲取車寬、最小車長(zhǎng)等參數(shù);再通過背景差分、二值化、形態(tài)學(xué)開操作、輪廓提取等一系列步驟得到車身輪廓集合;通過跟蹤組成車輛的像素塊,實(shí)現(xiàn)車輛的跟蹤,得到車輛的初始輪廓;以車輛的初始輪廓為基礎(chǔ),吞并同屬本車的車身輪廓,使正在駛?cè)氡O(jiān)控區(qū)域的車輛的輪廓更完整;從剩余的車身輪廓中選擇較大的輪廓,作為新車初始輪廓,再吞并同屬本新車的車身輪廓,使得新駛?cè)氡O(jiān)控區(qū)域的車輛被及時(shí)地檢測(cè)出來。該方法解決了攝像機(jī)抖動(dòng)、道路兩旁圖像干擾、車輛前景不連通、鄰近車輛輪廓粘連問題。
      文檔編號(hào)H04N5/14GK102799857SQ201210202508
      公開日2012年11月28日 申請(qǐng)日期2012年6月19日 優(yōu)先權(quán)日2012年6月19日
      發(fā)明者路小波, 熊陽(yáng), 路暢 申請(qǐng)人:東南大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1