基于FPGA的實(shí)時(shí)移動(dòng)目標(biāo)的追蹤
掃描二維碼
隨時(shí)隨地手機(jī)看文章
基于FPGA的實(shí)時(shí)移動(dòng)目標(biāo)的追蹤
01
背景知識(shí)
如圖1所示,交通攝像頭對公路上移動(dòng)的汽車進(jìn)行實(shí)時(shí)的定位,隨著小汽車的移動(dòng),紅色框也跟隨小汽車移動(dòng),實(shí)時(shí)將小汽車框起來。
基于實(shí)時(shí)物體移動(dòng)的靜態(tài)圖像背景中移動(dòng)目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn),在安防、監(jiān)控、智能交通、機(jī)器智慧、以及軍事領(lǐng)域等社會(huì)生活和軍事防御等諸多領(lǐng)域都有較大的實(shí)用價(jià)值。移動(dòng)目標(biāo)檢測的實(shí)質(zhì)是從實(shí)時(shí)圖像序列中將圖像的變化區(qū)域從整體圖像中分割提取出來。由于圖像的后期處理,比如移動(dòng)目標(biāo)的分類、跟蹤、測距、判斷大小以及行為動(dòng)作分析等,主要考慮的是移動(dòng)目標(biāo)區(qū)域的像素信息,所以對移動(dòng)目標(biāo)的準(zhǔn)確檢測和有效分割是整個(gè)檢測跟蹤系統(tǒng)的重要基礎(chǔ)。
圖1 公路上的運(yùn)動(dòng)汽車
目前逐漸形成三種運(yùn)動(dòng)目標(biāo)的檢測算法:
1)幀間差分法 是采用視頻序列中的相鄰兩幀圖像做差的方法,來檢測視頻序列中的移動(dòng)目標(biāo)。但是受運(yùn)動(dòng)目標(biāo)和背景變化的影響,檢測過程中有可能出現(xiàn)偽目標(biāo)或者目標(biāo)中出現(xiàn)“空洞”,在目標(biāo)運(yùn)動(dòng)不是太快時(shí)可以有效的檢測到目標(biāo)。
2)背景減除法首先在沒有目標(biāo)的場景中獲取背景圖像,然后利用實(shí)時(shí)視頻序列和背景圖像做差,來實(shí)現(xiàn)地移動(dòng)目標(biāo)的檢測。如何獲得背景是背景減除法的關(guān)鍵。
3)光流法是通過給圖像中每個(gè)像素點(diǎn)賦予一個(gè)速度矢量的方法建立光流場,利用光流場中矢量運(yùn)動(dòng)的連續(xù)性來檢測移動(dòng)目標(biāo)。該方法的計(jì)算量通常很大,難以實(shí)現(xiàn)實(shí)時(shí)性的檢測。
02
FPGA實(shí)現(xiàn)
本節(jié)實(shí)驗(yàn)將實(shí)現(xiàn)對鏡頭內(nèi)移動(dòng)物體(無論變大變小左右移動(dòng))的實(shí)時(shí)邊界進(jìn)行跟蹤,為后期基于FPGA的人臉位置識(shí)別,字符識(shí)別(字符在鏡頭內(nèi)任意位置)等打下基礎(chǔ)。本節(jié)顆也是走向人工智能,機(jī)器識(shí)別的重要一課。
算法實(shí)現(xiàn):對于彩色圖像直接使用FPGA進(jìn)行邊界查找難度比較大,所以我們一般對圖像傳感器采集來的圖像進(jìn)行預(yù)處理。如圖2所示,首先進(jìn)行灰度化來減少圖像數(shù)據(jù)量,然后使用幀差法對兩幅不同時(shí)刻的圖像進(jìn)行差值(此步暫未進(jìn)行)。然后我們對得到的圖像二值化。最終對二值圖像進(jìn)行邊界查找將結(jié)果顯示到lcd顯示屏上。
圖2 基于FPGA的移動(dòng)目標(biāo)追蹤系統(tǒng)
FPGA部分源碼
結(jié)果展示
圖3 實(shí)驗(yàn)圖1
圖4 實(shí)驗(yàn)圖2
圖5 對6的邊界追蹤
圖6 對圓的邊界跟蹤
圖7 對菱形的邊界追蹤
結(jié)果分析
如圖5,6,7所示我們完成了對數(shù)字6、圖形圓、以及菱形的最大邊界的實(shí)時(shí)定位,無論圖像形狀大小,均準(zhǔn)確定位到了圖像的上下左右邊界。對目標(biāo)成功進(jìn)行了實(shí)時(shí)的定位。這將為我們后期的各種準(zhǔn)確識(shí)別打下堅(jiān)實(shí)的基礎(chǔ)。