本文提出使用CPU+GPU異構計算技術對顯微鏡下的多張不同焦距圖像進行圖像融合,使用GPU的并行處理功能快速計算圖像上每個像素位置的聚焦清晰值,取最高值所在位置的圖像像素融合為顯微鏡超景深圖。實驗結果顯示,采用了CPU+GPU異構計算技術的圖像融合計算速度遠高于CPU計算的速度。
【關鍵詞】圖像融合 景深 擴展 圖形處理器 C++ AMP
顯微鏡光學系統中,高倍數顯微鏡放大倍率搞,工作距離短,圖像景深淺。只有在聚焦平面附近的圖像才能被看清晰顯示。顯微圖像融合技術可以將多幅不同聚焦位置的圖像融合成一幅各處都清晰的圖像。廣泛的應用于生物醫(yī)學、微電子和材料檢測等領域。但融合算法的計算量非常大,收到計算機計算能力的限制,一直無法實現圖像的快速或實時融合。
受到計算機芯片制造技術的限制,CPU芯片已經無法通過無限制增加頻率的方式提升計算速度,轉為采用“多核”方式提供更強性能的計算機。隨著GPU的性能不斷提升,以前的幾十個計算單元增長到目前的幾千個計算單元,越來越多的程序通過CPU+GPU的異構計算方式,利用GPU強大的并行計算能力提升應用程序的計算速度。異構計算技術已廣泛的用于科學建模與仿真、實時控制系統、財務跟蹤模擬和預測、游戲和圖像處理等工作上。
1 C++ AMP技術
目前成熟的異構計算技術的GPU計算接口包括NVIDIA 的CUDAC和AMD的OPENCL接口。微軟提供了一種GPU并行計算模式,C++AMP。其開發(fā)環(huán)境是windows平臺 + VisualStudio+DirectX。C++AMP采用了面向對象的C++語言開發(fā),支持CPU和GPU的跨平臺編譯運行,具有邏輯結構簡單、數據隱式拷貝、自動負載均衡等特點,可以快速、穩(wěn)定地實現并行計算。C++AMP比另外兩種并行端口適用范圍更廣,可以實現真正意義上的跨平臺運行。
2 多聚焦圖像融合算法及GPU算法實現
2.1 多聚焦圖像融合算法原理
顯微鏡成像過程中,只有在景深范圍內的圖像是清晰的,不在景深范圍內圖像則是模糊的。不同高度位置拍攝的的顯微圖像的清晰部分融合在一起,生成擁有完整清晰圖像合成圖是多聚焦圖像融合的目的。
目前的圖像融合方法主要分為兩類:基于頻域的圖像融合和基于空間域的圖像融合。頻域融合算法計算復雜、需時較長,而空域算法計算較為簡單、分析速度快。對比兩者方法特點和效果,本文采用空域算法中的改進Laplace算法提取清晰度位置,進行圖像融合。
如圖1所示,本文的圖像融合算法主要分為4步。
步驟1,對圖像上每一個像素點進行聚焦清晰度計算,獲得該點位置的聚焦評價函數值。
步驟2,對相同位置的不同圖像在該位置的聚焦清晰度評價值進行濾波和擬合,并獲取聚焦清晰度值最大值及其所在高度位置。
步驟3,根據步驟2獲得的聚焦清晰度最大值所在的位置,在原使圖像中提取該位置的像素點值作為融合以后的圖像的像素值。
步驟4,重復步驟2和步驟3,直到完成全部的圖像融合,獲得聚焦清晰的合成圖。
2.2 改進Laplacian算子
聚焦清晰圖像的特點是邊緣銳化程度較高,由于梯度算子|▽f(x,y)|具有各向同性和旋轉不變性,可把圖像中各不同走向的邊緣和線條突出,離焦量越小圖像邊緣越銳化,圖像灰度梯度可以用來評價圖像的聚焦程度。
3 實驗結果與分析
為了驗證異構計算技術是否能夠明顯加快景深融合的計算速度,本文使用相同的算法分別使用CPU和GPU對數據進行計算。
3.1 實驗環(huán)境
硬件環(huán)境:CPU采用英特爾酷睿i5-4670@3.40GHz四核處理器,8G內存,GPU采用NVidia公司的GeForce GT760顯卡,顯卡有1152個流處理單元,4G顯存, 1033MHz主頻。
軟件環(huán)境:Windows7.0,Visualstudio 2013開發(fā)環(huán)境,C++Amp技術在GPU下進行異構計算。
圖像融合算法的C++Amp異構計算處理流程如下。
步驟1,設置加速器
accelerator default_device;
步驟2,定義GPU中的顯存并拷貝圖像數據和濾波掩碼到顯存中。
std::vector
std::vector
for (i = 0; i < width*height; i++)
v_img[i] = (float)img[i]/ (float)RAND_MAX;
步驟3,使用GPU對圖像進行并行計算并返回計算結果。
parallel_for_each(a_img.extent, [=, &a_img_buffer, &a_img, &a_filter](index<2>idx) restrict(amp)
{
a_img_buffer[idx] = convolution<1>(idx, radius, a_img, a_filter);
});
3.2 異構計算速度和效果對比
為了對比異構計算技術進行多層顯微圖像融合的速度和效果,實驗對同一段視頻文件分別單獨用CPU和使用CPU+GPU的異構計算進行圖像融合,兩者計算機速度對比如表1所示,圖2,3,4為樣本融合效果圖。
測試結果對比可知,使用了CPU+GPU異構計算技術的處理的速度比單獨用CPU快約110倍。由此可見,異構計算技術對圖像處理的加速效果是非常明顯的,融合的效果也比較好。
4 結論
本文提出使用CPU+GPU異構計算技術對顯微鏡下的多張不同焦距圖像進行圖像融合,使用GPU的并行處理功能快速計算圖像上每個像素位置的聚焦清晰值,取最高值所在位置的圖像像素融合為顯微鏡超景深圖。通過實驗比較可以看出,采用了異構計算技術的圖像融合計算速度遠高于CPU計算的速度。
參考文獻
[1]符強,顯微圖像融合研究[M].桂林電子科技大學,2007.
[2]何曉昀.基于GPU的多聚焦顯微圖像快速三維重構技術[J].電子技術與軟件工程,2015(24):104.
[3]左顥睿,張啟衡,基于GPU的快速Sobel邊緣檢測算法[J].光電工程,Jan.2009,Vol.36,No1:8-11.
[4]林超.基于C++ AMP加速并行蟻群算法[J].現代電子技術,2014(23):69-71.
[5]C++AMP用Visual C++加速大規(guī)模并行計算.
[6]鄢樹等.基于小波變換的圖像融合性能的研究[J].微計算機信息.2010.1-1:119-120.
[7]CUDA_C_Programming_Guide[EB/OL]. Nvidia.2011.
[8]Hillesland KE,Molinov S,Grzeszczuk R.Nonlinear Optimization framework for image-based modeing on programmable graphics hardware[J].ACM Transaction on Graphics,2003,Vol.22,No3:925-934.
[9]白洪濤.基于GPU的高性能并行算法研究[M].吉林大學,2010.
[10]向昌成.多聚焦圖像融合研究[D].電子科技大學,2010.
[11]姜志國,韓冬兵等.基于全自動控制顯微鏡的自動聚焦算法研究[J].中國圖象圖形學報.Apr,2009.Vol.9,No4:396-401.
[12]何曉昀.磨粒表面形貌分析與三維重構[D].武漢理工大學,2005.
作者簡介
冼李豐,廣東理工學院汽車檢測與維修專業(yè)14級學生。
作者單位
1.廣東理工學院 廣東省肇慶市 526060
2.肇慶市端州區(qū)百圖維光電科技有限公司 廣東省肇慶市 526060