如何使用AI Tool Stack與NeoEyes NE301相結(jié)合來完成從模型數(shù)據(jù)收集到部署的過程
使用AI工具棧訓(xùn)練和部署AI模型
主要工具及產(chǎn)品
本教程將主要使用AI Tool Stack與NeoEyes NE301相結(jié)合來完成從模型數(shù)據(jù)收集到部署的過程。AI Tool Stack是CamThink為NeoEyes NE301打造的端到端邊緣AI工具,涵蓋數(shù)據(jù)收集、標(biāo)注、訓(xùn)練、量化和部署。它支持用戶自部署和管理。對(duì)AI Tool Stack的訓(xùn)練和量化的底層支持來自于ultralytics項(xiàng)目庫。感謝ultralytics團(tuán)隊(duì)的出色貢獻(xiàn)。
AI工具棧
AI Tool Stack提供以下核心功能模塊:
?AI模型項(xiàng)目:項(xiàng)目創(chuàng)建和數(shù)據(jù)管理
?注釋工作臺(tái):數(shù)據(jù)注釋工具
?模型培訓(xùn):模型培訓(xùn)和測試
?量化部署:模型量化,一鍵導(dǎo)出NE301模型包
?模型管理:簡單的模型管理和測試AI工具棧是完全開源的,托管在GitHub上。你可以在這里找到代碼庫:AI Tool Stack
NeoEyes NE301
CamThink AI Camera NeoEyes NE301支持AI模型的動(dòng)態(tài)部署。因此,在本教程中訓(xùn)練的模型可以導(dǎo)出為NE301可用的資源包,用于設(shè)備web上的模型更新,從而實(shí)現(xiàn)模型的邊緣部署,并允許NeoEyes NE301擁有我們訓(xùn)練模型的檢測能力,以進(jìn)行持續(xù)的邊緣AI操作。單擊,查看NE301的硬件相關(guān)特性
服務(wù)器或個(gè)人電腦
AI Tool Stack是開源的,如果你需要訓(xùn)練模型,你將需要一臺(tái)功能強(qiáng)大的個(gè)人電腦或服務(wù)器,最好是帶有NVIDIA GPU或Mac的m系列芯片。即使我們不會(huì)使用非常大的數(shù)據(jù)集來訓(xùn)練模型,為了保證效率,最好選擇一個(gè)性能合適的設(shè)備來完成這項(xiàng)工作,或者使用GPU服務(wù)器進(jìn)行部署。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
請(qǐng)確保NE301與部署AI Tool Stack的服務(wù)器或PC在同一網(wǎng)絡(luò)中,例如連接到同一臺(tái)路由器,或者服務(wù)器的IP地址和域名是開放的
為了實(shí)現(xiàn)NE301攝像機(jī)與AI Tool Stack應(yīng)用程序之間的連接,由于AI Tool Stack具有內(nèi)置的MQTT服務(wù),我們將通過NE301的內(nèi)置MQTT功能與AI Tool Stack的MQTT服務(wù)連接,以實(shí)現(xiàn)NE301數(shù)據(jù)收集上傳。將來還會(huì)支持遠(yuǎn)程模型更新。因此,在啟動(dòng)前,需要確保NE301能夠訪問AI Tool Stack服務(wù),并且AI Tool Stack服務(wù)中的MQTT服務(wù)必須能夠?qū)ν庠L問。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如下:
安裝說明
先決條件
Docker & Docker -compose:請(qǐng)參考Docker官方安裝指南和Docker -compose安裝文檔進(jìn)行安裝。確保部署AI Tool Stack的服務(wù)器或計(jì)算機(jī)具有基本的Docker環(huán)境。AI工具棧安裝
1. 克隆存儲(chǔ)庫
2. 使用Docker部署
注意:要修改MQTT_BROKER_HOST等參數(shù),請(qǐng)編輯docker- composition .yml中的環(huán)境變量。確保MQTT服務(wù)地址可以被NE301設(shè)備訪問,通常使用主機(jī)的實(shí)際可訪問IP地址,而不是localhost。
安裝NE301開發(fā)環(huán)境
為了生成NE301可用的量化模型包,AI Tool Stack必須引用NE301項(xiàng)目編譯環(huán)境。請(qǐng)?zhí)崆袄瓐D:
安裝驗(yàn)證
AI工具棧安裝驗(yàn)證
安裝完成后,可通過以下方式驗(yàn)證AI Tool Stack服務(wù)是否啟動(dòng)成功:
檢查服務(wù)狀態(tài)
使用下面的命令確保您可以看到camthink/aitoolstack:latest等服務(wù)正在運(yùn)行。
NE301開發(fā)環(huán)境安裝驗(yàn)證
檢查服務(wù)狀態(tài)
使用下面的命令確保您可以看到與camthink/ne301-dev:latest相關(guān)的服務(wù)正在運(yùn)行。
您的需求
在開始工作之前,您可以首先評(píng)估當(dāng)前是否有一個(gè)可用的模型。如果您正在考慮將現(xiàn)有模型部署到NE301,您可以跳轉(zhuǎn)到此位置閱讀“將現(xiàn)有模型部署到NE301”。
如果您還沒有訓(xùn)練過任何模型,并且想從頭開始完成模型訓(xùn)練和模型部署,請(qǐng)從這里開始閱讀“從訓(xùn)練到部署”。
完整工作流程指南
創(chuàng)建項(xiàng)目
進(jìn)入Web頁面后,點(diǎn)擊“開始創(chuàng)建項(xiàng)目”按鈕或“AI模型項(xiàng)目”菜單,進(jìn)入項(xiàng)目管理頁面。根據(jù)您的需要構(gòu)建一個(gè)項(xiàng)目來注釋數(shù)據(jù)和訓(xùn)練模型。進(jìn)入AI Model Projects頁面后,點(diǎn)擊“Create New AI Model Project”按鈕創(chuàng)建項(xiàng)目。輸入您的項(xiàng)目名稱和項(xiàng)目描述,單擊save以創(chuàng)建項(xiàng)目。項(xiàng)目創(chuàng)建成功后,單擊該卡進(jìn)入項(xiàng)目工作臺(tái)。
構(gòu)建數(shù)據(jù)集
單擊項(xiàng)目以進(jìn)入項(xiàng)目工作臺(tái)。工作臺(tái)分為左側(cè)工具、底部快捷鍵提示和右側(cè)類管理、帶注釋的數(shù)據(jù)列表和數(shù)據(jù)集圖像管理。
上傳/導(dǎo)入數(shù)據(jù)集
目前支持以下方法來構(gòu)建項(xiàng)目的圖像數(shù)據(jù)集:
a.通過右側(cè)的“上傳圖片”,上傳本地文件
b.您可以通過右上角的“導(dǎo)入數(shù)據(jù)集”上傳數(shù)據(jù)集文件,支持COCO數(shù)據(jù)集和YOLO數(shù)據(jù)集格式。如果需要詳細(xì)了解支持的數(shù)據(jù)集格式,可以通過“導(dǎo)出數(shù)據(jù)集”導(dǎo)出文件,查看數(shù)據(jù)結(jié)構(gòu)。該工具以以下格式注釋源數(shù)據(jù):
│├──圖片/├──注釋/│├──*。json└──類。Json # id/name/color
讓NE301采集圖像
您需要有一臺(tái)NE301設(shè)備,并按照以下順序在設(shè)備中進(jìn)行配置。NE301操作指南請(qǐng)參考《快速入門》
a.將NE301上電,長按拍照鍵2s開啟設(shè)備WiFi AP。使用個(gè)人電腦或手機(jī)連接到NE301的WiFi AP,通過192.168.10.10進(jìn)入NE301的Web UI界面。進(jìn)入“系統(tǒng)設(shè)置”頁面,在“通訊”菜單中選擇當(dāng)前設(shè)備可以連接的路由器WiFi AP。確保NE301設(shè)備可以通過該WiFi正常訪問已部署的AI Tool Stack服務(wù),例如路由器可以訪問外部網(wǎng)絡(luò),也可以通過IP連接本地部署的AI Tool Stack服務(wù)。
b.配置NE301的MQTT服務(wù),使NE301能夠通過MQTT向AI Tool Stack項(xiàng)目報(bào)告當(dāng)前采集的圖像數(shù)據(jù)。進(jìn)入NE301的“應(yīng)用管理”菜單,輸入數(shù)據(jù)報(bào)告主題和服務(wù)器地址信息,連接AI Tool Stack內(nèi)置的MQTT服務(wù)。AI Tool Stack可以在項(xiàng)目工作臺(tái)頂部的MQTT中獲得,如下圖所示。確認(rèn)信息無誤后,點(diǎn)擊“連接”,將NE301連接到AI Tool Stack指定的模型訓(xùn)練項(xiàng)目。
c.現(xiàn)在只需要手動(dòng)操作NE301側(cè)面的拍攝按鈕即可進(jìn)行拍攝。捕獲后,圖像將自動(dòng)上傳到項(xiàng)目空間。您可以手動(dòng)按住NE301采集網(wǎng)絡(luò)范圍內(nèi)的數(shù)據(jù),也可以固定NE301采集數(shù)據(jù)。收集圖像后,可以繼續(xù)對(duì)圖像進(jìn)行下一步的注釋工作。
數(shù)據(jù)注釋
目前,NE301主要適用于目標(biāo)檢測模型。我們建議首先使用目標(biāo)檢測數(shù)據(jù)集構(gòu)建數(shù)據(jù)集。在開始注釋數(shù)據(jù)之前,需要在右側(cè)的類輸入框中添加所需的注釋類文本,為該類選擇注釋框的顏色,然后單擊save以創(chuàng)建注釋類。注釋快捷鍵與傳統(tǒng)注釋工具相同。有關(guān)詳細(xì)信息,請(qǐng)參考注釋工作臺(tái)中的快捷鍵提示。點(diǎn)擊底部的“快捷方式”展開說明。其他功能如刪除類、刪除注釋數(shù)據(jù)、刪除圖像、更改函數(shù)等,可根據(jù)界面說明進(jìn)行操作。
模型訓(xùn)練
完成所有數(shù)據(jù)標(biāo)注后,點(diǎn)擊“訓(xùn)練模型”開始訓(xùn)練模型。進(jìn)入訓(xùn)練界面后,需要為當(dāng)前項(xiàng)目數(shù)據(jù)集構(gòu)建新的訓(xùn)練任務(wù)。點(diǎn)擊“新增培訓(xùn)”,配置培訓(xùn)信息。如果您不完全理解訓(xùn)練參數(shù),我們建議您直接使用默認(rèn)配置設(shè)置。高級(jí)參數(shù)無需調(diào)整;它們都將使用默認(rèn)值運(yùn)行。點(diǎn)擊“Start Training”,開始培訓(xùn)任務(wù)。任務(wù)啟動(dòng)后,查看訓(xùn)練過程日志,等待訓(xùn)練完成。
完成模型訓(xùn)練后,可以在訓(xùn)練詳情中查看日志,也可以查看訓(xùn)練模型的準(zhǔn)確率性能。您還可以操作以下功能。所有的模型文件都可以在model Space的列表中找到:
?導(dǎo)出模型:可以將訓(xùn)練過的pt模型導(dǎo)出到本地文件夾
?測試模型:可以上傳圖像,測試當(dāng)前訓(xùn)練模型的整體檢測效果,評(píng)估訓(xùn)練結(jié)果
?量化(TFLite & CamThink NE301):可以量化到TFLite模型和NE301可用的模型文件包。如果需要部署到NE301設(shè)備,則需要執(zhí)行此步驟
模型量化
如果需要將模型部署到NE301設(shè)備上,則需要執(zhí)行此操作。量化需要NE301開發(fā)環(huán)境Docker。請(qǐng)確保您已安裝“NE301 Dev Docker”。
測試完模型效果后,就可以開始量化工作,準(zhǔn)備將量化后的模型部署到NE301上。
模型訓(xùn)練完成后,可以點(diǎn)擊“量化(TFLite & CamThink NE301)”來構(gòu)建模型量化任務(wù)。在任務(wù)彈出框中,您可以設(shè)置一些量化參數(shù)。除了輸入大小參數(shù)外,我們不建議對(duì)其他參數(shù)進(jìn)行任何更改。對(duì)于輸入大小參數(shù)設(shè)置,建議設(shè)置256、416或640中的一個(gè)。該參數(shù)表示量化模型支持的圖像輸入大小。如果不想調(diào)整,請(qǐng)使用默認(rèn)值。建議設(shè)置為256。如果您想要更好的精度性能,請(qǐng)?jiān)O(shè)置416。推理性能在640時(shí)很緊張,所以要小心設(shè)置。點(diǎn)擊“開始量化”,模型將開始量化過程。你只需要等待量化完成。這個(gè)過程需要很長時(shí)間的等待。請(qǐng)不要關(guān)閉任務(wù)窗口。大約需要5-10分鐘。模型量化完成后,可以看到量化后的NE301模型資源包。點(diǎn)擊“下載模型包”來下載它(或者在關(guān)閉下載后在Model Space菜單中找到這個(gè)資源)。下一步是在本地將型號(hào)更新到NE301設(shè)備。
模型部署
現(xiàn)在我們已經(jīng)訓(xùn)練了模型并導(dǎo)出了NE301設(shè)備可部署模型資源文件?,F(xiàn)在我們可以將模型部署到NE301設(shè)備中。目前,模型部署仍然需要進(jìn)入NE301設(shè)備的web界面上傳和更新設(shè)備模型文件。AI Tool Stack將在未來支持遠(yuǎn)程模型更新。下面將解釋如何在NE301上更新訓(xùn)練好的模型文件。
使用下載模型的手機(jī)或電腦連接NE301的WiFi,進(jìn)入NE301 Web UI頁面,在當(dāng)前模型中點(diǎn)擊“上傳”,選擇下載的NE301模型文件進(jìn)行模型更新。等待型號(hào)更新后,測試設(shè)備型號(hào)檢測效果。您可以通過NE301管理頁面上進(jìn)行的“模型驗(yàn)證”功能進(jìn)行測試,也可以直接在NE301中預(yù)覽目標(biāo)類檢測效果。您可以調(diào)整Conf和NMS來驗(yàn)證效果。
部署現(xiàn)有模型
如果你已經(jīng)有了一個(gè)經(jīng)過訓(xùn)練的YOLOv8模型,而它恰好是一個(gè)YOLOv8n模型——為什么是YOLOv8n?因?yàn)樵贜E301部署中,模型性能和n大小下的性能比較合適。未來還將支持YOLOv11等型號(hào)。如果您需要在NE301中部署現(xiàn)有模型,您可以在AI Tool Stack的“模型空間”菜單中找到“上傳模型用于量化”按鈕。點(diǎn)擊并填寫表格中的信息:
?模型名稱:定義一個(gè)名稱
?型號(hào)類型:默認(rèn)YOLOv8n
?輸入大?。耗J(rèn)為640,可根據(jù)模型的輸入圖像大小進(jìn)行調(diào)整
?類數(shù):根據(jù)您的模型的檢測類數(shù)調(diào)整
?類名:填寫你的模型類型點(diǎn)擊“上傳”上傳你的模型。在列表中找到您上傳的模型。您可以單擊test來測試該模型的性能。
在模型驗(yàn)證完成后,我們開始對(duì)模型進(jìn)行量化,使模型量化為ne301可部署的模型資源。點(diǎn)擊列表中的量化按鈕,在彈出框中填寫輸入尺寸(256、416、640),點(diǎn)擊“開始量化”按鈕,等待量化工作完成。這個(gè)過程需要很長時(shí)間,請(qǐng)耐心等待。模型量化完成后,ne301可用模型資源將出現(xiàn)在列表中。您可以下載該文件并部署到NE301設(shè)備上。有關(guān)模型部署的詳細(xì)信息,請(qǐng)參見模型部署。
模型量化部署結(jié)果的培訓(xùn)概述
下面是我們使用MQTT從NE301設(shè)備收集31張圖片推送到項(xiàng)目,完成標(biāo)注的過程。本型號(hào)為識(shí)別鑷子和螺絲刀的檢測型號(hào)。下面是部署到NE301上經(jīng)過訓(xùn)練和量化后的檢測效果。整個(gè)過程花了不到兩個(gè)小時(shí)。
本文編譯自hackster.io





