999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CPU-GPU的多尺度視網膜增強算法

2018-12-22 08:04:58張衛東杜師帥路皓翔楊輝華
計算機工程與設計 2018年12期
關鍵詞:設計

張衛東,杜師帥,路皓翔,卓 永,楊輝華,+

(1.桂林電子科技大學 計算機與信息安全學院,廣西 桂林 541004;2.北京郵電大學 自動化學院,北京 100876)

0 引 言

圖像增強技術在圖像處理領域受到廣泛的關注,可以有效地提高圖片的顯像效果,如抑噪、改善清晰度等,并且成功地應用于多個領域[1,2]。其中帶色彩恢復的多尺度視網膜增強算法是一種被廣泛應用的圖像增強算法[3,4]。

Land提出基于顏色恒常性的成像模型即Retinex理論。Retinex是由視網膜和皮層兩個詞合成[5]。在人類視覺的基礎之上,Shi[6]對Retinex進行了改進,并且提出了帶彩色的多尺度Retinex增強算法。該方法[7]不僅改進了單尺度算法中針對細節增強較弱的缺陷,還提高了多尺度算法的增強效果。針對初始Retinex算法隨機選擇路徑時參數設置困難的缺點,以中心環繞為基礎的改進算法得到了發展[8]。隨著圖像增強技術的不斷發展,Yang等[9]指出了以中心環繞為基礎的增強算法,可能存在過度增強和色彩失真的缺陷,結合人眼的視覺特點提出了一種基于保持色的彩圖像增強算法。在隨后的研究中,針對要處理不同的特定圖像,研究者分別提出了結合雙邊濾波器的Retinex算法、結合伽柏變換的Retinex算法、結合IIR低通濾波的Retinex算法、結合引導濾波的Retinex算法。Petro等提出對亮度線性操作使得Retinex算法具有更好的色彩保持等等[10]。這些改進模型或者參數的提出,極大地豐富了Retinex理論。

盡管一系列的Retinex算法針對多種場景下圖像處理獲得令人滿意的效果,但是仍然存在一些問題,如復雜的計算過程和過大的計算量使得對圖像處理實時性效果較差。在圖像增強領域,雖然有關于GPU[11]加速的報道,但是它們沒有考慮到CPU資源的充分利用。本文考慮到通過3個CPU線程實現RGB三通道的并行,每個通道的增強過程通過GPU并行。在保證圖像增強質量的情況下,不僅充分利用CPU和GPU各自的優勢,還提高了算法的執行效率。

1 MSRCR圖像增強算法原理介紹

Retinex的基本思想是反射光的強度不是物體的色彩的決定性因素,是毫不影響的。而是由物體對長中短波的光線反射能力決定的,即保留反映物體本質的反射屬性,去掉照射光對原始圖像的影響。一幅圖像根據Retinex思想可以有如下的定義方式

S(x,y)=L(x,y)·R(x,y)

(1)

其中,S(x,y)表示現實中人觀賞到的或者其它成像設備生成的圖像;L(x,y)表示入射光,它決定圖像中的像素能達到的動態范圍;R(x,y)表示反射圖像。

對式(1)兩邊取對數,將其轉換到對數域

log(S(x,y))=log(L(x,y))+log(R(x,y))

(2)

由式(2)可得R(x,y),即

log(R(x,y))=log(S(x,y))-log(L(x,y))

(3)

入射光分量L(x,y)可以通過用高斯濾波方法從原始圖像S(x,y)中估計出

L(x,y)=S(x,y)*G(x,y)

(4)

其中,*表示卷積運算,G(x,y)如下所示

(5)

其中:σ是高斯函數的標準差也稱為尺度常量,λ是歸一化常量,使得?G(x,y)dxdy=1。

所以由式(3)~式(5)得

log(Ri(x,y))=log(Si(x,y))-log(Si(x,y)*G(x,y))

(6)

其中,i代表圖像的某個通道,式(6)其實就是算法SSR的公式,為了彌補SSR的不足,MSR算法把多個不同尺度的色彩通道進行線性加權來改善增強效果

(7)

MSRCR算法在MSR基礎上引入色彩恢復因子C,可以克服MSR增強后的圖像色彩失真問題,C公式如下

(8)

其中,β為增益常數,α為受控制的非線性增強系數。所以MSRCR可以表示為

(9)

上述MSRCR方法中引入了色彩恢復因子,使得增強后的圖像有較好的色彩保真性,但是利用以上公式得到的最終RGB的值會出現任意大小的值,為了將像素的值轉化到[0,255]的范圍,Moore等提出用三色帶的最大值和最小值來調整每個像素點的值,如式(10)所示

(10)

Jobson則發現利用Retinex算法處理后的圖像不論被處理的圖像是什么類型,得到的直方圖輪廓基本不變,因此,為了在log域和顯示間的變化利用了一種附件常量參數的線性變換方式,稱為“gain/offset”,如式(11)所示

RMSRCRi(x,y)=a[RMSRCRi(x,y)-b]

(11)

其中,a是gain,又稱為增益系數;b是offset,又稱為偏移量控制參數。

通過對GIMP中圖像增強代碼的研究,在調節色彩偏差的過程中使用了均值和均方差來得出通道上最大值和最小值,如式(12)和式(13)所示,同時引入了一個動態的參數D,使得在提高色彩保真度的同時對各種場景圖像具有更好的自適應性,所以改進后的MSRCR可以定義如式(14)所示

Min=mean-D·var

(12)

Max=mean+D·var

(13)

(14)

2 基于CUDA的MSRCR圖像增強算法并行設計

2.1 MSRCR算法并行性分析

在對基于CPU的MSRCR圖像增強算法的并行分析,分為高斯濾波、對數域的計算、像素值的線性映射(包括計算最大值和最小值)等步驟。其中高斯濾波和對數域計算是最耗時的兩步,兩個步驟的耗時占了算法整體耗時的90%左右。通過分析這兩個步驟可以細粒度的并行的運行在以SIMT為基礎架構的GPU上,在均值和方差的計算以及像素值范圍調整的步驟中,涉及到求和、乘除、分支判斷等運算,將該步驟也利用CUDA核函數實現在GPU上的并行運行。將以上3個步驟分別設計為3個GPU核函數。這3個GPU核函數在使用時用到的CUDA存儲體系中存儲器是不相同的,需要根據不同核函數的計算特點選用不用存儲器,以充分利用GPU的硬件資源,提高算法的執行效率。并且每個核函數在處理每個顏色通道數值時,將中間處理的數據存放在全局存儲器中供另外的核函數調用,減少CPU和GPU間的通信。每個GPU核函數中用到CUDA存儲器見表1。

表1 GPU核函數在運行時用到的存儲器種類

2.2 MSRCR圖像增強算法的并行設計

針對MSRCR算法的計算特點,可分為4個主要的計算任務,CPU線程處理函數和GPU核函數。其中,CPU線程處理函數用于并行R、G、B通道,GPU核函數用于并行MSRCR算法。重點在于GPU核函數的并行設計,GPU線程函數分別為高斯濾波核函數kernel_Conv、對數域計算核函數kernel_Log、像素值線性映射核函數kernel_Dyna(其中,均值核函數Kernel_Mean和標準差核函數Kernel_Std是Kernel_Dyna的輸入)。詳細的建模流程如圖1所示,首先載入圖像獲取RGB、GPU等信息,然后在CPU中開啟3個CPU線程分別對應R、G、B通道,之后分配GPU內存并且將數據拷貝到GPU內存中,通過GPU核函數完成MSRCR算法的并行過程,最后輸出處理結果。

圖1 并行模型GPU核函數的設計與實現

2.3 GPU核函數的設計與實現

2.3.1 高斯濾波核函數

本文中的高斯濾波采用的是離散化的滑動窗口做卷積計算來實現的。在二維的卷積計算中,如果計算卷積P[m][n],需要高斯模板M[][]和待卷積的矩陣N1×N2中以[m][n]為中心的與M矩陣大小相同的二維子矩陣這些數據。在做卷積計算時,需要將M矩陣和待卷積矩陣中對應的子矩陣的數據相乘再累加即可得到結果,圖2給出一個卷積計算的示意圖。

