Dehaze---CV Course Project

1. Method description

在计算机视觉和计算机图形中,下述方程所描述的雾图形成模型被广泛使用:

I(x)= J(x)t(x) + A(1 − t(x))

I是指观测到的图像的强度,J是景物光线的强度,A是全球大气光成分,t用来描述光线通过媒介透射到照相机过程中没有被散射的部分,去雾的目标就是从I中复原J,A,t。

Dark Channel是通过对户外无雾图像的观察得出的:在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值。换言之,该区域光强度的最小值是个很小的数。

1)估测透射率分布


(上边这个公式好像应改为:min(c)应与min(Omg)互换, 先求单个像素min(rgb)的值,然后再求min(Omg),即区域最小值)

2)软图像抠图


根据此公式得出Laplacian矩阵,继而使用PCG解出线性方程:

 

3)复原物体光线


4)估测大气光

首先选取暗原色中亮度最大的0.1%的像素,这些像素大都是不透明的。在以上像素当中,输入图像I中强度最大的像素点被选定为大气光。注意到它们并不一定是整幅图像里最亮的点。

2. Implementation details

实际中使用VC9.0+OpenCV2.1。

在计算Dark Channel时,使用了Marcel van Herk的《A fast algorithm for local minimum and maximum filters on rectangular and octagonal kernels》中的快速算法,具体如下:


使用两组数组来记录分组大小(实际中15为一组)后的每组最小值,然后每次比较区间内两数组最小值作为此区间的最小值。

在解大规模稀疏矩阵线性方程组中,使用Preconditioned Conjugate Gradient (PCG)算法,具体参照Jonathan Richard Shewchuk的《An Introduction to the Conjugate Gradient Method Without the Agonizing Pain》,具体伪代码如下:


3. Results

从左到右依次为: 去雾之后的图像,transmission map,原图像

在Intel E7200 2.53GHz + 2GB内存上,100 * 50的图像大概需要2秒左右,300 * 200的图像需要40秒左右,800 * 600的图像需要20min左右。

4. References

[1] Kaiming He, Jian Sun Xiaoou Tang. Single Image Haze Removal Using Dark Channel Prior. CVPR’09

[2] A. Levin, D. Lischinski, and Y. Weiss. A closed form solution to natural image matting. CVPR, 1:61–68, 2006.

[3] Jonathan Richard Shewchuk. An Introduction to the Conjugate Gradient Method Without the Agonizing Pain. 1994

Source Code Download Here! (VS2008+OpenCV)


<think>好的,我现在需要处理用户关于Dehaze-net去雾算法流程图的查询。首先,用户明确要求查找该算法的流程图或图解,但之前的引用内容提到了GCANet,这可能是一个混淆点。我需要确保准确回答用户的问题,而不是引用不相关的资料。首先,我应该回顾Dehaze-net的基本结构。Dehaze-net是由Cai等人在2016年提出的,主要用于单幅图像去雾。其核心包括四个部分:特征提取、多尺度映射、局部极值以及非线性回归。我需要将这些步骤转化为流程图的形式,用文字描述出来,因为可能没有现成的图解可用。 接下来,我需要验证每个模块的功能。特征提取阶段使用卷积层获取雾相关特征,比如颜色信息和深度线索。多尺度映射可能涉及不同大小的卷积核来捕捉多尺度特征。局部极值部分确保透射率估计符合物理模型的约束,比如透射率的局部最小值。最后,非线性回归通过激活函数(如ReLU)生成透射率图,结合大气光估计得到去雾图像。 用户可能需要更详细的步骤解释,所以需要将每个模块连接起来,形成流程结构。例如,输入图像经过特征提取后,进入多尺度处理,再通过局部极值约束,最后回归得到透射率,结合大气光恢复无雾图像。另外,考虑到用户可能需要示意图,但无法直接提供图片,建议他们参考原始论文或相关论文的图表部分。同时,生成相关问题,帮助用户深入理解,比如算法各模块的作用、与传统方法的比较,以及实现细节等。 需要检查是否有混淆GCANet和Dehaze-net的情况,确保引用正确。用户提供的引用[1]是关于GCANet的,可能与当前问题无关,但用户可能之前提到过,所以需要确认是否需要忽略该引用,专注于Dehaze-net本身的信息。最后,确保回答结构清晰,分步骤解释流程,并建议查阅论文获取图示,同时附上相关问题以供进一步学习。</think>### Dehaze-net算法流程图解 Dehaze-net是2016年提出的端到端去雾网络,其核心流程可分为四个模块(由于平台限制无法直接上传流程图,以下通过文字描述结构): $$ \text{输入图像} \rightarrow \text{特征提取} \rightarrow \text{多尺度映射} \rightarrow \text{局部极值} \rightarrow \text{非线性回归} \rightarrow \text{去雾图像} $$ 1. **特征提取层** 使用$3\times3$卷积核提取雾浓度相关特征,包含颜色衰减先验和深度线索的特征表示[^2] 2. **多尺度映射层** 并行使用$3\times3$、$5\times5$、$7\times7$三种卷积核,通过级联结构融合不同感受野的特征: $$ F_{multi} = \sigma(W_3 \circledast F) \oplus \sigma(W_5 \circledast F) \oplus \sigma(W_7 \circledast F) $$ 3. **局部极值约束** 引入最大值池化层保证透射率估计满足物理约束: $$ t(x) = 1 - \min_{y\inΩ(x)}(\min_{c\in\{r,g,b\}}\frac{I^c(y)}{A^c}) $$ 4. **非线性回归层** 通过BReLU激活函数生成最终透射率图: $$ t(x) = \max(0, \min(1, \sum_{k}w_k \cdot M_k(x) + b)) $$ 最终通过大气散射模型重建图像: $$ J(x) = \frac{I(x) - A(1 - t(x))}{t(x)} $$ 建议查阅原论文《DehazeNet: An End-to-End System for Single Image Haze Removal》Fig.2获取完整流程图。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值