图像修复文章汇总

article/2025/10/15 15:11:53

图像修复技术的研究是计算机视觉以及计算机图形学的一个具有重大意义的研究课题。对于带有损失区域的图像,由于我们并不知道原本图像的具体形式,我们只能类似于“凭空捏造”一些像素去填补这种缺失。正因如此,图像修复实际是根据人类自己的视觉规则对图像进行分析,然后去修补。简言之,修复技术的改进主要依赖于对图像模型的研究和人类视觉认知规则。
传统的图像修复技术通常划分为两大类:一类是基于变分PDF模型的图像修复技术,主要是通过求解偏微分方程来进行修复;另一类则是基于纹理的图像修补技术,通过图像的纹理结构特征匹配进行修复。
2000年,Bertalmio等的首先提出一种基于偏微分方程的图像修复方法,即 BSCB算法,主要思想是将待修补区域周围的信息沿着等照度线方向迭代传输到破损的待修复区域内,然后再进行若干次各向异性扩散多次从而得到修复后的图像。本质上它是一种基于偏微分方程(PDE)的修复方法。此类方法利用了物理学中热扩散方程。
在这里插入图片描述
2001年,Chan等在Rudin等提出的总变分(TV)去噪模型的启发下,提出了一种用于图像修复的TV修复模型,这种方法搜先要确定图像的能量函数,通过对能量函数的最小化使得图像达到平滑状态。它最早就是用来对受到噪声污染的图像进行降噪。其优点是边去噪边修复,同时可以锐化图像的边缘。修复过的图像视觉连通性差,并且需要大量的迭代次数,修复时间较长。
在这里插入图片描述
2002年,Chan等在 TV 模型的基础上提出了基于曲率驱动扩散(CDD)模型,通过梯度和曲率信息共同调节扩散的速度,优点是视觉连通性较好,缺点是引入了曲率信息,导致计算量和计算时间增加,并且修复后的图像边界比较模糊。
在这里插入图片描述
2003年,Criminisi等人提出了一种基于样本块的修补算法,Criminisi算法通过在待修复区域边缘上选取优先权最高的像素点p,以p为中心构造一个n×n大小的像素块,然后在完好区域寻找与该模板块最相似的样本块,用找到的样本块更新模板块中的待修复信息,最后更新已修复块中像素点的置信度,并开始下一次迭代修复,直至修复完成。Criminisi算法采用纹理合成的方法去除图像中的大物体,得到了很好的效果。该算法中,待修复区域的标记,优先权计算,最佳匹配模块的搜索及填充,置信度项的更新是影响该算法效果的几个主要因素。
在这里插入图片描述
2005年,Guleryuz提出了一个基于分析字典(小波基、DCT 基、复数小波 基、小波包基)的迭代修复算法,该算法仅利用了局部光滑性(Local Smoothness) 稀疏先验,所以,修复纹理和边缘的修复能力较弱。这种基于稀疏表示的修复,其主要是通过图像信号的稀疏性对图像进行表示,然后通过信号重构对图像进行恢复。通常将其分为两个步骤:第一步是进行稀疏编码,主要提高编码速率;第二部是构建完备字典。经过上述两步,可以保证稀疏表示系数尽可能的非负,进而提高图像修复的效果。目前字典学习算法主要包括MOD、K-SVD、Online等。
在这里插入图片描述
2009年《A Randomized Correspondence Algorithm for Structural Image Editing》一文提出了PatchMatch 算法。其核心思想是利用图像的连续性(consistence),一个图像patch块A附近的patch块的最近邻最有可能出现在A的最近邻附近,利用这种图像的连续性大量减少搜索范围,通过迭代的方式保证大多数点能尽快收敛。之后,《基于空间相关性的图像补全》一文,王向阳等人利用这种空间相关性与经典的Criminisi算法结合, 将原来寻找最佳匹配块的全局搜索改为局域搜索,减少了搜索时间。其基本原理是图像的空间分布不是毫无关系的,而是呈现局域相关的特点,即具有相同性质(亮度、颜色等)的像素相邻分布,就图像修补来说,根据这一特性,将经典的Criminisi算法中寻找最佳匹配块的全局搜索改为局域搜索,便能减少搜索时间。
在这里插入图片描述
2012年的《基于样本和线性结构信息的大范围图像修复算法》,吴晓军等人提出平均值补偿办法减少匹配误差,通过增加惩罚项来避免一个像素块在图像修复过程中多 次被使用。
2013年,郭勇等人将块匹配法与边缘驱动填充顺序、全局搜索与局部搜索相结合,充分发挥修补过程中填充优先权的作用,有效地修补了图像受损区域的纹理和结构信息。

