华为云ModelBox实战:体感小游戏应用实操

2024-02-11 23:12

本文主要是介绍华为云ModelBox实战:体感小游戏应用实操,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、VsCode插件注册ModelBox设备
  • 二、Windows SDK安装
    • 1.安装Git for Windows
    • 2.下载ModelBox SDK
    • 3.相关插件安装
  • 三、体感小游戏应用开发
    • 1.技能模板使用
    • 2.AI应用示例
    • 3.体感小游戏体验

参与华为云活动【HCSD】ModelBox实战营邀请活动,呼朋唤友学AIoT,完成体感小游戏体验。

以及ModelBox端边云AI应用开发框架交流专区。

ModelBox是高性能、高扩展、易用的端云协同AI应用开发框架,帮助开发者快速完成AI应用开发和部署到端边云设备上,30分钟完成AI应用开发,同时可以增加推理的数据吞吐量,降低AI分析耗时!

以人体关键点检测案例为例,使用原生的ONNXRuntime API做开发,可以达到36fps;而ModelBox版本(推理框架同样是ONNXRuntime),则达到了79fps,大大提升了分析速率,详细的分析过程可参考ModelBox推理真的高效吗一文。

简易Flappy Bird游戏,ModelBox体感小游戏:玩家通过上下摆动双臂做出“扇动翅膀”的动作,阻止小鸟下落,躲避画面中的“狼柱”;如果小鸟不小心碰到了“狼”或者触碰到画面边缘,游戏停止,然后会重新开始。画面左上方显示的是玩家存活的时长。

一、VsCode插件注册ModelBox设备

安装VsCode,VS Code官网下载安装Windows x64版本的编辑器,也可以参考Visual Studio Code 安装教程,打开VsCode,搜索并安装ModelBox管理插件

在这里插入图片描述

安装完成后,点击插件,进入华为云登录界面,获取访问密钥

在这里插入图片描述

在这里插入图片描述

新增访问密钥,确认后将下载的表格文件中AK/SK,输入访问密钥登录

在这里插入图片描述

登录后,右键ModelBox的本地设备,选择注册此设备,即可注册完成

在这里插入图片描述

二、Windows SDK安装

1.安装Git for Windows

ModelBox中有些脚本的执行依赖bash,使用Git bash也可以让开发者在Windows上获得与Linux相同的执行环境,因此需要安装Git for Windows,根据以下步骤安装即可

在这里插入图片描述

安装时注意勾选关联sh文件的默认应用为Git for Windows,即Associate .sh files to be run with Bash其他按照默认点击即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.下载ModelBox SDK

在HiLens管理控制台,选择专业版,同意协议后,再选择技能开发-工具/插件板块下载Windows系列的ModelBox SDK

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新建一个用于ModelBox开发的文件夹(注意路径中不能有中文和空格),将下载的SDK压缩包解压到该路径

在这里插入图片描述

使用VSCode打开该文件夹

在这里插入图片描述

ModelBox SDK的目录结构,modelbox-win10-x64文件夹即为ModelBox核心库,包含ModelBox运行环境、内置的功能单元等,SDK中已经包含了Python运行环境python-embed目录,AI应用常用的OpenCV、NumPy等三方库也已经内置,开发者无需手动安装

在这里插入图片描述

3.相关插件安装

相关插件安装用于提高开发效率

Python:后面教程会涉及到ModelBox的Python功能单元开发,可以进行语法高亮、自动补全、代码跳转等

在这里插入图片描述

Even Better TOML:ModelBox中的流程图、配置文件等使用 TOML 语法编写,可以进行语法检查、关键字高亮、文件排版等

在这里插入图片描述

三、体感小游戏应用开发

1.技能模板使用

新建终端:打开VSCode,点击终端-新建终端,在下方会出现一个新终端

在这里插入图片描述

ModelBox技能模板:ModelBox中存在口罩检测、手势检测、人体姿态识别等AI技能模板,存放在华为云OBS中

在ModelBox SDK中提供了一个solution.bat工具,用于下载云侧的技能模板,执行.\solution.bat -l可看到当前已有的技能模板,如果是第一次执行solution.bat工具,会先去下载安装相关的obs工具

.\solution.bat -l

在这里插入图片描述
安装完成后再执行一次.\solution.bat -l,就可以看到技能模板了

在这里插入图片描述

2.AI应用示例

创建工程:ModelBox SDK中提供了create.bat工具,用于创建ModelBox工程、创建功能单元、工程打包等

执行.\create.bat可看到辅助工具的用法介绍

.\create.bat

在这里插入图片描述

执行以下命令可以创建车辆检测技能

.\create.bat -t server -n car_det -s car_det

在这里插入图片描述

创建好的工程结构如下

在这里插入图片描述

运行应用:车辆检测技能默认会打开工程中的测试视频(data/car_test_video.mp4),检测画面中的车辆,将车辆画框再输出到另一个视频文件中

进入到车辆检测工程目录,然后执行命令启动应用

cd .\workspace\car_det\
.\bin\main.bat

在这里插入图片描述

看到Task SUCCEEDED、请按任意键继续等字样,即表示应用运行完毕

在这里插入图片描述

在hilens_data_dir目录下生成了car_test_result.mp4文件,用播放器打开将看到车辆检测效果

在这里插入图片描述

至此,ModelBox开发环境已准备完毕,可以进行AI应用开发了

3.体感小游戏体验

体感小游戏对应的ModelBox版本已经做成模板放在华为云OBS中,可以用SDK中的solution.bat工具下载

下载模板:执行.\solution.bat -l查看当前公开的技能模板

.\solution.bat -l

在这里插入图片描述

pose_game_flappy_bird为体感小游戏应用模板,下载模板

.\solution.bat -s pose_game_flappy_bird

solution.bat工具的参数中,-l 代表list,即列出当前已有的模板名称;-s 代表solution-name,即下载对应名称的模板,下载下来的模板资源,将存放在ModelBox核心库的solution目录下

在这里插入图片描述

创建工程:在ModelBox SDK目录下使用create.bat创建flappy_bird工程

.\create.bat -t server -n flappy_bird -s pose_game_flappy_bird

create.bat工具的参数中,-t 表示创建事务的类别,包括工程(server)、Python功能单元(Python)、推理功能单元(infer)等;-n 代表name,即创建事务的名称;-s 代表solution-name,表示将使用后面参数值代表的模板创建工程,而不是创建空的工程

在这里插入图片描述

运行应用:打开工程目录下bin/mock_task.toml文件,修改其中的任务输入和任务输出配置为如下内容

即使用编号为0的摄像头(默认为PC自带的摄像头),输出画面显示到名为pose_game的本地屏幕窗口中

[input]
type = "url"
url = "0"  # 表示0号摄像头,即PC自带摄像头,若PC无摄像头需外接USB摄像头[output]
type = "local"
url = "0:pose_game"  # 表示名为```pose_game```的本地窗口

在这里插入图片描述

进入到应用目录,执行.\bin\main.bat运行应用开始游戏

cd .\workspace\flappy_bird\
.\bin\main.bat

在这里插入图片描述

在这里插入图片描述
如果需要终止游戏,打开任务管理器,结束进程即可,然后返回终端停止

在这里插入图片描述

更多有关体感小游戏应用的介绍可以参考:ModelBox开发案例 - 体感小游戏

这篇关于华为云ModelBox实战:体感小游戏应用实操的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701076

相关文章

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像