使用自行編譯出的.nef進行KL520推論失敗

將YOLO訓練出的.weight檔案進行轉換/量化產生出.nef

參考:https://www.kneron.com/forum/discussion/53/legacy-v0-12-example-keras-kl520-how-to-convert-and-compile-tiny-yolo-v3-from-github-project#latest

執行Kneron測試執行後跳出失敗訊息,如附圖,請問這是哪個地方出錯?


Comments

  • Hi Fred,

    從錯誤訊息來看問題是發生在DME configure階段,表示你所設定的config與模型 / 輸入圖片可能不匹配 (model_id, app_id, image size等),可以先確認這些參數是否都有正確填寫,若還是發生問題的話可以提供你在toolchain中所設定的model id以及 host_lib的下載來源以及範例中所使用的設定值讓我們確認。

  • Hi Ethon,

    我依據轉換模型設定圖形尺寸416*416更改後出現錯誤

    我使用cam_dme_serial_post_host_yolo.py內容部分只更改圖形尺寸

    重新再次執行轉換後還是跳出錯誤無法執行..附上模型轉換出的batch_compile資料夾..


  • Hi Fred,

    從你提供的資料來看,你的模型有幾個地方與原本範例不同

    1. model_id: 範例的TINY_YOLO_V3_224_224_3.value = 19,而你的模型為1000
    2. model_input_shape: 範例中為(224, 224),而你的模型為(416, 416)
    3. class_path: 範例中模型使用coco 80個類別來訓練,而從你的模型輸出來判斷,你的模型應該只訓練了兩個物件,還請正確修改你的類別

    上述的三點若都有正確修改,應該就要可以正常做模型推論。而你所修改的    image_source_h = 480與image_source_w = 640指的是輸入的圖片大小,不確定你的攝影機是否有支援其他解析度,建議維持原本的640 x 480尺寸。

    這邊也附上我實際可以執行的修改範例供你參考。


  • Hi Ethon,

    此為我自行訓練出的模型您所提到的我更改後可執行了,但偵測不出我要的物件

    我重新進行轉換發現在.h5轉換到.onnx時跳出訊息

    我查詢tensorflow=1.15.3/Keras=2.2.4,請問為什麼會跳出沒有找到訓練配置的訊息呢?

  • edited October 2021

    Hi Fred,


    模型認不到物件可能原因有很多, bad training, input data, preprocess code,  postprocess code, quantization ... etc

    建議先確認你的原始h5模型可以正確認出物件. 原始repository( keras-yolo3 )中應有對應的資源. 再驗證與onnx轉換正確可以正確認出物件.


    對於onnx的驗證, 可以使用3rd party lib, onnxruntime,

    1. https://onnxruntime.ai/docs/get-started/with-python.html#install-onnx-runtime-ort
    • Create inference session with ort.infernnce


    或參考文件中的:

    1. http://doc.kneron.com/docs/#toolchain/manual/ 
    • 3.3 E2E Simulator Check (Floating Point)

    2. http://doc.kneron.com/docs/#toolchain/yolo_example/ 

    • Step 4: Check ONNX model and Pre&Post process are good


    另外, 這邊的Waring應該不影響.

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