使用 MaixHub骑冗, 不會 AI 訓練編程也能快速訓練出 AI 模型并快速部署到你的開發(fā)板或者是手機和網(wǎng)頁服務上赊瞬!
版權(quán)聲明:本文為 neucrack 的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議贼涩,轉(zhuǎn)載請附上原文出處鏈接及本聲明巧涧。
原文鏈接(持續(xù)更新):https://neucrack.com/p/444
先看看效果, 一個檢測小鴨子(可同時檢測多個相同或者不同目標)遥倦,另外一個是表情分類模型:
視頻來源: 基于K210的情緒識別與可視化
這樣的功能谤绳,使用 MaixHub 搭配一款硬件(手機、電腦谊迄、開發(fā)板)就能快速實現(xiàn)闷供,甚至不需要寫一行代碼烟央!
利用 MaixHub 快速開始制作你的 AI 應用统诺,或者開始入門學習 AI 模型訓練基本知識吧!
新版 MaixHub 簡介
MaixHub 推出了新版疑俭!支持了更多設備粮呢,包括 K210, V831, NCNN, TFjs, TinyMaix(所有單片機上運行)!更新了一大堆功能:
-
多種上傳數(shù)據(jù)集方式:
- 本地文件上傳
-
設備直接拍照后一鍵上傳
- 導入本地標注
-
支持在線標注钞艇,簡單快速好用啄寡,以及支持視頻自動標注哦
-
多種訓練參數(shù)自定義支持
- 多種平臺(硬件平臺)
-
手機、電腦
- 帶硬件NPU加速的高性價比板子哩照,比如Maix-II-Dock
- 通用單片機挺物,更是推出了超輕量的單片上運行的模型推理庫TinyMaix,可以移植到任意單片機飘弧,甚至能在 2KiB RAM的arduino上跑
-
-
訓練過程识藤、日志、圖標展示次伶,以及驗證結(jié)果展示痴昧,方便分析和優(yōu)化模型
-
一鍵部署到設備
-
一鍵分享到模型庫(模型平臺/model zoo),同時模型庫也支持手動上傳分享更厲害好玩的模型哦
訓練一個模型試試
注意 MaixHub 在不停更新冠王,可能有些地方在未來會有些許變化赶撰,原理變化不大,舉一反三即可
-
創(chuàng)建訓練項目柱彻,選擇檢測任務豪娜,檢測任務能框出物體的位置,后面需要我們標注數(shù)據(jù)哟楷,分類任務則不需要標注框侵歇,用來區(qū)分多種物體
-
創(chuàng)建數(shù)據(jù)集
-
采集數(shù)據(jù),可以從本地上傳吓蘑,也可以用手機在線拍照采集惕虑,也可以用設備拍照采集(比如 Maix-II-DocK)
-
標注數(shù)據(jù)坟冲,就是將要檢測的物體框起來,并且給一個標簽溃蔫,比如這里只有一個duck健提;一張圖里面可以有多個框,也可以只有一個框伟叛,最后訓練出來的模型都能識別同一個畫面的多個物體私痹,數(shù)據(jù)量盡量多一點,覆蓋的場景全面一點统刮,這樣實際到板子上跑起來準確率更高紊遵,最好使用什么板子跑就用什么板子采集數(shù)據(jù),準確率會高些
這里有訓練集侥蒙,驗證集暗膜,測試集的概念,訓練集就是拿來參與訓練的數(shù)據(jù)鞭衩,驗證集不參與訓練学搜,但是每隔一段訓練時間后會將模型在驗證集上面跑一次,得到 val_acc
也就是驗證集精確度论衍,即這個模型在這個從來沒參與過訓練的數(shù)據(jù)上正確率如何瑞佩,一般用這個指標來評判模型的好壞;測試集則是完全沒在訓練過程中參與的數(shù)據(jù)坯台,比如部署到板子上后實際識別的物體就算是測試集炬丸。所以為了讓實際在板子上跑的時候準確度高,盡量將驗證集的數(shù)據(jù)和實際應用的場景(測試集)相近蜒蕾,這樣訓練時在驗證集上的準確率(val_acc)才能更精確地反應在測試集上的效果稠炬。
比如你實際識別的是哈士奇狗狗,訓練集中放了各種狗狗圖滥搭,驗證集卻放了中華田園犬酸纲,就算 val_acc 為 1,即全部識別正確瑟匆,實際拿去識別哈士奇狗狗的時候可能完全無法識別
-
創(chuàng)建訓練任務闽坡,一個項目里面可以多次創(chuàng)建任務,調(diào)整不同的參數(shù)愁溜。
注意要根據(jù)自己的設備選擇對應的平臺疾嗅,比如 K210 選擇 nncase, 普通沒有 NPU 加速的單片機選擇 TinyMaix冕象,手機或者瀏覽器跑則選擇 tfjs代承。分辨率使用默認的 224x224 效果最好,因為遷移訓練就是基于一個已經(jīng)訓練過的模型微調(diào)訓練模型渐扮,這個模型默認都是 224x224 下訓練的论悴,所以理論上效果最好掖棉。
另外,選擇模型主干網(wǎng)絡膀估,網(wǎng)絡越大效果越好(精確度越高)幔亥,但是占用的內(nèi)存就越大,以及運行消耗的時間就越久察纯,也就是對算力的要求越大帕棉,根據(jù)你的數(shù)據(jù)集復雜度以及設備性能選擇合適的主干網(wǎng)絡(backbone)。
還有更多參數(shù)饼记,可以看頁面對應的文檔說明即可香伴,也可以到首頁的交流群交流。
- 啟動訓練具则,訓練任務多的時候可能需要排隊即纲,耐心等待就好了,如果加急可以聯(lián)系官方或者管理員鈔能力解決哈哈哈乡洼。
訓練過程可以看到val_acc
崇裁, 即損失和精確度曲線匕坯,會慢慢上升束昵,代表在驗證集訓練完成后可以看到
如前面所說,這里最重要的是 val_acc
葛峻,即在驗證集上的準確度锹雏,越接近 1
越好(實際上這里 val_acc 是 MAP,MAP相關(guān)含義可自行搜索)术奖。以及展示了部分識別正確的和識別錯誤(或者未識別到)的樣例礁遵。
-
一鍵部署
根據(jù)不同設備支持的方式可能不同,可能是直接下載文件(具體使用方法看對應說明)采记,也有(比如 Maix-II-Dock)支持一鍵部署佣耐,在設備上選擇模型部署,掃描部署頁面的二維碼即可自動部署唧龄,然后就可以進行識別了兼砖。
需要注意的是一鍵部署需要設備已經(jīng)聯(lián)接互聯(lián)網(wǎng),設備選擇聯(lián)網(wǎng)功能既棺,到 maixhub.com/wifi 生成填寫 WiFi 信息然后設備掃碼連接 WiFi讽挟, 注意不是局域網(wǎng),需要能訪問互聯(lián)網(wǎng)丸冕。
分享模型到模型庫
訓練的模型可以一鍵分享到模型庫耽梅,如果你訓練的模型實際在板子上運行的識別效果不錯,歡迎點擊左邊導航欄分享模型分享到模型庫胖烛,可以多寫點圖文介紹眼姐,推薦在 B 站上傳一個視頻后嵌入到模型描述里面~
更多功能持續(xù)在更新持續(xù)關(guān)注哦也歡迎來上傳分享你自己的模型诅迷!
訓練優(yōu)化建議
- 盡量多采集實際使用場景的圖片,覆蓋更多使用場景有利于提高最終識別率众旗。
- 圖片數(shù)量盡量不要太小竟贯,雖然平臺限制最小數(shù)量為 20 張圖才可以訓練, 但要打到比較好的效果逝钥,顯然一個分類 200 張都不算多屑那,不要一直在 30 張訓練圖片上糾結(jié)為什么訓練效果不好。艘款。持际。
- 默認分辨率但是 224x224, 是因為預訓練模型是在 224x224 下訓練的哗咆,當然也有其它分辨率的蜘欲,比如 128x128,具體發(fā)現(xiàn)不支持的分辨率預訓練模型晌柬,在訓練日志中會打印警告信息姥份。
- 為了讓驗證集的精確度的可信度更高(也就是在實際開發(fā)板上跑的精確度更接近訓練時在驗證集上的精確度),驗證集的數(shù)據(jù)和實際應用的場景數(shù)據(jù)一致年碘。比如訓練集是在網(wǎng)上找了很多圖片澈歉,那這些圖片可能和實際開發(fā)板的攝像頭拍出來的圖有差距,可以往驗證集上傳一些實際設備拍的圖來驗證訓練的模型效果屿衅。
這樣我們就能在訓練的時候根據(jù)驗證集精確度(val_acc)來判斷模型訓練效果如何了埃难,如果發(fā)現(xiàn)驗證集精確度很低,那么就可以考慮增加訓練集復雜度和數(shù)量涤久,或者訓練集用設備拍攝來訓練涡尘。 - 對于檢測訓練項目,如果檢測訓練的物體很準响迂,但是容易誤識別到其它物體考抄,可以在數(shù)據(jù)里面拍點其它的物體當背景;或者拍攝一些沒有目標的圖片蔗彤,不添加任何標注也可以川梅,然后在訓練的時候勾選“允許負樣本”來使能沒有標注的圖片。
- 檢測任務可以同時檢測到多個目標幕与,如果你覺得識別類別不準挑势,也有另外一種方式,先只檢測模型檢測到物體(一個類別)啦鸣,然后裁切出圖片中的目標物體上傳到分類任務潮饱,用分類任務來分辨類別。不過這樣就要跑兩個模型诫给,需要寫代碼裁切圖片(在板子跑就好了)香拉,以及需要考慮內(nèi)存是否足夠