圖2 二維卷積計算

通過對二維卷積的計算過程分析發現,在整個計算過程中有大量乘法和累加計算,并且數據是離散且獨立的。但在邊界處理時,需要判斷該數據是屬于邊界還是非邊界,其中涉及大量的判斷分支指令。根據GPU的并行運行特點,在處理含有大量分支結構的程序時,會造成大量的線程空閑,只有少部分線程參與計算,造成計算資源浪費,嚴重影響程序的執行效率。在對卷積計算的并行化的研究中,有的研究者提出使用可分離濾波器來將二維卷積轉換為兩次一維卷積來實現并行化取得了良好的加速效果,是在計算過程中仍然有分支結構的存在,影響計算效率。本文采用一種新的方式將卷積計算過程并行化,徹底消除在卷積計算的過程中處理分支判斷的結構,并且在計算過程中除了使用紋理存儲器,還使用了常量存儲器和共享存儲器以優化并行程序的讀寫效率,充分發揮GPU的并行性能。為了可以將卷積計算過程改成完全適合GPU的架構特點以并行化運行以及充分使用GPU的各種具有各自優勢的存儲器。首先將待計算的矩陣行和列各補L/2行和L/2列的0,L為高斯模板的高度,如圖3所示。

圖3 待卷積矩陣擴展補0

將待卷積計算的矩陣補0擴展后,把在整個卷積計算過程中數據不會變化的高斯模板數據存入常量存儲器。而在計算過程中待卷積的矩陣數據會多次重復用到,而共享存儲器具有高出全局存儲器一個數量級的讀寫速度。因此,將預先存入紋理存儲器或者全局中的數據先讀入到共享存儲器中再參與計算,共享存儲數據的加載過程是卷積計算并行化中的難點之一。如果在加載數據時沒有有效組織線程以及沒有注意同步問題,容易造成數據加載錯誤,得到意想不到的計算結果。共享數據的加載過程如圖4所示。

圖4 共享存儲器數據加載

將數據加載共享內存時,其中每個線程塊中共享存儲器大小的設置為(block_width+m-1)×(block_width+m-1),其中block_width為線程塊的寬度,m為高斯模板的寬度。

2.3.2 對數域計算核函數

該核函數主要用來對數域上的線性加權計算。(t_n,t_n)、((w+t_n-1)/t_n,(h+t_n-1)/t_n)分別設計為block和grid中線程和線程塊的數量,其中h、w分別為讀入圖像的高度和寬度,t_n為線程塊在一個維度上包含的線程數量。當t_n取值為16時,則每個線程塊中線程數量為256。式(7)中的計算主要是對數值的相減以及求差結果帶權值的相加,參與計算的數值之間是互相獨立完全符合GPU線程并行的特點。將每個數據塊中數據映射到每個線程上,則一個數據塊被映射到一個線程塊上,在啟動GPU核函數時,流處理器就會調入若干個線程塊并行執行。

2.3.3 線性映射計算的核函數

在對每一個顏色通道處理的最后,由kernel_Dyna核函數實現色彩調整以及最后像素值范圍的調整等計算任務。在式(14)中調整圖像色彩時需要先計算該通道上全部像素的均值和方差,在計算均值和方差時都需要執行累加和的指令。對大規模數據加和時,使用并行規約求和方法可以大大降低執行時間。因此,基于GPU的并行規約求和在核函數中扮演了重要的角色。在式(14)計算完成后,需要對求得的計算結果過濾,也就是判斷像素值是否溢出,即如果大于255取255,如果小于0,則取0。最終的處理結果由GPU傳送到CPU,并且在CPU上面將R、G、B通道上的數據合并。該GPU核函數的執行步驟如下:①按線程索引號從存儲全局內存中加載數據。②通過并行規約的當時得到累加和,得到均值和方差的計算結果。③按照式(14),將每個數據映射到一個線程上,同時啟動所有的線程進行線性映射計算。④對第③步求得的結果作溢出判斷后,CPU把結果取回。

