JBU联合双边上采样
很多圖像處理算法,如立體視覺中的深度估計(jì),圖像上色,高動(dòng)態(tài)范圍HDR中的tone mapping,圖像分割,都有一個(gè)共性的問題:尋找一個(gè)全局的解,這個(gè)解是指一個(gè)分段的piecewise平滑含糊,描述了感興趣的值(可以是深度,色度,曝光值,標(biāo)簽等)。
另一方面,數(shù)字圖像越來(lái)越大,從one quarter million到multi-Megapixel到Gigapixel,隨著圖像尺寸的變大,圖像處理的耗時(shí)和占用空間也線性增長(zhǎng)。一個(gè)處理方法就是對(duì)原始圖像先進(jìn)行下采樣的預(yù)處理再進(jìn)行圖像處理,但這也帶來(lái)一個(gè)問題,就是將處理之后的圖像再恢復(fù)到原始的分辨率,這就是圖像的超分辨率重建。很顯然,我們可以利用原始的大尺寸圖像。將原始的圖像與雙邊濾波結(jié)合起來(lái),就是本文新提出的算法JBU。
雙邊濾波bilateral filter是一個(gè)保邊濾波edge-preserving filter,最早在1998年提出,為了解決傳統(tǒng)的插值的圖像上采樣方法會(huì)造成邊緣模糊。為了保留邊緣,BF在不同位置的核參數(shù)應(yīng)該是不一樣的,所以BF屬于非線性的濾波器,也是各向異性的濾波器。具體而言,濾波器會(huì)根據(jù)不同的空間位置和灰度變化范圍進(jìn)行調(diào)整,這也是“雙邊”的含義,一邊是空域spatial filter(與中心點(diǎn)的距離遠(yuǎn)近),一邊是與中心點(diǎn)的灰度差值大小range filter。從表達(dá)式上看,最終的濾波器系數(shù)的兩個(gè)核的乘積。兩個(gè)子核都可以是高斯函數(shù),當(dāng)灰度變化很大或者距離很遠(yuǎn),那么濾波器系數(shù)就會(huì)很小,所以邊緣就得以保留。
有人利用BF做HDR中的色調(diào)映射tone mapping,有人用來(lái)去馬賽克,
那么如何將BF和大尺寸的guidance圖像結(jié)合在一起呢?是使用灰度差異的子核還是使用空間距離的子核呢?為了利用更準(zhǔn)確的邊緣信息,是按照像素在大尺寸圖像中對(duì)應(yīng)的灰度值來(lái)計(jì)算濾波系數(shù),因?yàn)檫吘壨腔叶戎堤冊(cè)斐傻?#xff0c;所以使用大圖位置的灰度值更準(zhǔn)確。和OpenCV做圖像變換一樣,這種像素坐標(biāo)的映射關(guān)系也是從目標(biāo)圖像(這里是大圖)到低分辨圖像。
作為引導(dǎo)圖的高分辨圖像是離散采樣的,所以超分重建的效果與上采樣的比例無(wú)關(guān)。
4 應(yīng)用
色調(diào)映射tone mapping是為了在普通設(shè)備中顯示HDR圖像。需要解很大的線性方程組,雖然可以通過multi-resolution solvers高效地解出,但是當(dāng)數(shù)據(jù)很大時(shí)還是會(huì)占用相當(dāng)大的內(nèi)存。那么,JBF具體是怎么應(yīng)用在HDR中的呢?首先,I是低分辨率的圖像,T是某種tone mapping算子,那么T(I)就是這個(gè)算子生成的tone mapped圖像。對(duì)應(yīng)的低分辨率的解被定義為映射前后的像素級(jí)的比,也就是說(shuō),這個(gè)圖其實(shí)是曝光圖exposure map,表示應(yīng)用在每個(gè)像素上的曝光校正系數(shù)。我們就是在這個(gè)圖上使用JBF,因?yàn)檫@個(gè)圖雖然大部分是平滑的,但是在具有顯著邊緣特性的區(qū)域會(huì)出現(xiàn)不連續(xù)。注意曝光圖可能是單通道的(即只對(duì)亮度進(jìn)行調(diào)節(jié)),也可能是多通道的(即支持多種色調(diào)的調(diào)節(jié))。
在Levin的圖像上色和圖像重新著色的方法中也有類似的線性方程組,面對(duì)尺寸很大的圖像同樣有計(jì)算量大的問題。Yatziv的方法雖然不需要解線性方程組,但依然要迭代地遍歷數(shù)據(jù)。在這里JBU的應(yīng)用對(duì)象就是著色之后的低分辨率圖像,但是在上采樣之前,需要先將它轉(zhuǎn)換至YIQ顏色空間(或者其他任意的將亮度與色度解耦的顏色空間),然后在每個(gè)色度通道上應(yīng)用JBU。從圖3中可以看到,JBU避免了在邊緣區(qū)域的色度泄漏。
立體視覺深度估計(jì)。深度估計(jì)的關(guān)鍵是得到兩幅圖像中對(duì)應(yīng)點(diǎn)的視差disparities。然而,估計(jì)出的深度圖在邊緣處是不連續(xù)的discontinuties。將高分辨率圖像作為引導(dǎo),就可以對(duì)低分辨率的深度圖像進(jìn)行上采樣。
基于圖分割Graph-cut的圖像處理。近來(lái)出現(xiàn)的一些用戶交互性的圖像編輯技術(shù)涉及到了在圖中尋找最小分割。比如交互性的蒙太奇照片系統(tǒng),使用最小圖分割技術(shù)來(lái)計(jì)算圖像融合時(shí)的最小化接縫。優(yōu)化的結(jié)果是一個(gè)標(biāo)簽圖label map,label表明的是融合圖是每個(gè)像素來(lái)自于哪個(gè)照片。約束條件是用戶指定的幾個(gè)圖像,拼接算法做的是計(jì)算出label map,指定了剩余的沒有被約束的像素來(lái)自于哪個(gè)圖像,這樣生成的圖像其拼接感是最小的。這個(gè)標(biāo)簽圖和之前的幾個(gè)應(yīng)用的區(qū)別在于標(biāo)簽是離散的,做法是這樣的,為了得到每個(gè)像素的標(biāo)簽,對(duì)每個(gè)低分辨率的像素會(huì)有一個(gè)帶非零權(quán)重的投票,獲勝的標(biāo)簽會(huì)有累積最高的權(quán)重。
5 表現(xiàn)和準(zhǔn)確性
JBU的復(fù)雜度是O(Nr2),N是輸出圖像的尺寸,r是濾波器的尺寸。表現(xiàn)與輸出尺寸有關(guān),但是與上采樣因子無(wú)關(guān),因?yàn)闉V波器始終應(yīng)用在低分辨率圖像上。所有的結(jié)果都使用5x5的高斯濾波,速度快,同時(shí)可以將足夠距離的像素值考慮進(jìn)去。
function result = JointBilateralUpsample(color,depth,factor,sigma_w,sigma_c,w) if( size(color,3) ~= 3 ),error( 'color data must be of 3 channel' ); enddepth = double(depth); color = double(color); highHeight = size( color, 1 ); highWidth = size( color, 2 ); lowHeight = size(depth,1); lowWidth = size(depth,2); result = zeros(highHeight,highWidth); for i = 1:highHeightfor j = 1:highWidthid = i/factor;jd = j/factor;iMin = ceil(max(id-w,1));iMax = floor(min(id+w,lowHeight));jMin = ceil(max(jd-w,1));jMax = floor(min(jd+w,lowWidth));depth_sec = depth(iMin:iMax,jMin:jMax);color_sec = color(iMin * factor:factor:iMax * factor,jMin * factor:factor:jMax * factor,:);% Compute Gaussian range weights.dR = color_sec(:,:,1)-color(i,j,1);dG = color_sec(:,:,2)-color(i,j,2);dB = color_sec(:,:,3)-color(i,j,3);range = exp( -(dR.^2 + dG.^2 + dB.^2) / (2*sigma_c^2));% Calculate bilateral filter response.iw = (iMin:iMax) - id;jw = (jMin:jMax) - jd;[mx,my] = meshgrid(jw,iw);spatial = exp( -(mx.^2 + my.^2) / (2*sigma_w^2) );depth_weight = (depth_sec>0) .* range .* spatial;depth_sum = depth_sec .* depth_weight;result(i,j) = sum(depth_sum(:)) / sum(depth_weight(:));endendend對(duì)于彩色三通道圖像,可以分別在RGB中進(jìn)行上采樣,但是可能造成顏色泄漏,通常的做法是先進(jìn)行顏色空間轉(zhuǎn)換。原文使用使用的是YIQ,但其實(shí)只要是亮度分離的顏色空間都可以。YIQ是電視系統(tǒng)中使用的顏色空間,對(duì)應(yīng)美國(guó)和日本的NTSC制式,在matlab中rgb到Y(jié)IQ的轉(zhuǎn)換函數(shù)是rgb2ntsc.首先YUV和YIQ三通道都是獨(dú)立的,所以使得黑白電視機(jī)也可以接收彩色電視信號(hào)。另外,黑白圖像主要提供細(xì)節(jié),所以顏色通道的帶寬可以適當(dāng)壓縮。
Reference:
1.http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html
2.https://zhuanlan.zhihu.com/p/21983679?
3.https://www.jianshu.com/p/ce4afe599d6a
4.https://blog.csdn.net/CHNguoshiwushuang/article/details/82469162?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
5.https://www.cnblogs.com/magic-428/p/9172406.html
6.ntsc2rgbhttps://www.mathworks.com/help/images/ref/ntsc2rgb.html
?
總結(jié)
以上是生活随笔為你收集整理的JBU联合双边上采样的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow实现回归
- 下一篇: 图像处理中的通信原理——冈萨雷斯读书笔记