简评:上个月的 Google 云会议上发布了 Video Intelligence API,开发者可以通过单个 API 请求轻松地分析视频内容,看看视频中的每个场景发生了什么。
先上一个 demo 给大家展示一下这个 Vision API 的潜力,代码已在 GitHub 开源。
使用 API 的元数据搜索大型视频库:
Video Intelligence API 简介
该 API 提供了一个预先训练好的模型,可以告诉你视频中每个场景发生的细粒度数据,比方说视频在 0:07s 中有一只狗,像这样:
视频 API 就会告诉你这个场景里有一只狗,同时也会告诉你包含狗的其他所有场景,以下是一个标签的 JSON 响应:
{
"description": "Dog",
"language_code": "en-us",
"locations": [ {
"segment": {
"start_time_offset": 7090474,
"end_time_offset": 8758738
},
"confidence": 0.99793893,
"level": "SHOT_LEVEL"
}
此 JSON 能显示该标签毫秒级的响应,对于视频中相同片段,API 还会告诉我们狗的品种。开发者除了直接在视频中取帧,将其发送至 Vision API 外,其实还有个更好的方法。Vision API 是通过一个模型来分析视频,查看不同帧之间的关联,如果视频中有服装和糖果的场景,它可以告诉你这或许是一个万圣节的视频,随后,API 的镜头更改检测功能会将视频分解为不同场景,再作为 JSON 对象返回。
更多详情信息可以观看 Ram Ramanathan,Juhyun Lee 和 Lynne Hurwitz 的演讲。
工作原理
在后端,该应用的视频存储在 Google Cloud Storage bucket。我写了一个云功能,每当一个新的文件被添加时就会触发。函数会先检查这个文件是否是视频,如果是视频的话就将该文件发送到 Video API 进行注释。Vision API 允许根据请求选择传递outputUri 参数,当 API 完成处理时,API 会写入视频注释,然后再利用这一点将注释 JSON 存储在单独的 Cloud Storage bucket 中。
前端是 Node.js,使用了 ES6, Sass, Gulp, CanvasJS 和其他 客户端 JS 工具。
你可以直接在浏览器中尝试使用 Video API,而无需编写任何代码。如果你有要分析的视频,可以注册 Video Intelligence API alpha。开发者 Twitter@SRobTweets。
推荐阅读:
- 2017 Google I/O 开发者大会 | 计算机视觉无处不在
- 极光开源项目:「Aurora UI」,一个通用 IM 聊天 UI 组件,支持Android、iOS(swift/oc)、react。