Python 版 AR 对话框
周末了,用 Python 代码给大家带来一个好玩的视频特效。因为博客里放不了视频,演示视频可以参考:
微信公众号文章: https://mp.weixin.qq.com/s/yPG5IJDj1EEWOBNoO60XMg
知乎文章链接: https://www.zhihu.com/people/ted-70-87/posts
摄像头拍摄的视频中,右上角出现了一个可以跟随脑袋移动的虚拟对话框,可以实时展示说话内容。
你可能会问:就只是做了个摄像头特效,这也算 AR,还 AR 对话框?哈哈,请看AR定义:
增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D
模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。
所以这么说来,我们做的摄像头特效,实时地进行了语音识别、面部识别定位,再通过图像处理为视频添加对话框效果,妥妥算是 AR 对话框了!
Talk is cheap, 接下来说设计思路和代码。
设计思路
我在之前分享过调用语音识别的文章,也尝试过调用面部识别来为摄像头视频增加特效,这是两个基础。此次通过将文字写入图片,将以上二者结合,生成最终效果。
我们仍然通过百度语音 API 来进行语音识别,把语音信息转化成文字。同时调用摄像头实时拍摄,对抓拍到的图片进行面部识别定位,在理想位置添加对话框特效。此外,随着语音文字信息的生成,动态地将文字添加到图片中,最终实现视频中的 AR 对话框。
语音识别
语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的技术,微信中将语音消息转文字,以及 “Hi Siri” 启用 Siri 时对其进行发号施令,都是语音识别的现实应用。
语音识别 API 其实就是帮你语音转文字的
百度语音识别通过 REST API 的方式给开发者提供一个通用的 HTTP 接口。任意操作系统、任意编程语言,只要可以对百度语音服务器发起 http 请求,均可使用此接口来实现语音识别。调用 API 的流程在百度语音官方文档中有说明。