2018年的《Highly corrupted image inpainting through hypoelliptic diffusion》一文显示了对于大面积破损图像修复的良好效果。该文提出了一个新的仿生图像修复算法,平均和次椭圆化(AHE)算法,它基于次黎曼次椭圆扩散算法和特殊局部平均技术的适当组合。算法分为四个步骤,分为以下4个步骤:预处理阶段(简单平均),主扩散(强平滑);高级平均值;弱平滑。该算法对高度损坏的图像(即超过80%的图像丢失)获得了高质量的修复效果。但破损图像的破损点被要求分布良好,因此该算法实际应用比较有限制。
以上这些都是之前的一些经典的使用传统数学和物理方法进行修复的例子。当下深度学习的方法越来越受到学者专家的推崇,深度学习是机器学习的一个分支,而在很多情况下,机器学习几乎成了人工智能的替代概念。简单地说,就是通过机器学习算法,使计算机有能力从大量已有数据中学习出潜在的规律和特征,以用来对新的样本进行智能识别或者预期未来某件事物的可能性。
近年来,深度学习的方法越来越多的应用在计算机视觉领域,其效果也远超传统的基于数学和物理的方法。在这样的形势之下,越来越多的图形学研究者也开始将目光投向深度学习。在图形学和视觉交叉的领域,一系列问题的研究正在围绕深度学习火热展开,特别是在图像生成(image generation),图像补全(image inpainting)等方面,已经颇有成效。
2016年,Pathak等人的Context-Encoders可以说是鼻祖级别的神经网络修复方法,它构建出一种图像修复的深层生成网络模型。CE的主要思路是结合Encoder-Decoder 网络结构和GAN(Generative Adversarial Networks),Encoder-Decoder 阶段用于学习图像特征和生成图像待修补区域对应的预测图,GAN部分用于判断预测图来自训练集和预测集的可能性,当生成的预测图与Ground Truth在图像内容上达到一致,并且GAN的判别器无法判断预测图是否来自训练集或预测集时,就认为网络模型参数达到了最优状态。网络训练的过程中损失函数都由两部分组成:Encoder-decoder 部分的图像内容约束(Reconstruction Loss)GAN部分的对抗损失(Adversarial Loss)。Context Encoders 采用的是最简单的整体内容约束,也就是预测图与原图的l2 距离。
在这里插入图片描述
在CE问世之后,出现了许多在以其为基础而衍生出的改进版CE,图像修复的效果也越来越好。如,2017年的High Resolution Inpainting将生成网络划分为内容生成网络和纹理生成网络两部分,使用上下文编码器的输出初始化孔,然后使用样式传递技术改进纹理,将高频纹理从边界传播到孔洞。内容生成网络直接用于生成图像,推断缺失部分可能的内容。纹理生成网络用于增强内容网络的产出的纹理,具体则为将生成的补全图像和原始无缺失图像输入进纹理生成网络,在某一层feature_map上计算损失,记为Loss NN。内容生成网络需要使用自己的数据进行训练,而纹理生成网络则使用已经训练好的VGG Net。此算法最主要的技术是结合了Context-Encoders和CNNMRF。Perceptual Loss的计算比较复杂,这里利用了PatchMatch的信息,即为缺失部分找到最近似的Patch,为了达到这一点,将缺失部分分为很多个固定大小的patch作为query,也将已有的部分分为同样固定大小的patch,生成dataset PATCHES,在匹配query和PATCHES中最近patch的时候,需要在纹理生成网络中的某个layer的激活值上计算距离而不是计算像素距离。
在这里插入图片描述
另外还有SIGGRAPH 2017 年的一篇文章Globally and Locally Consistent Image Completion 是在CE中加入Global+Local两个判别器的改进。GL这篇文章完全以卷积网络作为基础,遵循GAN的思路,设计两部分网络,一部分用于生成图像,一部分用于鉴别生成图像是否与原图片一致。生成图片部分,GL采用12层卷积网络对原始图片(去除需要进行填充的部分)进行encoding,得到一张原图16分之一大小的网格。然后再对该网格采用4层卷积网络进行decoding,从而得到复原图像。鉴别器也被分为两个部分,一个全局鉴别器(Global Discriminator)以及一个局部鉴别器(Local Discriminator)。全局鉴别器将完整图像作为输入,识别场景的全局一致性,而局部鉴别器仅在以填充区域为中心的原图像4分之一大小区域上观测,识别局部一致性。通过采用两个不同的鉴别器,使得最终网络不但可以使全局观测一致,并且能够优化其细节,最终产生更好的图片填充效果。
在这里插入图片描述

