kl520 toolchain 產生的 *.nef 如何使用

我按照 Toolchain v0.14.1的教學

將LittleNet複製到 data1 資料夾底下

經過

3.2 FpAnalyser, Compiler and IpEvaluator

3.4 Compiler and Evaluator

3.5 Batch-Compile

最後得到的檔案如下

請問要怎麼使用 models_520.nef 呢??

我打算按照 http://doc.kneron.com/docs/#520_1.4.0.0/getting_start/

5 Run OTA to Swap Another Pre-build Application Binary Mask Face Detection

來將 .nef 放進去 KL520 stem 中來預測,不過我compile出來的檔案中,並沒有fw_ncpu.bin 與fw_scpu.bin

請問要如何得到 fw_ncpu.bin 與 fw_scpu.bin呢?


另外 http://doc.kneron.com/docs/#520_1.4.0.0/getting_start/

6.3 中按照教學跑出來的結果,並沒有包含.nef 檔案,如下圖所示


請問有比較完整的 compile onnx model 到 kl520上的教學嘛?

Comments

  • 有關NEF生成的部分,Toolchain v0.14.1的步驟為新的做法,http://doc.kneron.com/docs/#520_1.4.0.0/getting_start/#520_1.4.0.0/getting_start/的6.3為舊的作法,需要正確的填寫兩個json的設定才可以生成NEF,但兩種做法結果是一樣的,擇一即可

    而fw_scpu.bin與fw_ncpu.bin的部分是指firmware,在host_lib_v0.9.1中/app_binaries/KL520/tiny_yolo_v3/有建立好的binaries可以直接使用。

    要執行NEF的inference可以透過DME mode,DME的部分可參考http://doc.kneron.com/docs/#520_1.4.0.0/getting_start/#7-run-model-binaries-in-dme-mode的說明,當中的RAW OUTPUT即為送進toolchain中模型的最後輸出,以LittleNet為例即為最後2x1x1的AvgPool2d_1_out

    許多模型若是要得到最後的class, score, or bounding box資訊還會需要一些計算,這些計算與神經網路無關,所以會放在POST PROCESS中來完成,這部分會因模型而異,所以需要使用者根據自己的模型去完成。

  • 非常感謝您的用心回覆


    • 「而fw_scpu.bin與fw_ncpu.bin的部分是指firmware,在host_lib_v0.9.1中/app_binaries/KL520/tiny_yolo_v3/有建立好的binaries可以直接使用。」
    • 請問所有我自己編譯出來 *.nef 模型,可以用同樣的一組 fw_scpu.bin與fw_ncpu.bin來 ./update_app_nef_model 到 kl520上面? 我發現host_lib_v0.9.1中 kl520 所有model 對應的 fw_scpu.bin與fw_ncpu.bin大小似乎都一樣



  • 有關batchcompile的做法現在剩兩種 http://doc.kneron.com/docs/#toolchain/manual/#3-toolchain-scripts-usage

    1. 連結中的3.5 Batch-Compile,此步驟會需要先執行3.2 FpAnalyser, Compiler and IpEvaluator產生*.bie,然後在input_batch_compile.json中填入id, version以及bie的路徑即可
    2. 連結中的3.6 FpAnalyser and Batch-Compile (Optional),此步驟可直接從onnx轉成NEF,但相對應的在json中需要填入較多的參數,可參考3.6.1 Fill the input parameters中的圖例


    fw_scpu.bin與fw_ncpu.bin為firmware的binary,只要是KL520的fw binary,不管搭配任何模型大小都會一樣

    DME mode指的是從外部透過usb在inference前將模型(NEF)傳入,故不需要做NEF的燒錄動作,結果會透過USB回傳到你的電腦上,在tiny yolo v3資料夾中的fw_scpu.bin與fw_ncpu.bin就有支援DME功能,因此建議你直接使用


     example/KL520/kl520_dme_async_mobilenet_classification 為舊的範例,文件上沒有對應更新到,建議可以參考host_lib中其他的DME範例來使用

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