圖像處理技術(shù)在零件表面破損檢測中的設(shè)計及應(yīng)用
Blackfin處理器在工業(yè)圖像處理中的設(shè)計應(yīng)用
由于處理器(PC))能提供低成本、小尺寸、可擴(kuò)展的圖像處理系統(tǒng),所以它們比功耗和價格較高的其它同類系統(tǒng)更具吸引力。公司的處理器系列時鐘頻率為,包括便于高效數(shù)據(jù)搬移和處理的增強(qiáng)結(jié)構(gòu),這種結(jié)構(gòu)類似雙乘法累加單元,提供了用作視頻和數(shù)據(jù)通道的高速并行接口。下面將介紹一些常用的圖像處理和視頻處理的算法,以說明處理器的這些特性如何在當(dāng)今的圖像處理系統(tǒng)中發(fā)揮其作用。
1Blackfin處理器具有很多適合于圖像應(yīng)用的特點(diǎn)
2Blackfin 處理器由于具有雙單元,所以可以在個周期內(nèi)產(chǎn)生兩個輸出點(diǎn),相當(dāng)于每個周期做一個×卷積
1所示,靠近內(nèi)核處理器的等級是最快的,但是通常容量太小而沒有大的圖像緩存。這也是直接存儲器存取如此重要的原因之一。在方式下,數(shù)據(jù)框架可以將數(shù)據(jù)從快速內(nèi)存中存入和取出,同時源自視頻外圍設(shè)備的數(shù)據(jù)裝入片外較大的緩沖器中??刂破鳘?dú)立于內(nèi)核處理器工作,而內(nèi)核周期僅僅用于在傳輸完成時提供中斷。下面介紹的每種算法都利用了一些基于的框架類型以達(dá)到盡可能最佳性能。選擇這些算法是因?yàn)樗鼈冞m用在很廣的應(yīng)用領(lǐng)域。
3×卷積
3×的掩碼,但是掩碼又不能太小,否則將無法檢測出一幅圖像的邊緣。
2示出了個矩陣:一個輸入矩陣,一個×掩碼矩陣和一個輸出矩陣。通過適當(dāng)?shù)貙ζ漭斎霐?shù)據(jù),處理器的單元能夠在一個處理器周期內(nèi)每次處理兩個輸出點(diǎn),同時讀取與運(yùn)算并行執(zhí)行的多個數(shù)據(jù)。這種方法允許對每次循環(huán)重復(fù)周期或者每像素周期的雙輸出點(diǎn)的高效計算。
3×卷積內(nèi)核來逼近水平邊緣和垂直邊緣。第一個矩陣檢測垂直邊緣的變化,而第二個矩陣檢測水平邊緣的變化。
Blackfin處理器采用保留×像素圖像兩個梯度中的較大值的方法,處理一幀大約要用,同時,它使用基于的二維數(shù)據(jù)框架從快速處理器內(nèi)存中存取數(shù)據(jù)。
Blackfin處理器的幾個特性
Blackfin處理器上,即使處理器有級通道,一個預(yù)分支的處理也可以小至一個周期。這對具有信號處理功能的處理器來說是相當(dāng)可觀的,而且這顯然有助于縮短這種情況下的計算時間。
Blackfin處理器信號處理功能可以在一個周期內(nèi)完成兩個乘法運(yùn)算,同時訪問兩次存儲器讀取累加表值。事實(shí)證明,這種方式可以很好地完成定點(diǎn)霍夫變換,效果與浮點(diǎn)計算相當(dāng)。
// loop over the values
a0 += a1; // add the results
Blackfin處理器提供一個矢量指令以從兩個操作數(shù)對中找出兩個最大值。這種處理方法可以有效地將找出一個 N
MAC和算術(shù)邏輯單元外,處理器還有可以應(yīng)用于單周期指令的四個附加的。這四個可以同時處理四組字節(jié)例如添加、刪減和求平均。在包含圖像幀之間的運(yùn)動估算中非常有用。
8 位減法絕對值累加指令減去四對值,取每個差值的絕對值,并將每個結(jié)果累加到一個累加器中,從而對物體運(yùn)動進(jìn)行辨別??傊?處理器有多種有效檢測相鄰圖像幀運(yùn)動的方法。
FFT
(FFT)是計算離散傅立葉變換的快速算法。在計算二維數(shù)據(jù)時,其主要用途包括通過快速卷積濾波、快速相關(guān)、圖像增強(qiáng)和物體識別?!翀D像的二維大小也應(yīng)是×。其旋轉(zhuǎn)因子通常在運(yùn)行時間之前計算。
FFT算法高效運(yùn)算的位反轉(zhuǎn)和蝴蝶加減指令。為了完成二維位反轉(zhuǎn),將×輸入圖像展開成大小為2的一維矢量,這主要是因?yàn)橛晌环崔D(zhuǎn)一維矢量生成的轉(zhuǎn)置矩陣等于二維位反轉(zhuǎn)。
16×合成二維要求的周期數(shù)目是包括開銷。這段代碼實(shí)際上可以通過將輸入數(shù)組元素的虛部設(shè)為零而用來計算實(shí)數(shù)。對于使用復(fù)數(shù)代碼的更高效實(shí)數(shù)執(zhí)行方法,兩個實(shí)數(shù)矩陣可被打包為復(fù)數(shù)二維的一個復(fù)數(shù)輸入。這種被稱為“打包和分裝”或者“大量生產(chǎn)”的方法需要后端處理來分離輸出,并需要兩個圖像來變換。但這在快速卷積和快速相關(guān)中通常不是問題,因?yàn)閮蓚€變換總是需要計算的。
Blackfin處理器的體系構(gòu)造有助于使其成為工業(yè)圖像處理系統(tǒng)中非常有用的處理器。此外,公司還提供基于處理器的圖像處理和分析的公用“圖像處理工具箱”內(nèi)核。最新的樣片——將以太網(wǎng)、控制器和接口集成在一顆芯片上,增強(qiáng)了外圍設(shè)備功能,加上這些工具,將會大大擴(kuò)展工業(yè)圖像處理應(yīng)用領(lǐng)域的范圍。
All-Integer Hough Transform: Performance EvaluaTIon,”
Numerical Recipes in C: The Art of ScienTIfic CompuTIng 2nd EdiTIon, Chapter 12.New York: Cambridge University Press 1999.