<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用愛芯派Pro開發板部署人體姿態估計模型

電子發燒友論壇 ? 來源:電子發燒友社區 ? 2024-01-09 09:50 ? 次閱讀

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

01人體姿態估計任務介紹

其實姿態任務識別在很多生活場景都被使用到,這里給大家舉幾個例子:

虛擬主播:大家看到B站直播時的“皮套人”,通常通過一個2D live的形象展示一個動漫形象,然后和主播同步動作。這就是通過攝像頭識別當前主播姿態,再同步到虛擬形象上實現的。

VR游戲:大家可能用過像kinect這樣的設備,用于VR體感游戲。kinect同樣會識別當前用戶的姿態,然后用于VR交互中。

活動識別:通過得到人體姿態后,再通過一個簡單的分類器,可以得到當前的運動狀態,如用戶是否跌倒(可以幫助監控老年人),以及用戶當前身體狀態等。

02人體姿態估計任務技術路線

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

03Openpose/lightweight openpose模型

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

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

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

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

(左右移動查看全部內容)

在其body.py里面可以簡單的寫一段代碼輸出onnx文件觀察網絡結構:

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")

(左右移動查看全部內容)

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

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

04Movenet

除了Openpose外,筆者還有一個選型,就是谷歌的輕量級人體姿態估計模型MoveNet。它是更近的一個輕量級人體姿態估計模型,但是一個缺點是它沒有論文,也沒有官方代碼,雖然有開源的tfjs模型還有tflite模型,但是也只能通過觀察模型結構去反推。

movenent的介紹在這個網站:Next-Generation Pose Detection with MoveNet and TensorFlow.js — The TensorFlow Blog ,通過對其學習,以及利用官方模型轉換到onnx模型,打開到netron網站觀察其結構,可以發現其有四個輸出,分別對應預測人體實例的幾何中、預測人體的全部關鍵點集、 預測所有關鍵點的位置的熱力場、以及預測關鍵點2D偏移場,也就是每個關鍵點精確子像素位置的局部偏移。這與Openpose不同,但是有了更精細話的結果。

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

同樣為了復刻movenet網絡結構,筆者選擇參照如下的項目進行實現。

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

(左右移動查看全部內容)

后續筆者先嘗試將openpose/lightweight openpose部署在板子上,再嘗試對movenent進行進一步的優化。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    27

    文章

    4490

    瀏覽量

    127352
  • 開發板
    +關注

    關注

    25

    文章

    4579

    瀏覽量

    94983
  • 模型
    +關注

    關注

    1

    文章

    2797

    瀏覽量

    47976
  • vr
    vr
    +關注

    關注

    34

    文章

    9570

    瀏覽量

    149021
  • 愛芯派
    +關注

    關注

    0

    文章

    3

    瀏覽量

    34

原文標題:如何用愛芯派 Pro 開發板來部署人體姿態估計模型

文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發燒友論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Pro 開發板試用體驗】+ 圖像分割和填充的Demo測試

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

    Pro 開發板試用體驗】人體姿態估計模型部署前期準備

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

    ?Pro?開發板試用體驗】CPU性能測試,與樹莓4B對比

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

    Pro 開發板試用體驗】人體姿態估計模型部署后期嘗試

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

    Pro 開發板試用體驗】人體姿態估計模型部署后期嘗試

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

    Pro 開發板試用體驗】開箱報告

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

    Pro 開發板試用體驗】+開箱初次體驗

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

    Pro 開發板試用體驗】開箱報告

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

    Pro 開發板試用體驗】開箱報告 + 資料準備

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

    Pro 開發板試用體驗】篇一:開箱篇

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

    Pro 開發板試用體驗】yolov8模型轉換

    嘗試將最新的yolov8模型轉換為模型。 環境準備 準備Docker環境 首先自己在任意機器上準備好docker環境,詳細步驟見官網
    發表于 11-20 12:19

    Pro 開發板試用體驗】開箱測試

    邊緣智能計算的需求。通過內置多種深度學習算法,實現視覺結構化、行為分析、狀態檢測等應用,高效率支持 Transformer 模型和視覺大模型。 打開快遞包裝之后,發現
    發表于 11-20 22:09

    Pro 開發板試用體驗】部署官方YOLOV5模型

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

    Pro 開發板試用體驗】在部署ChatGLM3(一)

    解釋器Code Interpreter 自帶32G eMMC 5.1內存,八核心的處理器 ,內置 AI 算力 43.2TOPS@INT4 或 10.8TOPS@INT8可以加載下
    發表于 12-17 22:54

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

    本系列文章將在 AI 愛克斯開發板上使用 OpenVINO 開發套件依次部署并測評 YOLOv8 的分類模型、目標檢測模型、實例分割
    的頭像 發表于 05-05 11:47 ?682次閱讀
    在AI愛克斯<b class='flag-5'>開發板</b>上用OpenVINO?加速YOLOv8分類<b class='flag-5'>模型</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>