0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BM3D算法学习

FPGA开源工作室 来源:BM3D算法学习 作者:爱酷的胡巴 2022-04-06 16:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前些日子在学习图像降噪的算法,自然而然的发现了这篇里程碑式的作品,“BM3D”3D块匹配降噪算法,想来时间也久,赶紧再写下来,以免过后忘记。

在学习的过程中,由于没学过数字图像处理,学起来还是挺墨迹的,前前后后得有四五天吧,才算整个大差不差,期间看了许多前辈的博客和代码,也总算有些许的进步和理解,特此感谢,并将算法原文、参考博客和文献附文末。

从“头”开始

图像去噪是非常基础也是非常必要的研究,去噪常常在更高级的图像处理之前进行,是图像处理的基础。图像中噪声的来源有许多种,种类也各不相同,比如椒盐噪声、高斯噪声等。对于输入的带有噪声的图像v(x),其加性噪声可以用一个方程来表示:

b009d9cc-ac2d-11ec-aa7f-dac502259ad0.png

如果能够精确地获得噪声,用输入图像减去噪声就可以恢复出原始图像。但实际中除非明确地知道噪声生成的方式,否则噪声很难单独求出来。由此,便诞生了一堆的图像降噪算法,从传统算法到现在的机器学习的算法,降噪算法得到了很大的发展。

那么传统的想法是什么呢,我们主要分为以下两大类。

b01af1f8-ac2d-11ec-aa7f-dac502259ad0.jpg

对于我们来讲,一个自然而然地想法就是,能不能把空间域和变换域的降噪方法结合起来,在对图像进行降噪处理,我们能想到,自然也有人想得到,NL-means应运而生。

b02ecf7a-ac2d-11ec-aa7f-dac502259ad0.jpg

非局部均值算法的主要想法在于它充分利用了自然图像的“空间相似性”,将图像分成一个个的小块,在以图像为单位对图像进行降噪,简单来讲,假设我们取11*11的窗口作为处理的小图像块,我们在图像上选取几个类似的图像斑块,例如上述的q1、q2和q3,但是q1和q2明显比q3近一点,根据空间相似性我们很容易知道q1q2应该和p更为相似,故我们在对P图像斑块进行处理的时候,我们可以对q1q2q3分别赋予不同的权重,再把他们“摞起来”,求个加权平均。形象来讲,假设存在一个每一层结构都完全相同的大楼,那么在进行加权平均的时候,我们这样想,我们把P想象为其中的一层,我们最终是要P图像斑块里面每一个像素的值,p若是一层楼,那么里面的每一个像素就是这层楼中的每一个房间,P为3楼,q1q2为1层和4层,q3为5层,那么p像素的值的大小就应该为q1q2q3每个与p对应房间(像素)值的加权平均,这样就对P图像斑块完成了降噪的过程,类似一个基于大斑块的高斯滤波算法。此外,从这个举例中我们也大概摸索出了BM3D里面3D的来历.......

至此,非局部均值算法以经表现不错了,但是它体现在简单的加权平均,并且仍然在空间域处理图像,科技并非停滞不前,BM3D来了......

BM3D(Block-matching and 3D filtering,3维块匹配滤波)是当前效果最好的算法之一。该算法通过相似判定找到与参考块相近的二维图像块,并将相似块按照组合成三维群组,对三维群组进行协同滤波处理,再将处理结果聚合到原图像块的位置。该算法的思想跟NL-Means有点类似,也是在图像中寻找相似块的方法进行滤波,但是相对于NL-Means要复杂许多。总体可以分为两步:

b0438ab4-ac2d-11ec-aa7f-dac502259ad0.jpg

在这两大步中,分别又有三小步:

相似块分组(Grouping)→协同滤波(Collaborative Filtering) →聚合(Aggregation)

b0438ab4-ac2d-11ec-aa7f-dac502259ad0.jpg

我们细看每一个小步骤,编组的过程类似于NL-means:

b0620d2c-ac2d-11ec-aa7f-dac502259ad0.jpg

接下来,第二小步,像上面讲述的房子一样,我们把分好的图像斑块“摞起来”,形成一个3D的“块”(Block),在每一层中进行二维变换,变换到频率域,此外,在第三个维度,也就是每一层的对应的房间(像素)上进行一维变换,变换之后,按照非局部均值的思想,对斑块在频率域进行降噪处理,(其实是对像素值的加权平均),再对经过变换之后图像斑块,进行“硬阈值”处理,处理剔除不合格像素值,在经过反三维变换变换为空间域,再对图像进行块匹配,聚合至原来每个块的位置,这样整个图像就从一维变三维再变回一维了。至此,第一步完成。

Aggregation:此时,每个二维块都是对去噪图像的估计。这一步分别将这些块融合到原来的位置,每个像素的灰度值通过每个对应位置的块的值加权平均。

b072329c-ac2d-11ec-aa7f-dac502259ad0.jpg

第二步与第一步类似

Step2:最终估计

(1)Grouping:第二步中的聚合过程与第一步类似,不同的是,这次将会得到两个三维数组:噪声图形成的三维矩阵和基础估计结果的三维矩阵。

(2)Collaborative Filtering:两个三维矩阵都进行二维和一维变换。用维纳滤波将噪声图形成的三维矩阵进行系数放缩,该系数通过基础估计的三维矩阵的值以及噪声强度得出。

Aggregation:与Step1中一样,只是此时加权的权重取决于维纳滤波的系数和噪声强度。

b0438ab4-ac2d-11ec-aa7f-dac502259ad0.jpg

至此,算法完成,效果还是很好的,我们来看一些示例:

b0976ab2-ac2d-11ec-aa7f-dac502259ad0.jpg