3 實驗結果

3.1 實驗數據與環境

實驗環境為:操作系統為WIN10,64位,處理器為Intel Core i7-6700,內存大小為16 G,顯卡GTX730,編程平臺為VS2015,圖像處理庫Opencv2.49,以及GPU并行庫CUDA8.0。本次實驗中,我們選擇5種場景下不同比例大小的圖像進行了速度的測試,并且與相應的CPU-MSRCR和GPU-MSRCR算法的執行速度進行了對比,其中所有的圖像均來自于網絡以及NASA官網。

3.2 實驗平臺搭建

本實驗是基于Windows平臺進行設計,其中平臺環境的搭建是實驗成功的關鍵,本平臺的搭建主要分為3個步驟:①首先安裝VS2015,該軟件來源于微軟官網。②然后安裝CUDA8.0,該庫來源于英偉達官網。安裝之后需要在系統的環境變量中添加CUDA8.0對應的庫。③最后安裝Opencv2.49,該庫來源于Opencv官網。該庫直接解壓,解壓之后放在D盤的根目錄,然后在系統環境變量中添加Opencv對應的庫。

3.3 實驗步驟設計

本實驗的設計主要分為CPU并行、GPU并行以及CPU-GPU并行。其中,CPU并行是基于MATLAB設計的,GPU和CPU-GPU并行是基于VS2015設計的。3種并行設計都遵循圖像的讀入、圖像的增強以及圖像的合并。其中重點在于圖像的增強過程的并行設計,具體的并行步驟如下:①高斯濾波計算的并行設計。②對數域計算的并行設計。③均在計算的并行設計。④標準差計算的并行設計。⑤線性映射計算的并行設計。

其中在CPU-GPU并行設計時,需要在CPU內存中創建3個CPU線程同時并行R、G、B通道。

3.4 實驗結果與分析

為了方便展示算法并行后對圖像的增強效果以及對GPU加速效果的分析,在實驗中采用了5類圖像作為實驗對象且將同一類的圖像處理為相同大小,分別為夜間場景圖像,大小為256×191;水下場景圖像,大小為512×426;醫療診斷圖像,大小為1024×750;霧霾場景圖像,大小為2048×1445;月球表面探測圖像,3052×4096。這5類圖像的大小是在不斷增加的,如圖5所示,其中上面5幅為原始圖像,下面5幅為GPU并行增強處理后的效果圖。

圖5 GPU并行增強處理效果

在實驗中5組圖像的大小各不相同,并行后的MSRCR計算在CPU和GPU上面的運行時間,圖像處理的耗時統計見表2。

表2中給出了在實驗中5類圖像在CPU-MSRCR、GPU-MSRCR和CPU-GPU-MSRCR上面的耗時,在GPU上分別統計了GPU-MSRCR模型和CPU-GPU-MSRCR模型的耗時情況,折線圖可以更清晰表示在CPU-MSRCR、GPU-MSRCR和CPU-GPU-MSRCR的耗時對比,如圖6所示。

表2 不同分辨率圖像總耗時統計/ms

其中左圖原始走勢,右圖是縮小10倍的走勢,隨著圖像的不斷增加,CPU-MSRCR耗時急劇增高;GPU-MSRCR耗時區線小幅度增高;CPU-GPU-MSRCR耗時區線的變化不是太明顯。以上結果表明GPU并行MSRCR可以顯著提高算法的執行速度,并且充分利用CPU線程的并行思想不僅可以提供GPU的并行速度,還能提高CPU和GPU資源的利用率。可以看出采用CPU-GPU的并行設計的處理能力優于GPU的并行設計處理能力。為了更好的量化GPU對CPU對程序執行速度有著巨大的優勢,在圖7中給出了CPU和GPU的加速比。

