前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你如何在Python中使用谷歌的视频智能API

手把手教你如何在Python中使用谷歌的视频智能API

作者头像
AI研习社
发布2019-05-14 17:18:56
1.6K0
发布2019-05-14 17:18:56
举报
文章被收录于专栏:AI研习社

在军事、安防、监控领域,从输入视频中检测物体的任务扮演者关键的角色。姿态变化、衣着、背景杂斑、光照、容貌等因素会使这个任务变得更具挑战性。

成千上万的被雇用来检测安全视频片段,以辨认视频中是否存在某一个物品。

人类通常把监控视频内容当作一种职业。

这显然是一个累人又耗时的工作。如果有人随时告诉我们视频中是否有一辆车或一个人会怎样呢?由于深度学习和计算机视觉技术的发展,这些都变成了可能。

在过去数年中,深度学习已经超越了各种堪称艺术的机器学习方法。尤其在计算机视觉领域,深度学习对其产生了深远的影响。

Google在这个领域做了广泛的研究,并开发了一个系统(一个深度学习模型)可以在视频中给出物体的名字。这需要耗费数以亿计的图片和视频,喂给 Google 用于训练算法。有趣的是——所有的东西都可以通过 API 调用实现。

下面是 Google 云视频智能(Google's Cloud Video Intelligence)的访问链接:https://cloud.google.com/video-intelligence

API 支持通常的视频格式,如 .MOV、.MPEG4、.MP4、.AVI。

你可以用 Google 视频智能 API 做什么?

下面的任务(目前人类所做过的)可以通过一个简单的API调用实现。

  • 标签检测:在视频中检测物体,如狗、花、人。
  • 显式内容检测:在视频中检测成人内容。
  • 拍摄变化检测:检测视频中的场景变化。
  • 区域化:标记一个将要处理的区域。
  • 语音听写:把视频中的语音变成文本。
  • 物体跟踪(Beta):在视频中跟踪物体并汇报它们的位置(边界框)。
  • 文本检测(Beta):在视频中执行光学字符识别(OCR)检测并提取文本。

既然我们知道了 API 可以做什么,让我们看看实现部分。由于许多深度学习工程师使用 Python 作为他们的主要语言,我将以 Python 展示其用法,尽管其他语言的 API 也是支持的。

第一步 —— 配置 Google Cloud 账号并启用 API

在你的电脑上打开 Google Cloud 网站。

注意:如果你已经在使用 Google Cloud 了——如果你是使用 Google API,如地图,的开发者,你可能已经熟悉了这一切。

令人可喜的是 —— Google 给首次使用的用户提供 €300 免费点数!?

去控制台 新建项目。确保你已经在账号中 建立收费地址。你需要输入信用卡信息。不用担心,他们不会在 €300 过期之后自动收费。?

下一步是 启用 API。做了这步之后,你也需要提供提供启用 API 的地址。为此,需要 新建服务账号。不要在列表中选择任何角色。在提交表单后选择“Create without role”。这步会产生一组公开和私有密钥的 JSON 文件(用于访问 API)并下载到你的电脑上。妥善保存好这些文件,在第 3 步中将会用到。

现在你已经执行了上述步骤,最后一步是 下载 Google Cloud SDK。

在下载时,访问文件所在目录,解压缩,在命令行中执行下面的命令以安装、初始化 SDK。浏览器会打开一个新的标签,让你登陆 Google Cloud。

代码语言:javascript
复制
google-cloud-sdk/install.sh
google-cloud-sdk/bin/gcloud init

第二步 —— 写 Python 代码

现在开始做一点代码练习! ?

我会给你 Python 命令,可以使用视频智能 API。

注意:如果你之前还没有使用过 Python,请前往原文阅读安装 Anaconda 文章。

在编写代码之前,在命令行中安装 Python 软件包

代码语言:javascript
复制
pip install google-cloud-videointelligence

我们总算搞定了。下面是用 Python 命令调用 API ——

代码语言:javascript
复制

#Import libraries
import argparse
from google.cloud import videointelligence

#Load the full path of JSON file obtained in step 1. Replace '/Users/harry/Downloads/SampleProject-1abc.json' with your filepath
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/Users/harry/Downloads/SampleProject-1abc.json"

#Call the API 
client = videointelligence.VideoIntelligenceServiceClient()
job = client.annotate_video(
    input_uri='gs://cloud-ml-sandbox/video/chicago.mp4',
    features=['LABEL_DETECTION'],
)
result = job.result()
print(result)

输出结果是这样的:

代码语言:javascript
复制
annotation_results {
  input_uri: "/cloud-ml-sandbox/video/chicago.mp4"
  segment_label_annotations {
    entity {
      entity_id: "/m/01l7t2"
      description: "downtown"
      language_code: "en-US"
    }
    category_entities {
      entity_id: "/m/01n32"
      description: "city"
      language_code: "en-US"
    }
    segments {
      segment {
        start_time_offset {
        }
        end_time_offset {
          seconds: 38
          nanos: 757872000
        }
      }
      confidence: 0.9062400460243225
    }
  }
  segment_label_annotations {
    entity {
      entity_id: "/m/06gfj"
      description: "road"
      language_code: "en-US"
    }
    segments {
      segment {
        start_time_offset {
        }
        end_time_offset {
          seconds: 38
          nanos: 757872000
        }
      }
      confidence: 0.8779934048652649
    }
  }
.....

}

在上面的 API 结论中包含了描述性字段(描述物品)并且以及在视频中出现的时间和置信度。置信度为 0.9062400460243225 意味着有 90% 准确度的信心。

你可以直接载入 JSON 输出数据到数据库。这使得你可用查询语句查询数据库,检查某一个物体是否在某一个时间帧出现。

现在,你可能会注意到 ‘LABEL_DETECTION’是一个给定的特征。我没有告诉你视频智能 API 还可以更多的事情吗?这是真的,你还可以提取更多其他特征。下面是一些样本代码:

代码语言:javascript
复制
features=[‘LABEL_DETECTION’, ‘SHOT_CHANGE_DETECTION’]

下面是 各种参数可以指定特征输入:

  • LABEL_DETECTION 标签检测。检测物体,如狗、花。
  • SHOT_CHANGE_DETECTION 拍摄场景改变检测。
  • EXPLICIT_CONTENT_DETECTION 显示内容检测。
  • SPEECH_TRANSCRIPTION 语音听写。

注意 —— 如果你只是使用 Google Cloud 项目来进行测试而且你不再想用它了,确保你删除你的项目,否则,Google 会因占用他们的资源而收费!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你可以用 Google 视频智能 API 做什么?
  • 第一步 —— 配置 Google Cloud 账号并启用 API
  • 第二步 —— 写 Python 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档