双边网格学习、Bilateral Learning

目录

背景

方法

结论


挖坑,双边网格学习。双边网格具有很多优良的特性,在图像恢复等方面还具有很多的价值可以挖掘,因此本系列我会把相关论文和代码以我的理解写成博客,留做记录,代码运行过程中如果有问题或者发现我也会写到博客里。

背景

双边网格学习有些相似于双边滤波。

双边滤波(Bilateral Filter)是非线性滤波中的一种,结合图像的空间邻近度与像素值相似度。 在滤除噪声、平滑图像的同时,又保存边缘。一个负责计算空间邻近度 的权值,也就是常用的高斯 滤波器原理。而另一个负责 计算像素值相似度的权值。 在两个高斯滤波的同时作用 下,就是双边滤波。

方法

有空细细研究一下代码实现。

双边网格一维主要示意图:

 二维示意图


《Real-time Edge-Aware Image Processing with the Bilateral Grid》是2007年的利用双边网格的一篇传统方法图像处理的文章,文章利用双边网格进行快速的图像中增强,即将细节、曝光较差的图像进行恢复。

《Deep Bilateral Learning for Real-Time Image Enhancement》是2017年的利用双边网格和深度学习的HDR图像实时增强文章,效果不错。

阅读论文《Deep Bilateral Learning for Real-Time Image Enhancement》_CHNguoshiwushuang的博客-CSDN博客_enhancement   这是2017 siggraph的一篇论文,寒假boss让我看这篇论文我没怎么看懂。最近在公司实习,发现该论文的成果已经移到手机端上了,效果还非常不错。这里我重新温习了一下这篇论文,发现有许多可以借鉴的地方,是一篇非常不错的论文,这里重新叙述一下,谈谈我的理解。    首先说一下这篇文章的整体思路,这篇文章对于图像增强的方法是,将图像首先做下采样,继续卷积下采样几次然后分别学习其全局特征和局...https://blog.csdn.net/CHNguoshiwushuang/article/details/81843826?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_antiscanv2&utm_relevant_index=2
《Ultra-High-Definition Image Dehazing via Multi-Guided Bilateral Learning》是2021年的去雾文章,该论文为2021cvpr上的一篇去雾文章,主打高清图像快速去。

(最新更新2022.3.24)

双边网格学习一:2021cvpr《Ultra-High-Definition Image Dehazing via Multi-Guided Bilateral Learning》_Alocus_的博客-CSDN博客背景方法,据论文所述,在实时性方面达到较好结果。核心采用双边网格,双边网格能够关注色彩突变的物体边界,并能够很好的关注于高频信息上面是该网络的主要架构图,可以看到非常地简洁,实际上,为了简洁而简洁可能有时候会对读者造成一定的误导。如,在该模型中的特征提取部分代码里使用的是Unet网络,图中则画的很简单,另外在RGB图像表示部分也不够清楚,实际上在图像输入之后也会有一个unet进行特征提取,然后对提取后的特征分别进行三次卷积,以生成三个通道共九个通道的R, G, B channel。本文.https://blog.csdn.net/Crystal_remember/article/details/123715221

结论

我会在随后的更新中进行文章细致的代码注释。复现等工作,由于手头任务较多,因此可能较慢,就算督促自己进行学习、总结吧。

—————————————————待完善—————————————————

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
双边滤波是一种可以同时考虑空间距离和像素值差异的滤波方法,可以在去除图像噪声的同时保留图像细节。下面是双边滤波的Matlab代码实现: ```matlab function [output_image] = bilateral_filter(input_image, sigma_d, sigma_r) % 双边滤波函数 % input_image: 输入图像 % sigma_d: 空域滤波器的标准差 % sigma_r: 像素值差异滤波器的标准差 % 将输入图像转换为double类型 input_image = im2double(input_image); % 获取输入图像的大小 [M, N, ~] = size(input_image); % 初始化输出图像 output_image = zeros(M, N, 3); % 定义空域滤波器 [X, Y] = meshgrid(-ceil(3*sigma_d):ceil(3*sigma_d)); space_filter = exp(-(X.^2+Y.^2)/(2*sigma_d^2)); % 对于每个像素进行滤波 for i = 1:M for j = 1:N % 计算像素值差异滤波器 pixel_filter = exp(-((input_image(i,j,1)-input_image(:,:,1)).^2+... (input_image(i,j,2)-input_image(:,:,2)).^2+... (input_image(i,j,3)-input_image(:,:,3)).^2)/(2*sigma_r^2)); % 计算双边滤波器 bilateral_filter = space_filter .* pixel_filter; % 归一化 bilateral_filter = bilateral_filter / sum(bilateral_filter(:)); % 计算输出像素值 output_image(i,j,1) = sum(sum(input_image(:,:,1).*bilateral_filter)); output_image(i,j,2) = sum(sum(input_image(:,:,2).*bilateral_filter)); output_image(i,j,3) = sum(sum(input_image(:,:,3).*bilateral_filter)); end end % 将输出图像转换为uint8类型 output_image = uint8(output_image*255); ``` 使用方法: ```matlab input_image = imread('input_image.png'); sigma_d = 2; sigma_r = 0.1; output_image = bilateral_filter(input_image, sigma_d, sigma_r); imshow(output_image); ``` 其中,`input_image.png`为输入图像的文件名,`sigma_d`为空域滤波器的标准差,`sigma_r`为像素值差异滤波器的标准差。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值