即時推論相關問題

我想請問如果依照KL730DemoGenericDataInference.py的做法做是不是不適合即時推論?因為我目前使用合併了blazeface及pfld的nef模型去做即時推論時,依照KL730DemoGenericDataInference.py的方法會遇到很嚴重得延遲,依照KL730DemoCamGenericImageInferenceDropFrame.py的方法會遇到韌體報錯編號108

Comments

  • Hello,

    KL730DemoGenericDataInference.py與KL730DemoGenericImageInference.py.py這兩個範例的差異在於,模型的前處理是否透過KL730中的HW來進行加速運算。

    從你使用KL730DemoCamGenericImageInferenceDropFrame.py會遇到錯誤來看,有可能你的模型前處理並非標準的格式所造成,所以只能使用Data Inference (此部分僅為推測),使用Data inference的優點是可以自由的定義前處理函式,相容性較高,但缺點是少了HW的加速,一切都透過cpu來運算,整體速度會明顯得比較慢

    因此,KL730DemoGenericDataInference.py的做法要拿來進行即時推論的話,需要額外考慮幾點的

    1. 前處理的運算時間 & 浮點資料轉為定點資料的時間
    2. NPU運算的時間(與模型大小相關)
    3. 後處理的運算時間
    4. 推論資料 / 結果 的傳輸時間
    5. 推論結果轉為應用效果的時間 (e.g.依據bounding box的class / position來做應用效果)

    這邊列了幾個主要的項目讓你參考,可以依據你的應用所需速度規格來評估要從哪個部分來提升

  • edited March 17

    那我是否可以透過更改模型前處理成為標準的格式來實踐KL730DemoCamGenericImageInferenceDropFrame.py?如果可以的話是否有相關格式資料可以參考?同時我發現我在設定config時沒有指定input_fmt,這是否會是影響我前處理透過KL730中的HW來進行加速運算報錯的原因?


  • 若希望使用HW來完成標準格式的前處理,建議可以讓模型的input format為4W4C8B,可透過<Input Format (Optional)>來設定

    https://doc.kneron.com/docs/#toolchain/manual_5_nef/#53-nef-combine-optional

    但要指定成4W4C8B的話,模型須滿足下面條件

    first layer要是conv 且 input channel <=4 && column stride <= 2 && column dilation == 1

    模型須滿足此條件才可透過上述的input format來指定成4W4C8B

  • 只有4W4C8B可以使用嗎?我記得doc裡面有一頁內容有說明各種格式對模型要求的條件,如果符合那些格式條件是否也可以一樣使用HW?

    同時我之前用data inference 時主要延遲在於convert_onnx_data_to_npu_data這部分,那我是否能想辦法提升這部分的效能?


    感謝您一直解答我的問題

  • HW preprocess的部分主要是針對傳統圖片來進行處理,所以會以4W4C8B為主,其餘的格式或許可以局部支援,但效果最好的會是4W4C8B,若要針對處理的話建議以此格式為主

    convert_onnx_data_to_npu_data的部分主要是針對浮點轉定點的部分,確保輸入的資料符合KL730的NPU架構,若使用image inference的話HW會協助處理,但因為data inference時這部分會改透過cpu運算,所以速度會受到限制,這部分是data inference的限制無法更動,僅能修改你的前後處理來縮短時間

  • 感謝您的建議,我嘗試將input format改為4W4C8B成功將blazeface與pfld混合模型在kneo-pi上real-time inference了,效果看起來很不錯。我透過程式將blazeface模型中第一層Transpose的部分移除並將輸入參數直接調成下一層conv需要的格式,藉由此滿足first layer要是conv 且 input channel <=4 && column stride <= 2 && column dilation == 1的條件

    這是我的模型即kneo-pi上之推論程式,或許能給其他人參考

  • 很開心能協助解決問題,也感謝你的分享!

Sign In or Register to comment.