亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        圖像空洞填補算法及其FPGA硬件實現(xiàn)

        2021-09-30 05:09:18伍能舉楊依忠
        關(guān)鍵詞:深度圖空洞像素點

        伍能舉, 徐 棟, 楊依忠

        (合肥工業(yè)大學(xué) 電子科學(xué)與應(yīng)用物理學(xué)院,安徽 合肥 230601)

        在2D圖像通過基于深度圖像繪制(depth image based rendering,DIBR)方法轉(zhuǎn)換成左右視圖時[1-2],左視圖和右視圖中會出現(xiàn)空洞點??斩词菆D像中像素值與周圍像素相比異常并且會給視覺帶來不適的圖像像素,因此在目標圖像繪制時需要進行圖像空洞的填補??斩袋c通常為固定大小的值,即像素值為0,極少數(shù)不為0的空洞像素值也小于一定的閾值。在空洞填補時,通過對像素值與規(guī)定的閾值進行比較,判斷像素點是否屬于空洞點,再對其進行處理。處理空洞主要分為深度圖預(yù)處理和空洞填補2個步驟,深度圖預(yù)處理一般通過濾波來平滑深度圖以減少3D圖像的失真[3],但是濾波無法解決深度圖中前景與后景深度差異大而導(dǎo)致的空洞。對空洞的簡單填補也可以通過濾波算法[4-5]來進行處理,但是濾波會造成圖像的模糊而丟失一些細節(jié),從而影響視覺效果。整體變分法[6]能夠修復(fù)圖像中的空洞點,但是該方法是通過迭代修復(fù)來實現(xiàn)的,因此存在計算量大、耗時長等問題?;跇颖镜膱D像空洞修復(fù)[7]對紋理豐富的圖像中的空洞能有效地修復(fù),但是對圖像紋理有一定的要求。文獻[8]提出通過插值相鄰像素點來進行空洞填補的方法,該方法易于實現(xiàn),但是沒有考慮到鄰域像素中也會存在空洞點的問題。

        本文提出一種DIBR方法繪制目標視圖中的空洞填補算法,算法步驟如下:先通過深度梯度過渡方法對簡單濾波后的深度圖進行預(yù)處理,減少目標視圖中的空洞;再考慮填補像素中空洞點數(shù)量的不同,分別設(shè)置對應(yīng)的權(quán)值,給出對應(yīng)的填補方法。傳統(tǒng)的圖像空洞填補技術(shù)是基于軟件的方法,現(xiàn)場可編程門陣列(field programmable gate array,FPGA)的發(fā)展給圖像處理提供了良好途徑[9-10],它具有高速的并行運算能力,可以用來進行圖像硬件實現(xiàn)[11-14]。本文算法同時在Matlab軟件平臺上和FPGA硬件平臺上進行驗證,實驗結(jié)果表明填補效果良好。

        1 算法設(shè)計

        本文算法包括深度梯度過渡和空洞填補2個部分,深度梯度過渡是一種有別于其他預(yù)處理的方法,可以適當減少深度圖前景與后景深度差異造成的空洞,為后續(xù)空洞填補算法高效運行提供良好基礎(chǔ);空洞填補算法充分考慮到鄰域插值填補像素中存在空洞點的問題,可更加合理有效地對空洞進行填補。

        1.1 深度梯度過渡

        DIBR虛擬視點繪制通過深度圖與參考圖像繪制目標圖像,目標圖像為左視圖或右視圖。針對目標視圖中前后景邊界空洞,采用前景與后景深度邊界梯度過渡的方法來減少空洞。算法針對左視圖進行處理,若為右視圖則邊界判斷方法一致,過渡方向改為向右。深度圖中的前景與后景邊界需要通過相鄰像素深度值的差值來獲得,若其差值大于預(yù)先給定的閾值d0,則認為此處為前后景邊界處,公式如下:

        Dd(i,j)=

        (1)

        其中:D(i,j)為深度圖中在位置為(i,j)處的深度值;Dd(i,j)為前景與后景的邊界。通過前景與后景的深度梯度過渡,可以減少由于深度圖中的前景與后景邊界深度值變化劇烈導(dǎo)致的空洞。深度梯度過渡公式為:

        D(i,j-k)=[D(i,j-k-1)+D(i,j)]/2

        (2)

        當Dd(i,j)=1時,說明深度圖中前景與后景邊界已經(jīng)進行了標記,對標記位置進行深度梯度過渡,其中k為深度梯度過渡的步數(shù),實驗中將k值設(shè)為5時,邊界空洞基本不再變化。深度梯度過渡后需要對過渡的邊界進行閾值判斷,目的是使過渡后的邊界滿足平穩(wěn)變化的條件。閾值判斷公式為:

        |D(i,j-k)-D(i,j-k-1)|

        (3)

        其中,a為閾值。若不滿足條件則繼續(xù)過渡。

        1.2 空洞填補

        圖像中的空洞點可以認為是受損的像素點,該位置的像素點與其周圍的像素點存在較大的關(guān)聯(lián),因此,可利用周圍像素點與空洞點的關(guān)系來進行填補。本文提出一種改進的鄰域像素空洞填補方法。由于空洞點多為縱向連續(xù)分布,即空洞點的上方和下方大概率也存在空洞點,如果只是使用空洞像素的8個鄰域像素點,將無法充分利用其周圍信息,故在橫向上額外增加A2、E22個像素作為空洞填補的參考像素??紤]到離空洞越近的像素點與空洞的相關(guān)性越強,因此賦予離空洞像素點位置遠的填補像素較小的權(quán)值,對離空洞近的填補像素點賦予大權(quán)值以保證填補的效果。由2D圖像通過DIBR方法轉(zhuǎn)換生成的左視圖與右視圖僅僅是視差不同,空洞填補的方式一致。空洞與鄰域填補像素的關(guān)系如圖1所示。

        圖1 空洞與鄰域填補像素的關(guān)系

        若C2為空洞點,使用B1、C1、D1、B2、D2、B3、C3、D3、A2、E2這10個像素進行空洞填補。但填補像素中依然可能存在空洞點,且通常這10個像素不會都是空洞點,則需要對填補像素中的空洞點數(shù)量進行討論,根據(jù)填補像素中空洞點的數(shù)量不同,給出不同的填補方法。若填補過程中這10個像素點中無空洞,則填補公式為:

        C2=(B1+C1+D1+B2+D2+B3+

        C3+D3)w1+(A2+E2)w2

        (4)

        記C2的8像素鄰域中的空洞數(shù)目為m,A2、E22個像素中空洞數(shù)目為n,考慮到填補像素中空洞點數(shù)量對填補效果的影響,若m<8且n<2,則空洞填補公式為:

        D2+B3+C3+D3)+

        (5)

        若m=8且n<2,則空洞填補公式為:

        (6)

        若m<8且n=2,則空洞填補公式為:

        D2+B3+C3+D3)

        (7)

        根據(jù)以上方法可以對圖像中的空洞點進行有效填補,彌補了鄰域像素空洞填補方法中沒有考慮鄰域填補像素存在空洞點的問題。

        2 軟件算法的硬件FPGA實現(xiàn)

        本算法的硬件實現(xiàn)是基于FPGA平臺,使用Altera的Cyclone IV EP4CE15開發(fā)板,該開發(fā)板具有15×103個邏輯單元、4 Mibit的SRAM、256 Mibit的SDRAM以及時鐘管理單元等資源。算法的硬件設(shè)計包括3×5窗口模板生成模塊、空洞判斷與填補模塊,最后進行了VGA的顯示。原理結(jié)構(gòu)如圖2所示。

        圖2 空洞填補FPGA原理結(jié)構(gòu)

        輸入圖像數(shù)據(jù)流為灰度圖,其灰度值范圍在0~255之間,通過移位寄存器生成3×5的窗口模板,利用窗口模板對空洞進行判斷和填補,最后通過VGA顯示輸出實驗結(jié)果。

        2.1 3×5窗口生成模塊

        因為與在軟件中對圖像進行處理的方式不同,硬件中的圖像信息是以數(shù)據(jù)流的方式進行傳輸?shù)?與時鐘周期有關(guān),1個時鐘周期只能發(fā)送或者接收1個像素數(shù)據(jù),從而無法一次性對整幅圖片進行處理,所以需要設(shè)計窗口模板來進行相應(yīng)的像素處理,并通過窗口模板的滑動來實現(xiàn)對整幅圖片的空洞填補操作。為了得到3×5窗口模板,使用先進先出(First-In- First-Out,FIFO)隊列來作為圖像數(shù)據(jù)的緩沖器。實驗中通過調(diào)用Quartus II軟件中的基于RAM的移位寄存器宏模塊altshift-taps實現(xiàn)行延遲以生成 3×5窗口模板。進行緩存的深度設(shè)置為輸入圖像的行像素總數(shù)。這樣1個時鐘周期里通過3個移位寄存器可以輸出3個像素數(shù)據(jù),通過5個時鐘周期可以輸出15個像素數(shù)據(jù),滿足了生成3×5的窗口模板,在模板中可以對這些像素進行空洞判斷和填補。

        2.2 空洞填補模塊

        3×5窗口模板可以取到15個像素數(shù)據(jù),如果像素是空洞就利用這模板中的10個像素數(shù)據(jù)進行空洞填補。圖像的空洞填補運算需要利用卷積與求和的計算方法,通??梢酝ㄟ^觸發(fā)器、加法器和乘法器的硬件設(shè)計來進行相應(yīng)的數(shù)學(xué)運算,但該方法比較繁瑣,本文采用可編程乘加法器和可編程多路并行加法器等來實現(xiàn)空洞填補需要的數(shù)學(xué)計算??斩刺钛a的移位寄存器像素運算結(jié)構(gòu)如圖3所示。

        圖3 空洞填補運算結(jié)構(gòu)

        空洞填補運算結(jié)構(gòu)由3個基于移位寄存器的Line Buffer、10個可編程乘法器及4組并行加法器構(gòu)成。Line Buffer0、Line Buffer1和Line Buffer2對輸入圖像數(shù)據(jù)中相鄰的3行像素分別進行緩存,模板中鄰域像素值與w1相乘,非鄰域像素值與w2相乘,通過可編程多路并行加法器處理數(shù)據(jù)后即可得到空洞的填補值。具體地,當圖像數(shù)據(jù)輸入時,圖像數(shù)據(jù)在時鐘控制下并行傳遞到后續(xù)的寄存器,持續(xù)5個時鐘周期后生成3×5的窗口模板,此時Line Buffer0中B1、C1、D1的輸出與w1并行相乘,相乘得到的數(shù)據(jù)再并行相加,并行相加的輸出為S1,為空洞填補結(jié)果的一部分。同理Line Buffer1和Line Buffer2也經(jīng)過乘加運算分別得到S2、S3,最終S1、S2、S3通過并行加法器運算得到空洞填補的結(jié)果。

        3 實驗結(jié)果與分析

        3.1 軟件實驗結(jié)果及分析

        3.1.1 深度梯度過渡結(jié)果

        為了驗證算法深度梯度過渡的效果,在Matlab軟件平臺上對圖片進行了實驗。實驗選取的圖片是在2D轉(zhuǎn)3D過程中生成的左視圖,目標視圖中存在空洞。圖片的名稱為Ding,分辨率為1 024×768。深度梯度過渡后局部對比如圖4所示。從圖4可以看出,通過深度梯度過渡處理減少了位于雕像左側(cè)前景與后景邊界的空洞數(shù)量,同時提高了視覺效果。

        圖4 深度梯度過渡后局部對比

        3.1.2 空洞填補

        由空洞填補公式知,因為空洞填補使用10個像素作為填補像素,所以填補參數(shù)w1、w2應(yīng)滿足8w1+2w2=1的條件,由填補時像素與空洞遠近關(guān)系知w1>w2,w1的范圍在0.100~0.125之間,w2的范圍在0~0.1之間,w1的值分別選取0.105、0.110、0.115、0.120進行試驗,以獲得最佳的參數(shù)。使用峰值信噪比(peak signal-to-noise ratio,PSNR)對填補后的圖像進行評估,當w1取0.115時,得到較好的PSNR值。對圖片Ding進行空洞填補前后的實驗結(jié)果如圖5所示。

        圖5 Ding圖片實驗結(jié)果

        對比圖5a、圖5b可知,通過算法能有效地去除圖像中的空洞。對Ding實驗結(jié)果與加權(quán)均值濾波算法[5]、整體變分算法[6]及基于樣本的填補算法[7]的結(jié)果進行了比較,結(jié)果見表1所列。

        表1 空洞填補參數(shù)比較

        因為濾波會導(dǎo)致圖片模糊而丟失圖片的部分細節(jié),使用這種方法進行空洞填補將會導(dǎo)致填補后的目標視圖視覺效果不理想,所以使用濾波方法來處理圖片中的空洞并不合適。本文算法只針對空洞進行處理,能很好地保存圖片細節(jié)部分。由表1可知,本文算法的PSNR為38.64 dB,高于其他算法,均方誤差(mean square error,MSE)為8.90,低于其他算法,本文算法的PSNR與MSE性能指標優(yōu)于其他3種算法。

        3.2 硬件實現(xiàn)及測試

        硬件實現(xiàn)及測試實驗使用Altera的Cyclone IV EP4CE15 FPGA開發(fā)板。SD讀卡模塊、異步FIFO讀寫模塊與SDRAM讀寫模塊、空洞填補算法模塊、VGA顯示模塊共同構(gòu)成完整的實驗系統(tǒng)。聯(lián)機調(diào)試前,先對代碼進行了波形仿真,使用ModelSim軟件對算法仿真的結(jié)果如圖6所示。

        圖6 空洞填補仿真波形

        從空洞填補仿真波形可以看出,在輸入完整的15個像素窗口模板數(shù)據(jù)后,對空洞像素C2進行填補,填補前的像素值為二進制數(shù),值為00000000(十進制為0),填補后該位置的像素二進制數(shù)值為10011111(十進制為159),不再是空洞像素。同時,將填補后的像素值與其上、下、左、右4個像素值進行比較,觀察填補后的像素與其周圍的像素是否差異過大。若差異過大則可能造成填補后位置的像素視覺效果差??斩瓷稀⑾?、左、右4個位置如下:B2為10101001(十進制169);C1為10101001(十進制169);D2為10101111(十進制175);C3為10100011(十進制163),因此填補后的像素值C22與周圍像素在梯度變化上差異小,不會造成不良的視覺效果。為了測試空洞在硬件上的填補效果,將代碼用Quartus 軟件下載到FPGA開發(fā)板進行測試,填補前與填補后的結(jié)果如圖7所示。從圖7可以看出,在FPGA硬件平臺上能有效地填補圖片中的空洞,沒有視覺不適的現(xiàn)象,效果良好,同時,空洞去除后,對圖片中的其他細節(jié)并沒有造成影響。因此,設(shè)計的空洞填補算法在FPGA硬件平臺上也能針對圖片空洞進行有效的填補。

        圖7 FPGA空洞填補前后結(jié)果

        4 結(jié) 論

        本文針對DIBR方法繪制后的目標視圖存在空洞的問題,提出了一種對目標圖像空洞有效填補的算法,先對深度圖前景與后景邊界中存在的空洞進行深度梯度過渡預(yù)處理,然后利用空洞點與周圍像素關(guān)系,即根據(jù)與空洞像素距離設(shè)置不同的權(quán)值w1、w2,并且考慮填補像素中的空洞數(shù)量,給出不同填補方法。最后將該算法在Matlab軟件平臺上和FPGA硬件平臺上分別進行了驗證,實驗結(jié)果表明填補效果良好。

        猜你喜歡
        深度圖空洞像素點
        基于深度圖的3D-HEVC魯棒視頻水印算法
        基于canvas的前端數(shù)據(jù)加密
        基于逐像素點深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
        空洞的眼神
        一種基于局部直方圖匹配的深度編碼濾波算法
        疊加速度譜在鉆孔稀少地區(qū)資料解釋中的應(yīng)用
        科技視界(2016年2期)2016-03-30 11:17:03
        用事實說話勝過空洞的說教——以教育類報道為例
        新聞傳播(2015年20期)2015-07-18 11:06:46
        基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
        臭氧層空洞也是幫兇
        Kinect深度圖像快速修復(fù)算法
        一区二区三区免费观看在线视频| 欧洲女人性开放免费网站| 又黄又爽又色的视频| 亚洲是图一区二区视频| 中文乱码字幕人妻熟女人妻| 亚洲成熟女人毛毛耸耸多| av在线亚洲欧洲日产一区二区| 亚洲性啪啪无码AV天堂| 人妻av不卡一区二区三区| 亚洲人妻调教中文字幕| 国精产品推荐视频| 视频一区欧美| 青青草免费在线视频导航| 懂色av一区二区三区尤物| 亚洲人成影院在线观看| 亚洲熟女网站| 亚洲综合av一区在线| 色欲一区二区三区精品a片| 东北老女人高潮疯狂过瘾对白| 日本精品网| 男人一插就想射的原因| 欧美国产亚洲日韩在线二区| 超碰97人人做人人爱少妇| 1234.com麻豆性爰爱影| 东京热加勒比视频一区| 日本一本之道高清不卡免费| 欧美日韩国产成人高清视| 狼人av在线免费观看| 日韩一区在线精品视频| 精品少妇人妻av一区二区| 男女好痛好深好爽视频一区| 国产三级av在线精品| 国产精品无码一区二区三区电影 | 大香伊蕉国产av| 2021精品综合久久久久| 国产精品一区久久综合| 狠狠色噜噜狠狠狠777米奇小说| 国产精品美女| 日本一级二级三级在线| 人人超碰人人爱超碰国产 | 国产亚洲精品久久久久久久久动漫|