最小二乘估计图像复原

news2025/1/20 16:50:53

在这里插入图片描述

图像复原中的最小二乘估计

假设我们有一个原始图像 f \bm{f} f,它经过了一个线性退化过程(例如,卷积与加性噪声),产生了观测到的退化图像 g \bm{g} g

g = H f + n \bm{g} = \bm{H}\bm{f} + \bm{n} g=Hf+n

这里:

  • g \bm{g} g是退化后的观测图像。
  • H \bm{H} H是一个表示退化过程的线性算子(例如,点扩散函数 PSF 的离散化版本,它可以是模糊矩阵)。
  • n \bm{n} n表示加性噪声。
  • f \bm{f} f是我们想要恢复的原始图像。

最小二乘估计是寻找一个估计 f ^ \hat{\bm{f}} f^,使得预测图像 H f ^ \bm{H}\hat{\bm{f}} Hf^与观测图像 g \bm{g} g之间的差异最小化。这可以通过最小化残差平方和(RSS)来实现:

min ⁡ f ^ ∥ g − H f ^ ∥ 2 2 \min_{\hat{\bm{f}}} \|\bm{g} - \bm{H}\hat{\bm{f}}\|_2^2 f^mingHf^22

这里的 ∥ ⋅ ∥ 2 2 \|\cdot\|_2^2 22表示欧几里得范数的平方,即残差向量的元素平方和。

最小二乘解

如果我们忽略噪声项 n \bm{n} n,或者假设噪声的影响较小,那么可以通过求解正规方程得到 f ^ \hat{\bm{f}} f^的解析解:

f ^ = ( H T H ) − 1 H T g \hat{\bm{f}} = (\bm{H}^T\bm{H})^{-1}\bm{H}^T\bm{g} f^=(HTH)1HTg

然而,在实际应用中,直接求解上述公式可能会遇到以下问题:

  • 病态问题:如果 H \bm{H} H接近奇异(例如,当图像严重模糊时), H T H \bm{H}^T\bm{H} HTH可能很难逆,导致数值不稳定。
  • 噪声放大:即使是很小的噪声 n \bm{n} n,也可能被逆过程显著放大,从而破坏复原效果。

正则化最小二乘估计

为了解决这些问题,通常会采用正则化最小二乘估计(Regularized Least Squares, RLS)。正则化方法通过添加一个惩罚项到目标函数中,以限制解的空间并防止过拟合。常见的正则化形式包括:

  • Tikhonov 正则化(也称为岭回归):
    min ⁡ f ^ ∥ g − H f ^ ∥ 2 2 + λ ∥ f ^ ∥ 2 2 \min_{\hat{\bm{f}}} \|\bm{g} - \bm{H}\hat{\bm{f}}\|_2^2 + \lambda \|\hat{\bm{f}}\|_2^2 f^mingHf^22+λf^22
    其中 λ \lambda λ是正则化参数,控制了对噪声和解的平滑度之间的权衡。

  • 总变差正则化(Total Variation, TV):
    min ⁡ f ^ ∥ g − H f ^ ∥ 2 2 + λ ∥ ∇ f ^ ∥ 1 \min_{\hat{\bm{f}}} \|\bm{g} - \bm{H}\hat{\bm{f}}\|_2^2 + \lambda \|\nabla\hat{\bm{f}}\|_1 f^mingHf^22+λ∥∇f^1
    这种方法有助于保持图像边缘的清晰度,因为它惩罚的是图像梯度的绝对值之和,而不是像素值本身。

迭代算法

对于大型图像,直接求解上述优化问题可能是计算上不可行的,因此常常使用迭代算法,如共轭梯度法(Conjugate Gradient)、交替方向乘子法(ADMM)或基于梯度的方法(如梯度下降),这些方法可以在每一步迭代中逐步逼近最优解,同时保持计算效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2279453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hadoop面试题2025】

文章目录 简单题故障及相应的处理方法中等难度高难度小文件小文件的产生小文件问题的影响小文件治理方案推荐方案 冷文件冷文件的产生冷文件问题的影响冷文件治理方案推荐方案 简单题 一、基础概念类 什么是Hadoop? 答案:Hadoop是一个开源的分布式计算框…

低代码运维与管理服务

文章目录 前言一、服务内容二、服务范围三、服务流程四、服务交付件五、责任矩阵六、验收标准 前言 随着云计算技术的发展,数字化转型是企业的必然选择,企业需要实现广泛的连接并走向开放,传统集成工具无法满足当前企业面临的数字化转型诉求…

RV1126+FFMPEG推流项目(9)AI和AENC模块绑定,并且开启线程采集

前面两篇已经交代AI和AENC模块的配置,这篇就让这两个模块绑定起来,绑定的原因是,Aenc从Ai模块拿到采集的原始数据进行编码。 使用 RK_MPI_SYS_Bind 把 AI 节点和 AENC 进行绑定,其中 enModId 是模块 ID 号选择的是 RK_ID_AI、s32C…

基于Qt开发的截屏软件已发布

目前还只是预览版,截屏的基础功能都已完成,后续将继续完善。 CSDN下载地址:https://download.csdn.net/download/LeoLei8060/90288234 github代码(也可以下载发布程序):https://github.com/LeoLei8060/QS…

Spring Web MVC综合案例

