来源 | Jack Cui

责编 | 晋兆雨

头图 | CSDN下载自视觉中国

最近又有一个算法火了,不知道你们看到没?直接看效果!

效果这么稳定的人像 Image Matting 算法真的不多,并且还能进行实时处理!

处理视频、图像,不在话下。人在家中坐,录段视频,你就可以把自己放到世界各地的美景中。

这类的抠图 AI 算法,已经出现过不少,但这一款确实让人觉得很惊艳。

打工人的周游世界梦,还能靠 AI 算法实现,泪目!

MODNet

当前对人像 Matting 的研究主要围绕这两点:

  • 不使用 trimap 情况下提高精度

  • 实时与准确性兼顾

MODNet 都做到了,作者充分利用 Ground Truth 的信息,将模型学习分为三个部分:语义估计、细节预测和语义细节融合。

语义估计(Semantic Estimation):采用 MobileNetV2 架构,通过编码器(即 MODNet 的低分辨率分支)来提取高层语义。对 high-level 的特征结果进行监督学习,标签使用的是下采样及高斯模糊后的GT,损失函数用的 L2-Loss。

细节预测(Detail Prediction):结合了输入图像的信息和语义部分的输出特征,通过 encoder-decoder 对人像边缘进行单独地约束学习,用的是交叉熵损失函数。为了减小计算量,encoder-decoder 结构较为 shallow ,同时处理的是原图下采样后的尺度。

语义细节融合(Semantic-Detail Fusion):把语义输出和细节输出结果拼起来后得到最终的 alpha 结果,这部分约束用的是 L1-Loss。

另外,基于以上底层框架,该研究还提出了一种自监督学习方法 SOC(Sub-Objectives Consistency)和帧延迟处理方法 OFD(One-Frame Delay )。

其中,SOC 策略可以保证 MODNet 架构在处理未标注数据时,让输出的子目标之间具有一致性;OFD 方法在执行人像抠像视频任务时,可以在平滑视频序列中预测 alpha 遮罩。

自监督学习以适应现实数据(SOC):

为了让输入图像的 alpha 输出与语义、细节输出相一致,分别用 L2 和 L1 损失进行约束。

其中 Loss 第一项 L2 约束语义部分,第二项 L1 约束边缘细节部分。

另一方面,为了保持原有的细节信息不被丢失,又将自监督的细节输出和原本全监督训练下的细节输出进行 L1 约束。

SOC 这一步不需要标注数据,只是网络模型的自监督学习。

帧延迟处理方法以增强时序稳定性(OFD):

这部分主要解决视频分割结果的闪烁等问题,提高时序稳定性。后处理操作需要满足一定条件:

即连续三帧中,首尾两帧差异小且中间帧与首尾两帧差异大。

如上图所示,只有红框像素满足处理条件。后处理方式也简单,中间帧结果取首尾两帧平均。

对应到整图的处理效果:

研究人员创建了一个摄影人像基准数据集 PPM-100(Photographic Portrait Matting)。

它包含了 100 幅不同背景的已精细注释的肖像图像。

为了保证样本的多样性,PPM-100 还被定义了几个分类规则,来平衡样本类型。

比如是否包括整个人体;图像背景是否模糊;是否持有其他物体。

PPM-100 中的样图具有丰富的背景和人物姿势,可以被看做一个较为全面的基准。

采用 PPM-100 评估集,看下 MODNet 的效果:

MODNet 在 MSE(均方误差)和 MAD(平均值)上都优于其他无 Trimap 的方法。

虽然它的性能不如采用 Trimap 的 DIM ,但如果将 MODNet 修改为基于 Trimap 的方法。

即以 Trimap 作为输入,它的性能会优于基于 Trimap 的 DIM,这也再次表明显示 MODNet 算法的优越性。

此外,研究人员还进一步证明了 MODNet 在模型大小和执行效率方面的优势。

其中,模型大小通过参数总数来衡量,执行效率采用 NVIDIA GTX1080 Ti GPU 测试。

MODNet 的推理时间为 15.8ms(63fps),比 FDMPA(31fps)快两倍。

总之,MODNet 提出了一个简单、快速稳定的实时人像抠图处理算法。

论文地址:

https://arxiv.org/pdf/2011.11961.pdf

代码

我猜,有些读者,早已迫不及待地跳过算法原理说明,直接来找代码了。

遗憾的是,算法还没有开源。

但是项目仓库已经创建了:

https://github.com/ZHKKKe/MODNet

写稿截图的时候,项目只有一个 README,但是 Star 都快 500 了,足以看出人们对算法效果的认可,以及对算法代码实现的关注。

作者在 issues 中提到,两周后放代码和模型!

心急吃不了热豆腐,好饭不怕晚,咱可以等一等!

絮叨

MODNet 没开源,周末没得玩了?

我早已想到,当然不会让你们空手而归!

navigan 也是一个新鲜出炉的算法。能变脸,改变人的鼻子大小、眼睛大小、眼睛朝向、嘴巴的位置、眉毛高低、甚至让人吸血鬼化。

也可以改变汽车轮子的大小,马的胖瘦。一个挺好玩的 GAN,感兴趣可以周末玩一玩。

项目地址:

https://github.com/yandex-research/navigan

官方权重文件放在了 Dropbox ,下载费事,所以我将代码和权重文件打包放到了百度网盘,有的需要自取(提取码:jack ):

https://pan.baidu.com/s/1U2SrSguDaPwncMw0TgPXtA

