国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種新的基于FPGA的立體圖像差異性算法

2020-06-16 02:43李貞妮李晶皎王澤坤
關(guān)鍵詞:像素點(diǎn)灰度圖像處理

李貞妮, 王 驕, 李晶皎, 王澤坤

(東北大學(xué) 信息科學(xué)與工程學(xué)院, 遼寧 沈陽(yáng) 110819)

隨著科學(xué)技術(shù)和工業(yè)生產(chǎn)的快速發(fā)展,許多領(lǐng)域都需要對(duì)立體物體的形狀進(jìn)行快速準(zhǔn)確的測(cè)量.現(xiàn)代大工業(yè)生產(chǎn)中,為獲取產(chǎn)品的空間信息而進(jìn)行的三維自動(dòng)測(cè)量是人們普遍關(guān)注的技術(shù)[1-2].而立體圖像差異性算法是立體視覺(jué)的關(guān)鍵研究?jī)?nèi)容,因此,研究立體圖像差異性算法具有重大的理論和現(xiàn)實(shí)意義[3-4].

本文研究的立體圖像差異性算法是基于激光散斑的結(jié)構(gòu)光方法[5],該方法的實(shí)現(xiàn)需要一個(gè)能發(fā)射激光散斑的光源和一個(gè)灰度攝像頭.每次算法的計(jì)算只需要拍攝一張場(chǎng)景圖像,然后通過(guò)比較場(chǎng)景圖像和參考圖像之間的差異性得到立體圖像.其計(jì)算量非常大,需要進(jìn)行大量的乘法和除法運(yùn)算,因此保證該算法處理的實(shí)時(shí)性是設(shè)計(jì)立體圖像差異性算法處理系統(tǒng)的關(guān)鍵問(wèn)題.

目前已有的算法在實(shí)現(xiàn)的過(guò)程中,為了保證系統(tǒng)的實(shí)時(shí)性,通常采用基于高端顯卡的設(shè)計(jì).這種設(shè)計(jì)架構(gòu)方式具有很高的實(shí)時(shí)性,能夠滿足系統(tǒng)處理速度的要求.但是其電路結(jié)構(gòu)極其復(fù)雜,功耗很高,系統(tǒng)可擴(kuò)展性不高,價(jià)格昂貴,設(shè)備開(kāi)發(fā)和調(diào)試十分困難,后期的升級(jí)和維護(hù)也十分不易[6-7].

針對(duì)現(xiàn)有技術(shù)的不足,本文提出了一種適合于FPGA硬件實(shí)現(xiàn)的立體圖像差異性算法,對(duì)立體圖像差異性算法進(jìn)行了改進(jìn),并能夠充分利用FPGA的高速性和并行性,具有實(shí)時(shí)性、開(kāi)發(fā)周期短、成本低、功耗小、控制方便等優(yōu)點(diǎn).改進(jìn)后的立體圖像差異性算法的實(shí)現(xiàn)和處理基于FPGA硬件開(kāi)發(fā)平臺(tái),充分發(fā)揮了硬件加速的優(yōu)勢(shì);利用FPGA中的Nios II軟核處理器對(duì)數(shù)據(jù)進(jìn)行管理,該過(guò)程在FPGA片內(nèi)總線上完成,解決了數(shù)據(jù)傳輸?shù)钠款i,充分發(fā)揮了硬件設(shè)計(jì)的高速性和Nios II軟核處理器控制的靈活性.

1 立體圖像差異性算法描述

1.1 立體圖像差異性算法基本描述

立體圖像差異性算法的具體方法為:輸入為兩張圖像,一張為需要到投影方向上確定深度的參考圖像;另一張為需要測(cè)量的未知物體表面的場(chǎng)景圖像.算法的輸出為差異性圖像,指示了從場(chǎng)景圖像到參考圖像的每個(gè)像素的位置移動(dòng),具體如圖1所示.

圖1 差異性圖像

1.2 立體圖像差異性算法設(shè)計(jì)

基于散斑匹配,設(shè)計(jì)立體圖像差異性算法步驟如下.

