最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

去后廠村開游戲廳吧!基于PP-TinyPose的簡(jiǎn)易體感游戲開發(fā)框架

2023-04-23 12:07 作者:飛槳PaddlePaddle  | 我要投稿

項(xiàng)目簡(jiǎn)介

近年來(lái),隨著虛擬現(xiàn)實(shí)技術(shù)和計(jì)算機(jī)圖形學(xué)技術(shù)的迅猛發(fā)展,越來(lái)越多的體感游戲在市場(chǎng)上出現(xiàn)并受到歡迎。要讓體感游戲具備良好的表現(xiàn),就需要使用大量的傳感器,甚至需要使用高性能的計(jì)算機(jī)和圖形處理器。這不僅會(huì)增加游戲的成本,還會(huì)影響游戲的流暢性和操作體驗(yàn)。因此,如何在不使用傳感器的情況下,實(shí)現(xiàn)高性能的體感游戲開發(fā)成為了一個(gè)頗具難度的問(wèn)題。

為了解決這個(gè)問(wèn)題,本文提出了基于關(guān)鍵點(diǎn)檢測(cè)模型和攝像頭的體感游戲開發(fā)方案。其中,PP-TinyPose 模型是飛槳推出的人體檢測(cè)算法,它可以快速、準(zhǔn)確地檢測(cè)出人體關(guān)鍵點(diǎn),從而實(shí)現(xiàn)人體的實(shí)時(shí)跟蹤和動(dòng)作捕捉。而通過(guò)飛槳推理部署工具 FastDeploy,可以將 PP-TinyPose 模型與推理引擎相結(jié)合,實(shí)現(xiàn)高效的推理部署,從而讓游戲可以在僅使用 USB 攝像頭的情況下,流暢地運(yùn)行在一般電腦上。

當(dāng)前已經(jīng)開發(fā)完畢的小游戲包括:

  • 基于 pp-tinypose 的體感貪吃蛇游戲

https://aistudio.baidu.com/aistudio/projectdetail/4672452

  • 基于 pp-tinypose 的體感飆車避障游戲

https://aistudio.baidu.com/aistudio/projectdetail/5686677

本文綜合了上述項(xiàng)目的開發(fā)經(jīng)驗(yàn),介紹了一個(gè)簡(jiǎn)易的體感游戲開發(fā)框架,可以在該框架的基礎(chǔ)上輕松自制基于攝像頭和關(guān)鍵點(diǎn)檢測(cè)模型的體感小游戲。

  • 源碼鏈接:

Liyulingyue/PaddleGames: Some games based on paddlepaddle (github.com)


項(xiàng)目使用模型及工具

01 PP-TinyPose 模型

PP-TinyPose 模型是飛槳目標(biāo)檢測(cè)套件 PaddleDetection 針對(duì)移動(dòng)端設(shè)備優(yōu)化的實(shí)時(shí)關(guān)鍵點(diǎn)檢測(cè)模型,其可以流暢地在移動(dòng)端設(shè)備上執(zhí)行多人姿態(tài)估計(jì)任務(wù)。結(jié)合輕量化檢測(cè)網(wǎng)絡(luò) PP-PicoDet 能夠快速高效地完成檢測(cè)任務(wù),并應(yīng)用在手機(jī)等計(jì)算能力有限的邊緣設(shè)備上。

  • 詳細(xì)信息:

https://github.com/PaddlePaddle/PaddleDetection


02 FastDeploy 推理部署工具

FastDeploy 是飛槳推出的一款全場(chǎng)景、易用靈活、極致高效的AI推理部署工具,提供大量的開箱即用的部署體驗(yàn)。目前,F(xiàn)astDeploy 支持的模型包括了物體檢測(cè)、字符識(shí)別、NLP、Stable Diffusion 文圖生成等。內(nèi)置的推理后端包含了 TensorRT、OpenVINO 等。

使用 FastDeploy 調(diào)用 PP-TinyPose 的優(yōu)勢(shì):

  • 開箱即用,調(diào)用便捷

通過(guò)下述三行代碼即可完成推理過(guò)程,無(wú)需對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。


  • 推理效率更快

PaddleDetection 倉(cāng)庫(kù)已提供了性能優(yōu)秀的的預(yù)訓(xùn)練模型。在此基礎(chǔ)上, FastDeploy 不僅提供了開箱即用的 API ,對(duì)運(yùn)算過(guò)程進(jìn)行了一定的優(yōu)化,從而提高了模型推理的實(shí)時(shí)性,有利于在線解算。

項(xiàng)目開發(fā)框架

01 基于 PyQt5 的通用簡(jiǎn)易體感游戲開發(fā)框架



一個(gè)簡(jiǎn)單的游戲框架可以沒有任何關(guān)卡,甚至沒有得分,只負(fù)責(zé)游戲的環(huán)境運(yùn)營(yíng)即可。例如貪吃蛇游戲,可以不設(shè)關(guān)卡,一直進(jìn)行,直到蛇的身體充斥整個(gè)屏幕。這個(gè)最簡(jiǎn)單的邏輯結(jié)構(gòu)一共需要準(zhǔn)備兩個(gè)部分的內(nèi)容。

  • 前端

