领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Github热门源码:借助TensorFlow.js让你在视频中瞬间消失

nixiaole 2024-12-17 15:37:19 知识剖析 17 ℃


最近,一个实时人物删除(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只有你想不到,没有它做不到。


jason的个人网站:

https://codepen.io/jasonmayes

开源地址:

https://github.com/jasonmayes/Real-Time-Person-Removal

Tags:

最近发表
标签列表