第一步:假設(shè)參考圖像和場(chǎng)景圖像有著相同的大小,均為W×H.設(shè)有部分重疊的大小為m×H的來(lái)自場(chǎng)景圖像的子圖像和對(duì)應(yīng)的大小為(m+2d)×H來(lái)自參考圖像的子圖像,具體如圖2所示.

第二步:從場(chǎng)景子圖像中選入大小為m×m部分重疊的塊,在對(duì)應(yīng)的參考子圖像中找到與其最接近的塊,如圖3所示.

塊匹配[8]過(guò)程詳細(xì)描述如下.

1) 初始化大小為m×H的三張圖像:分別為水平差異性圖、垂直差異性圖和相關(guān)性圖,并將里面所有的元素均設(shè)為0.

圖2 子圖像分割示意圖

圖3 塊匹配示意圖

2) 陰影檢測(cè).如果場(chǎng)景塊的灰度平均值小于閾值TS,則認(rèn)為這是陰影塊并跳過(guò)塊匹配.

3) 兩個(gè)圖像塊之間的歸一化互相關(guān)[9]的計(jì)算:圖像相關(guān)性NCC[10]計(jì)算公式如式(1)所示:

(1)

4) 在參考圖像中搜索像素塊:具體方法分為兩種,分別是預(yù)測(cè)方式搜索和窮盡方式搜索.

窮盡方式搜索:對(duì)于場(chǎng)景子圖像中的每個(gè)像素塊,先搜索參考子圖像中相同位置的像素塊.然后,一個(gè)像素一個(gè)像素的移動(dòng)搜索窗口,具體方式如圖4所示(先搜索左側(cè)再搜索右側(cè),然后上移搜索窗口,繼續(xù)搜索.不需要搜索下方的像素塊,因?yàn)樵谙到y(tǒng)中,物體的表面在參考平面的前面).在整個(gè)參考子圖像搜索完成之前,記錄每個(gè)位置NCC的值,如果當(dāng)前NCC的值大于閾值TB,則跳出搜索并保存NCC的值.當(dāng)搜索完成,找出最大的NCC的值,并保存更新后的NCC值.

預(yù)測(cè)方式搜索:窮盡搜索方式十分耗時(shí),為了加速算法執(zhí)行,可以采用預(yù)測(cè)方式搜索.原因是附近的像素塊因?yàn)楸砻婀鉂崟?huì)有很大的相似性.所以,對(duì)于每個(gè)場(chǎng)景子圖像的像素塊,可以先檢查上一個(gè)像素塊所指示位置的附近大小為2d×2d的區(qū)域,如圖5所示.如果上述區(qū)域內(nèi)最大的NCC值大于閾值TP,保存這個(gè)NCC值,否則回到窮盡方式搜索.

5)對(duì)重疊像素點(diǎn)的差異性和相關(guān)性的更新:在計(jì)算得到當(dāng)前像素塊中所有像素的NCC值和相關(guān)差異性后,如果當(dāng)前的NCC值增加,則與上個(gè)塊重疊的像素點(diǎn)的NCC值和差異性值將被更新.

第三步:當(dāng)?shù)玫剿袌?chǎng)景子圖像的差異性和

圖5 預(yù)測(cè)方式搜索

相關(guān)性圖像后,重疊像素點(diǎn)的差異性取決于它們中最大的NCC值.

在本系統(tǒng)中,參數(shù)的取值如下:

m=16,d=1.

TB=0.85,TP=0.80,TS=30.

相鄰兩個(gè)子圖像和像素塊之間重疊的像素為14,即每次移動(dòng)2個(gè)像素點(diǎn).

由于NCC的計(jì)算會(huì)占用系統(tǒng)大部分時(shí)間,所以需要盡可能地優(yōu)化NCC的計(jì)算方法.下面對(duì)NCC的計(jì)算公式進(jìn)行部分優(yōu)化,使之計(jì)算量減少,并且更適合FPGA的實(shí)現(xiàn).

對(duì)式(1)的求和符號(hào)展開(kāi)后得到式(2):

(2)

將常數(shù)從求和符號(hào)提出可得式(3):

(3)

(4)