更多精彩推荐

  • GitHub标星7000+,快速恢复像素化图像,效果惊人

  • 升级版APDrawing,人脸照秒变线条肖像画,细节呈现惊人

  • 中科大“九章”历史性突破,但实现真正的量子霸权还有多远?

  • 区块链赋能物流行业:“圈子文化”下,网络货运的数字化转型之路

  • 一文聊“图”,从图数据库到知识图谱

带你「周游世界」的 MODNet 算法相关推荐

  1. 打工人的「周游世界」,AI算法帮你实现,泪目!

    一.前言 大家好,我是 Jack . 最近又有一个算法火了,不知道你们看到没?直接看效果! 打工人的「周游世界」,AI 算法帮你实现. 效果这么稳定的人像 Image Matting算法真的不多,并且 ...

  2. 谷歌等揭露「AI任务疑难」:存在局限的ImageNet等基准,就像无法代表「整个世界」的博物馆...

    来源:AI科技评论 作者:杏花 编辑:青暮 在日常生活中,我们需要一些「标准」来衡量个人的行为. 而在科研工作中,研究人员也需要一些「基准」来评估模型的性能. 因此,不管是普遍的「标准」还是特定的「基 ...

  3. 深度强化学习+启发人类的决策智能,专访一家有愿景的中国企业「启元世界」...

    雷锋网 AI 科技评论按:上次我们报道了来自中国的决策智能企业「启元世界」,他们凭借自己的核心技术深度强化学习和决策智能平台,在 NeurIPS 2018 多智能体竞赛「炸弹人团队赛」中获得了 Lea ...

  4. 深度强化学习+启发人类的决策智能,专访一家有愿景的中国企业「启元世界」... 1

    雷锋网 AI 科技评论按:上次我们报道了来自中国的决策智能企业「启元世界」,他们凭借自己的核心技术深度强化学习和决策智能平台,在 NeurIPS 2018 多智能体竞赛「炸弹人团队赛」中获得了 Lea ...

  5. 促销海报模板|经典蓝的带着「节日促销」来搞事情了!

    经典蓝(Classic Blue,19-4052)无疑是今年的主角色彩.其实早在 PANTONE 发声之前,蓝色在闻风而动的潮流界里就已经紧锣密鼓地铺排开来! 看看这些经典的蓝色系促销海报是如何设计的 ...

  6. 实现 消息提醒图标_Mac 上自带的「提醒事项」千万别错过

    相信大部分人的手机或电脑上都有一款具有备忘或提醒功能的应用. 不管是在工作.学习还是生活中,借助这些工具能给我们带来很多便利. 比如,本期Mac毒要给大家介绍的就是 Mac 自带的「提醒事项」应用. ...

  7. 如何使用 Mac 上自带的「提醒事项」!

    相信大部分人的手机或电脑上都有一款具有备忘或提醒功能的应用.不管是在工作.学习还是生活中,借助这些工具能给我们带来很多便利.比如,本期小编要给大家介绍的就是 Mac 自带的「提醒事项」应用. ▍应用介 ...

  8. 过程化技术:打造「开放世界」的秘密

    如果你经常接触开放世界游戏,应该不难发现在这些作品中,并不是每个角落都经过了精雕细琢.一张硕大的地图里,往往充斥着诸多相同的物件.地形和建筑.某种程度上,这些都是使用过"过程化技术" ...

  9. 用「我的世界」自动生成「现实世界」:英伟达展示AI脑补新技术

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 Minecraft 里面自建像素风世界不够过瘾?英伟达:那就让 AI ...

最新文章

  1. Kafka 可视化客户端工具(Kafka Tool)的基本使用
  2. 2.Knockout.Js(监控属性Observables)
  3. 所处理的数据在什么地方 有多长 如何定义 如何寻找
  4. linux查看某进程cpu使用情况,linux中如何查看进程对应的cpu使用情况?
  5. Easy-RSA 3快速入门自述文件
  6. Navicat for oracle 提示 cannot load oci dll,193的解决方法
  7. 计算机体系结构现状及发展论文,计算机体系结构的发展及技术问题探讨
  8. 宽字节UTF-8、多字节互转
  9. cp命令显示进度条_教程 | Linux常用命令大全
  10. 《CMOS集成电路后端设计与实战》——第2章 集成电路后端设计方法
  11. 【云和恩墨大讲堂】视频课程震撼来袭-SQL优化精选案例
  12. 格力分红55亿,董明珠能拿多少?
  13. java实现圆环进度条,环形进度条(动态显示运动步数)
  14. ipa 安装包不用市场如果扫码下载安装 免费IOS安装API
  15. UVM—virtual sequencer and virtual sequence详解
  16. CSS3使用一个盒子实现太极图案
  17. Python selenium —— 将你的自动化脚本打包成一个exe
  18. rm -rf命令的作用 以及windows 代替命令
  19. Android插件化换肤
  20. win7桌面显示比例怎么设置【系统天地】

热门文章

  1. L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南05(架构解决方案)
  2. centos查看特定程序占用端口情况
  3. nginx 开发一个简单的 HTTP 模块
  4. 2014-3-6 星期四 [第一天执行分析]
  5. 演示:思科IPS在线模式下Inline Interface Mode的响应行为(区别各个防御行为)
  6. EIGRP OSFP 利用NULL0接口防止路由环路 Loopback Null0接口揭秘
  7. 37、C++ Primer 4th笔记,特殊工具与技术,类成员指针
  8. function在php中,function
  9. 链接2: excel中的截取文子串的功能------left,mid以及right函数使用
  10. java8学习之Lambda表达式深入与流初步