0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用愛芯派Pro開發(fā)板部署人體姿態(tài)估計(jì)模型

電子發(fā)燒友論壇 ? 來源:電子發(fā)燒友社區(qū) ? 2024-01-09 09:50 ? 次閱讀

在經(jīng)過之前對于開發(fā)板的使用,以及通過幾個(gè)愛芯派官方給出的示例demo(mobilenet/yolov5)在開發(fā)板上的部署之后,筆者也逐漸了解了愛芯派這塊開發(fā)板利用其官方的推理引擎和pipeline部署模型的整體架構(gòu)。接下來就回到最開始定的主線上了——人體姿態(tài)估計(jì)。這篇文章就是記錄對一些輕量化人體姿態(tài)估計(jì)模型的調(diào)研,和前期準(zhǔn)備。

01人體姿態(tài)估計(jì)任務(wù)介紹

其實(shí)姿態(tài)任務(wù)識(shí)別在很多生活場景都被使用到,這里給大家舉幾個(gè)例子:

虛擬主播:大家看到B站直播時(shí)的“皮套人”,通常通過一個(gè)2D live的形象展示一個(gè)動(dòng)漫形象,然后和主播同步動(dòng)作。這就是通過攝像頭識(shí)別當(dāng)前主播姿態(tài),再同步到虛擬形象上實(shí)現(xiàn)的。

VR游戲:大家可能用過像kinect這樣的設(shè)備,用于VR體感游戲。kinect同樣會(huì)識(shí)別當(dāng)前用戶的姿態(tài),然后用于VR交互中。

活動(dòng)識(shí)別:通過得到人體姿態(tài)后,再通過一個(gè)簡單的分類器,可以得到當(dāng)前的運(yùn)動(dòng)狀態(tài),如用戶是否跌倒(可以幫助監(jiān)控老年人),以及用戶當(dāng)前身體狀態(tài)等。

02人體姿態(tài)估計(jì)任務(wù)技術(shù)路線

其實(shí)人體姿態(tài)估計(jì)任務(wù)已經(jīng)有很久的年頭了,在當(dāng)前也算是很成熟的任務(wù)了。有興趣的朋友可以閱讀下這篇綜述:Deep Learning-Based Human Pose Estimation: A Survey (arxiv.org)。下面簡單的對單人、多人人體姿態(tài)估計(jì)的技術(shù)路線做個(gè)小介紹:

03Openpose/lightweight openpose模型

首先要用到的是Openpose模型,這應(yīng)該是最有名的人體姿態(tài)估計(jì)的模型了,因?yàn)槭鞘讉€(gè)開源的人體姿態(tài)估計(jì)框架。論文如下:1812.08008.pdf (arxiv.org)。如下圖所示,openpose能在多人情況下達(dá)到理想的識(shí)別效果。這里簡單說明一下openpose的原理:openpose就是原來的Bottom-up模型,會(huì)先生成針對關(guān)鍵點(diǎn)的heatmap圖像,來預(yù)測關(guān)鍵點(diǎn)的位置;同時(shí)也會(huì)PAF圖像,也叫做關(guān)節(jié)的親和力場,哪些關(guān)節(jié)的親和力大,那么把它們劃分為同一個(gè)人。比如一個(gè)胳膊對應(yīng)兩個(gè)關(guān)節(jié)點(diǎn)。

Openpose存在的一個(gè)問題便它其實(shí)是于比較大的模型,在GPU上運(yùn)行速度也只是勉強(qiáng)實(shí)時(shí)。為了部署在端側(cè),使用較低算力的設(shè)備,我們需要進(jìn)一步將其輕量化,也就是lightweight openpose項(xiàng)目。這個(gè)主要針對Openpose模型做一些改進(jìn),參數(shù)量下降為15% ,但是性能缺相差無幾(精度降低1%)。這里不細(xì)講了,有興趣的朋友可以看這篇文章:輕量級(jí)OpenPose, Lightweight OpenPose

針對其部署,筆者使用了一些開源的項(xiàng)目后,發(fā)現(xiàn)如下的項(xiàng)目比較好用,就先用其觀察模型的效果:

git clone https://github.com/Hzzone/pytorch-openpose.git

(左右移動(dòng)查看全部內(nèi)容)

在其body.py里面可以簡單的寫一段代碼輸出onnx文件觀察網(wǎng)絡(luò)結(jié)構(gòu):

class Body(object):
  def __init__(self, model_path):
    self.model = bodypose_model()
    if torch.cuda.is_available():
      self.model = self.model.cuda()
    model_dict = util.transfer(self.model, torch.load(model_path))
    self.model.load_state_dict(model_dict)
    self.model.eval()


    dummy_input = torch.randn(1, 3, 368, 368).cuda()
    torch.onnx.export(self.model, dummy_input, "model/openpose_lightweight_body.onnx")

(左右移動(dòng)查看全部內(nèi)容)

Openpose模型最終會(huì)輸出了兩個(gè)特征圖heat_map和paf_map,shape分別為(height,width,19)和(height,width,38),其中width、height分別為輸入圖片的寬高/8,其實(shí)是由于最開始會(huì)通過一個(gè)VGG網(wǎng)絡(luò)提取特征,得到輸入圖片的寬高/8的特征圖。19表示coco數(shù)據(jù)集的關(guān)節(jié)種類個(gè)數(shù)18(即一個(gè)人體的所有關(guān)節(jié)點(diǎn))+1個(gè)背景類別,38表示由這18個(gè)關(guān)節(jié)點(diǎn)構(gòu)成的肢體的部分親和力場(每個(gè)肢體由兩個(gè)關(guān)節(jié)連接組成)。如下圖所示,把導(dǎo)出來的onnx文件放到netron網(wǎng)站可以看到其具體結(jié)構(gòu)。這里可以看到輸出的shape,也方便我們部署的要求。

6a5a0460-ae83-11ee-8b88-92fbcf53809c.png

04Movenet

除了Openpose外,筆者還有一個(gè)選型,就是谷歌的輕量級(jí)人體姿態(tài)估計(jì)模型MoveNet。它是更近的一個(gè)輕量級(jí)人體姿態(tài)估計(jì)模型,但是一個(gè)缺點(diǎn)是它沒有論文,也沒有官方代碼,雖然有開源的tfjs模型還有tflite模型,但是也只能通過觀察模型結(jié)構(gòu)去反推。

movenent的介紹在這個(gè)網(wǎng)站:Next-Generation Pose Detection with MoveNet and TensorFlow.js — The TensorFlow Blog ,通過對其學(xué)習(xí),以及利用官方模型轉(zhuǎn)換到onnx模型,打開到netron網(wǎng)站觀察其結(jié)構(gòu),可以發(fā)現(xiàn)其有四個(gè)輸出,分別對應(yīng)預(yù)測人體實(shí)例的幾何中、預(yù)測人體的全部關(guān)鍵點(diǎn)集、 預(yù)測所有關(guān)鍵點(diǎn)的位置的熱力場、以及預(yù)測關(guān)鍵點(diǎn)2D偏移場,也就是每個(gè)關(guān)鍵點(diǎn)精確子像素位置的局部偏移。這與Openpose不同,但是有了更精細(xì)話的結(jié)果。

6abcab42-ae83-11ee-8b88-92fbcf53809c.png

同樣為了復(fù)刻movenet網(wǎng)絡(luò)結(jié)構(gòu),筆者選擇參照如下的項(xiàng)目進(jìn)行實(shí)現(xiàn)。

git clone https://github.com/fire717/movenet.pytorch.git

(左右移動(dòng)查看全部內(nèi)容)

后續(xù)筆者先嘗試將openpose/lightweight openpose部署在板子上,再嘗試對movenent進(jìn)行進(jìn)一步的優(yōu)化。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4631

    瀏覽量

    128440
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96827
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3058

    瀏覽量

    48571
  • vr
    vr
    +關(guān)注

    關(guān)注

    34

    文章

    9625

    瀏覽量

    149818
  • 愛芯派
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    63

原文標(biāo)題:如何用愛芯派 Pro 開發(fā)板來部署人體姿態(tài)估計(jì)模型

