具有外内学习和单色瓶颈的图像修复——两阶段渐进式图像修复示例【CVPR 2021】

本文主要是介绍具有外内学习和单色瓶颈的图像修复——两阶段渐进式图像修复示例【CVPR 2021】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 🥇 版权: 本文由【墨理学AI】原创、在CSDN首发、感谢查阅
  • ❤️ 如果文章对你有帮助、欢迎一键三连
  • 🍖 该博文旨在大话图像修复,仅对该论文工作展开简单引入

文章目录

    • 📔 基础信息
    • 📕 环境搭建
    • 📗 源码测试
        • 🟧 第一阶段:Colorization
        • 🟨 第二阶段:Reconstruction
    • 📘 该论文效果图
        • 🔴 目标移除
        • 🔵 不规则 Mask 修复
        • 🟣 用户指导修复
    • 🚀🚀 文末专栏推荐部分 🚀🚀
    • ❤️ 人生苦短, 欢迎和墨理一起学AI 💜


📔 基础信息


  • Image Inpainting with External-internal Learning and Monochromic Bottleneck
  • 具有外内学习和单色瓶颈的图像修复
  • https://github.com/Tengfei-Wang/external-internal-inpainting
  • https://arxiv.org/abs/2104.09068

摘要翻译

尽管最近的修复方法已经证明了深度神经网络的显着改进,但在填充缺失区域时,它们仍然存在诸如钝结构和突然颜色之类的伪影。 为了解决这些问题,我们提出了一种具有单色瓶颈的外部内部修复方案,可帮助图像修复模型消除这些伪影。 在外部学习阶段,我们重建单色空间中缺失的结构和细节以减少学习维度。 在内部学习阶段,我们提出了一种新颖的内部颜色传播方法,采用渐进式学习策略来恢复一致的颜色。 大量实验表明,我们提出的方案有助于图像修复模型产生更多结构保留和视觉上引人注目的结果。

主要贡献可以总结为:

  • 据我们所知,我们是第一个将外部-内部学习方法引入深度图像修复的公司。它通过对大型数据集的训练从外部学习语义知识,同时充分利用单个测试图像的内部统计数据。
  • 我们设计了一个渐进式内部图像着色网络,在我们的案例中实现了出色的着色性能。
  • 我们将我们提出的方法推广到几个深度修复模型,并观察到在多个数据集上的视觉质量和模型泛化能力方面的明显改进。
  1. Conclusion

在本文中,我们提出了一种具有单色瓶颈的通用外部-内部学习修复方案。

它首先利用从大型数据集外部学习的语义知识重建单色,然后从单个测试图像内部恢复颜色。 与以前的方法相比,我们的方法可以产生更连贯的结构和视觉上更协调的颜色。

大量实验表明,我们的方法可以在几个主干模型上定性和定量地稳定改进。 我们方法的主要限制是推理速度。 由于着色需要额外的阶段,因此我们的方法比最先进的方法慢。

未来,我们计划进一步加速着色过程,并将提议的方案扩展到其他低级视觉任务,如超分辨率。


📕 环境搭建


依赖库很简洁

  • Python 3.6
  • Pytorch 1.6
  • Numpy

pytorch 安装 建议参考 – Linux下cuda10.0 安装 Pytorch和Torchvision|简记

conda create -n torch16 python=3.6.6conda activate torch16# CUDA 10.1
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorchpip install pillow==5.2.0pip install opencv-pythonpip install scikit-imagepip install scipypip install thop

📗 源码测试


当前,该代码十分简洁,参照 官方 readMe 直接运行即可

🟧 第一阶段:Colorization
git clone https://github.com/Tengfei-Wang/external-internal-inpainting.gitcd external-internal-inpaintingconda activate torch16

Colorization 【着色方法测试命令】

python main.py  --img_path images/input2.png --gray_path images/gray2.png  --mask_path images/mask2.png  --pyramid_height 3

输出如下

starting colorization. Scale 0
starting colorization. Scale 1
starting colorization. Scale 2

最佳效果如下

1-0

该阶段源码分析如下

1-1

🟨 第二阶段:Reconstruction

盲猜:这里的意思是,着色修复后的图像,替换其它 backbones【修复网络】的输入,能够取得更佳修复效果;官方暂未做进一步衔接说明,这里也就暂不具体展开测试了;


点滴拙见,望大佬指点

2-0


📘 该论文效果图


对图像修复详细分类有兴趣,可简单参考如下博文


Image inpainting based on deep learning - A review【图像修复 2021 最新综述】

🔴 目标移除

3-0

🔵 不规则 Mask 修复

这里莫名,提到了 交叉数据集评估 ???


直接理解:在 Places2 上训练得到的模型,在 DTD 数据集 上测试应用效果

3-4

🟣 用户指导修复

3-5


🚀🚀 文末专栏推荐部分 🚀🚀


  • 🎄如果感觉文章看完了不过瘾,还想更进一步,那么可以来我的其他 专栏 看一下哦~
  • ❤️ 图像风格转换 —— 代码环境搭建 实战教程【关注即可阅】!
  • 💜 图像修复-代码环境搭建-知识总结 实战教程 【据说还行】
  • 💙 超分重建-代码环境搭建-知识总结 解秘如何让白月光更清晰【脱单神器】
  • 💛 YOLO专栏,只有实战,不讲道理 图像分类【建议收藏】!
  • 🎄 个人整理的 Cuda 系列 Linux 安装教程【适合小白进阶】
  • 💜 ubuntu18给当前用户安装cuda11.2 图文教程 | 配置cuDNN8.1 |
  • 💜 Linux服务器下给当前用户安装自己的CUDA10.0
  • 💜 Linux下cuda10.0安装Pytorch和Torchvision——啥版本都能装
  • 💜 Linux 可以安装多个版本的Cuda 吗 | 给我一台新的服务器,我会怎么安排 Cuda
  • 💜 查看CUDA和cuDNN的版本号

❤️ 人生苦短, 欢迎和墨理一起学AI 💜


9-6


这篇关于具有外内学习和单色瓶颈的图像修复——两阶段渐进式图像修复示例【CVPR 2021】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/521713

相关文章

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu