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





