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

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研习社编译

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2017-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

资源 | 10x Python开发者必读:本月Python文章TOP 10

翻译 | AI科技大本营 参与 | 刘畅 编辑 | Donna 【AI科技大本营导语】Medium热门博客Mybridge AI例行评出本月10篇有助于提升你职...

36315
来自专栏华章科技

做数据分析必须学R的4个理由

R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的...

641
来自专栏量子位

PyTorch更新了:支持Windows,新增零维张量

PyTorch今天发布了v0.4.0版本,网友们反响非常热烈,甚至有人说:感觉就像提前过圣诞~

1191
来自专栏WOLFRAM

全新推出 SystemModeler 5:集符号式参数模拟、模块化可重构性和200个全新内置部件于一体

1795
来自专栏编程

10x Python开发者必读:本月Python文章TOP 10

翻译 | AI科技大本营 参与 | 刘畅 编辑 | Donna 【AI科技大本营导语】Medium热门博客Mybridge AI例行评出本月10篇有助于提升你职...

2307
来自专栏PPV课数据科学社区

做数据分析必须学R的4个理由

R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的...

2796
来自专栏IT大咖说

当Elasticsearch遇见智能客服机器人

摘要 本次分享主要会介绍一下ES是如何帮我们完成NLP的任务的。在做NLP相关任务的时候,ES的相似度算法并不足以支撑用户的搜索,需要使用一些与语义相关的方法进...

6116
来自专栏软件开发 -- 分享 互助 成长

结构化分析和方法

结构化分析方法(SA)是一种面向数据流的需求分析方法,适用于分析大型数据处理系统,是一种简单、实用的方法。 基本思想是自顶向下逐层分解。分析结果有一套分层的数据...

2096
来自专栏Albert陈凯

R语言的优劣

https://www.zhihu.com/question/19611094 作者:艾华丰 链接:https://www.zhihu.com/questio...

2533
来自专栏IT派

算法应用实践:如何用Python写一个贪吃蛇AI

这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过。但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了。 问题的关键在...

2090

扫码关注云+社区

领取腾讯云代金券