电脑照片怎么去除马赛克看原图(去除图片遮挡的方法及工具)
今天跟大家聊聊 MAE,何恺明大神的新作。
我们先说下 MAE 的任务:
简单讲:将图片随机遮挡,然后复原。
并且遮挡的比例,非常大!超过整张图的 80%,我们直接看效果:
第一列是遮挡图,第二列是修复结果,第三列是原图。
图片太多,可能看不清,我们单看一个:
看这个遮挡的程度,表针、表盘几乎都看不见了。但是 MAE 依然能够修复出来:
这个效果真的很惊艳!
甚至对于遮挡 95%面积的图片依然 work。
看左图,你能看出来被遮挡的是蘑菇吗??
MAE 却能轻松修复出来。
MAE 的意义不仅在这个修复遮挡,去掉 mask 本身。更在于为 CV 领域大一统的预训练模型提供了无限的想象。
做过 NLP 的小伙伴应该知道,在 NLP 任务中,Bert 已经一统江湖。各子任务(如翻译、生成、文本理解等)均可使用相同的无监督预训练模型。这保证了每个任务都能有非常不错的效果。
但在 CV 任务中,却各玩各的,分类任务有自己的无监督学习,检测任务有自己的无监督学习,每个 CV 领域的子任务,都有自己一套无监督学习,一直无法统一。
而 MAE 一出,可以想象大一统的 CV 无监督预训练模型的时代已不远矣。
可能这段话,一些刚入门的小伙伴看不太懂。
没关系,慢慢学。学了 Bert,你就明白这意味着什么了。MAE 就是类似 Bert 存在的东西,可以认为它就是 Bert 的一个 CV 版。
接下来简单讲解下 MAE。
讲解 MAE 之前不得不先说下 Vit。
红遍大江南北的 Vision Transformer,ViT。
领域内的小伙伴,或多或少都应该听说过。
它将 Transformer 应用到了 CV 上面,将整个图分为 16 * 16 的小方块,每个方块做成一个词,然后放进 Transformer 进行训练。
从 ViT 开始,CV 小伙伴们终于可以更优雅地使用 Transformer了。
MAE 结构设计得非常简单:
将一张图随机打 Mask,未 Mask 部分输入给 Encoder 进行编码学习,这个 Encoder 就是 Vit,然后得到每个块的特征。
再将未 Mask 部分以及 Mask 部分全部输入给 Decoder 进行解码学习,最终目标是修复图片。
而 Decoder 就是一个轻量化的 Transformer。它的损失函数就是普通的 MSE。
所以说, MAE 的 Encoder 和 Decoder 结构不同,是非对称式的。Encoder 将输入编码为 latent representation,而 Decoder 将从 latent representation 重建原始信号。
更详细的细节大家可以直接看看论文:
https://arxiv.org/abs/2111.06377
官方刚刚开源6天,就已经获得了1.5k+的 Star,关注度可见一斑。
项目地址:
https://github.com/facebookresearch/mae
项目提供了 Colab,如果你能登录,那么可以直接体验:
https://colab.research.google.com/github/facebookresearch/mae/blob/main/demo/mae_visualize.ipynb
如果不能登录,可以直接本地部署,作者提供了预训练模型。
一起看下我跑的效果:
这个修复效果,你打几分?
MAE 可以用来生成不存在的内容,就像 GAN 一样。
很多小伙伴可能又有了一些“大胆”的想法,不过玩笑归玩笑,自己玩玩就好,大家还是要遵纪守法哦~