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





