機器學習橋和外部計算(Machine Learning Bridge and External Compute)
前言大綱
Spot 提供了非本機外執行計算並將其輕鬆集成到您的 API 程序中的功能。例如,您可能想要運行基於深度學習的邊界內檢測器,來識別您想要命令機器人撿起的球。
network_compute_bridge API 可以幫助您協調各種組件之間的網絡,並為您的圖像調用添加預處理和後處理,根據需要為您捕獲和旋轉圖像。平板電腦應用程序具有內置功能,可在駕駛時在線查看邊界框檢測器的輸出((Menu > Utilities > ML Model Viewer,菜單 > 實用工具 > ML 模型查看器)。
範例概念Example Concept
您已經訓練了一個模型來檢測網球。您想構建一個腳本來走到一個區域中的每個網球。由於您的網球檢測器的計算成本很高,因此您決定在與 Spot 相同的 WiFi 網絡上運行一台大型服務器來進行計算。
您可以通過以下方式進行設置:
- 大型服務器在服務器機房中運行,與 Spot 位於同一 WiFi 網絡上。
- 您的客戶端筆記本電腦有一個腳本,用於查詢"網絡計算橋Network Compute Bridge to":
- 捕捉圖像
- 在該圖像上運行網球檢測器
- 將結果返回給腳本
- 根據結果,您的腳本命令機器人走向網球。
系統組件
- Spot robot
- Server running computation
- mounted on Spot or externally networked
- Client computer
- robot tablet
- external computer
- same computer as is running the server
發現服務器和模型Discovering Servers and Models
計算服務器註冊到 Spot 的目錄(Directory.)。
客戶端可以使用該目錄來查找可用的服務器(請參閱:列出服務 listing services)。
服務器應該實現 ListAvailableModels RPC 來通知客戶端他們的可用計算。
範例客戶端和服務器
範例可在網絡計算橋範例(network compute bridge examples)文件夾中找到。
預處理和後處理
如果您正在處理圖像,您可以:
- 讓機器人捕捉圖像
- 發送已經捕獲的圖像進行計算
如果您選擇 (1),您可以選擇讓機器人旋轉圖像以對齊水平。許多 ML 檢測器偏向於水平捕獲的圖像,因此這是改善結果的好方法。
如果您使用旋轉功能,機器人將:
- 捕獲圖像
- 將圖像旋轉到水平方向
- 發送到外部服務器
- 接收
- 向您發送帶有相應邊界框的原始圖像。
- 邊界框結果並取消旋轉框,使其與原始圖像對齊
- 向您發送帶有相應邊界框的原始圖像。
RPC 定義:
NetworkComputeBridge 是 API 客戶端和機器人之間的 API 接口。
NetworkComputeBridgeWorker 是機器人和計算服務器之間的 API 接口
其他數據
API 在 proto 中提供了一個 Any 字段,允許您打包任意輸入和輸出數據。此字段允許您對任何數據執行外部計算。但是,平板電腦應用程序將無法解釋此自定義數據。
參考資料
- Machine Learning Bridge and External Compute
- arbitrary : 隨意的
留言
張貼留言
Aron阿龍,謝謝您的留言互動!