在这里插入图片描述ICLR 2018的《Image Inpainting for Irregular Holes UsingPartial Convolutions》号称秒杀PS的AI图像修复神器,来自于Nvidia 研究团队,它引入了局部卷积,能够修复任意非中心、不规则区域。该模型使用堆叠的部分卷积运算和掩膜更新步骤来执行图像修复,网络设计类似于UNet架构,用部分卷积层替换所有卷积层,并在解码阶段使用最近邻居上采样。当在图像边界附近时,不使用任何现有的填充方案来卷积。相反,部分卷积层直接通过适当的掩膜处理。这将进一步确保图像边界上的修复内容不会受到图像外部无效值的影响。
在这里插入图片描述
ECCV 2018年的Yu hang Song等人的一篇《Contextual-based Image Inpainting: Infer,Match, and Translate》将修复过程分解为两个阶段:推理和翻译。在推理阶段,我们训练了一个 Image2Feature 网络,该网络用粗预测初始化孔并提取孔的特征。预测是模糊的但包含着孔洞中的高层次结构信息。在翻译阶段,我们训练了一个能将特征转换回完整的图像的Feature2Image网络。它细化了孔中的内容,输出了具有清晰逼真纹理的完整图像。为了减轻 Feature2Image 网络训练的困难,我们设计了一个“patch-swap”层,将高频纹理细节从边界传播到孔。patch-swap层以feature map作为输入,用边界上最相似的块替换洞里的每个神经贴片。然后,我们使用新的feature map作为 Feature2Image 网络的输入。通过重新利用边界上的神经斑块,feature map包含了足够的细节,使得高分辨率的图像重建成为可能。
在这里插入图片描述
CVPR 2018的《Generative Image Inpainting with Contextual Attention》同样采用了高阶语义识别与低阶像素识别结合的卷积编码器-译码器结构,与对抗网络结合训练,以保证生成像素与已有像素间的一致性。这篇文章提出了一个统一的前馈生成网络和一个新的上下文注意层的图像inpaint。该网络包括两个阶段:第一阶段是对简单的扩张型卷积网络进行重构损失训练,提取缺失内容。第二阶段整合语境注意。上下文关注的核心思想是使用已知的卷积滤波器的特性来处理生成的补丁,它还具有空间传播层,以促进注意的空间一致性。在语境注意通路的同时,还有另一条卷积通路。将这两条通路聚合起来,送入一个译码器以获得最终的输出。整个网络被训练得从头到尾都是重建损失和两个Wasserstein GAN losses,一个critic关注总体图像,另一个关注局部缺失区域。
从这些典型的作品来看,基于深度学习的图像修复算法最基础的模型就是CE深层生成模型,之后的各种层出不穷的“改进”,都是在深层生成网络模型上加入各种优化,如生成对抗网络,感知损失,全局和局部注意力机制,或是改进网络结构等等,根本目的都是想加快训练速度,优化训练效果。深度学习的方法相比传统基于数学和物理的方法,效果有了很大改善。研究学者们渐渐发现,当传统的基于物理的模型发展遇到瓶颈的时候,机器学习的方法也许能够帮助我们解释这些复杂的数理模型。
但深度学习的方法也有很多缺点,训练一个模型往往需要大量的采集数据,各种输入输出数据有时并不能满足网络所需要的条件,因此,数据集的预处理或后处理代价就十分巨大。同时,训练过程也是一个较长时间的过程。传统的数理模型有些情况下就相比来说过程就不如深度学习那样繁琐。
总的来说,各种方法都有其利弊,都各有优势。实际处理问题时,我们应该视情况来决定用哪些方法来进行修复工作。
参考:
https://blog.csdn.net/yujiang5/article/details/46765691?utm_source=blogxgwz4
https://blog.csdn.net/hujingshuang/article/details/44257179
http://www.doc88.com/p-8466339157286.html
https://blog.csdn.net/weixin_42386880/article/details/85177388
https://www.jianshu.com/p/e1b9619be6e9
https://blog.csdn.net/stdcoutzyx/article/details/63686825https://www.sohu.com/a/163252003_775742
https://blog.csdn.net/Gavinmiaoc/article/details/80801587
在这里插入图片描述参考文献列表


