監(jiān)控和檢查系統(tǒng)中的視頻解碼器基本原理
視頻檢查系統(tǒng)已被廣泛應(yīng)用于商業(yè)和工業(yè)領(lǐng)域。攝像頭——從黑白閉路電視(CCTV)系統(tǒng)中的廉價(jià)和低分辨率產(chǎn)品到數(shù)字視頻系統(tǒng)中的先進(jìn)和高分辨率產(chǎn)品——被用于從產(chǎn)品檢驗(yàn)、交通監(jiān)管到實(shí)時(shí)人臉識(shí)別等各種應(yīng)用場合。
本文引用地址:http://m.butianyuan.cn/article/156983.htm視頻本身承載有大量數(shù)據(jù),這些數(shù)據(jù)使得信號(hào)處理和數(shù)據(jù)存儲(chǔ)任務(wù)變得相當(dāng)復(fù)雜。通過丟棄無用的信息、只傳遞圖片的重要部分可以簡化視頻檢查系統(tǒng),節(jié)省存儲(chǔ)器和運(yùn)算周期。圖1給出了一個(gè)典型系統(tǒng)的組成單元。
圖1:簡化的視頻檢查數(shù)據(jù)流程。
本文將通過幾個(gè)例子來闡述提取有用數(shù)據(jù)如何能夠使處理要求、存儲(chǔ)器容量和DSP使用率達(dá)到最小,并介紹ADI公司視頻解碼器的特殊性能如何能夠簡化視頻算法、加快視頻檢查系統(tǒng)的開發(fā)速度。
實(shí)例1:計(jì)數(shù)和檢驗(yàn)物體
試想一下,一條寬傳送帶正在快速傳送許多產(chǎn)品,而大量的產(chǎn)品使得人工計(jì)數(shù)非常困難。攝像頭除了能使計(jì)數(shù)任務(wù)自動(dòng)化外,還能用來監(jiān)視產(chǎn)品質(zhì)量。這可以通過修改簡單的計(jì)數(shù)算法以讓它關(guān)注特定細(xì)節(jié)和瑕疵來加以實(shí)現(xiàn)。
存儲(chǔ)所有視頻數(shù)據(jù)需要大量存儲(chǔ)器,而處理大量數(shù)據(jù)也需要耗費(fèi)大量硬件資源和處理能力。因此在檢驗(yàn)傳送帶上的產(chǎn)品時(shí),系統(tǒng)不會(huì)將整個(gè)圖片數(shù)據(jù)采集進(jìn)存儲(chǔ)器,而是要從大量數(shù)據(jù)中找到感興趣的細(xì)節(jié),并盡可能多地丟棄無用數(shù)據(jù)。
在大多數(shù)情況下,灰度級(jí)圖片就攜帶有足夠的信息,因此可以將RGB信號(hào)轉(zhuǎn)換成(只有亮度的)Y信號(hào),丟棄掉色度信息。然后使用邊緣檢測方法檢查單色圖片中的內(nèi)容以發(fā)現(xiàn)傳送帶上的產(chǎn)品,然后將它們的形狀與樣板進(jìn)行比較,判斷產(chǎn)品是否正常。
邊緣檢測算法——只需要活動(dòng)視頻的幾條線和少量存儲(chǔ)器——能夠通過計(jì)算活動(dòng)圖片的一階和二階導(dǎo)數(shù)發(fā)現(xiàn)相鄰像素亮度的不連續(xù)性,詳見Bernd Jähne所著的 “Digital Image Processing”一書。在實(shí)際應(yīng)用中,邊緣檢測可以通過使用矩陣計(jì)算方法提取信息來實(shí)現(xiàn),如Sobel矩陣算子。在FPGA(現(xiàn)場可編程門陣列)實(shí)現(xiàn)中,以像素為單位進(jìn)行這樣的邊緣檢測可以提供令人滿意的結(jié)果。Tanvir A. Abbasi和Mohm Usaid Abbasi合作撰寫的“A proposed FPGA Based Architecture for Sobel Edge Detection Operator”一文介紹了一種簡單的FPGA實(shí)現(xiàn)方案。還可以通過增加高斯二維濾波器消除噪聲,詳見Mathukumar Venkatesan和Daggu Venkateshwar Rao合著的“ Hardware Acceleration of Edge Detection Algorithm on FPGAs”。這篇文章介紹了一個(gè)類似于Canny邊緣檢測器的檢測器成功實(shí)現(xiàn)案例。
還有其它幾種優(yōu)化算法可以用來提高圖片質(zhì)量,但這些算法都要占用FPGA設(shè)計(jì)中的寶貴資源。然而,一些集成電路(IC)視頻解碼器已經(jīng)集成了實(shí)用的預(yù)處理算法或?yàn)V波器,因此選擇這樣的IC可以節(jié)省FPGA資源。例如, ADV7802 視頻解碼器就包含了亮度瞬態(tài)改進(jìn)(LTI)和色度瞬態(tài)改進(jìn)(CTI)模塊。這些模塊通過改善亮度和色度變化的銳度來提高圖片質(zhì)量,并使用自適應(yīng)峰值和非線性方法——不會(huì)增加噪聲或引入瑕疵——在邊緣檢測過程中非常有用。另外,亮度整形和其它內(nèi)置輸入濾波器可以消除源自信號(hào)源的高頻噪聲——專注于信號(hào),忽略偶然出現(xiàn)的噪聲。
圖2:LTI/CTI運(yùn)算圖解。
邊緣檢測提供的是物體邊緣變化的信息,而不是物體的整個(gè)圖片,數(shù)據(jù)量能從3×8位/像素(bpp)減少到1bpp,從而節(jié)省大量存儲(chǔ)器空間:
640 像素 × 480像素= 307,200位(1bpp時(shí))
800像素× 600像素= 480,000位(1bpp時(shí))
1024像素× 768像素= 786,432位(1bpp時(shí))
1280像素× 720像素= 921,600位(1bpp時(shí))
通過將RGB轉(zhuǎn)換為Y,在存儲(chǔ)器中只存儲(chǔ)活動(dòng)視頻的幾條線,并使用FPGA算法,我們就可以檢測物體,觀察它們的形狀。一旦知道這些物體在移動(dòng)中的傳送帶上的位置,我們就能估計(jì)它們的運(yùn)動(dòng),并從下一幀中采集顏色或其它信息,確保使用最少的存儲(chǔ)器空間。這個(gè)過程涉及:
邊緣檢測
存儲(chǔ)信息
預(yù)測下個(gè)位置 xn+1
從預(yù)設(shè)的產(chǎn)品位置區(qū)域提取信息
評(píng)論