開發教程 | 基于ModelArts與HiLens端云協同開發行人檢測與跟蹤方案

      網友投稿 744 2022-05-29

      2020/11/14更新

      目前HiLens Studio(Beta)支持安裝第三方庫了(開發團隊真是給力,這么快就做好了),在HiLens Studio(Beta)新建Terminal,執行

      pip?install?--user?scipy

      即可完成scipy的安裝,注意安裝后會報一個錯誤,但實測發現不影響本次使用,大家可以放心使用。

      之后,我們按照下面的教程直接在HiLens Studio(Beta)中就能看到最終效果了,太棒了。

      目的

      基于ModelArts與HiLens實現端云協同開發行人檢測與跟蹤方案:

      在ModelArts上完成數據集的標注與發布,使用AI市場算法進行訓練,訓練資源可選Ascend 910或GPU;

      在HiLens Studio (Beta)中轉換模型,調試代碼,實現行人檢測與跟蹤以及簡單人數統計;

      整體開發在華為云上完成,從零開始,由ModelArts無縫集成到HiLens,最終可部署到HiLens上,獨立運行。考慮有些同學可能沒有HiLens,那么可以在HiLens studio里運行程序,但由于HiLens Studio中暫不支持安裝第三方庫,所以僅能支持實現檢測部分功能。

      注意事項(必看):

      1. 如果部署到自己的HiLens上運行,請先在自己的HiLens上安裝scipy。安裝可參考如下教程:

      https://bbs.huaweicloud.com/forum/thread-62722-1-1.html

      https://bbs.huaweicloud.com/forum/thread-61868-1-1.html

      https://bbs.huaweicloud.com/forum/thread-81238-1-1.html

      2. 整體開發過程基本免費,訓練使用的是Ascend 910,目前也是免費使用的。但涉及OBS和HiLens Stduio(Beta)的使用,會產生少量費用,請注意個人余額,避免欠費。

      3. 請提前申請HiLens Studio公測(如未申請,可采用舊版本開發模式,但操作稍麻煩一些)

      公測申請鏈接:https://www.huaweicloud.com/product/hilens/hilens-studio.html

      ModelArts上的準備工作

      1. 準備數據集

      這里就要說一下ModelArts AI 市場的數據集功能了,可以很方便地實現數據集的共享,不需要開發者自行下載,再上傳到OBS桶等一系列復雜操作了,非常棒。

      我已經將數據集發布到ModelArts的AI市場的數據集,大家訂閱下載使用即可。數據集名稱為person-4192,包括標注好了的4192張Person圖片。注意這里最好選擇保存數據集到OBS桶,之后的操作就和自己導入數據集到ModelArts一樣了,來,有圖有真相。

      數據集備用鏈接為:https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=3d67fd03-2e16-4c70-908f-feb8f50334b9

      已經啟動下載了,在“個人中心”的“數據集”下的“我的下載”中可以看到目前的下載進度。

      我的下載備用鏈接:https://console.huaweicloud.com/modelarts/?region=cn-north-4#/aiMarket/deliverCenter/myDownload

      當進度達到100%的時候,我們就可以導入數據集到ModelArts了。來ModelArt管理控制臺,來創建數據集吧。

      ModelArts管理控制臺備用鏈接:https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dataset

      數據集導入需要一定時間,請耐心等待,導入完成后,顯示100%,點擊數據集進入,開始發布數據集,以便訓練使用。

      發布數據集需要一點時間,稍等即可。

      2. 訂閱算法,創建訓練

      我們使用的是ModelArts AI市場的YOLOv3_Resnet18算法(Ascend 910訓練版本),點擊訂閱,即可免費訂閱使用。

      算法備用鏈接:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=7087008a-7eec-4977-8b66-3a7703e9fd22

      此外,還可以使用如下兩種算法:

      按照指引逐步操作即可,直到如下圖界面,

      之后會跳轉到算法界面,先同步算法,后創建訓練即可。

      訓練作業參考配置如圖所示,其余訓練參數保持默認即可。

      之后就是等待訓練完成了,預計耗時58分鐘,請耐心等待,趁著這個時間,咱們聊聊在HiLens Studio(Beta)調試部署吧。

      HiLens與HiLens Studio(Beta)上的準備工作(HiLens 可選)

      1.? 部署代碼

      來,讓我們打開HiLens Studio(Beta)來一探究竟吧。注意:需要提前申請公測,才能使用哦。

      初入伊始,我們看到的是亮白色的操作界面,點擊新建工程即可,也就是“New Project”

      PS: 我個人更喜歡暗黑色,所以我打算調成暗黑色,類似于Visual Studio那樣,而HiLens Studio很貼心提供了界面格式的切換,來試試吧。

      我選擇的是Dark(Visual Studio),還有很多其他選擇,大家可以試試,選擇一種自己喜歡的。

      來看看我選的效果吧,如下圖所示,怎么樣?有沒有一種使用Visual Studio的感覺,很不錯吧,特別是晚上使用,很護眼。

      來來來,言歸正傳,來開始吧。選擇如圖所示技能模板。

      之后,點擊右側的“確定”,就能看到新工程了。

      我們首先來完成模型轉換外的其他操作。

      (1)上傳代碼

      自下面的下載鏈接下載代碼,解壓,得到如圖所示的文件結構,上傳到新建工程的src/main/python目錄下。

      代碼下載鏈接為:

      鏈接:https://pan.baidu.com/s/1TfNHSlMySvv0iNrxF38eyw

      提取碼:u6ji

      在新建工程的右側目錄下,找到src/main/python,刪除該文件下main.py和utils.py,之后上傳我們剛才下載的代碼,如圖所示。

      (2)上傳測試視頻

      和上傳代碼類似,先在如下鏈接下載測試視頻,解壓縮,上傳到test目錄下。測試視頻較大,稍等一下即可。

      測試視頻下載鏈接為:

      鏈接:https://pan.baidu.com/s/1AgeMXXCEb30iBd2emNUcdg

      提取碼:cksa

      完成以上兩步,最終可得到右側目錄結構為:

      2.? 調試部署

      如果你做到這里了,恭喜你,你已經成功了一大半,就差模型轉換了。也許58分鐘已經過去了,咱們來看看模型轉換吧。

      開發教程 | 基于ModelArts與HiLens端云協同開發行人檢測與跟蹤方案

      模型轉換的方式有多種多樣了,有3種吧,分別是:

      (1)ModelArts上完成模型轉換,得到.om模型,導入到HiLens Studio;(在ModelArts模型轉換,可參考該算法介紹界面的說明)

      (2)導入.pb模型,在HiLens云端控制臺完成模型轉換;

      (3)導入.pb模型,在HiLens Studio中使用命令完成模型轉換。

      大家可以選用自己喜歡的方式,這里選擇的是第3種方式,我覺得命令行簡單快捷,很舒服,一起來試試吧。

      首先,要記得我們當時訓練作業設置的模型訓練輸出路徑哦,來看看吧:

      找到訓練作業輸出路徑下的frozen_graph文件夾,導入insert_op_conf.cfg和yolo3_resnet18.pb,不過一次只能導入一個文件,分兩次導入即可。

      導入成功后,如圖所示。

      下面開始模型轉換吧。

      在新建的Terminal輸入如下命令,完成模型轉換:

      /opt/ddk/bin/aarch64-linux-gcc7.3.0/omg?--model=./yolo3_resnet18.pb?--input_shape='images:1,352,640,3'?--framework=3?--output=./yolo3_resnet18?--insert_op_conf=./insert_op_conf.cfg

      最后的succes表示模型轉換成功了。

      如果大家遇到什么問題的話,可以參考文檔或到論壇提問哦。

      文檔鏈接:https://support.huaweicloud.com/usermanual-hilens/hilens_02_0098.html

      論壇鏈接:https://bbs.huaweicloud.com/forum/forum-771-1.html

      現在離成功就差一點點了,就是把模型放入我們代碼中指定的路徑,就是把剛才轉化得到的.om模型拷貝到model文件夾下,

      很簡單的,趕快來吧。

      對了,原來model文件夾下的driving_model.om模型可以刪除掉,先前導入的yolo3_resnet18.pb和insert_op_conf.cfg也可以刪除掉,這樣可以減少安裝到HiLens上的冗余,安裝也能快點。

      好了,如果你已經做到這里了,恭喜你,你已經成功了,可以安裝到自己的HiLens上試試了。注意,一定要按照文中最前面注意中說的,在自己的HiLens上安裝scipy庫哦,否則會報錯的。

      同時,需要注意的是,因為HiLens Studio暫不支持安裝第三方庫,所以無法安裝scipy庫,也就無法在HiLens? Studio中運行得到最終結果,但scipy庫主要涉及的是跟蹤部分,行人檢測部分還是可以實現的,稍微修改一下代碼就行了,我做了處理,大家只要用下面代碼取代src/main/python下的main.py就行了,簡單來說就是刪除原來main.py下所有代碼,復制下面全部代碼粘貼到main.py就行了。

      #?-*-?coding:?utf-8?-*- #?!/usr/bin/python3 #?SkillFramework?for?YOLOv3_Resnet18?Person?Detection?and?Sort?Track #?導入相關庫,其中MySort庫用于跟蹤 import?os import?cv2 import?time import?utils #?用于跟蹤和計數(1) #?import?MySort import?hilens import?numpy?as?np def?run(work_path): ????#?特別注意:參數要與創建技能時填寫的檢驗值保持一致,這里使用的是hello,可自定義 ????hilens.init("hello") ????#?明確模型路徑,并創建模型,用于推理 ????model_path?=?os.path.join(work_path,?'model/yolo3_resnet18.om') ????model?=?hilens.Model(model_path) ????#?Hilens?Studio中VideoCapture如果不填寫參數,則默認讀取test/camera0.mp4文件,這里使用的是自行上傳的TownCentreXVID.mp4 ????#?在Hilens?Kit中不填寫參數則讀取本地攝像頭 ????camera?=?hilens.VideoCapture("./test/TownCentreXVID.mp4") ????#?圖像通過HDMI輸出到屏幕 ????display_hdmi?=?hilens.Display(hilens.HDMI) ????#?圖像通過RTSP實現無線連接輸出,其中的IP地址取決于具體網絡,請根據實際情況修改 ????#?display_rtsp?=?hilens.Display(hilens.RTMP,?"rtmp://192.168.43.40/live/stream") ????while?True: ????????try: ???????????? ????????????time_start?=?time.time() ????????????#?1.?讀取攝像頭輸入(yuv?nv21),在這里讀取的是test/camera0.mp4 ????????????input_nv21?=?camera.read() ????????????#?2.?轉為RGB格式,并縮放為模型輸入尺寸(DVPP?and?AIPP) ????????????input_rgb?=?cv2.cvtColor(input_nv21,?cv2.COLOR_YUV2RGB_NV21) ????????????img_preprocess,?img_w,?img_h?=?utils.preprocess(input_rgb)? ????????????#?3.?模型推理 ????????????output?=?model.infer([img_preprocess.flatten()]) ????????????#?4.?結果輸出 ????????????#?獲取檢測結果 ????????????bboxes?=?utils.get_result(output,?img_w,?img_h) ????????????#?在圖像上畫框 ????????????#?用于跟蹤和計數(2) ????????????input_rgb?=?cv2.resize(input_rgb,?(640,?352)) ????????????output_rgb?=?utils.draw_boxes(input_rgb,?bboxes) ????????????#?5.?目標跟蹤 ????????????#?frame?=?MySort.MySort(bboxes,?img_preprocess) ????????????#?frame?=?cv2.resize(frame,?(1920,?1080)) ????????????#?6.?輸出圖像,必須是yuv?nv21形式 ????????????#?output_nv21?=?hilens.cvt_color(frame,?hilens.RGB2YUV_NV21) ????????????#?用于跟蹤和計數(3) ????????????output_nv21?=?hilens.cvt_color(output_rgb,?hilens.RGB2YUV_NV21) ????????????display_hdmi.show(output_nv21) ????????????#?display_rtsp.show(output_nv21) ????????????time_frame?=?1000?*?(time.time()?-?time_start) ????????????hilens.info('-----?time_frame?=?%.2fms?-----'?%?time_frame) ????????except?Exception: ????????????break if?__name__?==?"__main__": ????run(os.getcwd())

      其實就是改了幾行代碼,取代了跟蹤部分,感興趣的小伙伴可以對比一下代碼的差異,了解一下,友情提醒,我在修改的代碼部分做了注釋,注意看注釋哦,不得不說好的注釋和文檔還是很關鍵的,這也是我加注釋和寫這篇文檔的原因了。

      好了,趕快試試吧。

      最后按照慣例,就是效果展示環節了。

      如果你沒有HiLens,那么在HiLens Studio中運行,看到的效果,會是這樣的:

      備用視頻鏈接:https://v.qq.com/x/page/x3162dax8va.html

      如果你有HiLens,那么部署到HiLens上運行,效果會是這樣的,注意,圖中左上角的字和畫面中的橫線顏色和具體內容可調整,你看到的不一定是畫面中的黃色字樣和橫線。

      備用視頻鏈接:https://v.qq.com/x/page/m3116smfqhu.html

      畫面中左上角從上到下,依次顯示為當前畫面行人數量、通過畫面中間黃線的行人數量以及總行人數量。怎么樣,是不是很有意思?趕快來運行試試吧。

      好了,感謝大家花費時間讀到這里,謝謝大家的支持。同時,大家也可以將上面自己開發的技能,或者對上面的技能優化或做二次開發的話,可以完成后,發布到技能市場,方便更多開發者學習使用,這里我也將上面技能發布到技能市場了。鏈接為:https://console.huaweicloud.com/hilens/?region=cn-north-4#/skillMarket/skillMarketDetail/a5ff173df419448795f2b97283b1a362/Pedestrian_Track_Count-HDMI/purchase/1

      PS:發布技能的話,一定要選擇個見圖知意的圖標,和盡量詳細的技能介紹說明,這一點可以參考官方發布的技能哦。

      注意:

      本項目僅供學習分享使用,不保證模型精度和人數統計準確性,所有代碼均可從開源渠道獲得。

      AI開發平臺ModelArts EI企業智能 AI 華為HiLens 昇騰

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【軟通鯤鵬云最佳實踐31】Perl-5.28 鯤鵬云服務器安裝實踐
      下一篇:哈夫曼實現文件壓縮解壓縮(c語言)
      相關文章
      亚洲AV无码乱码麻豆精品国产| 精品亚洲综合在线第一区| 久久精品九九亚洲精品| 国产亚洲免费的视频看| 亚洲成a人一区二区三区| 亚洲国产成人无码AV在线| 亚洲男人天堂2022| 亚洲黄色激情视频| 亚洲AV成人影视在线观看| 亚洲乱码卡三乱码新区| 亚洲国产亚洲片在线观看播放| 亚洲精品自拍视频| 日本久久久久亚洲中字幕| 亚洲avav天堂av在线不卡| 亚洲A∨无码无在线观看| 亚洲人成网站影音先锋播放| 亚洲成AV人片在线观看ww| 久久精品亚洲综合专区| 亚洲∧v久久久无码精品| 亚洲国产天堂久久综合网站| 亚洲伦理一区二区| 亚洲视频一区在线观看| 亚洲va成无码人在线观看| 亚洲av无码电影网| 亚洲精品综合在线影院| 日本亚洲色大成网站www久久| 亚洲色偷偷偷综合网| 国产午夜亚洲精品国产| 在线观看亚洲AV每日更新无码| 亚洲第一成年网站视频| 亚洲成A∨人片天堂网无码| 久久精品国产亚洲Aⅴ香蕉| 亚洲国产成人一区二区三区| 久久久久亚洲av无码尤物| 婷婷久久久亚洲欧洲日产国码AV| 亚洲最新永久在线观看| 亚洲另类精品xxxx人妖| 伊人久久亚洲综合影院首页| 亚洲av无码兔费综合| 亚洲欧洲日本在线| 久久亚洲精品无码观看不卡|