马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

马赛克,小伙伴们的一生之敌,终于可以说再见了!

何恺明大神的新作,Kaiming 讲故事能力和实验能力,一如既往的强!

MAE 的论文,21 年的 11 月份就发出来了。

但是一直没有开源,我也就一直没有写文,最近代码发出来了,可以一睹为快了!

我们先说下 MAE 的任务:

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

简单讲:将图片 随机遮挡 , 然后复原 。

并且遮挡的比例, 非常大 ! 超过整张图的 80% ,我们直接看效果:

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

第一列是遮挡图,第二列是修复结果,第三列是原图。

图片太多,可能看不清,我们单看一个:

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

看这个遮挡的程度,表针、表盘几乎都看不见了。但是 MAE 依然能够修复出来:

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

这个效果真的很惊艳!

甚至对于遮挡 95% 的面积的图片依然 work。

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

看左图,你能看出来被遮挡的是蘑菇吗??

MAE 却能轻松修复出来。接下来,跟大家聊聊 MAE。

MAE

MAE 的意义不仅在这个修复遮挡,去掉 mask 本身。

更在于为 CV 领域提供大一统的预训练模型提供了无限的想像。

做过 NLP 的小伙伴应该知道,在 NLP 任务中,Bert 已经一统江湖。

各子任务(如翻译、生成、文本理解等)均可使用相同的无监督预训练模型。

这保证了每个任务都能有非常不错的效果。

但在 CV 任务中,却各玩各的,分类任务有自己的无监督学习,检测任务有自己的无监督学习,每个 CV 领域的子任务,都有自己一套无监督学习,一直无法统一。

而 MAE 一出,可以想象大一统的 CV 无监督预训练模型的时代已不远矣。

可能这段话,一些刚入门的小伙伴看不太懂。

没关系,慢慢学。学了 Bert,你就明白这意味着什么了。MAE 就是类似 Bert 存在的东西,可以认为它就是 Bert 的一个 CV 版。

好久没有讲解算法原理了,今天简单讲解下 MAE。

Vit

讲解 MAE 之前不得不先说下 Vit。

红遍大江南北的 Vision Transformer,ViT。

领域内的小伙伴,或多或少都应该听说过。

它将 Transformer 应用到了 CV 上面,将整个图分为 16 * 16 的小方块,每个方块做成一个词,然后放进 Transformer 进行训练。

Transformer 的公式推导,原理讲解,我写过一篇文章,忘记的小伙伴可以先回顾下:

保姆级教程:硬核图解Transformer

从 ViT 开始,CV 小伙伴们终于可以更优雅地使用 Transformer了。

MAE

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

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

如果不能登陆,可以直接本地部署,作者提供了预训练模型。

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

如果环境搭建有问题的,可以参考之前我发布的一期视频:

https://www.bilibili.com/video/BV14R4y1g7qs

也可以加群探讨,很多新来的小伙伴在折腾开发环境。公众号后台回复 加群 ,即可找到加群方式。

最后看下,我跑的效果:

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

这个修复效果,你打几分?

最后

MAE 可以用来生成不存在的内容,就像 GAN 一样。

我知道很多小伙伴,又有了一些“大胆”的想法,不过玩笑归玩笑, 自己玩玩就好 ,大家还是要遵纪守法哦~


最后有惊喜(别错过哦)

跻身大厂是每一个程序员的梦想,也希望有机会可以大放异彩,成绩斐然。不过,不积跬步无以至千里,理想和现实的距离是需要努力来不断缩短的。

所以这里我准备了一些礼包,希望能够帮助到各位小伙伴。

★礼包1

如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者评论区留言,我会拉你进学习交流群,我们一起交流学习,报团打卡,群内更有众多福利等你来解锁哟,赶快加入我们吧!

★礼包2

❶Python全套电子书,200本总共6个G电子书资料,囊括Python各大领域。

❷Python练手项目,包括爬虫、数据分析、机器学习、人工智能、小游戏开发。

马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】

 

上一篇:视频模块初步介绍


下一篇:opencv-inRange()二值化函数