http://chatgpt.dhexx.cn/article/BL8l4EtM.shtml

相关文章

图像算法原理与实践——图像修复之 全变分模型

在图像算法的高层次处理中,有一类很典型的应用,就是图像修复算法。图像在采集、传输、预处理过程中,都可能会发生图像数据被修改、损失和缺失等问题(例如:部分图像内容被污染、雾霾等),另外&…

图像修复序列——BSCB模型

1. 参考文献 2. BSCB模型代码 2.1 BSCB模型demo % demo_BSCB.m % Author: HSW % Date: 2015/3/25 % HARBIN INSTITUTE OF TECHNOLOGY % % set matlab close all; clear all; clc;options.null 0; % read image Img imread(Image\butterfly.bmp); Img imread(Image\peppers…

day29:图像修复

在实际应用 中, 图像常常会受到噪声的干扰,例如拍照时镜头上存在灰尘或者飞行的小动物。这些 干 扰会导 拍摄到的图像出现部分内容被遮挡 的情况.对于较为久远的图像,可能只有实体图像而没有数字存储形式的底板, 因此相片在保存和…

【图像修复】基于深度学习的图像修复算法的MATLAB仿真

1.软件版本 matlab2021a 2.本算法理论知识 在许多领域,人们对图像质量的要求都很高,如医学图像领域、卫星遥感领域等。随着信息时代的快速发展,低分辨率图像已经难以满足特定场景的需要。因此,低分辨率图像恢复与重建的研究逐渐…

【毕业设计】深度学习图像修复算法研究与实现 - python

文章目录 1 前言2 什么是图像内容填充修复3 原理分析3.1 第一步:将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs5 最后 1 前言 &…

图像修复 图像补全_图像修复简介

图像修复 图像补全 In practical applications, images are often corroded by noise. These noises are dust or water droplets on the lens, or scratches from old photos, or the image is artificially painted or part of the image Itself has been damaged. 在实际应用…

Opencv--图像修复

Opencv–图像修复 前言 在实际应用中,我们的图像常常会被噪声腐蚀,这些噪声或是镜头上的灰尘或水滴,或是旧照片的划痕,或者是图像遭到人为的涂画(比如马赛克)或者图像的部分本身已经损坏。如果我们想让这…

数字图像处理之图像修复

目录 目标 实验 主函数:加噪声,扭曲原始图片,使用滤波器修复图片 子函数1:中心化图片 子函数2:加高斯噪声 子函数3:维纳反卷积滤波器 子函数4:逆滤波器 实验结果 原始图片,退化…

图像修复模型——TV模型

1. 参考文献 2. TV图像修复模型 2.1 TV模型 % demo_TV.m % Author: HSW % Date: 2015/3/25 % HARBIN INSTITUTE OF TECHNOLOGY % % set matlab close all; clear all; clc;options.null 0; % read image Img imread(Image\butterfly.bmp); % Img imread(Image\peppers.bmp…

图像修复 学习笔记

目录 局部卷积(PConv)图像修复 Pconv torch 实现: 局部卷积(PConv)图像修复 本文提出了局部卷积(PConv)层来处理不规则孔。图1显示了使用建议的PConv的一些修复结果。看样子还不错&#xff0…

基于改进Criminisi算法的图像修复

1、内容简介 略 516-可以交流、咨询、答疑 2、内容说明 摘 要:针对 Criminisi算法难以获得理想的修复效果,且存在修复时间过长等缺陷,提出一种改进 Criminisi算法的 图像修复算法。改进优先权计算方式找到最优待修复块,完善最优…

图像修复简介

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google C项目编程风格指南 (中文版) 分享在实际应用中,图像经常被噪声腐蚀。这些噪音是镜头上的灰…

Halcon图像修复

1.之前研究OpenCV的图像修复时,知道Opencv提供的inpaint API能够实现这个效果。 void inpaint( InputArray src, 原图 InputArray inpaintMask, 二进制掩模,指示要修复的像素 OutputArray dst, 目标图像 double inpaintRadius, 像素周围的邻域补绘。…

图像修复

转自:https://blog.csdn.net/moxibingdao/article/details/107075598 本文继 去雨去雾去模糊篇 和 图像增强与图像恢复篇 之后,继续盘点CVPR 2020 中低层图像处理技术,本篇聚焦于图像修复(Image Inpainting)。 示例如…

CVPR 2020 论文大盘点-图像修复Inpainting篇

转自:https://mp.weixin.qq.com/s?__bizMzIwMTE1NjQxMQ&mid2247519592&idx2&sn3a0598c9f52e47929678a572ea451d98&chksm96f0ff3ca187762a107b4b9194e862b757d3d943ec399b35cbb7576cd92ee55cc648d7121ac3&scene21#wechat_redirect 本文继 去雨…

图像修复介绍

图像修复是一种利用缺损图像中已知部分的信息预测缺损区域的内容,允许使用替代内容取填充目标区域的技术。其最终目的是保证修复后的图像整体结构连贯统一,修复区域边缘处过渡自然,修复内容细节丰富合理,最好能够使观察者无法分辨…

【OpenCV】- 图像修复

说明:图像修复可以解决类似噪声或者是镜头上的灰尘或水滴或者旧照片上面的划痕等。 文章目录 1、实现图像修补:inpaint()函数2、opencv之鼠标响应函数3、示例程序 1、实现图像修补:inpaint()函数 说明:图像修补技术由inpaint()函数…

图像修复(Image Restoration)算法数据集详细介绍

目录 人脸数据集 1.Helen Face 2.CelebA (Celebrity Attribute) 3.CelebA-HQ 4.FFHQ(Flickr-Faces-HQ) 场景数据集 1.MS COCO (Common Objects in Context) 2.ImageNet 3.Places2 街景数据集 1.Paris StreetView 2.Cityscapes 纹理数据集 …

图像修复 : ICCV 2021 基于条件纹理和结构并行生成的图像修复【翻译】

声明:精简翻译,未完全校对 积压的存稿、好久没更文了、先发一篇这个代码很不错、推荐有兴趣的同学学习博主也写了对应的测评文章待发、点赞越多、发的越快如有同学,学有余力、可以转载这个文章( 附原文地址即可 )、校对…

Linux udhcpc/udhcpd 移植

参考文档: http://blog.chinaunix.net/uid-14704264-id-4272838.html https://www.cnblogs.com/chenfulin5/p/9481249.html 若系统busybox 自带了 udhcpc 和 udhcpd 工具 udhcpc 作为客户端工具,用于动态获取IP; udhcpd 作为服务器工具&…