前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谷歌云工程师亲自示范:新发布的 Video Intelligence API 究竟怎么用

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

作者头像
AI研习社
发布2018-03-29 11:17:51
9910
发布2018-03-29 11:17:51
举报
文章被收录于专栏:AI研习社AI研习社

AI研习社按:3 月初,谷歌在 Google Cloud Next 2017 大会上对外公布了 Cloud Machine Learning API 更新。此次更新覆盖了包括计算机视觉、智能视频分析、语音识别、自然语音处理、机器翻译和职位搜索等在内的诸多领域,被认为是谷歌云近段时间最大规模的一次升级。在此次更新中,最受关注的可能就是能够进行视频识别的 Video Intelligence API 了。

在发布会上,谷歌云工程师 Sara Robinson 曾针对 Video Intelligence API 登台演示了一个应用样例(演示视频见文末),用于说明该 API 的具体功能。近日,Sara Robinson 在 GitHub 上公开了该样例的源代码,并对 API 本身和样例的实现做了简要说明。现AI研习社编译如下,希望对各位开发者有所帮助。

为了向大家充分展示我们新发布的 Video Intelligence API 的具体功能,我曾编写了一个样例。目前样例源码已经上传到了 GitHub,感兴趣的朋友可以在文末点击阅读原文,在雷锋网原文中来查看详情。

通过这个样例,我们将看到 Video Intelligence API 的两个重要功能:

● 识别目标视频中每一帧的内容; ● 在庞大的视频库中搜索当前视频的元数据。

关于 Video Intelligence API

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

则 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 的产品经理和研发工程师。

关于样例

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

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

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

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

最后需要指出的是,除了样例中的用法外,用户还可以直接在浏览器端直接体验 Video Intelligence API,地址在文末点击阅读原文,在雷锋网原文中。

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

关于文中样例的视频演示地址请在文末点击阅读原文,在雷锋网原文中查看链接。

来源:medium,AI研习社编译

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于 Video Intelligence API
  • 关于样例
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档