<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 進(jìn)階指南 > 用OpenVINO自制簡(jiǎn)易控制系統

用OpenVINO自制簡(jiǎn)易控制系統

作者: 時(shí)間:2020-09-18 來(lái)源: 收藏

  2006 年 11 月任天堂推出新一代電玩主機「Wii」,同時(shí)搭配具有「重力傳感器(或稱(chēng)線(xiàn)性加速度計)」的游戲桿,讓玩電動(dòng)不再只有香菇頭和按鍵,而是可以透過(guò)揮動(dòng)手把來(lái)體驗更仿真的運動(dòng)類(lèi)游戲,如網(wǎng)球、桌球等,從此開(kāi)啟「體感游戲」新世代。
  雖然后續有更多廠(chǎng)商加入,甚至加入了陀螺儀(或稱(chēng)角加速度器)來(lái)偵測手把轉動(dòng)角度、速度,還有利用地磁傳感器來(lái)感知玩家面對的方向使得體感游戲更加逼真,但玩家對于手上握著(zhù)的那個(gè)手把仍感到有些累贅。
  2010 年 11 月微軟為了挽救Xbox360 的銷(xiāo)售業(yè)績(jì)推出了「Kinect」,這項劃時(shí)代的產(chǎn)品讓玩家從此拋開(kāi)手把,只需擺動(dòng)肢體就能操作游戲中的虛擬人物或對象。這項技術(shù)主要結合了一個(gè)紅外線(xiàn)雷射發(fā)射器(產(chǎn)生光斑)、一個(gè)紅外線(xiàn)攝影機及一個(gè)普通的彩色攝影機,經(jīng)過(guò)復雜計算后就能得出場(chǎng)景中各項對象的深度(距離)信息,進(jìn)而分析出玩家的骨架(頭、手、腳)位置及姿勢,如此即可精準控制游戲的進(jìn)行。
  也正因有這項便宜又好用的工具誕生,且可同時(shí)偵測多人(最多六人)的動(dòng)作,所以有更多的互動(dòng)游戲及應用裝置產(chǎn)生。雖然后來(lái)微軟及其它廠(chǎng)商陸續推出改良產(chǎn)品,并將市場(chǎng)延伸至簡(jiǎn)易型 3D 對象及室內環(huán)境掃描用途,隨著(zhù)風(fēng)潮淡去,2017 年微軟已正式停止生產(chǎn)這項產(chǎn)品。
  好姨說(shuō):「為什么?為什么?為什么讓我用到一套這么好用的體感互動(dòng)工具,以后我用不到怎么辦?」(星爺食神經(jīng)典橋段)。各位看倌請不用擔心,我幫大家找到了一個(gè)解決方案,只要用使用一組網(wǎng)絡(luò )攝影機加上 Intel 的 ?開(kāi)源軟件套件包中的 human-pose-estimation 預訓練模型就可以辦到了。
  星爺說(shuō):「只要有 ?,人人都可是互動(dòng)之神」。對!你沒(méi)聽(tīng)錯,連 Kinect 這樣的深度傳感器都不用,不管你是用 CPU、GPU、VPU(神經(jīng)運算棒)都可以一次搞定。

本文引用地址:http://dyxdggzs.com/article/202009/418494.htm


1600398850534869.jpg

