手把手教你在Modelarts平台上进行视频推理 - InfoQ 写作平台
source link: https://xie.infoq.cn/article/10b72ce5d2d327b78c3f1ba20?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
手把手教你在 Modelarts 平台上进行视频推理
摘要:为了方便小伙伴们进行视频场景的 AI 应用开发,Modelarts 推理平台将视频推理场景中一些通用的流程抽取出来预置在基础镜像中,小伙伴们只需要简单地编写预处理及后处理脚本,便可以像开发图片类型的 AI 服务一样开发视频类型的 AI 服务了。
本文分享自华为云社区《在Modelarts平台上进行视频推理》,原文作者:HW007。
熟悉 Modelarts 推理的小伙伴都知道,在 Modelarts 平台上可以通过简单地定制模型的预处理、推理及后处理脚本,就可以轻松的部署一个 AI 服务,对图片、文本、音视频等输入进行推理。但是对于视频类型的推理,之前需要用户在自己的脚本中进行视频文件下载、视频解码、并自己将处理后的文件传到 OBS 中。为了方便小伙伴们进行视频场景的 AI 应用开发,Modelarts 推理平台将视频推理场景中一些通用的流程抽取出来预置在基础镜像中,小伙伴们只需要简单地编写预处理及后处理脚本,便可以像开发图片类型的 AI 服务一样开发视频类型的 AI 服务了。
一、总体设计说明
提取视频场景的通用推理流程如下:
如上图,视频处理场景的流程可分为“视频源输入”、“视频解码”、“预处理”、“模型推理”、“后处理”、“推理结果输出”六个部分。其中“视频源输入”、“视频解码”、“推理结果输出”三个灰色的部分 Modelarts 已经提前准备好。“预处理”、“模型推理”、“后处理”三个部分可由用户自由定制,具体定制方法如下:
1)定制模型:Modelarts 已经提供好模型加载的方法,用户只需要将自己“saved_model”格式的模型放置到指定的 model 目录即可。
2)定制预处理:Modelarts 会将解码后的视频帧数据提供给用户,用户只需通过重写“customize_service.py”中“VideoService”类的静态方法“_preprocess”便好,“_preprocess”函数的入参以及对出参的约束如下:
3)定制后处理:Modelarts 会将模型推理后的输出及解码后的视频帧数据提供给用户,用户只需通过重写“customize_service.py”中“VideoService”类的静态方法“_postprocess”便好,“_postprocess”函数的入参以及对出参的约束如下:
二、Demo 体验
1)下载本文附件,如下图,附件提供了一个已调试 OK 的视频推理模型包“model”文件夹,同时也提供了基于 tox 框架写好的验证用例,供用户线下调试自己模型包是否 OK。
2)将附件包中的“model”文件夹传到华为云 OBS 中。
将附件包中的“test/test_data/input”、“test/test_data/output”文件夹放到华为云 OBS 与之前“model”文件夹放置同级的目录下。
3)导入模型:在 Modelarts 导入模型界面,选择从 OBS 导入,选择刚才传到 OBS 中的 model 目录。如下图所示:
按下面操作配置好模型的各个配置后点击创建模型:
可以看到模型创建成功:
4).部署服务,将上述模型部署为在线服务,部署中要选择有 GPU 的资源节点(公共池和专属池都可以):
可以看到服务已经部署成功:
5)创建作业:在服务界面选择创建作业
选择输入视频,选到步骤 2)中上传到 OBS 中的 input 文件夹中的视频文件如下:
选择输出路径,选到步骤 2)中上传到 OBS 中的 output 文件夹如下:
6)等待视频处理完成:
查看 OBS 中的 output 文件夹,可看到视频已被拆成图片后的推理结果了。
7)用户根据自己需要,更换 model 文件夹下的“saved_model”格式的模型文件,并修改“customize_service.py”中的“_preprocess”和“_postprocess”函数来完成自己的业务逻辑。修改完后可以先运行“test/run_test.sh”来提前验证下修改后的模型包是否能正常推理,待线下调试好,可正常推理后再按上述步骤将模型包提交到 OBS 中部署成 Modelarts 服务。
其中,视频推理的模型包要求如下:
模型包结构要求:
└── model
├── config.json (必须,Modelarts 推理相关的配置文件)
├── customize_service.py (必须,推理文件)
├── saved_model.pb (必须,SavedModel 格式的模型文件)
└── variables (必须,SavedModel 格式的模型文件)
├── variables.data-00000-of-00001
└── variables.index
其中 config.json 文件的格式遵循 Modelarts 的规范,https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0092.html
目前,只有 tensorflow 的“tf1.13-python3.7-gpu-async”runtime 支持视频推理,即 config.json 文件中的"model_type"字段必须为"TensorFlow", "runtime"字段必须为 "tf1.13-python3.7-gpu-async"。
“customize_service.py”文中必须有一个“VideoService”类,“VideoService”类必须有两个静态方法“_preprocess”和“_postprocess”,相应的函数签名约束如下:
Recommend
-
18
如今,部署一个三层(表示层、业务逻辑和存储)架构应用程序可能会有些棘手。假设我们有一个简单的 Django 应用程序,即本教程中的 民意投票 应用程序。它在我们的本地计算...
-
23
虽然人工智能浪潮已经热火朝天地进行了若干年,但对于很多企业来说,机器学习依然很遥远,听起来既昂贵,又困难,还需要大量高科技人才。不过目前这个复杂的领域有一个趋势:一切皆服务(everything-as-a-service)——无需太多投资,即可快...
-
46
README.md ModelArts-Lab 此库是AI开发者交流和学习平台,所有案例、样例代码是基于业界领先的AI开发平台ModelArts设计,帮助AI开发者快速掌握人工智能...
-
23
ModelArts 3.0核心技术全线升级,这也意味着华为云将进一步降低AI开发门槛,加速在行业应用中的落地,助力千行百业迎接智能化未来。
-
21
摘要: 嘘,华为云内部都不知道的秘密玩法,我悄悄告诉您! 双"魔"合璧庆双节 ↑开局一张图,故事全...
-
3
摘要: 华为云AI开发平台ModelArts黑科技加持AI研发,让模型开发更高效、更简单,降低AI在行业的落地门槛。全面的可视化评估以及智能诊断功能,使得开发者可以直观了解模型各方面性能,从而进行针对性的调优。
-
0
Table of Contents我们利用PPO算法来玩“Super Mario Bros”(超级马里奥兄弟)。目前来看,对于绝大部分关卡,智能体都可以在1500个episode内学会过关。 二.PPO算法的基本结构 PPO算法有两种主要形式:PPO-Penalty和PPO-Cli...
-
26
Matrix 精选 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 文章代表作者个人观点,少数派仅对标...
-
103
本文约2300字,建议阅读8分钟。 本文将详细介绍文本分类问题并用Python实现这个过程。 引言 文本分类是商业问题中常见的自然语言处理任务,目标是自动将文本文件分到一个或多个已定义好的类别中。文本分类的一些例…
-
37
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK