用maixHub訓練<分類>模型-k210
用maixHub訓練<分類>模型-k210
碎碎唸
突然想用k210的優勢來做點什麼,想了想它的優勢在於運算機器
學習和深度學習上很快,加上辨識各種物品等等...,原本官網上
有些人分享了他們自己訓練的模型,但我想了想,總不一直用現
成的吧!所以呢就開始研究如何收集數據集和預處理到把數據送
去訓練成模組。這花了兩天的時間才搞好,所以要先想好要用哪
個流程下去採集數據和訓練,網路上的資料有兩種方式
- 使用官網的線上模型訓練
- 使用本地端訓練
原本用在線訓練,但一直不成功,後來想辦法用本地訓練,但是......
要安裝一堆有的沒的,而且不易成功,後來看官方文件推薦使用開
發板做採集數據,再用官方提供的預處理軟體,封包好再送上去線
上訓練。接下就是我要紀錄官方的方式做訓練模型。
硬體準備>>>
- Maix Duino(鏡頭和LCD)
- SD卡
- 電源線
1>準備數據集
準備數據集可以採用手機拍照或直接用官方的程式+開發板拍照
我是採用官方的方式,因為拍出來就直接是224x224(這是規定的像素)
另外也要滿足 Maixhub 的要求:
目標分類: 每類圖片數量不低於40張,比如採集 200 張(其實大概100張也可以)
目標檢測: 每類圖片數量不低於100張, 比如採集200張(其實大概100張也可以)
官方採集數據的程式和教程-如何採集數據
- 根據你的開發板修改攝像頭和屏幕配置, 比如lcd.rotation
- 準備一張支持 SPI 模式的 SD 卡, 分區為 MBR (msdos), 格式化為 FAT32
- 將目錄下的boot.py文件拷貝到 SD 卡根目錄
- 開發板斷電, 將SD卡插入開發板
- 開發板上電, 程序會自動創建一個目錄cap_images_1, 下次上電會創建cap_images_2, 這樣就避免了覆蓋
- 採集一個分類的圖片 按開發板上的boot按鍵,然後鬆開按鍵來採集一張圖片, 這會將圖片保存到cap_images_1/0/0.jpg, 採集的圖片的名字會自動增長, 比如0.jpg 1.jpg ...
- 長按boot按鍵切換類別目錄 這會創建一個新目錄,比如cap_images_1/1/, 後面採集的圖片都會被保存到這個新的目錄, 比如cap_images_1/1/0.jpg
- 開發板斷電,取出SD卡插到電腦, 打開文件管理器就可以看到採集的圖片了
目錄結構會像這樣
|
----ball
| |
| ---0.jpg
| |
| ---1.jpg
| |
| ---2.jpg
|
----toy
|
---0.jpg
|
---1.jpg
2>數據集預處理
注意:分類文件夾數量要大於 2個!
例如:
|-Dir_name
|-Class_1
|- pic01.jpg
|- pic02.jpg
|- pic03.jpg
|-Class_2
|- pic01.jpg
|- pic02.jpg
|- pic03.jpg
接下來我們使用官方的預處理軟體
Download: DataAssitantVx.x
下載後進入解壓後的資料夾並點選啓動DataAssistant.exe
處理完後會得一個壓縮檔,這個就是我們要送到云端去訓練的模型
注意:
建議的圖片分辨率 224*224, 上傳之前可以使用工具批量轉換一下
每個分類不要低於40張圖片,否則無法開始訓練
數據集壓縮後大小不超過20M
子目錄名不能使用中文, 否則生成的label無法顯示
3>上傳數據集訓練模型
按<next>後,選剛剛本地端官方軟體預處理出來的zip檔,然後再按<next>
將模型下載下來並解壓,裡面有一個boot.py,就是已經幫我們創建開機自動執行辨識的檔。
裡面有一個report.jpg,是模型的損失,準確度等等...
4>插入SD卡
這裡有兩種模式,一種是使用SD卡,另一種是直接燒到flash,我採用sd卡模式
將下載並解壓後,資料夾裡的檔案全部烤貝到SD卡的根目錄(不包含資料夾
,只要烤貝資料夾裡的各別檔案),再將SD卡插入開發板,通電後即可開始辨識
萬一出現kpu相關訊息怎麼辧?
如果開機後,沒有顯示畫面或出現kpu.load()錯誤訊息,就得更換更低
找到最新版本號,點進去找到有v4版的。
留言
張貼留言