Got Error When Trying to load openpose model into KL720

最近試著將 pytorch 框架的 openpose 轉換成 .nef 檔 並試著載入進KL720中,

在從torch.onnx轉換成onnx及優化onnx(onnx2onnx)的過程中都沒問題也沒有警告

且從onnx編譯成.nef檔的過程中也沒有問題.

但是在inference階段,試著用kp模組將模型載入時, 卻遇到載入失敗的問題.

錯誤代碼:104

在做完onnx2onnx之後,有利用Netron去檢查每個OP, 每個op都是toolchain有支援的.

轉換完的.nef檔為91MB左右, 並無超過官方說明的上限(95MB)

以下附上torch.onnx輸出的檔案連結(google drive), 輸入為3*480*480:

https://drive.google.com/file/d/1d1b9d0VTn5rz_KrwMsc3gTylPCcj4s8d/view?usp=sharing

想請問可能是什麼問題, 謝謝

Comments

  • edited December 2021

    Hi Kendrick,

    這個error的原因有可能是因為.nef檔太大。雖然沒有超過上限,但是firmware的更動有時會影響model能用的空間大小,所以可以請您試著讓.nef檔變小一點,在測試看看嗎?


    或是能不能請您提供.nef模型和KL720_Openpose_inference.py,我們可以試著調整設定然後看是否可以擠出足夠的空間來讀取您的模型。

    還有,請問一下您在docker上使用的toolchain的版本是什麼呢?

  • Hi Maria,

    首先感謝您的回覆, 以下是.nef檔的連結以及KL720_Openpose_inference.py, 也想請問讓.nef檔變小的方式是要去編輯節點嗎?或是有什麼更具體點的方法.


    我發現我的toolchain版本是v0.15.4 ,似乎是toolchain最近有更新我沒注意到.


    另外, 還想請問我有試過用generic的方法將yolov5載入並進行即時影像的inference, 但會有偵測框延遲出現的現象, 而kp_yolo則沒有, 想請問kp_yolo是專門針對yolo來對韌體進行優化的模組嗎?


  • 已將toolchain更新到最新, 但還是一樣在載入模型進Dongle時失敗

  • Hi Maria,

    依照官方在KL720上的測試數據, 看樣子之前官方有使用過openpose來做inference, 這邊想請問能否提供openpose的nef檔?


  • edited December 2021

    Hi Kendrick,


    因為SDK架構的更動,95MB為舊數據,經過一些驗證,新架構的模型上限將會下調 (建議不超過75MB)。


    至於讓模型變小的事情,建議直接在網路上找比較小的openpose的model,也可以參考這個網站來做pruning:

    https://github.com/ChrisAllenMing/pruned_lightweight_openpose#readme (搜尋結果,非耐能模型)


    關於kp_yolo的問題,kp_yolo是有針對yolo來進行優化,但是generic與yolo跑的速度應該要是差不多,推測與pre-processing或post-processing的做法相關。


    我們目前所測試的openpose為客戶端的模型,所以不方便提供,敬請見諒。

  • Hi Maria,

    感謝你的回覆, 我會再多做嘗試

The discussion has been closed due to inactivity. To continue with the topic, please feel free to post a new discussion.