人體姿態(tài)定義
  當然以上是比較搞笑的說(shuō)法,以 2D 人體姿態(tài)估測是無(wú)法完全取代像 Kinect 這類(lèi)深度傳感器所產(chǎn)生的 3D 骨架(skeleton)分析,不過(guò)對大多數的姿態(tài)估測及互動(dòng)應用應該還是游刃有余的,接下來(lái)就先幫大家說(shuō)明一下什么是 2D 姿態(tài)估測及如何應用。
  一般來(lái)說(shuō)人的姿態(tài)是包括 3D(上下左右前后)位置信息,但被拍成 2D 照片或視頻后,自然失去深度(前后位置)信息,所以?xún)H能就人的肢體重要關(guān)節(關(guān)鍵)點(diǎn)位置進(jìn)行分析,進(jìn)而建立人體骨架及姿態(tài)。
  目前最常見(jiàn)的 2D 姿態(tài)估測關(guān)鍵點(diǎn)開(kāi)放數據集包括微軟 COCO(17點(diǎn)),CMU OpenPose(18/25點(diǎn)),MPII(16點(diǎn)),AI Challenge(14點(diǎn)),LSP(14點(diǎn)),FLIC(9點(diǎn)),本次要使用的為卡內基梅隆大學(xué)(CMU)感知計算實(shí)驗室所開(kāi)源的 OpenPose 18 點(diǎn)骨架數據格式(如下圖a)。除此之外這個(gè)數據集還提供另三種輸出格式,用于表示人體骨架(25點(diǎn))、臉部動(dòng)作(70點(diǎn))及手部動(dòng)作(22點(diǎn)),如下圖所示。

1600398850767012.jpg

  OpenPose支持輸出格式,(a)類(lèi)COCO 18點(diǎn),(b) BODY 25點(diǎn),(c) 臉部70點(diǎn),(d)手部22點(diǎn)
  此次會(huì )用到的 OpenPose 18 關(guān)鍵點(diǎn)格式和常用的微軟 COCO 17 關(guān)鍵點(diǎn)格式非常相似,最主要差別是編號序順不同及 OpenPose 多了脖子點(diǎn)作人體中心點(diǎn)。如有需要相互轉換時(shí),可自行轉換。
MS COCO:(17點(diǎn))
  0:鼻子、1:左眼、2:右眼、3:左耳、4:右耳、5:左肩、6:右肩、7:左肘、8:右肘、9:左腕、10:右腕、11:左臀(腰)、12:右臀(腰)、13:左膝、14:右膝、15:左踝、16:右踝。
  CMU OpenPose:(18點(diǎn))(如上圖a)
  0:鼻子、1:脖子、2:右肩、3:右肘、4:右腕、5:左肩、6:左肘、7:左腕、8:右臀(腰)、9:右膝、10:右踝、11:左臀(腰)、12:左膝、13:左踝、14:左眼、15:右眼、16:左耳、17:右耳。