参考文献:

详尽过程

图解噪声与去噪 之二:从『均值滤波』到『BM3D』

阿达玛变换详尽

转:X264中SATD实现分析 - Mr.Rico - 博客园

克内罗内积

克罗内克积_百度百科

小波变换

小波变换(wavelet transform)的通俗解释(一)

blog.csdn.net/zizi7/art

频域空域细致讲解

blog.csdn.net/zdh198210

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    29

    文章

    1346

    浏览量

    59698
  • 算法
    +关注

    关注

    23

    文章

    4805

    浏览量

    98561

原文标题:BM3D算法学习

文章出处:【微信号:leezym0317,微信公众号:FPGA开源工作室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    光子精密3D工业相机高效质检连接器pin针

    光子精密GL-8000系列3D线激光轮廓测量仪,专为精密工件三维检测而生,从算法、硬件到系统集成,全面解除PIN针检测痛点。
    的头像 发表于 01-29 15:51 283次阅读
    光子精密<b class='flag-5'>3D</b>工业相机高效质检连接器pin针

    使用K-means算法进行异常侦测

    振动稳定); 清空旧模型并重新开始学习过程。 3 代码说明 3.1模型算法说明 模型采用简单的 在线聚类 + 欧氏距离检测算法: 1. 特征提取: 2.
    发表于 01-16 14:09

    SAM(通用图像分割基础模型)丨基于BM1684X模型部署指南

    前言SAM是Meta提出的一个分割一切的提示型模型,其在1100万张图像上训练了超过10亿个掩码,实现了强大的零样本泛化,突破了分割界限。本例程对SAM官方开源仓库的模型和算法进行移植,使之能
    的头像 发表于 01-12 16:17 493次阅读
    SAM(通用图像分割基础模型)丨基于<b class='flag-5'>BM</b>1684X模型部署指南

    探索TLE493D-P3XX-MS2GO 3D 2Go套件:开启3D磁传感器评估之旅

    探索TLE493D-P3XX-MS2GO 3D 2Go套件:开启3D磁传感器评估之旅 在电子工程师的日常工作中,评估和开发磁传感器是一项常见且重要的任务。英飞凌(Infineon
    的头像 发表于 12-18 17:15 1321次阅读

    BM3451系列 3/4/5 节可充电电池保护 IC技术手册

    电子发烧友网站提供《BM3451系列 3/4/5 节可充电电池保护 IC技术手册.pdf》资料免费下载
    发表于 12-11 15:26 1次下载

    如何深度学习机器视觉的应用场景

    检测应用 微细缺陷识别:检测肉眼难以发现的微小缺陷和异常 纹理分析:对材料表面纹理进行智能分析和缺陷识别 3D表面重建:通过深度学习进行高精度3D建模和检测 电子行业应用 PCB板复杂缺陷检测:连焊、虚焊、漏焊等焊接质量问题 芯
    的头像 发表于 11-27 10:19 330次阅读

    iSUN3D即将推出单组分弹性树脂3D打印解决方案!

    iSUN3D将在Formnext 2025发布单组分弹性树脂3D打印方案,覆盖设计到交付全流程,解决柔弹性制造成本与效率痛点,现场可体验高速打印与限量礼品。
    的头像 发表于 11-17 11:45 866次阅读
    iSUN<b class='flag-5'>3D</b>即将推出单组分弹性树脂<b class='flag-5'>3D</b>打印解决方案!

    微纳尺度的神笔——双光子聚合3D打印 #微纳3D打印

    3D打印
    杨明远
    发布于 :2025年10月25日 13:09:29

    e203除法器算法改进(二)

    )Dle Ple (frac{2}{3}+q)D (其中表示P该次的部分余数,q表示该次的商值),借助不等式(7)可以确定传统SRT-4算法的PD图(如图八所示)。 可以看出,构建传统SRT-4
    发表于 10-22 06:11

    Qwen3-VL 4B/8B全面适配,BM1684X成边缘最佳部署平台!

    算能BM1684X上完成Qwen3-VL4B/8B模型的适配,推理速度13.7/7.2tokens/s,使其成为边缘部署多模态大模型的最佳选择。近日,阿里千问正式开源Qwen3-VL系列的4B和8B
    的头像 发表于 10-16 18:00 3134次阅读
    Qwen<b class='flag-5'>3</b>-VL 4B/8B全面适配,<b class='flag-5'>BM</b>1684X成边缘最佳部署平台!

    玩转 KiCad 3D模型的使用

    “  本文将带您学习如何将 3D 模型与封装关联、文件嵌入,讲解 3D 查看器中的光线追踪,以及如何使用 CLI 生成 PCBA 的 3D 模型。  ”   在日常的 PCB 设计中,
    的头像 发表于 09-16 19:21 1.2w次阅读
    玩转 KiCad <b class='flag-5'>3D</b>模型的使用

    AD 3D封装库资料

     AD  PCB 3D封装
    发表于 08-27 16:24 8次下载

    PID控制算法学习笔记资料

    用于新手学习PID控制算法
    发表于 08-12 16:22 7次下载

    3D AD库文件

    3D库文件
    发表于 05-28 13:57 6次下载

    告别漫长等待! 3D测量竟然可以如此的丝滑

    原理介绍海伯森3D闪测传感器HPS-DBL系列采用超高速投影方式向测量对象上投射出不同波长的特殊图案,并采集物体表面的图案信息,配合海伯森HPS-NB3200高性能视觉控制器和内置AI解码算法对数
    的头像 发表于 05-12 18:01 774次阅读
    告别漫长等待! <b class='flag-5'>3D</b>测量竟然可以如此的丝滑