手机拍照自动抠图秒变PS素材华人团队技

解释最新科技进展,报道硅谷大事小情

现实里抠图,随手放到PS里?真实和虚拟之间又一堵墙被打破了,而华人团队是幕后功臣。

——

文|杜晨编辑|VickyXiao

最近,一段模糊了虚拟和现实边界的黑科技视频在Twitter上爆红,目前已经获得了数万点赞和转推。

视频中,开发者CyrilDiagne用自己的手机拍下身边的绿枝、书本、衣服等物体,手机立刻把物体从画面中抠了出来。

接下来发生的事情更加神奇:他把手机摄像头对准电脑的屏幕,刚才抠出来的物体,竟然自动添加到了电脑正在运行的Photoshop上!

几秒钟前还在现实中的物体,竟然就这么被复制到了虚拟的世界里。

可能令许多摄影师、设计师朋友感到嫉妒的是,Diagne的这一通操作是完全自动化的,并没有用到数据线,没碰键盘,也没用鼠标做任何调整——剪贴进去的图像,就这么准确地出现在他用手机瞄准的画面位置上。

00:43

Diagne将这套非常神奇的抠图技术命名为ARCutPaste(增强现实剪切粘贴)。目前针对Photoshop的支持已经开发出来了,不过他也表示其它软件也是可以支持的。

他也把ARCutPaste放到GitHub上开源了。从介绍和代码中我们得以一窥,这么有趣的技术,到底是怎么实现的。

秘诀:华人团队开发的图像识别模型

在抠图的阶段,ARCutPaste使用的是一个名叫BASNet的深度神经网络。

在过去,机器学习领域在利用深度卷积神经网络进行物体识别方面,已经取得了非常不错的结果。不过通过神经网络进行的图像中物体识别,主要目标是区域准确性,而非边界准确性。

简单来说,就是这些物体识别技术,能够很准确地答出画面中的物体分别是什么:

但是想要准确画出识别出的物体的边框,就很难:

于是,加拿大阿尔伯塔大学的一个以华人为主的团队,开发出了一个全新的深度神经网络模型。

BASNet的主要功能是进行显著性检测,简单来说,就是对画面中最显著的物体实现准确的边界划定,效果就像PS高手人工“抠图”一样。

BASNet采用了预测-优化的思路,主要使用的是Encoder-Decoder网络结构,底层采用的是微软团队开发的残差网络ResNet。

在预测部分,一个密集监督的Encoder-Decoder网络负责预测预测画面中物体的显著性,借助三种不同损失函数,让神经网络可以在像素(pixel)、像素区域(patch)和全图(map)这三个层级上进行显著性判定,从而输出更准确的结果。

在优化部分,仍然是由Encoder-Decoder结构组装成一个残差优化模块(RRM),对预测部分输出的显著图进一步优化。

从下图中可以看到,和其它同类和类似的物体识别模型相比,BASNet的边界划定效果相对更加准确,和手动画出的标准答案最为接近。

不仅如此,BASNet对于计算性能的优化做的也不错,可以在单一GPU上运行达到25帧每秒(需要你的电脑上有支持CUDA的GPU)。

这篇论文在去年被计算机视觉方面的顶级学术会议CVPR所收录。

BASNet的开发团队来自于加拿大的阿尔伯塔大学计算机系。第一作者是该校机器人和视觉实验室的秦雪彬博士,曾经就读于山东农业大学和北京大学。

从网站上也能够很清楚地看出,在各种图像视频中进行物体显著性/边界划定,是秦雪彬最拿得出手的研究:

秦的团队还推出了一个性能更加强大的模型U^2-Net,对于复杂物体边缘的识别准确度再上新台阶。这篇新论文目前已经被《模式识别》年收录。

现在我们知道了,ARCutPaste是借助了BASNet这一深度神经网络实现了较为准确的抠图。接下来,开发者Diagne又是怎么实现将抠出来的图片直接隔空从手机“放置”到电脑上,而且准确放在手机瞄准位置的呢?

这里,Diagne用了自己开发的一个小的玩意ScreenPoint,简单来说就是在一张照片(手机传回的画面)上确定一个锚点,然后在对应的另一张照片(电脑的画面)上找到锚点对应的坐标。

这个小工具,利用的是OpenCV的SIFT功能。

目前,ARCutPaste在剪切阶段的延迟大约为2.5秒,粘贴的延迟约为4秒。Diagne也在Twitter上表示,还有很多方法能够进一步降低延迟,不过他并没有花更多时间做核心功能之外的优化。

技术实现的逻辑听上去并没有特别复杂,不过感谢强大的BASNet,加上Diagne的脑洞,ARCutPaste的实际使用效果还是很神奇的——特别是对于那些每天跟套索打交道的Photoshop用户来说……

ARCutPaste上手配置

看到这里,相信你也已经按耐不住,想要自己上手玩一玩这套ARCutPaste了。

Diagne在自己的GitHub提供了你需要的全部代码和一份简单的使用说明书。点击文章下方的“阅读原文”即可看到。

总的来说,ARCutPaste有三个独立的模块,需要配合使用:手机app、安装在电脑上的本地服务器,以及打包好的BASNetHTTP服务。

手机是你的交互工具;本地服务器是手机和Photoshop之间数据传输的界面;物体检测、边界划定和背景移除的操作,发生在BASNetHTTP服务上。

在你的本地配置ARCutPaste需要一台手机,一台GPU支持CUDA的电脑;配置过程需要你有一定的ReactNative移动应用开发支持,电脑上有Python或Docker开发环境等。

1

配置Photoshop插件远程连接

进入Photoshop的偏好设置(Preference)插件(Plug-ins),打开远程连接(RemoteConnection),并设置一个密码。

然后在GitHubRepo里找到cyrildiagne/ar-cutpaste/server/src/ps.py,确认你的Photoshop设置和这个文件里是一样的,否则粘贴出来的会是一个空白的图层。

2

打包BASNetHTTP服务

先克隆cyrildiagne/basnet-


转载请注明:http://www.aierlanlan.com/grrz/4558.html