視頻檢查系統已被廣泛應用于商業和工業領域。攝像頭——從黑白閉路電視(CCTV)系統中的廉價和低分辨率產品到數字視頻系統中的先進和高分辨率產品——被用于從產品檢驗、交通監管到實時人臉識別等各種應用場合。
視頻本身承載有大量數據,這些數據使得信號處理和數據存儲任務變得相當復雜。通過丟棄無用的信息、只傳遞圖片的重要部分可以簡化視頻檢查系統,節省存儲器和運算周期。圖1給出了一個典型系統的組成單元。
圖1:簡化的視頻檢查數據流程。
本文將通過幾個例子來闡述提取有用數據如何能夠使處理要求、存儲器容量和DSP使用率達到最小,并介紹ADI公司視頻解碼器的特殊性能如何能夠簡化視頻算法、加快視頻檢查系統的開發速度。
實例1:計數和檢驗物體
試想一下,一條寬傳送帶正在快速傳送許多產品,而大量的產品使得人工計數非常困難。攝像頭除了能使計數任務自動化外,還能用來監視產品質量。這可以通過修改簡單的計數算法以讓它關注特定細節和瑕疵來加以實現。
存儲所有視頻數據需要大量存儲器,而處理大量數據也需要耗費大量硬件資源和處理能力。因此在檢驗傳送帶上的產品時,系統不會將整個圖片數據采集進存儲器,而是要從大量數據中找到感興趣的細節,并盡可能多地丟棄無用數據。
在大多數情況下,灰度級圖片就攜帶有足夠的信息,因此可以將RGB信號轉換成(只有亮度的)Y信號,丟棄掉色度信息。然后使用邊緣檢測方法檢查單色圖片中的內容以發現傳送帶上的產品,然后將它們的形狀與樣板進行比較,判斷產品是否正常。
邊緣檢測算法——只需要活動視頻的幾條線和少量存儲器——能夠通過計算活動圖片的一階和二階導數發現相鄰像素亮度的不連續性,詳見Bernd J?hne所著的 “Digital Image Processing”一書。在實際應用中,邊緣檢測可以通過使用矩陣計算方法提取信息來實現,如Sobel矩陣算子。在FPGA(現場可編程門陣列)實現中,以像素為單位進行這樣的邊緣檢測可以提供令人滿意的結果。Tanvir A. Abbasi和Mohm Usaid Abbasi合作撰寫的“A proposed FPGA Based Architecture for Sobel Edge Detection Operator”一文介紹了一種簡單的FPGA實現方案。還可以通過增加高斯二維濾波器消除噪聲,詳見Mathukumar Venkatesan和Daggu Venkateshwar Rao合著的“ Hardware Acceleration of Edge Detection Algorithm on FPGAs”。這篇文章介紹了一個類似于Canny邊緣檢測器的檢測器成功實現案例。
還有其它幾種優化算法可以用來提高圖片質量,但這些算法都要占用FPGA設計中的寶貴資源。然而,一些集成電路(IC)視頻解碼器已經集成了實用的預處理算法或濾波器,因此選擇這樣的IC可以節省FPGA資源。例如, ADV7802 視頻解碼器就包含了亮度瞬態改進(LTI)和色度瞬態改進(CTI)模塊。這些模塊通過改善亮度和色度變化的銳度來提高圖片質量,并使用自適應峰值和非線性方法——不會增加噪聲或引入瑕疵——在邊緣檢測過程中非常有用。另外,亮度整形和其它內置輸入濾波器可以消除源自信號源的高頻噪聲——專注于信號,忽略偶然出現的噪聲。
圖2:LTI/CTI運算圖解。
邊緣檢測提供的是物體邊緣變化的信息,而不是物體的整個圖片,數據量能從3×8位/像素(bpp)減少到1bpp,從而節省大量存儲器空間:
640 像素 × 480像素= 307,200位(1bpp時)
800像素× 600像素= 480,000位(1bpp時)
1024像素× 768像素= 786,432位(1bpp時)
1280像素× 720像素= 921,600位(1bpp時)
通過將RGB轉換為Y,在存儲器中只存儲活動視頻的幾條線,并使用FPGA算法,我們就可以檢測物體,觀察它們的形狀。一旦知道這些物體在移動中的傳送帶上的位置,我們就能估計它們的運動,并從下一幀中采集顏色或其它信息,確保使用最少的存儲器空間。這個過程涉及:
邊緣檢測
存儲信息
預測下個位置 xn+1
從預設的產品位置區域提取信息
例子2:檢測運動和質量
機器人可以尋找特定距離和有限范圍內的目標。在一些應用中可以使用超聲波;但如果物體表面會吸收超聲波或目標在玻璃后面,可以使用視頻。攝像頭焦距設定在鄰近物體上。在近距離范圍內的物體會有清晰的邊緣,而范圍之外的背景物只有模糊的邊緣(圖3)。
圖3:焦距——窄的景深。
邊緣檢測可以用來分辨目標距離范圍內的物體,因為它們是唯一具有清晰邊緣的物體。背景中的物體將足夠模糊,不能通過邊緣檢測測試。這種邊緣檢測處理將產生一個二元位圖,其中1表示檢測到一個邊緣,0表示沒有檢測到邊緣。每個檢測到的邊緣像素的位置(x,y)可以代入公式1近似算出被隔離物體的中點:
(1)
其中 xn是邊緣像素n的x軸位置,yn 是邊緣像素n的y軸位置,N是檢測到的邊緣像素的數量。
一旦物體位置及其邊緣已知,我們就可以試著進行跟蹤。關鍵是從圖片中正確提取物體,將它的邊緣轉換成輪廓,然后用來判斷物體是否在朝攝像頭移動,方法是檢查像素距物體中心的平均距離以便判斷物體尺寸是否在改變,如公式2所示:
(2)
N是FRAME幀中的邊緣像素數量,M是FRAME-1幀中的邊緣像素數量。聚焦橫軸可以得到公式3:
(3)
當物體朝攝像頭移動時(像素從物體中心向外擴展),這個公式的值是正的。負值意味著物體正在遠離攝像頭,如圖4所示。
圖4:移動中物體的幀變化。
請注意,物體必須在攝像頭焦距范圍內。通過修改算法我們可以主動改變焦距以掃描更大的面積。一旦檢測到物體就可以進行分段、處理和跟蹤。
隨著視頻復雜度的增加,跟蹤物體將變得更加困難,特別是有紋理的物體以及由于移動速度過快而失去銳度的物體。Jianbo Shi所著的“Good Features to Track”一文介紹了一些跟蹤算法。當物體失去銳度時,邊緣檢測將會失敗。在這種情況下使用復數相關技術(如模塊匹配)——用來估算運動——或采用Yao Wang、J?rn Ostermann和Ya-Qin Zhang三人合著的“Video Processing and Communications”一書中詳細介紹的其它方法仍可以完成跟蹤。
由于攝像頭提供的是連續的數據流,因此可以通過跟蹤物體判斷它的加速度和其它參數。然而,必須使用高質量的視頻序列才能獲得良好的視頻分析結果。當通過分析相鄰像素檢測邊緣時,逐行掃描視頻要比低質量的隔行PAL或NTSC信號具有更好的分辨率。ADV7401 和ADV7403 視頻解碼器可以接受各種視頻標準,包括逐行模式。這兩款器件能夠數字化處理高達140MHz的視頻信號,并且能夠處理標清、增強清晰度和高清分量信號、CVBS和圖形。另外,它們還支持非標準視頻模式,允許使用不太流行的標準,比如STANAG。靈活的像素輸出總線允許處理4:2:2、4:4:4 YcbCr或4:4:4 RGB格式的數據。非標準視頻格式可以通過過采樣或欠采樣達到特定的水平寬度,詳見應用筆記 AN-0978, “Component Processor Nonstandard Video Formats”。
圖5所示的內置色彩空間轉換器(CSC)可以轉換彩色空間以滿足用戶要求(公式4,其中A1… A4,B1… B4,C1… C4都是可調整的CSC參數)。YPrPb或RGB輸入信號可以用可配置矩陣轉換功能轉換成其它格式。例如,將RGB轉換成YCbCr允許丟棄色度信息(Cb,Cr),通過使用單色圖片可簡化邊緣檢測。
(4)
圖5:單個CSC通道(ADV7403)。
CSC非常有用。當輸入為RGB或YCbCr時,色彩信息可以用色彩空間矩陣進行簡單的轉換。圖6給出了類似于YCbCr的YUV色彩空間。
圖6:產品質量評估中使用的YUV色彩空間可以用來檢測(例如)產品是否燒焦或變質了。Y(亮度)是常數。
如圖6所示,色彩(或YPrPb值)有助于檢測產品質量,例如是否燒焦或變質。色彩空間轉換在視頻處理中以及與使用其它標準的IC連接時都很有必要。ADV7401/ADV7403內置輸入多路復用器,可以方便地切換視頻源,這個特性在從一條停止的傳送帶切換到另一條運轉中的傳送帶時非常有用。
例子3:調整視頻檢查中的白平衡和色彩平衡
開發一個從圖片中提取物體的視頻系統需要付出艱苦的努力,因為光線角度或強度的些許變化都會影響檢驗結果。視頻工程師可以使用ADV7401/ADV7403的增益和偏移調整功能來調整亮度與對比度,只需在傳送帶上增加兩條很短的參考條紋(一條暗的,一條亮的)。ADV7401/ADV7403的偏移和增益經調整后得到可比較的值,從而使系統可對光線顏色、角度和強度方面的變化進行補償。
圖7:在可視區域增加小段參考條紋。
用于調整正確白平衡的算法非常簡單。首先,取得參考條紋的RGB(或YCbCr)值。然后,為了補償光線變化,可以通過簡單地改變器件的偏移和增益達到與參考值相同的值。這種算法可以用來:
取得暗條紋的RGB(或YCbCr)值
調整偏移以匹配暗條紋的理想RGB(或YCbCr)值
取得亮條紋的RGB(或YCbCr)值
調整增益以匹配亮條紋的理想RGB(或YCbCr)值
為了提高精度,可重復步驟2和步驟4
這個過程在系統開發期間尤其重要,因為它能提供正確的偏移(亮度)和增益(對比度)——即使在光線太強或太弱的時候,如圖8所示。偏移和增益寄存器可以通過I2C總線訪問,從而能夠實現快速自適應。
圖8:通過調整偏移和增益來補償環境光線的變化。
色彩也可以用于參考條紋。這種補償與白平衡類似,并得到廣泛使用。不過雖然白平衡比較符合人類的感知,色彩校正卻可補償由于不同照明引起的變化。雖然算法類似,但額外的偏移將導致暗色看起來不自然。ADV7401/ADV7403色彩空間轉換、靈活的輸出像素端口以及偏移與增益調整寄存器允許工程師使用已經準備好的數據快速開發算法。如前所述,很重要的一點是減少視頻處理所需的數據量、盡量避免將高級算法用于簡單視頻。具備易訪問像素端口的ADV7401/ADV7403評估板已可供貨,它能加快新設計的啟動。只需簡單地將視頻捕獲板插進這塊評估板的像素端口即能實現視頻數據的捕獲(圖9)。
圖9:ADV7401/ADV7403評估板上的像素總線。
視頻編碼器、視頻DAC和AD9889B HDMI發送器被連接到同一像素總線,允許在第二個輸出端口檢查當前圖片。ADI公司的視頻解碼器包含了視頻處理所需的模塊,可提供魯棒性能和穩定圖片。
結束語
視頻攝像頭可以在工業應用中帶來許多好處。當移動物體必須被分類、跟蹤或記錄時,這是特別重要的。帶高集成度視頻解碼器的視頻技術和實時處理功能可以用來高效地分析移動中的傳送帶上面的物體或分類傳送帶上面的混合產品。
評論
查看更多