Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Image Inpainting

图像修复会使用传统方法、基于图块的方法、GAN 或扩散方法,为图像中被遮罩、损坏或移除的区域填充合理内容。

图像修复是指填补图像中的遮罩区域,例如划痕、移除的物体或缺失的图像块,并使填补内容与周围区域自然融合。每种方法都需要两个输入:图像和一张标记要替换像素的二值遮罩;遮罩外的所有内容都会保持不变。这个术语源自艺术品保护领域,修复师会对受损画作进行修补。Marcelo Bertalmío、Guillermo Sapiro、Vicent Caselles 和 Coloma Ballester 于 2000 年在 SIGGRAPH 上将这一概念引入数字计算机视觉,提出一种从缺失区域边界向内部延伸等亮度线的方法。遮罩下的像素是未知的,因此修复区域始终只是合理的生成内容,而不是对原始内容的还原。

经典方法、基于图块的方法与学习式方法#

传统方法会从掩码边界向内传播颜色和边缘。OpenCV 在其修复模块中提供了两种方法:Alexandru Telea 于 2004 年提出的快速行进法(cv2.INPAINT_TELEA),以及 Bertalmío、Andrea Bertozzi 和 Sapiro 于 2001 年提出的 Navier-Stokes 方法(cv2.INPAINT_NS)。它们很适合处理灰尘、划痕和细小的文字叠加层,但遇到大面积孔洞时会模糊成一片。下面的代码片段让 Telea 方法处理两次相同数量的缺失像素:一次是细小划痕,一次是单个方块:

import cv2
import numpy as np
from skimage import data

image = cv2.cvtColor(data.astronaut(), cv2.COLOR_RGB2BGR)  # 512x512 sample photo

# Two masks with about the same pixel count: thin scratches and one solid block
scratches = np.zeros(image.shape[:2], np.uint8)
for y in range(40, 512, 40):
    cv2.line(scratches, (0, y), (511, y + 30), 255, thickness=2)
block = np.zeros_like(scratches)
side = int(np.sqrt(np.count_nonzero(scratches)))
block[200 : 200 + side, 200 : 200 + side] = 255

for name, mask in [("scratches", scratches), ("block", block)]:
    restored = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA)
    # Mean error inside the mask, where every pixel was reconstructed
    error = np.abs(restored.astype(int) - image.astype(int))[mask > 0].mean()
    print(f"{name}: {np.count_nonzero(mask)} masked pixels, mean error {error:.1f} gray levels")

输出结果显示,对于 18,432 个划痕像素,平均误差为 9.1 个灰度级;对于 18,225 个像素的色块,平均误差为 36.5。每个划痕像素周围一两个像素内都有已知邻居,而色块中心距离最近的真实像素有 67 个像素,因此相同的缺失面积会带来四倍的误差。

基于图块的方法会从图像其他位置复制纹理,而不是通过平滑来填补。Antonio Criminisi、Patrick Pérez 和 Kentaro Toyama 于 2004 年提出的基于样例算法会逐块填补孔洞,从强边缘进入孔洞的位置开始;Connelly Barnes 等人于 2009 年提出的 PatchMatch 最近图块搜索让这种方法快到足以交互使用。它也是 Photoshop“内容识别填充”的基础。图块方法特别适合草地、砖墙和天空;如果缺失内容在图像其他位置都不存在,这种方法就会失效。

学习模型会根据训练时见过的内容推断缺失区域。Deepak Pathak 等人在 Context Encoders(CVPR 2016)中使用对抗损失训练卷积神经网络,这种损失借鉴自生成对抗网络,用于补全被掩码遮住的中心区域。Samsung AI 的 LaMa(WACV 2022)使用快速傅里叶卷积,其感受野从第一层起就覆盖整张图像,并使用大型随机掩码进行训练,因此能够补全大孔洞以及栅栏、窗户等重复结构。扩散模型通过对孔洞去噪来填补内容,去噪过程以可见像素为条件,也可以选择以提示词为条件:Stable Diffusion修复检查点为 U-Net 增加了五个输入通道,用于输入掩码和被掩码图像的潜变量;Andreas Lugmayr 等人在 RePaint(CVPR 2022)中使用未经修改的扩散模型,并在每一步都用原图已知区域的加噪副本替换已知区域。Adobe 于 2023 年将提示词驱动的文本到图像修复功能 Generative Fill 引入 Photoshop。

掩码与对象移除#

对象移除就是先进行图像分割,再进行修复:掩码选中对象,修复则填补对象留下的孔洞。紧贴对象边缘绘制的掩码会留下边缘像素、阴影和反射,形成残影,因此编辑器会将掩码向外膨胀几个像素,并将掩码延伸到阴影上。实例分割会为每个对象生成一个掩码,因此通常用来生成移除掩码;Meta 的 SAM 2 等可提示模型则能通过一次点击,为类别列表之外的对象生成掩码。YOLO26分割模型会将每个对象的轮廓作为多边形返回到 result.masks.xy 中,cv2.drawContours 使用 cv2.FILLED 将其栅格化为修复掩码;隔离分割对象指南也采用了这一步骤来抠出对象。

视频修复还要考虑时间维度:填补内容必须在各帧之间保持一致,否则画面就会闪烁,因此AI 视频编辑工具会通过跟踪来传播掩码,并在摄像机移动时借用相邻帧中显露出来的背景像素。

  • 扩图:使用相同的模型将图像扩展到原始边界之外,并将新增画布区域作为掩码。
  • 超分辨率:以更高分辨率为整张图像补充细节,不需要掩码。
  • 去噪:去除分布在每个像素上的噪声,同时保留场景,同样不需要掩码。
  • 帧插值:根据视频中间隔帧前后的帧,合成完整的中间帧。

应用与来源#

照片修复会为扫描照片中的裂纹、灰尘和撕裂处创建掩码;胶片修复则会逐帧处理档案影像中的划痕。在修图和产品摄影中,修复可用于移除杂物、电线和瑕疵。在卫星图像分析中,填补缺口是一个经典的修复问题:Landsat 7 的扫描线校正器于 2003 年 5 月 31 日发生故障,导致此后每幅影像都出现楔形条带,覆盖约 22% 的画面。

学习式修复会使用合成掩码在留出图像上进行评估,并通过弗雷歇 Inception 距离(FID)衡量真实感,因为良好的填补结果可能与原始像素不同,但仍然正确。同样的真实感也使修复成为制作深度伪造和移除水印的工具;而在医学、科学或法证图像中,凭空生成的结构可能改变诊断或判决。内容凭证会在签名元数据中记录此类编辑,Adobe 也会为使用 Generative Fill 编辑的图像附加内容凭证。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉
体育领域的计算机视觉
了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉
航空影像计算机视觉
借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉
航空航天中的计算机视觉
使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉
安防领域的计算机视觉
使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉
机器人领域的计算机视觉
使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉
物流中的计算机视觉
借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉
零售中的计算机视觉
借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉
医疗领域的计算机视觉
借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉
制造业中的计算机视觉
利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉
汽车领域的计算机视觉
利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉
农业中的计算机视觉
借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉
体育领域的计算机视觉
了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉
航空影像计算机视觉
借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉
航空航天中的计算机视觉
使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉
安防领域的计算机视觉
使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉
机器人领域的计算机视觉
使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉
物流中的计算机视觉
借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉
零售中的计算机视觉
借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉
医疗领域的计算机视觉
借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉
制造业中的计算机视觉
利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉
汽车领域的计算机视觉
利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉
农业中的计算机视觉
借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来