此時(shí),耗時(shí)較長(zhǎng)的計(jì)算為:參考?jí)K像素灰度值的累加和∑Ir,場(chǎng)景塊像素灰度值累加和∑Is,參考?jí)K像素灰度值平方的累加和∑(Ir)2,場(chǎng)景塊像素灰度值平方的累加和∑(Is)2和參考?jí)K與場(chǎng)景塊對(duì)應(yīng)像素灰度值相乘的累加和∑IrIs.這些值都可以在FPGA內(nèi)進(jìn)行并行計(jì)算,大大加快了算法的計(jì)算速度.

2 基于FPGA的硬件加速設(shè)計(jì)

2.1 硬件系統(tǒng)總體結(jié)構(gòu)

根據(jù)系統(tǒng)的功能分析,將系統(tǒng)進(jìn)行模塊化劃分,系統(tǒng)的結(jié)構(gòu)示意圖如圖6所示.該系統(tǒng)分為以下幾個(gè)模塊:SD卡控制器模塊、圖像差異性算法IP核模塊、LTM控制器模塊和Nios II嵌入式系統(tǒng)模塊.

圖6 系統(tǒng)硬件結(jié)構(gòu)示意圖

Nios II軟核處理器模塊主要完成總體的核心控制以及各個(gè)模塊的協(xié)調(diào)作用.首先,Nios II軟核處理器控制SD卡控制器從SD卡中讀取圖片數(shù)據(jù)并存入DDR2存儲(chǔ)器中,之后將圖片數(shù)據(jù)按一定順序?qū)懭雸D像差異性算法IP核中進(jìn)行差異性處理,等待處理完成后,再將處理結(jié)果從算法IP核中讀取出來(lái),最后將讀取的結(jié)果數(shù)據(jù)寫(xiě)入LTM控制器中顯示,再開(kāi)始下一張圖片的處理.具體結(jié)構(gòu)如圖7所示.

2.2 圖像差異性算法模塊硬件設(shè)計(jì)

圖像差異性算法IP核的設(shè)計(jì)與實(shí)現(xiàn)是整個(gè)FPGA系統(tǒng)的關(guān)鍵部分,算法IP核通過(guò)Avalon從接口連接到系統(tǒng)總線.算法IP核每次輸入為若干個(gè)參考子圖像和對(duì)應(yīng)的場(chǎng)景子圖像,每次輸出為對(duì)應(yīng)的差異性子圖像.

圖像差異性算法IP核在子圖像級(jí)采用并行計(jì)算,整個(gè)算法IP核由多個(gè)子圖像處理核組成,每個(gè)子圖像處理核可以處理一對(duì)參考和場(chǎng)景子圖像,并輸出對(duì)應(yīng)的差異性圖像.由于FPGA內(nèi)部資源限制,本系統(tǒng)中算法IP核由18個(gè)子圖像處理核組成,每個(gè)子圖像處理核還配有一個(gè)對(duì)應(yīng)的FIFO,用于緩存結(jié)果數(shù)據(jù).圖像差異性算法IP核內(nèi)部結(jié)構(gòu)如圖7所示.

圖7 圖像差異性算法IP核內(nèi)部結(jié)構(gòu)圖

多個(gè)參考子圖像和場(chǎng)景子圖像數(shù)據(jù)進(jìn)入算法IP核后,由總體控制模塊將各個(gè)參考子圖像和場(chǎng)景子圖像按序?qū)?yīng)分配給子圖像處理核,使每個(gè)子圖像處理核得到一個(gè)參考子圖像和對(duì)應(yīng)的場(chǎng)景子圖像.然后,多個(gè)子圖像處理核并行處理,當(dāng)處理好每對(duì)子圖像后,將結(jié)果輸出到對(duì)應(yīng)的FIFO中暫存.之后,由總體控制模塊按序讀取各個(gè)FIFO,將數(shù)據(jù)輸出到最大數(shù)產(chǎn)生模塊.最后,最大數(shù)產(chǎn)生模塊生成每個(gè)像素塊中最大的結(jié)果,將結(jié)果暫存到結(jié)果存儲(chǔ)FIFO中,當(dāng)Nios II需要讀取數(shù)據(jù)時(shí),讀取結(jié)果存儲(chǔ)FIFO,將結(jié)果讀到Nios II中.

