手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割( 二 )



手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 可以看到 , labels的類型為INT64,所以我們的源碼中需要“Get_Rresult_int64.vi,index為1,因為labels為第二層,即下標為1;

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 另外三個輸出我們都可以使用float32來獲取了 , masks雖然數據類型是uint8,但在實操過程中發現,它其實做過歸一化處理了 , 也可以使用float32.

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 后處理并實現實例分割 因為后處理內容較多,所以直接封裝為了一個子VI, mask_rcnn_post_process.vi,源碼如下:

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 整體的程序框架如下:

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 實例分割結果如下,我們會發現這個模型跑起來 , 他花的時間比之前就更長了 。因為他不但要獲取每一個對象的區域,還要也要把這個區域的輪廓給框出來 , 我們可以看到五個人及籃球都框出來了,使用不同的顏色分割出來了 。

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
3、LabVIEW調用 Mask R-CNN 實現實時圖像分割(mask rcnn_camera.vi)整體思想和上面檢測圖片的實力分割差不多,不過使用了攝像頭,并加了一個循環,對每一幀對象進行實力分割,3080系列顯卡可選擇TensorRT加速推理,分割會更加流暢 。我們發現這個模型其實很考驗檢測數量的,所以如果你只是對人進行分割,那可以選擇一個干凈一些的背景,整體檢測速度就會快很多 。
手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
四、Mask-RCNN訓練自己的數據集(檢測行人)1.準備工作
  • 訓練需要jupyterlab環境,沒有安裝的同學需要通過pip install jupyterlab 安裝
  • 如果無法解決jupyterlab環境 可以使用colab或者kaggle提供的免費gpu環境進行訓練
  • 訓練源碼:mask-rcnn.ipynb
2.開始訓練
  • 根據提示運行這段代碼 , 自動或手動下載依賴文件數據集并建立數據集解析類

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 定義單輪訓練的函數:網絡結構直接采用torchvison里現有的,不再重新定義

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 出現如下輸出表示訓練進行中

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
  • 修改這個文件名 , 改成自己的圖片名字,運行看下訓練效果

手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
3、訓練效果
手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
4、導出ONNX
手把手教你使用LabVIEW實現Mask R-CNN圖像實例分割

文章插圖
總結以上就是今天要給大家分享的內容 。大家可關注微信公眾號: VIRobotics , 回復關鍵字:Mask R-CNN圖像實例分割源碼  獲取本次分享內容的完整項目源碼及模型 。
如果有問題可以在評論區里討論,提問前請先點贊支持一下博主哦,如您想要探討更多關于LabVIEW與人工智能技術,歡迎加入我們的技術交流群:705637299,進群請備注暗號:LabVIEW 機器學習 。
如果文章對你有幫助 , 歡迎關注、點贊、收藏

推薦閱讀