KL520 使用自訓練模型遇到問題
我用官方給的腳本訓練我們的模型,也已經從onnx optimize to onnx最後也成功得到nef檔
我打算將KL520搭配 Raspberry Pi 4去使用模型,依官方給的操作步驟.pdf去操作
成功設置好Raspberry Pi 4的環境也更新了KL520,可以成功使用官方的模型
根據host_lib/python/packages/KL520 examples/cam_dme_async_post_host_yolo.py
去改成我自己模型的參數(Model_file、class_list、model_ID)
最後執行 main.py得到 dme inference failed:-2... 的錯誤訊息 想問一下如何解決謝謝
另外我的模型是yolov5的,不確定KL520是否有支援,或是要改成KL720才行
還有就是我從官方下載的host_lib資料夾和操作步驟.pdf其實有一些不同,也順便問一下是否有其他的host_lib
謝謝
Tagged:
The discussion has been closed due to inactivity. To continue with the topic, please feel free to post a new discussion.
Comments
Hello,
請問官方給的腳本是指什麼呢? 文中所提到的host_lib為舊版的SDK,在去年已經停止更新,目前已全面更換成新架構的SDK <PLUS>。
若透過耐能所提供的yolov5 訓練方案可得到NEF模型,可以試著參考連結中的範例來執行該NEF模型
http://doc.kneron.com/docs/#plus_python/modelzoo/chapter/kn-model-zoo_generic_inference_post_yolov5/
我說的腳本就是連結提到的detection/yolov5/tutorial/tutorial.ipynb
我試試看SDK<PLUS>,請問要在那裏找到
那想問一下 dme inference failed:-2 可能會是我模型的參數沒設定好或者是模型本身問題
謝謝
dme inference failed:-2 表示透過DME模式執行推論失敗,這有可能是參數設定錯誤,或是KL520中的firmware沒有對應的配置。
但在PLUS中已經不再使用DME架構,詳細部分可以參考PLUS文件的說明
http://doc.kneron.com/docs/#plus_python/getting_start/
所以說如果我繼續沿用我目前舊的host_lib,並且更正好我的參數是理論上可以正常運行的嗎
想問需要更正的參數有哪些,目前已更改的有Model_file、class_list、model_ID
謝謝
除了host_lib上你所提到的參數,燒錄在KL520中的firmware也會影響到結果的正確性。另外就是模型是透過新版的toolchain所生成,部分功能在host_lib架構下可能不支援,因此不敢保證是否完全相容,建議還是移到PLUS上運行
下面文章有針對host_lib轉換到PLUS上做相關說明,也供你參考
不好意思 我下載了kneron_plus的壓縮檔裡面並沒有KL520CamMultithreadPostYoloV5.py
請問載點是在教育中心嗎還是開發中心
我是在開發中心找到kneron_plus的,但根據上面的連結好像是說在教育中心,但我也沒找到,想求解一下
謝謝
#更新
我在python /example裡找到KL520DemoGenericInferenceMultiThread.py
不知道是不是這個
你好,我大根據上述文章所說得到kneron_plus_1.3.0此資料夾
裡面已經有像是host_lib中可執行的py檔,現在還缺host_lib到PLUS環境的改寫
依照以下連結 http://doc.kneron.com/docs/#plus_python/getting_start/#1-introduction
我照這邊的步驟去做下載了Kneron_DFUT(Raspberry pi 4版本)
執行 ./KneronDFUT 得到 segmentation fault
想請教一下哪裡有誤
謝謝
Hello,
有鑑於Raspberry Pi上的DFUT tool容易受到環境影響而執行失敗,這邊建議你可以直接用C version在你的環境上編譯console版的tool
請參考該篇討論,裡面有相關的操作說明
我按照 http://doc.kneron.com/docs/#plus_c/getting_started/#3-build-plus 他的步驟得到 build/bin 還有裡面的file
在bin 裡執行 sudo ./kl520_demo_generic_inference_post_yolo
得到 connect device failed 但我用lsusb查看是有的 ,並仍然存在 segmentation fault
另外我還有需要執行以下圖片的步驟嗎
建議還是跑一下,目前懷疑KL520內還是舊版host_lib的韌體導致沒辦法執行。透過DFUT tool可以確認FW的版本,也可以確保KL520是處於正常可以連結的狀態,相關部分可以參考連結的說明
執行 sudo ./KneronDFUT 遇到同樣的問題:segmentation fault
我在想是否可能是我raspberrypi 的問題
想問一下是否也有其他人遇到類似的問題
一般來說,直接使用編譯好的tool是有可能遇到系統不相容,但目前尚未收過在同一個環境底下編譯後無法執行回報。
segmentation fault錯誤是因為不正確存取記憶體導致,可能的原因很多,建議可以找塊新的記憶卡重新安裝Raspbian後再試,耐能的網站上也有提供相關檔案下載,供你參考
好的我會試試看
那我可能會在重新安裝Raspbian在試看看
那我可能先改用 windows 10 系統搭配原先的KL520去使用我的模型
如果是用Kneron Academy 的話我該如何使用nef檔,我看到的好像都是放bin檔進去
還是說需要以下兩個檔案去輔助
謝謝
Academy 僅供特定的模型框架使用,一般的NEF僅能在PLUS(sdk)上運行,沒辦法透過Academy執行。
Academy框架的模型轉換,可以參考這篇討論內的連結 https://www.kneron.com/forum/discussion/comment/958/#Comment_958
好的我再試試看
我目前先用windows代替
我用一樣的model
我是用host_lib去跑(我知道目前已經有新的plus代替),但我有操作手冊.pdf上看到案例是可行的
目前我遇到的問題是改了其中一個cam_dme_async_post_host_yolo.py成我自己要的參數
但執行結果如下圖,會卡在這邊,然後不會跳出鏡頭的視窗
想問說我這裡還有哪些參數是需要改的或是哪裡有改錯的 謝謝
問題看起來是當host lib在對firmware下達inference命令時出錯,推測應該是你目前燒錄的fw不支援該應用
但因為host_lib的firmware已經接近一年沒有在更新了 ,可能得請你確認一下你手邊是否有該應用所搭配的firmware可以使用。
但我以為跑過update_fw就是更新過firmware而且可以跑範例py
我剛剛在跑一次看到了一下情況這樣是沒成功嗎
是的,截圖訊息顯示
updating fw
reading file failed <= 失敗
reading model failed <= 失敗
report status succeeded 讀取版號成功,但上面的燒錄fw與模型都失敗
那這樣該如何解決呢
拜託指教一下
抱歉,但因為host_lib已經是去年的版本了,建議是更換到新架構PLUS上使用。
若堅持要使用host_lib的話,可以試著參考 https://www.kneron.com/forum/categories/innoserve-area 內的文章,有過去大家所遇到問題的紀錄
常見的是訓練後的模型參數沒有正確的設定到host_lib中,導致在執行推論時fw與model對不上而出錯,供你參考
請問一下哪個是scpu和ncpu的
如同你的截圖,你可以選擇透過列出的兩種方式來將dongle中原本host_lib的fw更新成PLUS專用的fw
想問哪一個是scpu哪一個是ncpu
#更新
我看錯了抱歉
我完成了fireware的更新
想問這個py是在哪裡
上面說的py我找到了
但執行之後出現這個錯誤
承接上一則留言
請問我是只需要run Update to USB Boot就好嗎
還有我是不是應該要使用KP API,並想問說該怎麼使用謝謝
@sugar
Hi sugar,
使用 KL520 dongle 只需要 run Update to USB Boot 沒錯,將您的 firmware type Update to KDP2 loader,您可以參考以下連結的標題 1. Introduction, 2. Download Kneron DFUT, 3. Install Driver for Windows。http://doc.kneron.com/docs/#plus_python/introduction/upgrade_ai_device_to_kdp2/#3-kl520-update-to-usb-boot-mode
沒錯您需要使用 KP API,您可以參考以下連結:
C user:
http://doc.kneron.com/docs/#plus_c_api/api_reference_1.0.x/kp_core.h/#kp_load_firmware_from_file
Python user:
http://doc.kneron.com/docs/#plus_python/api_document/kp/core/#kpcoreload_firmware_from_filedevice_group-scpu_fw_path-ncpu_fw_path
您也可以參考,Kneron Plus 內的範例
https://www.kneron.com/tw/support/developers/
我是按照http://doc.kneron.com/docs/#plus_python/introduction/upgrade_ai_device_to_kdp2/#3-kl520-update-to-usb-boot-mode此連結操作沒錯
根據回報的錯誤訊息: kp_error_usb_IO_N1 是我裝置可能沒抓到KL520嗎,但我執行 scandevice.py是有偵測到的
這個連結http://doc.kneron.com/docs/#plus_python/api_document/kp/core/#kpcoreload_firmware_from_filedevice_group-scpu_fw_path-ncpu_fw_path是在解釋參數的對吧,意思是我該直接去更改py內的參數??
您是指說kneron_plus_v1.3.0裡的範例嗎像是KL520DemoCamGenericInference.py
@sugar
Hi sugar,
是否可以截圖 scandevice.py 的執行結果給我看看呢。
如果您是要執行範例,基本上你不需要更改甚麼參數。
是的,kneron_plus_v1.3.0 裡的範例 (KL520DemoCamGenericInference.py),有使用到 API,你可以參考看看。