承接上篇文章——Spring Web MVC探秘,在了解Spring Web MVC背后的工作机制之后,我们接下来通过三个实战项目,来进一步巩固一下前面的知识。 一、计算器 效果展示:访问路径:http://127.0.0.1:8080/calc.html 前端代码&a…

数据结构与算法面试专题——引入及归并排序

数据结构与算法引入 我们都知道数据结构与算法很重要,甚至会将其称为程序员的“内功”,但是我们花了很多时间学的算法和数据结构,好像就只是为了应对算法面试,对日常的开发工作没有什么帮助。 这点对于我们数据工程师来说&#…

OpenHarmony 4.1 SDK11 北向应用开发笔记

目录 声明 1、开启其他应用 2、延时切换页面 3、设置页面切换效果 4、设置背景图片和背景铺满屏幕 5、设置隐藏状态和导航条 6、设置组件大小和对齐方式 7、设置按钮类型改变按钮边框圆角半径 8、常用布局方式 9、布局技巧 声明 本笔记基于OpenHarmony 4.1 SDK11&am…

【Linux】进程的程序替换

前言: 在未进行进程的程序替换时,父子进程的数据是独立的通过页表进行映射进行实现进程数据的独立性,但是父子进程的代码还是共享的,我父进程将子进程进行创建出来不仅仅只会有父子进程只进行执行共享代码的需求,有的…

Java测试开发平台搭建(九)前端

1. 搭建前端vue环境 Vue3 安装 | 菜鸟教程 2. 创建项目 1.进入ui vue ui 2. create项目 3. 成功之后添加插件: cli-plugin-router vue-cli-plugin-vuetify 4. 添加依赖 axios 5. 点击任务开始运行 如果报错: 修改vue.config.jsconst { defineConfig }…

Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

什么是 Ocelot ? Ocelot是一个开源的ASP.NET Core微服务网关,它提供了API网关所需的所有功能,如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关,它可以与现有的服务集成,并帮助您保护、监控和扩展您的…

【机器学习实战入门】使用Pandas和OpenCV进行颜色检测

Python 颜色检测项目 今天的项目将非常有趣和令人兴奋。我们将与颜色打交道,并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的,它也被用作各种图像编辑和绘图应用的工具。 什么是颜色检测? 颜色检测是检测任何颜色名称的过程…

如何实现文本相关的显示功能

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了页面之间传递数据相关的内容,本章回中将介绍如何使用Text Widget。闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里说的Text Widget就是显示文字内容的组件,其实我们一直在…

精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】

Focaler-IoU: 更聚焦的交并比损失 Focaler-IoU: More Focused Intersection over Union Loss Focaler-IoU: 更聚焦的交并比损失I. 引言II. 相关工作III. 方法IV. 实验V. 结论 原文地址:官方论文地址 代码地址:官方代码地址 摘要——边界框回归在目标检…

计算机组成原理--笔记二

目录 一.计算机系统的工作原理 二.计算机的性能指标 1.存储器的性能指标 2.CPU的性能指标 3.系统整体的性能指标&#xff08;静态&#xff09; 4.系统整体的性能指标&#xff08;动态&#xff09; 三.进制计算 1.任意进制 > 十进制 2.二进制 <> 八、十六进制…

BERT与CNN结合实现糖尿病相关医学问题多分类模型

完整源码项目包获取→点击文章末尾名片&#xff01; 使用HuggingFace开发的Transformers库&#xff0c;使用BERT模型实现中文文本分类&#xff08;二分类或多分类&#xff09; 首先直接利用transformer.models.bert.BertForSequenceClassification()实现文本分类 然后手动实现B…

MySQL - 主从同步

​​​​​​1.主从同步原理&#xff1a; MySQL 主从同步是一种数据库复制技术&#xff0c;它通过将主服务器上的数据更改复制到一个或多个从服务器&#xff0c;实现数据的自动同步。 主从同步的核心原理是将主服务器上的二进制日志复制到从服务器&#xff0c;并在从服务器上执…

[Python学习日记-78] 基于 TCP 的 socket 开发项目 —— 模拟 SSH 远程执行命令

[Python学习日记-78] 基于 TCP 的 socket 开发项目 —— 模拟 SSH 远程执行命令 简介 项目分析 如何执行系统命令并拿到结果 代码实现 简介 在Python学习日记-77中我们介绍了 socket 基于 TCP 和基于 UDP 的套接字&#xff0c;还实现了服务器端和客户端的通信&#xff0c;本…

STM32Cubemx配置RS485通信

文章目录 一、RS485协议概念讲解RS485 协议概念1. **差分信号传输**2. **半双工通信**3. **多点通信**4. **最大通信距离和速度**5. **终端电阻与偏置电阻**6. **RS485 接口的工作模式**7. **RS485 协议的数据帧结构**8. **RS485 的优点与应用** 总结 二、TTL电平和RS485的关系…

STM32使用DSP库 Keil方式添加

文章目录 前言一、添加DSP库二、使能FPU及配置1. 使能FPU2. 增加编译的宏3.增加头文件的检索路径三. 验证1. 源码中添加2.代码测试前言 添加DSP有两种方案,本文采用的是是Keil 中添加。 一、添加DSP库 在创建好的工程中添加DSP库:步骤如下: 步骤1:选择运行环境管理; 步…

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中&#xff0c;仿射变换&#xff08;Affine Transformation&#xff09;和透视变换&#xff08;Perspective Transformation&#xff09;是两种常用的图像几何变换方法。 变换方…