人體姿態(tài)估測實(shí)作
  接下來(lái)開(kāi)始說(shuō)明如何使用 Intel ?結合 OpenPose 預訓練模型「human-pose-estimation-0001」來(lái)完成「簡(jiǎn)易體感控制系統」。這里還是使用Win 10 搭配 OpenVINO? 2019 R2 環(huán)境執行,如果需要在 Linux 環(huán)境開(kāi)發(fā)的,請自行參考官網(wǎng)提供安裝程序。
  首先利用 OpenVINO?工具包的下載工具下載預訓練好的模型「human-pose-estimation-0001」,更進(jìn)一步說(shuō)明及使用方法可參考官方文件。
  https://docs.openvinotoolkit.org/latest/_demos_human_pose_estimation_demo_README.html
  /* 切換至下載工具路徑 */
  cdC:Program Files(x86)IntelSWToolsopenvino_2019.2.242deployment_toolstoolsmodel_downloader
  /*下載預訓練模型到指定路徑 */
  python3 downloader.py --namehuman-pose-estimation-0001 --output_dir 指定路徑名稱(chēng)
  完成下載后,會(huì )在指定路徑下得到三種格式(INT8、FP16、FP32)已優(yōu)化過(guò) IR 中介檔(bin、xml),可直接給 OpenVINO?的推論引擎(Inference Engine)使用,不須再進(jìn)行模型優(yōu)化器(Model Optimizer)動(dòng)作,其檔案存放路徑結構如下所示。
  /* 下載至指定路徑下的優(yōu)化模型中介文件存放路徑*/
  指定路徑名稱(chēng)
  Transportation
  human_pose_estimation
  mobilenet-v1
  dldt
  INT8
  human-pose-estimation-0001.bin (16MB)
  human-pose-estimation-0001.xml (597KB)
  FP16
  human-pose-estimation-0001.bin (8MB)
  human-pose-estimation-0001.xm (65KB)
  FP32
  human-pose-estimation-0001.bin (16MB)
  human-pose-estimation-0001.xm (66KB)
  由于 OpenVINO?在運作時(shí)要引用很多路徑,所以執行編譯及執行前要先設定工作環(huán)境,只需依下列指令操作即可完成工作環(huán)境設定。
  /* 切換至設定工作環(huán)境路徑 */
  cd C:Program Files(x86)IntelSWToolsopenvino_2019.2.242bin
  /* 執行設定環(huán)境變量批處理文件 */
  setupvars
  目前 OpenVINO?提供的范例原始碼默認會(huì )在下列路徑:
  /* 范例程序原始碼路徑 */
  C:Program Files(x86)IntelSWToolsopenvino_2019.2.242deployment_toolsinference_enginedemoshuman_pose_estimation_demo
  本范例為 C++ 程序,這里使用 Visual Studio 2017 進(jìn)行編譯,默認所有展示用的程序范例項目文件 Demos.sln 會(huì )在下面路徑。
  /* 范例程序Visual Studio項目文件路徑 */
  C:Users使用者名稱(chēng)DocumentsIntelOpenVINOinference_engine_demos_build
  本項目中共包含 22 個(gè)子項目,而 human_pose_estimation_demo 即為本次范例。如果想要修改內容時(shí),記得以系統管理員身份執行 VS2017,以免因范例程序在 C:Program Files (x86) 下而無(wú)法直接編輯。如想直接使用,那進(jìn)行重建(編譯)后即可得到執行檔 human_pose_estimation_demo.exe,默認會(huì )生成在下面路徑。
  /* 執行文件生成路徑 */
  C:Users使用者名稱(chēng)DocumentsIntelOpenVINOinference_engine_demos_buildintel64Release
  /* 執行檔操作命令 */
  human_pose_estimation_demo -i 輸入影片文件名 -m 模型優(yōu)化中介文件.xml-d 運算裝置名稱(chēng)
  參數說(shuō)明:
  -i 輸入影像方式
  目前這個(gè)范例可支持二種視頻輸入方式,一種是直接從網(wǎng)絡(luò )攝影機,直接設定 -i cam 即可,預設為第 0 號攝影機。另一種為從視頻檔案輸入,由于底層是利用 OpenCV 的 VideoCapture 讀取視頻影像,所以目前能支持的視頻格式不多,主要是以 *.avi, *.mp4 為主,可設定 -i xxx.mp4。
  -m 模型優(yōu)化中介文件 .xml 所在路徑
  一般來(lái)說(shuō)推論計算數值精度可分為 FP32、FP16 及 INT8,而所需運算時(shí)間也隨精度降低(推論速度提升),但通常推論正確率也會(huì )隨之略減。運算時(shí) CPU 及 GPU 三種精度都可使用,但 VPU(神經(jīng)運算棒 NCS1、NCS2)則能選擇 FP16 格式運行,要特別注意不要選錯。設定時(shí)如 -m 用戶(hù)指定路徑Transportationhuman_pose_estimationmobilenet-v1dldtFP16human-pose-estimation-0001.xml。
  -d 運算裝置名稱(chēng)
  可設為 CPU、GPU 和 MYRIAD,而 MYRIAD 就是 VPU,或稱(chēng)神經(jīng)運算棒,不管是 NCS 一代或二代皆設為 MYRIAD 即可,例如 -d MYRIAD。如果執行時(shí)未插入神經(jīng)運算棒至 USB,則程序會(huì )直接中斷。
  實(shí)驗結果
  接下來(lái)我們就測試一下這個(gè)范例帶來(lái)的效果。這里使用四種測試裝置,分別是:
  1.CPU:Intel i7-8950 8GBRAM
  2.GPU:Intel UHD Graphics630
  3.NCS1:Movidius (Intel)Neural Compute Stick(一代)
  4.NCS2:Intel Neural ComputeStick 2(二代)
  首先以視頻影像做為輸入進(jìn)行測試,分別測試不同裝置在不同精度下指令周期及人體姿態(tài)估測結果。為方便大家測試,我們直接從 YOUTUBE 下載了一段微軟 Kinect Dance 的測試影片(1280×720 30fps),
  https://youtu.be/Y-iKWe-U9bY
  并抽取其中五小段作為此次測試及比較依據,相關(guān)影片可直接到 GITHUB 下載。
  https://github.com/OmniXRI/OpenVINO_human-pose-estimation
  這里利用其中一小段影片測試,結果如下圖所示。大致上可看出姿態(tài)估測部份幾乎沒(méi)差,主要差異在指令周期,這里使用 FPS(每秒多少影格)作為單位,數值越高表示反應速度越快。若能達到 30 FPS 以上則已達一般影片播放速度,滿(mǎn)足實(shí)時(shí)處理的需求。