利用在GPU上執行的總時間來衡量加速比,但這個總時間是不包含CPU與GPU的數據傳輸時所花費的時間。如圖7所示:對于GPU-MSRCR算法,當圖像大小小于1124*750時,加速度穩定在一個范圍內并且幅度不大,隨著圖像大小的增大加速比有明顯的提高,當圖像大小達到3052*4096時,加速比最高達到72.2。在GPU-MSRCR基礎上,本文對該方法進行了改進,考慮到圖像本身具有3個通道,并且GPU-MSRCR是順序執行R、G、B通道的GPU并行過程,而多CPU線程可以并行執行R、G、B通道的GPU并行過程。理論上采用CPU-GPU-MSRCR的處理速度是GPU-MSRCR的3倍,而實際結果取決于并行R、G、B通道時運行時間最長的通道。當圖像大小是256*191的時加速比為30多倍,隨著圖像的增加,加速比的效果逐漸明顯,當圖片大小為3052*4096時加速比達到267倍左右。實現結果表明CPU-GPU-MSRCR具有較好的提速能力。

圖6 CPU-MSRCR、GPU-MSRCR和CPU-GPU-MSRCR耗時對比

圖7 5組圖片對應的并行模型的加速比

4 結束語

多尺度視網膜圖像增強算法可以對光照不均勻、霧霾天氣、水下等場景下圖像處理獲得較好的顯像效果,但是由于其復雜的計算過程以及較大的計算量,導致算法的實時性效果較差。本文提出了一種結合CPU和GPU并行MSRCR的加速數據并行計算的并行化方案。通過CPU并行R、G、B通道,并且每個通道的MSRCR過程在GPU資源中并行。該方案在保證圖片質量的情況下,不僅提高了算法的執行效率,還提高了CPU和GPU的資源利用率。

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 国产欧美日韩18| 日韩av在线直播| 国产精品免费电影| 成年av福利永久免费观看| 精品1区2区3区| 国产十八禁在线观看免费| 国产人碰人摸人爱免费视频| 国产免费羞羞视频| 久久综合五月| 欧美精品啪啪| 久久久久久尹人网香蕉| 欧美五月婷婷| 国产久草视频| 欧美五月婷婷| 亚洲最新在线| 波多野结衣视频网站| 中文字幕免费在线视频| 美女裸体18禁网站| 亚洲性影院| 久久这里只精品热免费99| 亚洲一区波多野结衣二区三区| 波多野结衣一区二区三区88| 欧美日本在线| 国产成人精品免费av| 永久免费无码日韩视频| 久久亚洲国产一区二区| 国产日韩欧美成人| 无码免费视频| 国产精品黑色丝袜的老师| 色综合成人| 亚洲成人黄色网址| 欧美国产视频| 中文字幕在线不卡视频| 亚洲三级成人| 国产精品开放后亚洲| 国产成人无码久久久久毛片| 国产乱论视频| 九九视频免费在线观看| 亚洲成aⅴ人在线观看| av在线人妻熟妇| 欧美yw精品日本国产精品| 国产欧美在线观看视频| 国产精品精品视频| 免费一极毛片| 久久久精品无码一区二区三区| 99久久精品国产精品亚洲| 国产综合在线观看视频| 国产精品久久久久久搜索| 国产呦精品一区二区三区下载 | 欧美另类精品一区二区三区| 五月婷婷综合色| 天堂亚洲网| 亚洲国产精品无码久久一线| 精品乱码久久久久久久| 亚洲日本一本dvd高清| 国产91在线免费视频| 欧美午夜理伦三级在线观看| 久久久久久久久久国产精品| 欧美伦理一区| 啪啪免费视频一区二区| 国产成人精品18| 自偷自拍三级全三级视频 | 一本大道香蕉中文日本不卡高清二区| 国产黄网站在线观看| 国产精品成人第一区| 色AV色 综合网站| 噜噜噜久久| 亚洲综合极品香蕉久久网| AV片亚洲国产男人的天堂| 超薄丝袜足j国产在线视频| 日韩毛片免费| 日韩高清欧美| 一级爆乳无码av| 国产免费羞羞视频| 国产精品污视频| 日韩成人高清无码| 三级欧美在线| 久久一色本道亚洲| 最新日韩AV网址在线观看| a亚洲天堂| 精品一区二区三区无码视频无码| 18禁不卡免费网站|