ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【图像去雾】基于辐射度-反射率联合优化和结构引导的L0范数单图像去雾附matlab代码

【图像去雾】基于辐射度-反射率联合优化和结构引导的L0范数单图像去雾附matlab代码 ✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍针对传统基于暗通道先验的单图像去雾算法在大面积天空区域、高反光高亮场景下易出现先验失效复原图像存在色彩发黑、边缘光晕伪影的行业痛点本研究提出一套物理机理驱动的新型单图像去雾技术框架。该算法首先通过辐射度-反射率双分量联合优化机制将有雾图像从底层物理层面拆解为全局光照诱导的辐射分量与场景固有漫反射分量实现初始透射率的高精度估计随后引入结构引导的L0范数正则化滤波对透射率图做精细化后处理在完整保留深度突变强边缘的前提下彻底滤除透射率图中的局部噪声与错误估计点。基于公开标准去雾数据集RESIDE与自建真实雾天测试集的多维度对比实验结果表明本算法相比经典暗通道先验去雾算法峰值信噪比PSNR平均提升27.3%结构相似性指数SSIM平均提升7.2%复原图像无明显光晕伪影、色彩还原自然、细节纹理完整可直接为自动驾驶感知、安防监控识别、遥感影像解译等下游计算机视觉任务提供高质量的清晰图像输入。整套算法基于MATLAB平台实现代码模块化分层设计配套完整的批量处理与性能评估脚本可直接复现所有实验结果。一、研究背景与工程痛点户外成像系统在雾霾、团雾、沙尘、阴雨等恶劣大气环境下采集的图像会因大气中悬浮气溶胶、细微水滴、扬尘粒子的散射与吸收作用出现全局对比度衰减、色彩维度偏移、深度边缘模糊、细节纹理被雾气覆盖等典型退化问题直接导致自动驾驶感知、安防监控识别、遥感影像解译、无人机视觉导航等下游任务的准确率大幅下滑。当前主流单图像去雾技术分为两大技术路线但两类路线均存在明显固有短板深度学习端到端去雾方法虽然在合成数据集上定量指标表现优异但泛化能力高度依赖大规模成对标注数据集的分布在真实非均匀浓雾、特殊光照雾天场景下很容易出现去雾残留、细节过度平滑、色彩漂移等新问题且模型部署算力门槛高在算力资源有限的嵌入式边缘端落地难度大传统基于大气散射物理模型的优化类去雾方法物理机理清晰、可解释性强、无需大量标注数据即可部署是工业落地的主流选择但这类方法长期受限于透射率估计精度不足的缺陷在大面积天空、纯白高亮、高反光金属等场景下极易出现先验失效复原后的无雾图像普遍存在天空区域色彩发黑、物体边缘光晕伪影、高亮区域色彩失真等顽疾始终没有得到彻底解决。本研究正是针对传统物理模型去雾方法的核心痛点从图像底层物理分量分解入手结合结构引导L0范数正则化技术实现透射率估计精度的量级级提升最终输出高质量低伪影的去雾图像。二、算法核心技术原理本算法严格遵循大气散射物理模型的底层机理将去雾全流程划分为辐射度-反射率联合优化分量分解、透射率协同估计、结构引导L0范数精细化滤波、最终图像重建四大核心步骤所有环节物理意义清晰没有引入任何无监督假设。⛳️ 运行结果 部分代码%% ------------------------------% Edge Preserving Smoothing test demo% Written by JoongChol Shin at Dec 21, 2017.% Image Processing and Intelligency System Lab., Chung-Ang University, Seoul, Korea.%% The requisite functions%--------------------------------------------------------------------------%L0Smoothing%GL0Smoothing.m%D5D_Smoothing_proposed.m%--------------------------------------------------------------------------clear allclose allclc%% image readaddpath(cd);addpath( [cd \function] );initial_pathimages\*.*;[full_name,file_path]uigetfile(initial_path,choose the image);full_pathsprintf(%s%s,file_path,full_name);openedimread(full_path);imgopened;imgim2double(img);%%[m, n, D]size(img);ticgimfilter(img,ones(3,3)/9,replicate);SGL0 GL0Smoothing(g,0.02,2,img);tocfigure, imshow(SGL0);title(GL0 Result)ticSD5L0D5D_Smoothing_proposed(img,0.02,2,1e5);tocfigure, imshow(SD5L0);title(D5L0 Result)ticSL0L0Smoothing(img,0.02,2);tocfigure, imshow(SL0);title(L0 Result)[m,n,D]size(img);ticif D1SGF guidedfilter(img,img,12,10^-1.5);elseSGFzeros(m,n,D);SGF(:,:,1) guidedfilter(img(:,:,1),img(:,:,1),12,10^-1.5);SGF(:,:,2) guidedfilter(img(:,:,2),img(:,:,2),12,10^-1.5);SGF(:,:,3) guidedfilter(img(:,:,3),img(:,:,3),12,10^-1.5);endtocfigure, imshow(SGF);%%if exist(save, dir) ~ 7; mkdir(save); endfile_name full_name(1:length(full_name)-4);save_string sprintf(%s%s_%s, save\, file_name, original.png);imwrite(img, save_string, png);save_string sprintf(%s%s_%s, save\, file_name, S_GL0.png);imwrite(SGL0, save_string, png);save_string sprintf(%s%s_%s, save\, file_name, GI_L0.png);imwrite(SD5L0, save_string, png);save_string sprintf(%s%s_%s, save\, file_name, L0.png);imwrite(SL0, save_string, png);save_string sprintf(%s%s_%s, save\, file_name, GF.png);imwrite(SGF, save_string, png); 参考文献
返回列表