文章出處:【微信號(hào):gh_9b9470648b3c,微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Pro 開發(fā)板試用體驗(yàn)】+ 圖像分割和填充的Demo測試

    感謝電子發(fā)燒友和元智公司提供的測試機(jī)會(huì)。 自從開箱 Pro (AXera-Pi
    發(fā)表于 12-26 11:22

    Pro 開發(fā)板試用體驗(yàn)】人體姿態(tài)估計(jì)模型部署前期準(zhǔn)備

    在經(jīng)過之前對于開發(fā)板的使用,以及通過幾個(gè)官方給出的示例demo(mobilenet/yolov5)在開發(fā)板上的
    發(fā)表于 01-01 01:04

    ?Pro?開發(fā)板試用體驗(yàn)】CPU性能測試,與樹莓4B對比

    coremark源碼下載到Pro上: git clone https://github.com/eembc/coremark.git 下載完成后,可以看到如下文件: 三、Co
    發(fā)表于 01-01 16:36

    Pro 開發(fā)板試用體驗(yàn)】人體姿態(tài)估計(jì)模型部署后期嘗試

    這里主要還是感覺上一期說的一些對于人體姿態(tài)估計(jì)模型的前期調(diào)研,進(jìn)行后期的部署的一些嘗試。下面主要針對嘗試的集中
    發(fā)表于 01-21 00:49

    Pro 開發(fā)板試用體驗(yàn)】人體姿態(tài)估計(jì)模型部署后期嘗試

    這里主要還是感覺上一期說的一些對于人體姿態(tài)估計(jì)模型的前期調(diào)研,進(jìn)行后期的部署的一些嘗試。下面主要針對嘗試的集中
    發(fā)表于 01-22 10:46

    Pro 開發(fā)板試用體驗(yàn)】開箱報(bào)告

    (AI-ISP)。 一、開箱 一個(gè)金屬盒子,上面有“MAIX-BOX-M4N”字樣,有SIPEED設(shè)計(jì)制造。 盒子很漂亮,打開盒子里面分成兩大塊,左邊是AXera-Pi Pro開發(fā)板真身,黑色
    發(fā)表于 11-12 00:31

    Pro 開發(fā)板試用體驗(yàn)】+開箱初次體驗(yàn)

    Pro 開發(fā)板試用體驗(yàn)】+開箱初次體驗(yàn) 開箱內(nèi)容 ? ?打開包裝,你可以看到以下物品 12v 2A電源適配器 typec的數(shù)據(jù)線
    發(fā)表于 11-12 10:58

    Pro 開發(fā)板試用體驗(yàn)】開箱報(bào)告

    開發(fā)板介紹 收到了 Pro (AXera-Pi Pro)
    發(fā)表于 11-13 13:18

    Pro 開發(fā)板試用體驗(yàn)】開箱報(bào)告 + 資料準(zhǔn)備

    很高興獲得了這次試用愛心Pro開發(fā)板的試用資格,之前也有接觸過元智家的AX620開發(fā)板,是
    發(fā)表于 11-14 20:59

    Pro 開發(fā)板試用體驗(yàn)】篇一:開箱篇

    Pro (AXera-Pi Pro)M4N Dock 是一款集成了高算力、高能效 AI SOC 的
    發(fā)表于 11-15 11:32

    Pro 開發(fā)板試用體驗(yàn)】yolov8模型轉(zhuǎn)換

    嘗試將最新的yolov8模型轉(zhuǎn)換為模型。 環(huán)境準(zhǔn)備 準(zhǔn)備Docker環(huán)境 首先自己在任意機(jī)器上準(zhǔn)備好docker環(huán)境,詳細(xì)步驟見官網(wǎng)
    發(fā)表于 11-20 12:19

    Pro 開發(fā)板試用體驗(yàn)】開箱測試

    邊緣智能計(jì)算的需求。通過內(nèi)置多種深度學(xué)習(xí)算法,實(shí)現(xiàn)視覺結(jié)構(gòu)化、行為分析、狀態(tài)檢測等應(yīng)用,高效率支持 Transformer 模型和視覺大模型。 打開快遞包裝之后,發(fā)現(xiàn)
    發(fā)表于 11-20 22:09

    Pro 開發(fā)板試用體驗(yàn)】模型部署(以mobilenetV2為例)

    ) 系列 AXera-Pi 開發(fā)板 - Sipeed Wiki 在docker里面,根據(jù)這個(gè)指令進(jìn)行轉(zhuǎn)換: pulsar2 build --input model
    發(fā)表于 12-10 16:34

    Pro 開發(fā)板試用體驗(yàn)】部署官方Y(jié)OLOV5模型

    繼上文開箱后,本文主要依托元智官方的實(shí)例,進(jìn)行官方Y(jié)OLOV5模型部署和測試。 一、環(huán)境搭建 由于8核A55的SoC,加上目前Debian OS的工具齊全,所以決定直接在
    發(fā)表于 12-12 22:58

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

    本系列文章將在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件依次部署并測評(píng) YOLOv8 的分類模型、目標(biāo)檢測模型、實(shí)例分割
    的頭像 發(fā)表于 05-05 11:47 ?972次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)板</b>上用OpenVINO?加速YOLOv8分類<b class='flag-5'>模型</b>