谷歌云工程师亲自示范:新发布的 Video Intelligence API 究竟怎么用

简介:

  关于 Video Intelligence API

总体上说,Video Intelligence API 向开发者开放了一种接入谷歌预训练模型的方法,该模型不但可以从宏观上识别当前视频中每一帧的具体内容,同时还能给出相关内容的颗粒数据(granular data)表述。如下图所示,假设视频在 0:07 的时间点出现了一只小狗。

谷歌云工程师亲自示范:新发布的 Video Intelligence API 究竟怎么用

则 Video Intelligence API 就可以识别这只狗,并同时识别出整段视频中所有出现小狗的数据帧。以下代码展示了在一个标签下的 JASON(JavaScript Object Notation)表述:

{

      "description": "Dog",

      "language_code": "en-us",

      "locations": [ {

        "segment": {

          "start_time_offset": 7090474,

          "end_time_offset": 8758738

        },

        "confidence": 0.99793893,

        "level": "SHOT_LEVEL"

}

这段 JASON 代码以微秒级的时间分割展示了该视频片段,从代码中可以看到,API 对该数据帧的识别结果为“dog”,并且标明正确率为 99%。在该段视频的其他相关片段中,该 API 甚至还能识别出小狗的具体品种(识别结果是 Dashchund,即达克斯猎狗,正确率为 81%)。

看到这里你可能要问,我可以按照 1fps 的帧率将视频分解,然后对每一帧数据做图像识别,不也能达到同样的效果么?的确如此。对每一帧数据做图像识别,在上述 JASON 描述的层面的确能和 Video Intelligence API 达到一样的效果,但后者的功能却不止于此,而这也是 Video Intelligence API 的核心竞争力之一。

除了上述针对每一帧的解释之外,此次发布的 Video Intelligence API 还能通过特定的分析模型给出不同视频帧之间的联系和区别。例如视频中如果出现了足够多的礼服和糖果镜头,则 API 就可以识别出这是一段关于万圣节的视频并标记。不仅如此,此次更新的 API 还具有镜头变更检测功能,即可以分辨视频中的场景转换。通过这一功能,开发者可以将视频按场景完全自动化地按照内容分割成不同的片段,并返回相应片段的 JASON 描述,非常方便。

关于 Video Intelligence API 更详细的介绍请参见以下视频(需科学上网),视频中的演讲嘉宾是 Video Intelligence API 的产品经理和研发工程师:

http://t.cn/RXfjO6t 

  关于样例

以下是本次样例的原理图,我在 3 月初的 Google Cloud Next 2017 上曾经做过演示。

谷歌云工程师亲自示范:新发布的 Video Intelligence API 究竟怎么用

如图所示,整个样例分为前端(图片上半部分)和后端(图片下半部分)两部分。

关于后端:本样例将待处理视频存储在谷歌云 Bucket 中,这里我实现了一个函数,每当用户添加一个新视频到该 Bucket 时,该函数会被触发,一方面检查文件的合法性(例如是否是视频文件,文件是否完整等),同时负责将合法的视频文件传递到 API 进行分析。这里 API 提供了一个非常方便的选择参数,即用户可以传入另一个谷歌云 Bucket 地址,当 API 分析完成后,可以将分析结果,即 JASON 表述存储在该 Bucket 地址中。我在样例中即应用了这一点,将分析结果存储在了另一个谷歌云 Bucket 中。

前端是我跟另一个同事 Alex Wolfe 共同完成的,其中用到了 ES6,Sass,Gulp,CanvasJS 等各种客户端 JS 工具(具体可以参考 GitHub 代码),实际上实现了一个基于谷歌 App Engine 的 Node.js 应用。

最后需要指出的是,除了样例中的用法外,用户还可以直接在浏览器端直接体验 Video Intelligence API,地址如下:

http://t.cn/Rilda3x 

或者用户也可以在上述链接注册,对 API 进行更深度的体验。

以下是关于文中样例的视频演示地址

http://t.cn/RXfuXiN 





本文作者:恒亮
本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 API
人工智能应用工程师技能提升系列2、——TensorFlow2——keras高级API训练神经网络模型
人工智能应用工程师技能提升系列2、——TensorFlow2——keras高级API训练神经网络模型
33 0
|
6月前
|
JSON 前端开发 Java
重生之我在这个世界的文本转音频API工程师的故事
重生之我在这个世界的文本转音频API工程师的故事
35 0
|
11月前
|
消息中间件 JavaScript 小程序
为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API
为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API
|
API Android开发 开发者
一位付费API工程师如何制造了推特今年第七次崩溃?
一位付费API工程师如何制造了推特今年第七次崩溃?
137 0
一位付费API工程师如何制造了推特今年第七次崩溃?
EMQ
|
消息中间件 运维 Kubernetes
EMQX Enterprise 4.4.11 发布:CRL/OCSP Stapling、Google Cloud Pub/Sub 集成、预定义 API 密钥
EMQX Enterprise最新的4.4.11版本发布了CRL(证书吊销列表)与OCSP Stapling为客户端提供更灵活的安全防护,新增Google Cloud Pub/Sub集成帮助用户通过Google Cloud各类服务发掘更多物联网数据价值。
EMQ
125 0
EMQX Enterprise 4.4.11 发布:CRL/OCSP Stapling、Google Cloud Pub/Sub 集成、预定义 API 密钥
|
前端开发 API UED
W3C发布CSS ANIMATION WORKLET API的草案
W3C发布CSS ANIMATION WORKLET API的草案
178 0
W3C发布CSS ANIMATION WORKLET API的草案
|
存储 小程序 前端开发
【微信小程序】image组件 API 协同工作和发布
🍒小程序的宿主环境 - 组件 🍈image 组件的基本使用 🥭image 组件的 mode 属性 🍓小程序的宿主环境 - API 🥦小程序 API 概述 🍅小程序 API 的 3 大分类 🍘协同工作和发布 - 协同工作 🍊了解权限管理需求 🥝了解项目成员的组织结构 🍉小程序的开发流程
【微信小程序】image组件 API 协同工作和发布
|
前端开发 JavaScript API
React 18 正式发布,包括自动批处理、新的 API 等开箱即用的改进
React 18 正式发布,包括自动批处理、新的 API 等开箱即用的改进
237 0
|
Prometheus Kubernetes 监控
Kruise Rollout v0.2.0 版本发布:支持 Gateway API、StatefulSet 分批发布等能力
Kruise Rollout 作为一种旁路式的渐进式交付框架,能够非常方便的与社区内优秀的应用交付平台集成。用户基本上不需要做额外的改动,只需要一份 Kruise Rollout CRD 定义即可。
Kruise Rollout v0.2.0 版本发布:支持 Gateway API、StatefulSet 分批发布等能力
EMQ
|
边缘计算 监控 物联网
NanoMQ Newsletter 2022-07|v0.10:多路桥接、HTTP 发布 MQTT 消息 API、NanoSDK 支持 MQTT 5.0
v0.10.0已于8月初正式发布,此版本主要增强了桥接功能,新增了发布消息的HTTP API,同时还为NanoSDK增加了MQTT 5.0支持。
EMQ
265 0
NanoMQ Newsletter 2022-07|v0.10:多路桥接、HTTP 发布 MQTT 消息 API、NanoSDK 支持 MQTT 5.0