具有外内学习和单色瓶颈的图像修复——两阶段渐进式图像修复示例【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

相关文章

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模