最近,一个实时人物删除(Real Time Person removation)的项目在GitHub上流行起来。它最近在GitHub趋势排名第一,目前拥有3k+颗星星。
这个项目的神奇之处在于,你只需要在网页浏览器中使用JavaScript,并使用200多行TensorFlow.js代码,就能让视频屏幕中的字符和对象实时从复杂的背景中消失!
虽然这不能让你像哈利波特那样隐形的梦想在现实生活中成真,但至少你可以在视频和动画中体验隐形的刺激。
这个项目开发者是谷歌网站工程师杰森·梅耶斯。通过TensorFlow.js制作了一个插件,允许系统分离人和背景,然后实时从场景中移除任何人,这意味着人们可以从视频中“消失”。
我们两看两张例子:
有人可能会认为,在复杂的背景下实现“隐身”非常复杂,而且是实时的,但实际上,实现这种效果只需要200多行JS代码。
作者整个项目的核心是TensorFlow.js提供的身体分割模型。js可以说是一个网站工程师使用机器学习模型的工件!
js是一个使用JavaScript开发机器学习的库,允许使用JavaScript开发机器学习模型,并且可以直接在浏览器或Node.js中使用机器学习模型。
为了使人物在镜头中“消失”,作者必须首先找到人体的位置区域。这里使用的是TensorFlow.js已经训练过的身体分割模型。
例如,在上述项目中使用的体分割模型MobileNet非常容易调用:
const net = await bodyPix.load({
architecture: 'MobileNetV1',
outputStride: 16,
multiplier: 0.75,
quantBytes: 2
});
当然,除了MobileNet这样的小而快的模型,但是精度不是特别高,你也可以选择ResNet这样精度相对较高的大而慢的模型。
除了身体分割模型,TensorFlow.js还提供了各种现成的机器学习模型,如图像分类、对象检测、身体分割和句子编码。当然,如果需要的话,用户也可以重新训练他们的模型。
TensorFlow.js只有你想不到,没有它做不到。
更多论文地址源码下载地址:关注“图像算法”微信公众号
网友评论