wshuyi的个人博客分享 http://blog.sciencenet.cn/u/wshuyi

博文

如何不花钱,让人工智能帮你视频抠图?

已有 2457 次阅读 2021-5-20 11:13 |系统分类:科普集锦

自从去年以来,因为线上教学和当UP主,我录制视频的机会显著增多了。

只不过,视频背景的处理一直是个痛点。

这是我最近录的一段视频开头部分。

你如果一直在看我的视频节目,对这个背景兴许并不陌生。

我真的喜欢后面墙上不规则的黑板白班、脱落的墙皮和不知道什么颜料的笔画上去的线条吗?

当然不是。

但是我没有选择。家里地方小,东西堆得满。能利用的地方,只有这么大而已。

之前在视频教程里面,我给你介绍过人工智能应用 runwayml 把任何的视频背景都变成绿幕。

这样你就可以把背景换成你想要的样子。书房、图书馆、咖啡馆……甚至是太空。

但是这个方法有些问题。一来需要你手工进行微调(主要对于边缘未能正确识别的区域),二来价格比较高。

原先我试用的时候,每个月是15美金。刚刚打开网站又看了一眼——又涨价了。现在需要28美金/月,还是按年支付的优惠价格。

面对高价,我是不是得转回头,每次都把绿幕弄上呢?

不。明明有了新的技术,咱可不能这么容易服输。

好在,我发现了另一款同样基于人工智能的应用。

它可以变任意背景为绿幕效果,不需要你手动进行边缘色块调整,而且还免费

在官网主页上面,有一些实际效果的演示。

例如这一个。

实话实说,我被震惊了。别说是人像边缘了,就连快速抖动散乱头发的抠图,都做得堪称完美。

应用的作者是一群来自华盛顿大学的研究者。

你要是对这个应用背后的技术细节感兴趣,他们的论文也可以全文阅读。

下面我们来说说这个抠图应用怎么用。

尽管作者在官网主页上提供了源代码和脚本样例,但是我觉得最好的使用方式,还是使用 Google Colab Notebook 的方式

打开之后,大概长这样。

这个样例 Colab Notebook 里包含的代码块,一共只有5个,很简洁。而且其中前两个还是可以忽略的。

因为第一行是安装gdown软件包依赖。而实际上,这个软件包是Google Colab 自带默认载入的。因此没有必要重新安装。

至于第二代码块的两行,则是只有你使用应用自带样例的时候才需要。

!gdown https://drive.google.com/uc?id=1tCEk8FE3WGrr49cdL8qMCqHptMCAtHRU -O /content/src.mp4 -q
!gdown https://drive.google.com/uc?id=1wAR3JjnTO60B_DUr7ruIJj0Z2pcIGkyP -O /content/bgr.png -q

你只需要在页面左侧的文件管理器中,点击按钮,上传自己的视频文件为 src.mp4 ,背景图片为 bgr.png,就可以了。

这里,我必须要说明一下,需要自己上传背景照片这一点,现在还让人感觉麻烦。不过我实际操作了一下,录像之后随手拍了一张背景图,也就是这个样子。倒也不费什么事。

看了背景之后,你大概也明白我为啥非想要把它去除了吧?

越过前面2个代码块,咱们直接依次执行后面的3个。如果你对 Google Colab 的操作不是很熟悉,也可以参考一下我的这篇《如何用 Google Colab 练 Python?》。

执行过程你需要稍微等待一会儿,电脑在云端积极地帮你进行运算处理。

当处理结束的时候,你会在 output 目录下面看到若干个文件。其中的 com.mp4 是我们需要的。

打开以后,是这个样子的。

可以看到,前面人像在动,但是边缘处理非常妥帖。

在 output 目录下面,你还能看到几个其他的视频文件。它们都是输出过程中产生的副产品。

例如这个,是机器帮你扣出的前景动态轮廓。

我是用一个完整视频的前10秒,进行的测试。现在测试成功了,我于是换上完整版视频。视频长度为10分钟左右,体积大约900MB。

这次的处理,就比较缓慢了。我等了一个多小时,才算弄好。不过其实这里是可以优化提速的,下文有介绍。

Google Colab 运行在云端,不需要消耗本机计算资源。你不需要时刻把窗口开在前面,甚至可以中途盖上笔记本盖子休眠。只需要保证窗口离线时间不要太久就好。我的经验是半个小时左右开启看一次就好。如果已经离线,Colab 会自动尝试重新连接运行时(Runtime)。

我这里有几个小建议。

首先,你当然也可以直接把900多MB的视频上传到 Google Colab 的文件工作区。但是这个上传速度,会很慢。

我建议你先把视频文件存储到 Google Drive 里面,然后利用 gdown 命令,下载到 Colab 。从 Google Drive 到 Colab ,比直接上传,能快上十倍不止。

我这里仿照 Notebook 默认样例,写下来的语句是这样的。

!gdown https://drive.google.com/uc?id=1AKmOVf3h8o-BkATV6WZownknkDp6GZJH -O /content/bgr.png -q

第二个问题是背景图片。尽管我是在同一地点按下手机的拍照按钮,但是因为 iPhone 摄像的设定,录像的分辨率(1920x1080)和手机拍照的分辨率不一致,就会导致报错。

问题解决起来并不复杂。我找到了这样一个网站,叫做 aconverter 。它可以免费在线转换图片的格式和分辨率。

这里我设定转成 PNG 格式,并且把新的分辨率强制设定为 1920x1080,运行的时候就没有再次报错了。

第三,是我真正转换完毕,才发现的问题,那就是其实 Notebook 里面有提示。如果只需要转换结果,不需要那些副产品,则运行速度可以提升的。

你所需要做的,只是把最后一个代码块中的这一句

--output-type com fgr pha err ref

改成

--output-type com

就可以了。

成功转换视频背景为绿幕之后,我在 unsplash 网站上面找到了一个不要版权的背景图片。

看着挺眼熟吧?没错,不少在线会议网站,都用了这个背景图。

最终合成的效果,是这个样子的。


怎么样,这背景看着,还挺像回事吧?

小结一下,这款新的人工智能抠图应用使你无需购买或使用绿幕,便可以利用免费的 Google Colab Notebook ,获得几乎完美的抠图效果。

你有没有更好的视频抠图方式呢?欢迎在留言区分享给大伙儿。咱们共同学习交流。

如果你觉得本文有用,请点赞。

如果本文可能对你的朋友有帮助,请转发给他们。

欢迎关注我的专栏,以便及时收到后续的更新内容。

延伸阅读

如何从零基础学最前沿的 Python 深度学习?

如何高效学Python?

如何用Python和深度神经网络识别图像?

如何训练和解释你的图片分类深度卷积模型?

如何不用绿幕,从视频中移除背景?

题图:Photo by KAL VISUALS on Unsplash




https://blog.sciencenet.cn/blog-377709-1287413.html

上一篇:如何一行代码都不写,就做出网站和应用?
下一篇:Roam Untangled 这门课好在哪儿?
收藏 IP: 59.67.72.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-17 04:36

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部