教程:使用Clarifai自动视频注释

时间:2019-03-17 08:27:15 阅读:28次

  机器学习的进步使得识别图像中的对象变得容易,并且我们使得甚至视频识别变得简单。我们将使用Clarifai相对轻松地展示视频中的识别对象。

<! - more - >

  在本教程中,我们将讨论如何使用Clarifai的API自动分析短视频片段并给我们预测。

  我将使用PyCharm和最新版本的Python。我们的目标是查看我们提供的视频的时间戳,创建图像的时间以及Clarifai在视频中分配的标签。

  

设置环境入门

  在我们的终端中,我们首先需要下载Clarifai Python客户端。您只需运行以下pip命令即可实现此目的:

   $ pip install clarifai

  我们将使用JSON响应,因此拥有JSON编辑器或JSON解析模块会很有帮助。就个人而言,我习惯使用这个JSON编辑器来更好地可视化我的数据。但是,如果您希望留在终端中,请安装python json模块:

   $ pip install json

  如果你不熟悉json模块,那么python文档会给你一个很好的概述。

  有了这些细节,请注册Clarifai并获取免费的API密钥。

  

  创建API密钥时,系统会提示您检查您希望获得密钥访问权限的范围。为了我们这个演示,我们将全部选中。我们只关注公共模型的预测输出,因此您也可以选择“预测公共和自定义模型”。范围是一种选择,因为在生产环境中,最佳实践要求仅为每个API密钥选择最小必要范围以最大限度地提高安全性。有关更多详细信息,您可以参考有关范围的本文档。

  

获取您的视频识别代码

  破解您的手指,是时候深入了解代码的内容。 Clarifai真的很容易与他们的工具接口。我们甚至不需要做太多编码。

  现在您需要的只是一些视频,我将使用这个愤怒的懒惰GIF。为了充分利用视频API,请遵循以下准则:

视频应为MP4,MKV,AVI,MOV,OGG或GIF文件格式
您的视频文件应低于80 MB,并且通过URL上传需要10分钟。如果您要发送字节,则每个API调用需要少于10 MB。

  此屏幕截图显示了从Clarifai获取图像预测响应所需的所有样板代码:

  

   import os

  来自clarifai.rest导入ClarifaiApp
来自clarifai.rest导入视频为ClVideo

   api_key = os.environ.get('CLARIFAI_KEY')
app = ClarifaiApp(api_key = api_key)

   model = app.models.get('general-v1.3')
video = ClVideo(url ='https://i.imgur。 com / My6TipU.mp4')
json = model.predict([video])

  我们在上面的代码中做的是:

访问我们的环境变量“CLARIFAI_KEY”,(查看如何设置和获取环境变量)
使用预先训练的General v1.3 Clarifai模型
向Clarifai发送一个视频进行处理(如url)

   {'status':{'code':10000,'description':'Ok'},'outputs':[{'id':'0c0d3b46712d45079b1834b396a7ab02','status':{'code':10000,' description':'Ok'},'created_at':'2018-10-11T02:34:03.483720242Z','model':{'id':'aaa03c23b3724a16a56b629203edc62c','name':'general-v1.3', 'created_at':'2016-03-09T17:11:39.608845Z','app_id':'main','output_info':{'message':'显示output_info with:GET / models / {model_id} / output_info', 'type':'concept','type_ext':'concept'},'model_version':{'id':'aa9ca48295b37401f8af92ad1af0d91d','created_at':'2016-07-13T01:19:12.147644Z','status' :{'代码':21100,'说明':'模型已成功培训'}},'display_name':'常规'},'输入':{'id':'0b8805331ce74281bf0aaac8d4a9f076','数据':{'视频' :{'url':'https://i.imgur.com/My6TipU.mp4'}}},'数据':{'frames':[{'frame_info':{'index':0,'time':0},

  对于大型响应,我喜欢使用JSON编辑器筛选数据显示如下数据:

  

  我们可以解析得到我们需要的东西。例如,它包括以毫秒为单位的时间以及与每个帧相关联的标签。让我们先从帧开始。

  我们感兴趣的树路径是:

   Json&gt;输出&gt; 0>数据&gt;帧

  在Python中检索这些帧值的代码如下所示:

  

   frames = json ['outputs'] [0] ['data'] ['frames']

  接下来,我们将获得为15个图像帧预测的所有标签给了。 Clarifai为每个标签提供了一个置信度分数,因此您可以投入一些逻辑来按预测置信度进行过滤。在我们的例子中,我们希望看到Clarifai得分大于94的所有标签。

  我们将在JSON结果中找到嵌套在“concepts”下的标签:

   json&gt;输出&gt; 0>数据&gt;概念

  在 concepts 数组中,我们有20个对象。将它放在嵌套的for循环中,我们可以迭代地打印出所有标签。

  

  瞧!我们得到每帧的标签,置信度得分大于94:

  这些结果按视频的每秒进行分组,并按置信度分数排列。请注意每秒如何有多个标记。这是因为Clarifai可以检测到多个物体。 Clarifai有一个视频演示,你可以在视频播放时实时看到预测。

  你也可以查看这篇文章的灵感(改编自最初由大联盟黑客的Jeet Gajjar出版的教程),来自HackGT:Framehunt的项目。

  

  

  在现有视频中查看您可以使用此方法获得的内容。或者,使用Clarifai SDK在您的移动应用中构建视频对象识别,并实时为您的应用提供概念!

  

  

教程:使用Clarifai自动视频注释所属专题:注释专题 Clarifai专题 《教程:使用Clarifai自动视频注释》链接:http://www.zhouchuanxiong.net/1294

教程:使用Clarifai自动视频注释相关文章