1600398850753580.jpg

  從這些測試結果來(lái)看,目前在 CPU 部份,FP32 及 FP16 指令周期差別不大,表示 CPU 在處理浮點(diǎn)數上并沒(méi)有充份利用硬件特性(可能是軟件函式庫造成),但運算數值精度降至 INT8 時(shí),指令周期明顯提升快一倍。
  而 GPU 部份,可以看出在浮點(diǎn)數計算上明顯有差異,所以 FP16 指令周期較 FP32 快了約 50%。奇怪的是 INT8 竟然和 FP32 接近,這是因為 GPU 本來(lái)就不支持整數運算,所以應該是函式庫自動(dòng)把整數轉成 FP32 計算造成的結果。
  再來(lái)是神經(jīng)運算棒部份,NCS2 在硬件規格上優(yōu)于 NCS1,所以理所當然指令周期較快,快了約兩倍。
  再來(lái)測試不同影片內容指令周期差異,為方便測試起見(jiàn),這里統一使用 GPU FP16 的條件來(lái)對五小段影片進(jìn)行測試,這五段影片有單人、多人、動(dòng)作簡(jiǎn)單、大幅動(dòng)作、輕微遮蔽及嚴重遮蔽。測試后發(fā)覺(jué)準確度極高,只有在嚴重遮蔽或移動(dòng)速度過(guò)快(影像局部模糊)時(shí)會(huì )有些失誤,大體上來(lái)看是非常不錯的。不同影像內容在計算速度上會(huì )有些許差異,如下圖所示。
  這里發(fā)現一個(gè)有趣的地方,就是影片長(cháng)度較長(cháng)(影格數較多)的,其指令周期會(huì )越來(lái)越快,不知是否是因影片被緩沖進(jìn)內存中,所以減少一些訪(fǎng)問(wèn)時(shí)間?
  不同視頻指令周期比較

1600398851253267.jpg

  實(shí)際結果如下

1600398851162522.jpg

1600398851723662.jpg

1600398508592116.gif

1600398851474755.jpg

1600398851303500.jpg

  最后是測試網(wǎng)絡(luò )攝影機,這里使用 800×600 的分辨率,分別以 CPU 及 GPU 進(jìn)行測試,測試時(shí)故意擺了一樣的姿勢方便比較運算差異。這里的指令周期明顯比前面測試快了許多,主要原因是輸入視頻解析圖下降。測試時(shí)雖然只有半身,但還是可以很正確判斷出來(lái),由此得知這個(gè)預訓練好的模型真的很不錯。

1600398851807040.jpg

  寫(xiě)到這里大家應該已經(jīng)可以充份感受到 OpenPose 的威力了,只需 OpenVINO?加上一臺網(wǎng)絡(luò )攝影機就能搞定「簡(jiǎn)易體感控制系統」。雖然目前看起來(lái)指令周期似乎有點(diǎn)慢,但對于簡(jiǎn)單型的應用已綽綽有余,只要善用圖像上所提取到的關(guān)節點(diǎn)坐標,就可輕松開(kāi)發(fā)體感游戲及各種人機互動(dòng)應用了。如果想要更深入了解的朋友,可自行研讀范例源碼。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>