“拍照一时爽,后期愁断肠。”出去旅游,即使努力避开人群、挑选角度,拍照也免不了出现背景杂乱、路人入镜等情况。这时,有人打开Photoshop默默耕耘,有人打开三方软件一顿操作,还有人直接删除“废片”……
欸,停停停!难道还有人不知道小米手机的“魔法消除”功能吗?魔法消除功能是基于小米自研的AI检测和消除算法,帮助用户一键去除这些恼人的“不速之客”,不论是抢镜的路人,还是干扰天空简洁的电线都可以实现完美去除。
消除前VS消除后
这项功能可以说是”有手就会”,它不需要掌握PS复杂的抠图和涂抹,也不会花费太长的修图时间,分分钟实现“废片”变“大片”!诸君请看:
(1)智能去线:不用精准手势操作,自动识别线条一键去除,方便快捷。
(2)智能去人:智能识别人物,一键消除涂抹。
(3)一键去除全部人物:不需要一个个点击消除人物,一键即可全部隐身。
“知其然,更要知其所以然。”今天,我们想告诉你的不只是这个功能如何使用,而是想带你从工程师的视角认识一下它背后的技术原理。本次,我们邀请到的Tech Talk嘉宾是AI实验室工程师张亚森和产品经理何嘉,和大家分享这一技术的魔力所在!
本文硬核指数:⭐⭐⭐
本文趣味指数:⭐⭐⭐⭐
预计阅读时长:3分钟
一、魔法消除技术原理
这一功能实现背后的技术原理基于小米的两大自研算法:智能去线算法和AI智能去人算法。在算法研发过程中,团队也提交了多篇与之相关算法专利。
1.自研智能去线算法
智能去线算法是指根据用户点击位置或绘制轨迹,自动检测并选中线条,然后进行填充。算法设计的逻辑包括两步,第一步智能找线,第二步线条填充。
智能找线:获取点击(图1中红色圈)或描绘轨迹(图1中红色曲线)后,在分析图像内容的同时,使用自研的智能延伸搜索(图1中绿色箭头)和线条候选像素判别算法,获得完整的目标线条边界(图2中蓝色虚线);最后通过线条宽度预测,得到用户想要消除的整根线条区域(图3中黄色区域)。
图1
图2
图3
线条填充:针对线条的特点,我们设计了一种在多层特征金字塔空间中高效迭代搜索的算法。算法通过对背景和原线条区域进行相似度分析,得到线条区域的最优填充像素值,从而自然地复原去线后的图像背景(图4)。
图4
2.自研AI智能去人算法
AI智能去人算法包括实例分割算法和区域填充算法,通过这两个算法就可以实现“照片路人一键去无痕”。具体来讲:
(1)实例分割算法
实例分割算法的作用在于将画面中的人物单独分割出来,可选中任一人物进行操作。
针对路人消除场景特点,我们的实例分割算法构建了一个特殊的多尺度特征融合网络。经过数十万张精细标注数据训练之后,该网络对照片中的人物具备强大的理解和定位能力,效果和性能大幅领先行业。
当用户打开一张照片,并启动智能去人功能时,上述人像实例分割算法立即对全图进行扫描,实现画面中所有人物的像素级精准定位。
实例分割算法
像素级精准定位
(2)区域填充算法
区域填充算法是指消除用户不想要的部分之后,要对缺失区域进行画面填补,保持填充区域与周围区域视觉效果一致,画面自然。
消除分割出的人物之后需要对空缺画面进行填充,影响填充效果的关键是算法对图像中包含内容的理解建模能力。
我们使用了多重空间生成对抗网络(GAN),该网络在传统内容填充的基础上,充分考虑边缘等结构目标的填充效果。在百万级真实图像的训练加持下,算法能够充分理解图像中场景/物体的位置关系,从而自然地填充去除路人后的缺失区域,重构出高度自然的画面。
消除前VS消除后
二、魔法消除技术亮点
魔法消除技术的亮点主要体现在三个方面,分别是本地端计算,保障用户隐私;识别更智能,精准还原美丽;填充效果好,还原超清纹理等方面。
1.本地端计算,保障用户隐私
我们的"智能去人"和“智能去线”充分调用手机芯片的强大本地算力,和当前市面上的云端运行处理算法不同,我们的算法全流程都在手机端运行,无需将照片上传至云端处理,处理速度更快,用户可以无网络的情况下完成编辑,更重要的是保护了用户的隐私。
2.识别更智能,精准还原美丽
在对画面中人物的识别分割方面,市面上的一些算法缺乏对人体大小的考虑,导致经常漏掉远处的小尺寸人体,用户时常无法选中自己想要消除的路人。小米自研的实例分割算法能够对用户图像在多尺度空间进行理解识别,精准覆盖不同尺寸的人体,让用户对图中路人随意隐身。
而加入“智能化”、“深度学习网络”等元素的消除算法,去线和去人也都变得更为智能,只需要用户的简单交互就可以选中想要去除的线条和人物,一键消除,还原自然美观的画面场景。
3.填充效果好,还原超清纹理
由于多数友商采用了传统填充算法,导致填充的区域模糊、不自然,且缺失结构与纹理信息,与周围背景反差极大。而我们的算法能够在多重空间中学习图像中场景/物体的位置关系,同时挖掘背景的结构与纹理特征。填充得到的区域更清晰,且具有丰富的结构与纹理信息,能与周围背景更好的融合。
在“手动消除”功能上,我们借鉴了Photoshop,用户只需在特定位置涂抹即可进行填充;但升级之后的魔法消除产品,增加了“智能去线”和“智能去人”两个智能应用,使得用户可以很方便的在小屏幕端对常见的电线和路人进行去除。
三、研发过程中的挑战
在研发的过程中,遇到的挑战主要有两方面:一是魔法消除功能如何与不同的平台机型兼容,二是手机终端处理效果如何赶超云端处理效果。为了想出解决方案,我们团队可谓是煞费苦心。
挑战一:魔法消除功能如何与不同平台机型全面兼容?
小米机型平台种类繁多,为使魔法消除功能在尽可能多的小米机型中上线,让全球每个人都能享受科技带来的美好生活,我们研发团队需使算法适配高通、MTK等各种高中低端平台。
为了解决这个问题,我们在与算法部署支持部门、芯片供应商等部门积极沟通的同时,也为旗舰机、次旗舰、中端机、入门机等不同性能水平的机型准备了多个版本的算法模型,实现计算速度与效果的平衡。此外我们与相机部APP开发团队密切配合,随时解决每个机型时出现的各自问题。最终,实现了高、中、低端手机的全覆盖。
挑战二:手机终端处理效果如何超越友商云端处理效果?
众所周知,当下手机终端算力是远低于云端服务器算力的,如何让最终效果在市面上脱颖而出是我们面临的一大挑战。
针对这个问题,我们首先对市面产品进行深入全面的评测,发掘弱势场景,努力提升补足;其次在保证出色效果的前提下,通过量化、蒸馏、剪枝等各种模型压缩手段,减少部署模型的大小和运算耗时,提升用户体验。我们也一直持续关注着用户的反馈平台——小米社区,如果发现出了问题,基本能够做到一小时内定位到问题所在,并立刻进行更正,努力给用户提供更好的体验。
魔法消除,在精细处雕琢。
每处细节,我们都拼尽全力。
特别声明:修图所用图片案例来自互联网,仅用于魔法消除功能展示。
你还有哪些希望了解的技术?欢迎在评论区留言,我们将继续邀请工程师就大家关心的话题进行分享。更多硬核知识,请持续关注小米Tech Talk,我把技术讲给你听。