如上圖(右)所示,主要負(fù)責(zé)初始化頁(yè)面信息,周期性地調(diào)用攝像頭數(shù)據(jù),并且推理,將推理結(jié)果傳給后端,并獲取當(dāng)前的游戲畫面。

  • 后端

如上圖(左)所示,可以聲明為一個(gè)類,在游戲開始時(shí)會(huì)創(chuàng)建這個(gè)類,并且周期性地調(diào)用更新函數(shù),根據(jù)關(guān)鍵點(diǎn)信息更新游戲的變量,并且根據(jù)當(dāng)前的游戲數(shù)據(jù),繪制游戲畫面。

這里分開來(lái)表述只是為了后續(xù)維護(hù)方便,實(shí)際上完全可以混在一起。并且上圖的表述更為偏向人而非代碼的邏輯,所以會(huì)和后續(xù)的代碼介紹有些出入。下面分別對(duì)游戲開發(fā)框架的前后端代碼進(jìn)行介紹。

02 前端

前端主要分為兩個(gè)部分:初始化和周期性調(diào)用函數(shù)。

通過(guò) PyQt5 創(chuàng)建前端頁(yè)面,初始化需4個(gè)部分

  • 游戲管理器初始化:用于創(chuàng)建游戲變量

  • 界面初始化:用于定義用于展示的前端頁(yè)面組件

  • 計(jì)時(shí)器初始化:初始一次,就會(huì)周期性調(diào)用指定的函數(shù)

  • 設(shè)備初始化:開啟攝像頭


在周期性調(diào)用函數(shù)中,需要完成以下操作體系

  • 讀取圖片進(jìn)行推理

  • 將推理信息傳遞給游戲管理器

  • 獲取游戲畫面

  • 展示畫面

需要注意的是,這里為了拆解功能,把更新數(shù)據(jù)和展示畫面分開了。代碼如下:



03 后端

后端主要分為兩個(gè)部分,初始化和更新信息。初始化內(nèi)容由游戲信息決定,比如我們當(dāng)前想要寫一個(gè)能夠隨著手部移動(dòng)而移動(dòng)的游戲,則如下所示,只需要定義 self.x、self.y、self.score 用于保存坐標(biāo)點(diǎn)信息和得分即可。

信息更新階段也是隨著游戲內(nèi)容決定的,例如對(duì)于一個(gè)能夠隨著手部移動(dòng)而移動(dòng)的游戲,只需要每個(gè)周期根據(jù)傳入的 keypoints 更新對(duì)應(yīng)的坐標(biāo)值即可。方便起見,可以將功能拆解,例如專門使用一個(gè)函數(shù)繪制畫面或判斷游戲狀態(tài)。例如實(shí)例中,如果坐標(biāo)值超過(guò) 250 即判斷為錯(cuò)誤。


04 運(yùn)行

定義好一切后,只需要在主函數(shù)中啟動(dòng) PyQt5 即可。


基于上述框架,在開發(fā)一個(gè)簡(jiǎn)易的體感小游戲時(shí),只需要在后端代碼中更新所需要邏輯即可,不需要對(duì)前端內(nèi)容進(jìn)行大改。


總結(jié)

本文簡(jiǎn)單介紹如何使用飛槳推理部署工具 FastDeploy 部署飛槳目標(biāo)檢測(cè)套件 PaddleDetection 中的 PP-TinyPose 模型進(jìn)行體感游戲開發(fā),使用的前端框架為 PyQt5 。本文使用的示例較為簡(jiǎn)單,更多示例信息可以參考 Liyulingyue/PaddleGames: Some games based on paddlepaddle (github.com),其中不僅有本文介紹的 demo 的源代碼,還有兩個(gè)基本開發(fā)完畢的小游戲:體感貪吃蛇和體感飆車游戲??梢詤⒖歼@兩個(gè)項(xiàng)目代碼定制化地開發(fā)小游戲~

同樣,也歡迎大家提交代碼到 Liyulingyue/PaddleGames: Some games based on paddlepaddle (github.com),一起改進(jìn)這個(gè) Demo 或者共同開發(fā)出更多有趣的小游戲!


去后廠村開游戲廳吧!基于PP-TinyPose的簡(jiǎn)易體感游戲開發(fā)框架的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
周至县| 九龙坡区| 潼南县| 乃东县| 苍溪县| 深水埗区| 山西省| 临安市| 三河市| 湛江市| 固镇县| 四子王旗| 嫩江县| 新竹县| 庆云县| 桂阳县| 子长县| 隆化县| 康保县| 德阳市| 宝鸡市| 天镇县| 嫩江县| 老河口市| 台北县| 郴州市| 桃园县| 张掖市| 墨玉县| 文昌市| 天津市| 焦作市| 和林格尔县| 平凉市| 潜山县| 萝北县| 忻城县| 湄潭县| 三明市| 麻栗坡县| 贵州省|