1) 總體控制邏輯模塊:算法IP核的總體控制模塊的主要功能是控制數(shù)據(jù)的分配和輸出,由一個(gè)5個(gè)狀態(tài)的有限狀態(tài)機(jī)實(shí)現(xiàn).其狀態(tài)轉(zhuǎn)移圖如圖8所示.

圖8 總體控制模塊狀態(tài)轉(zhuǎn)移圖

2) 子圖像處理核:能處理一張場(chǎng)景子圖像和對(duì)應(yīng)的參考子圖像,并輸出各個(gè)像素點(diǎn)的NCC值和差異性值.由于像素塊每次移動(dòng)的像素為2,所以相鄰的4個(gè)像素點(diǎn)會(huì)同時(shí)處理,本模塊將這4個(gè)像素點(diǎn)作為處理單元,這樣可以增大處理帶寬,提高系統(tǒng)的并行性.數(shù)據(jù)的移動(dòng)和計(jì)算的最小單位是一個(gè)處理單元.子圖像處理核進(jìn)一步可以劃分為子圖像存儲(chǔ)器、控制邏輯和NCC計(jì)算模塊等三個(gè)部分.其中,NCC計(jì)算模塊接收來(lái)自控制模塊的參考像素塊數(shù)據(jù)和場(chǎng)景圖像塊數(shù)據(jù),并計(jì)算兩個(gè)像素塊的NCC值.NCC計(jì)算模塊每次的輸入為8個(gè)參考子圖像的像素點(diǎn)和8個(gè)場(chǎng)景子圖像的像素點(diǎn).根據(jù)算法需求,NCC計(jì)算模塊需要并行進(jìn)行以下操作:將參考數(shù)據(jù)累加、將場(chǎng)景數(shù)據(jù)累加、將參考數(shù)據(jù)求平方再累加、將場(chǎng)景數(shù)據(jù)求平方再累加、將參考數(shù)據(jù)乘場(chǎng)景數(shù)據(jù)再累加.在一次搜索圖像塊中,場(chǎng)景像素塊并不移動(dòng),而相鄰的參考像素塊中有很大一部分像素點(diǎn)是重疊的,考慮將每3個(gè)像素塊作為一個(gè)組合,每次比較一個(gè)組合,產(chǎn)生3個(gè)NCC值.

3 系統(tǒng)測(cè)試及結(jié)果分析

基于FPGA的立體圖像差異性算法采用System Verilog語(yǔ)言,在Quartus II平臺(tái)上實(shí)現(xiàn)并仿真測(cè)試.PC機(jī)平臺(tái)為Intel Core 2 T6500 CPU,主頻為 2.1GHz,雙核,內(nèi)存為8GB.系統(tǒng)性能測(cè)試使用的硬件平臺(tái)為Intel公司的Stratix III系列的FPGA開(kāi)發(fā)板DE3-115,F(xiàn)PGA的芯片型號(hào)為EP3S150F1152C2N.測(cè)試文件為1張參考圖片和500張場(chǎng)景圖片,大小為600×450.系統(tǒng)實(shí)物圖如圖9所示.

圖9 圖像差異性處理系統(tǒng)實(shí)物圖

3.1 1張參考圖像和1張場(chǎng)景圖像的差異性比較

對(duì)1張參考圖像和1張場(chǎng)景圖像的差異性進(jìn)行測(cè)試,測(cè)試選用的場(chǎng)景圖像和參考圖像如圖10所示.

分別在PC機(jī)上和FPGA上運(yùn)行圖像差異性算法程序,得到的差異性圖像如圖11所示.

通過(guò)單張場(chǎng)景圖像和參考圖像差異性算法在PC和FPGA上的測(cè)試,得出立體圖像差異性算法在PC和FPGA上運(yùn)行的結(jié)果基本相同,運(yùn)行所需的時(shí)間及其比較如表1所示.

圖10 參考圖像(左)和場(chǎng)景圖像(右)

圖11 圖像差異性算法運(yùn)行結(jié)果

表1 圖像差異性算法運(yùn)行時(shí)間對(duì)比

由表1可知,由于FPGA的并行性和高速性,立體圖像差異性算法在FPGA上運(yùn)行的時(shí)間遠(yuǎn)小于PC上軟件運(yùn)行的時(shí)間,其運(yùn)行速度大概是PC機(jī)的兩百多倍.

3.2 1張參考圖像和500張場(chǎng)景圖像的差異性比較

本測(cè)試采用1張參考圖像和500張場(chǎng)景圖像進(jìn)行差異性比較,將差異性算法比較的結(jié)果連續(xù)輸出形成視頻,測(cè)試系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性.參考圖像如圖10中左圖所示,分別測(cè)試第100,200,300,400,500幀的原始圖像在PC機(jī)上和FPGA上的處理結(jié)果,這里只給出第400和第500幀圖像在FPGA上的處理結(jié)果如圖12所示.在FPGA上使用立體圖像差異性算法處理500張場(chǎng)景圖像需要的總時(shí)間為14.897 s,處理每張圖像所需的平均時(shí)間為0.029 s,每秒可處理33張以上的圖像,達(dá)到了實(shí)時(shí)處理和顯示的要求.

圖12 500張場(chǎng)景圖像的運(yùn)行結(jié)果

4 結(jié) 論

本文提出了一種基于FPGA的立體圖像差異性算法,并通過(guò)設(shè)計(jì)硬件算法的IP核,充分利用了FPGA獨(dú)特的并行處理機(jī)制和強(qiáng)大的運(yùn)算能力,極大提高了系統(tǒng)的處理速度和性能.利用FPGA中的Nios II軟核處理器對(duì)數(shù)據(jù)進(jìn)行控制,該過(guò)程在FPGA片內(nèi)總線上完成,解決了數(shù)據(jù)傳輸?shù)钠款i,充分發(fā)揮了硬件設(shè)計(jì)的高速性和Nios II軟核處理器控制的靈活性.系統(tǒng)測(cè)試結(jié)果表明,立體圖像差異性算法在PC機(jī)和在FPGA上的運(yùn)行結(jié)果基本相同,但FPGA的處理速度是PC機(jī)上處理速度的兩百多倍.FPGA可以流暢處理500張場(chǎng)景圖像且FPGA每秒可處理33張以上的圖像,說(shuō)明該系統(tǒng)具有穩(wěn)定性和實(shí)時(shí)性.立體圖像差異性算法是計(jì)算機(jī)視覺(jué)和圖像理解領(lǐng)域的基礎(chǔ)研究問(wèn)題,因此本文提出的基于FPGA的立體圖像差異性算法處理系統(tǒng)具有較好的應(yīng)用前景.

猜你喜歡
像素點(diǎn)灰度圖像處理
航空濾光片陣列多光譜圖像條帶灰度調(diào)整算法
采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
人工智能輔助冠狀動(dòng)脈CTA圖像處理和診斷的研究進(jìn)展
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識(shí)別
天津港智慧工作平臺(tái)灰度發(fā)布系統(tǒng)和流程設(shè)計(jì)
基于局部相似性的特征匹配篩選算法
Arduino小車巡線程序的灰度閾值優(yōu)化方案
基于ARM嵌入式的關(guān)于圖像處理的交通信號(hào)燈識(shí)別
基于圖像處理的廢有色金屬自動(dòng)分選算法研究
一種X射線圖像白點(diǎn)噪聲去除算法
阿鲁科尔沁旗| 普陀区| 出国| 景东| 红安县| 济阳县| 铁岭县| 彝良县| 醴陵市| 达拉特旗| 永兴县| 雷山县| 皋兰县| 横山县| 凤庆县| 乌恰县| 宝应县| 长乐市| 巫溪县| 新田县| 会昌县| 历史| 白朗县| 南安市| 昌黎县| 武定县| 莒南县| 文成县| 巩留县| 富宁县| 永济市| 临湘市| 肃南| 怀远县| 临高县| 丹棱县| 华池县| 房产| 财经| 滦南县| 宣威市|