在計算機視覺領域,有許多通用預訓練模型可供部署到邊緣裝置(例如 OpenCV AI Kit)。但是,當今計算機視覺部署的真正力量在於**使用您自己的資料訓練您自己的計算機視覺模型**,以應用於**您自己的自定義解決方案**到**您自己的裝置**上。
要訓練您自己的自定義模型,您必須收集影像資料集,對它們進行標註,訓練您的模型,然後將您的模型轉換為目標部署環境並進行最佳化。這條機器學習路徑充滿了細微差別,並會減慢開發週期。更重要的是——錯誤並非表現為明顯的錯誤,而是靜默地降低模型的效能。
為了簡化計算機視覺開發和部署,Roboflow、OpenCV 和 Luxonis 正在合作,為 OAK-1 和 OAK-D 提供一鍵式自定義訓練和部署解決方案。

在本博文中,我們將介紹自定義模型部署到 OAK 裝置的過程,並展示其過程有多麼無縫。
最棒的是,您甚至不需要手邊有 OAK 裝置即可**立即開始開發您的專案**。您可以在 Roboflow 的雲環境中先進行開發和測試,然後將訓練後的模型部署到您的 OAK 上。
步驟 1:收集您的資料集
為了訓練您的自定義模型,您需要收集代表模型在實際環境中將要解決的問題的影像。使用與部署環境相似的影像至關重要。最佳做法是在您的 OAK 裝置上以您希望推斷的解析度拍攝影像進行訓練。您可以透過 Roboflow 上傳 API 將影像自動上傳到 Roboflow 以進行標註。
要初步瞭解問題,您將需要 5-100 張影像。要構建生產級系統,您可能需要更多影像。
步驟 2:標註您的資料集
下一步是在 Roboflow 中上傳並標註您的影像。


您將在要檢測的物件周圍繪製邊界框。請參閱有關 標註最佳實踐 的提示。
步驟 3:對您的資料進行版本控制
對資料集的標註感到滿意後,您可以在 Roboflow 中建立資料集版本以準備訓練。資料集版本在時間上是固定的,允許您迭代實驗,同時知道資料集已在版本建立時固定。
建立資料集版本時,您將做出兩組決定
- 預處理——跨資料集的影像標準化選擇,例如影像解析度。對於 OAK 部署,我們建議使用 416×416 的影像解析度。
- 增強——影像增強從您的訓練集中建立新的、經過轉換的影像,使您的模型能夠接觸到資料的不同變體。

步驟 4:訓練您的模型並將其部署到 OAK
Roboflow Train 提供一鍵式訓練和部署到您的 OAK 裝置。建立版本後,點選開始訓練並選擇要從其開始的檢查點。如果您沒有要從其開始的檢查點,只需選擇從頭開始訓練或公共模型-->COCO

根據資料集的大小,訓練和轉換將花費 15 分鐘到 12 小時,訓練和轉換完成後,您將收到電子郵件通知。

步驟 5:在託管 API 上測試您的模型
完成步驟 4 後,您的模型已準備好進行 OAK 部署(步驟 6),但我們建議您在部署前花點時間在 Roboflow 託管推理 API 上測試您的模型。 託管推理 API 是您的模型的版本,部署到雲伺服器。您可以初步瞭解在測試影像上進行推理的質量,並針對此 API 開發您的應用程式。
當您需要邊緣部署時,可以繼續設定 OAK 推理伺服器。
這也意味著,您不需要手邊有 OAK 裝置即可開始迭代模型並測試部署條件。
步驟 6:將您的模型部署到您的 OAK 裝置
模型完成訓練後,就可以將其部署到您的 OAK 裝置上的邊緣環境中。
支援的裝置
Roboflow OAK 推理伺服器在以下裝置上執行
- DepthAI OAK-D (LUX-D)
- Luxonis OAK-1 (LUX-1)
主機系統需要 linux/amd64 處理器。arm65/aarch64 支援即將推出。
推理速度
在我們的測試中,我們觀察到以 416×416 解析度的推理速度為 20FPS,適合大多數即時應用程式。此速度會根據您的主機略有不同。
為您的模型提供服務
在您的主機上,安裝 docker。然後執行
sudo docker run --rm \
--privileged \
-v /dev/bus/usb:/dev/bus/usb \
--device-cgroup-rule='c 189:* rmw' \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-p 9001:9001 \
roboflow/oak-inference-server:latest
這將在您的機器上啟動一個本地推理伺服器,該伺服器在埠 9001 上執行。
使用伺服器
- 透過在您的瀏覽器中訪問
https://:9001/validate來驗證您的 OAK 是否已正確啟動 - 透過呼叫內建的預訓練 COCO 模型
https://:9001/coco來驗證推理是否正常工作 - 透過對
https://:9001/[YOUR_ENDPOINT]?access_token=[YOUR_ACCESS_TOKEN]發出 GET 請求來呼叫您的自定義模型
在呼叫時,您可以獲得影像或 JSON 響應。
{
'predictions': [
{
'x': 95.0,
'y': 179.0,
'width': 190,
'height': 348,
'class': 'mask',
'confidence': 0.35
}
]
}

就這樣,您就踏上了征程!真正的挑戰在於將您的計算機視覺模型實施到您的應用程式中。
- 有關針對 OAK 推理伺服器進行開發的更多資訊,請參閱 Roboflow OAK 推理伺服器文件。
結論
恭喜!現在您知道如何使用經過實戰檢驗的機器學習管道,只需點選幾下,即可將自定義計算機視覺模型部署到邊緣環境中。
獲取訪問許可權
如果您已經擁有 OAK 裝置,則可以免費開始使用。只需在 Roboflow 中直接請求 Roboflow Train,並在回覆電子郵件時提供您的 OAK 序列號。(如果您還沒有 OAK 裝置,請聯絡我們獲取折扣。)
import depthai
for device in depthai.Device.getAllAvailableDevices():
print(f"{device.getMxId()} {device.state}")
祝您訓練愉快!更重要的是,祝您推理愉快!






