HUB 8735 Ultra 全方位開發指南-影像辨識篇

在掌握了基礎的環境設定與影像串流後,本篇文章將帶領各位進入 HUB 8735 Ultra 的核心領域:邊緣 AI 運算雲端整合

在掌握了 HUB 8735 Ultra 的開發環境設定與影像串流功能之後,本篇將帶領你進入更進階的 AI 辨識應用領域。透過內建的 NPU(神經網路處理單元)與範例程式,你可以直接使用 人臉辨識、物件偵測模型,甚至整合控制外部設備與雲端服務,加速打造智慧系統。

一、內建人臉辨識 (RTSP Face Recognition)

影像辨識是 AIoT 裝置最典型的應用之一,HUB 8735 Ultra 提供了一個基於 RTSP(Real Time Streaming Protocol) 的人臉辨識範例,可同時串流影像並進行即時 AI 推論。

功能重點與原理

  • 利用模組內建的 NPU 執行人臉偵測與辨識
  • 透過 RTSP 進行串流,可以在 VLC 等播放器上直接觀看辨識後畫面
  • 人臉註冊與辨識結果可以透過 Serial 指令進行操作與管理
  • 辨識資料預設儲存在 RAM,重啟後會清除,需要備份才可永久保存

開啟範例與設定

  1. 開啟範例:AmebaNN > RTSPFaceRecognition
  1. 修改程式碼中的 Wi-Fi 設定 (SSID 與 Password)。

⚠️ 注意事項:
預設情況下,臉部辨識的註冊資料僅儲存於 RAM (記憶體) 中,重開機後會消失。若需永久保存,需執行備份指令。

註冊臉部

1.還沒註冊時,所有臉部都是未知(UNKNOWN)

2.在序列視窗空白處輸入   REG=英文名字       (註冊時僅能有一個臉部)

3.註冊後等約5秒即可出現辨識結果


操作指令 (透過 Serial Monitor)

程式執行後,可透過序列埠輸入以下指令進行操作:

  • REG=Name:將當前畫面中的人臉註冊為 “Name” (例如 REG=Eric)。
  • DEL=Name:刪除指定名稱的人臉資料。
  • RESET:清除所有已註冊的人臉。
  • BACKUP:將目前的臉部資料庫備份到 Flash 記憶體 (斷電不消失)。
  • RESTORE:從 Flash 載入備份的資料庫。

如何清除 Flash 中的人臉資料?

若需徹底清空記憶體,可至 IDE 上方選單:Erase All Flash Memory > Erase only,再進行燒錄。

教學重點提示

  • 辨識資料若未備份到 Flash,板子重啟後會消失
  • 可結合 RTSP 串流與遠端播放工具進行監看與 UI 顯示
  • 這個範例不僅是辨識結果顯示,更包含人臉資料管理操作

二、伺服馬達與閘門控制

人臉辨識常見於門禁系統。本節示範如何結合 伺服馬達(Servo Motor) 來控制實體閘門或致動機構。

硬體接線 (以 SG90 為例)

  • PWM 腳位: 8735 Ultra 支援的 PWM 腳位包含 Pin 11, 12, 13, 18-24 [4]。
  • SG90 接線:
    • 棕色線 → GND
    • 紅色線 → 3.3V
    • 橘色線 → 訊號腳 (如 Pin 20)

範例程式碼下載: Google Doc 連結

人臉辨識閘門範例

範例架構與流程

  1. 在人臉成功辨識後,觸發特定 IO 訊號
  2. 伺服馬達接收到信號後啟動,控制閘門打開或關閉
  3. 你可以在程式中自訂 LED 指示燈以顯示狀態(綠燈代表辨識成功,紅燈代表未知)

結合上述的人臉辨識與 Servo 控制,可實作「刷臉開門」功能。
範例程式碼下載: Google Doc 連結

認識的亮綠燈(IO 23)
不認識的亮紅燈(IO 24)

人臉辨識閘門結果

請注意沒有看螢幕的情況下AI辨識還在進行中

1. 影像辨識遠端設定

從MQTT觀察辨識結果:https://docs.google.com/document/d/1HLCk93CJI9CCoqZJOS7-V4B_3XChlzBDzx3cMCGwO60/edit?tab=t.0

在程式碼中,請記下您設定的 MQTT Topic (主題),例如:alice/class205/image

2. Node-RED 流程設計 (接收端)

Node-RED 的處理邏輯非常直觀,我們需要建立一條流程,將接收到的二進位 Buffer 轉為 Base64 字串,最後餵給網頁顯示。

詳細設定步驟

步驟 1:加入 MQTT In 節點
  • 拖拉 mqtt in 節點到工作區。
  • Server: 設定為與開發板相同的 Broker (例如 mqttgo.io)。
  • Topic: 輸入開發板發送影像的主題 (例如 alice/class205/image)。
  • Output: 選擇 a Buffer (確保輸出格式為二進位緩衝區)。
步驟 2:加入 Base64 轉換節點
  • 搜尋並拖拉 base64 節點 (通常位於 Parser 分類下)。
  • 將 MQTT In 的輸出連接至 Base64 的輸入。
  • Action: 選擇 Encode (將 Buffer 編碼為 Base64 字串)。
  • 此步驟是為了讓 HTML 標籤能夠讀取圖片資料。
步驟 3:加入 Dashboard Template 節點
  • 確保您已安裝 node-red-dashboard 套件。
  • 拖拉 template 節點 (位於 Dashboard 分類下)。
  • 將 Base64 的輸出連接至 Template 的輸入。
  • 在 Template 內容中填入以下 HTML 代碼:
<div style="text-align:center;">
    <h3>AI 即時監控畫面</h3>
    <img height="50%" width="100%" 
         src="data:image/jpeg;base64,{{msg.payload}}" 
         style="max-width: 640px; border: 2px solid #f8c600; border-radius: 5px;" />
</div>

💡 語法解析:
src="data:image/jpeg;base64,{{msg.payload}}"
這段語法告訴瀏覽器圖片來源是 Base64 編碼的資料。{{msg.payload}} 是 Node-RED 傳入的轉換後字串。

3. 成果展示

完成上述連接後,點擊 Node-RED 右上角的 Deploy 按鈕。接著開啟 Dashboard 頁面 (通常為 http://localhost:1880/ui)。

當 8735 Ultra 開始傳輸影像時,您應該就能在儀表板上看到即時更新的監控畫面與 AI 辨識結果框選了。

三、YOLO 物件偵測應用

除了人臉辨識,HUB 8735 Ultra 也支援通用物件辨識模型(例如支援執行 YOLO (You Only Look Once) 模型),能讓裝置辨識畫面中的人、車輛、動物等。

支援模型與物件

  • 模型: 支援 YOLOv3 tiny, YOLOv4 tiny, YOLOv7 tiny 。
  • 資料集: 使用 COCO Dataset 訓練,可辨識 80 種常見物件 (如人、車、貓、狗、手機、筆電等)。

認識的物件是由COCO資料集訓練而得,網址:COCO – Common Objects in Context

COCO生活中常見的物件,一共有80個,交通工具,生活用品,動物…等等

YOLOv3 model: DEFAULT_YOLOV3TINY, CUSTOMIZED_YOLOV3TINY

YOLOv4 model: DEFAULT_YOLOV4TINY, CUSTOMIZED_YOLOV4TINY

YOLOv7 model: DEFAULT_YOLOV7TINY, CUSTOMIZED_YOLOV7TINY

Valid Face Detection model: DEFAULT_SCRFD, CUSTOMIZED_SCRFD

使用 Callback 取得辨識結果

使用 Callback 回呼機制,每當模型偵測到物件時:

  • 回呼函式會取得物件名稱與座標
  • 可將結果顯示在 RTSP 串流畫面上
  • 結合 IO 控制可實現行為邏輯,例如:
    • 計算畫面中「人」的數量
    • 根據人數控制燈號或其他輸出裝置
  1. 開啟範例:AmebaNN > ObjectDetectionCallback 。
  1. 此範例會在發現物件時產生回呼 (Callback),您可以在程式碼中獲取物件名稱與座標。
  2. 搭配 VLC 播放器開啟 RTSP 串流,可看到即時的辨識框選畫面 。

實作1:人數計算並寫在左上角

參考解答:

https://docs.google.com/document/d/1YjDd6xrdTn78URe_6CZHiU_jdMwQdv1NYzG8YQFi46k/edit?tab=t.0

實作2:依據人數控制燈號

利用 YOLO 偵測到的「人 (person)」數量來觸發 IO 動作。例如:

  • 當人數 <= 5 時:亮綠燈
  • 當人數 > 5 時:亮紅燈

邏輯解析: 透過解析 PostProcess 的回傳資料,計算 class 為 “person” 的數量,再控制 LED 腳位。

參考解答:

https://twgo.io/eiqnd

實作3:有人出現時就傳MQTT紀錄

範例程式下載:https://twgo.io/ahasy

關閉VLC,偵測到人,一樣會傳MQTT

代表YOLO辨識是在晶片中的邊緣運算

四、Line Bot 雲端機器人串接

當你的影像辨識結果達到一定程度時,往往會想要讓系統「主動通知」使用者,例如:

  • 辨識到特定對象
  • 畫面中發現危險情境
  • 自動送出提醒訊息

透過 Line Messaging API 可以讓你的 HUB 8735 Ultra 與 LINE 社群機器人互動。

Step 1: 申請服務

  1. 進入 Line Developers Console
  1. 建立一個 Provider (類似公司/組織名稱) 。
  1. 建立一個 Channel,類型選擇 Messaging API 。
  1. 填寫帳號資訊 (名稱、地區、公司) 並完成建立 。

Line official

https://tw.linebiz.com/login

  1. 完成後按最下面管理畫面

Step 2: 開啟聊天與 API 功能 (關鍵步驟)

  1. 在 Line Developers 頁面點選「Line Official Account Manager」進入官方帳號管理後台。
  1. 點選上方選單的「聊天」,會跳出視窗提示「聊天功能目前關閉中」,請點選「前往回應設定頁面」
  1. 在回應設定中:
  1. 將「聊天」開啟。
  2. 將「Webhook」開啟。
  1. 回到 Line Developers Console,點選「啟用 Messaging API 」
  1. 點選對應的公司(provider)
  1. 隱私權服務條款 留空白
  1. 連動確認
  1. 建立完畢,不須更動
  1. 回到開發者平台,重新整理

Step 3: 取得金鑰資料

為了讓程式能控制機器人,我們需要取得以下三組關鍵資料 :

  1. Channel Secret (位於 Basic settings 分頁)。
  1. User ID (位於 Basic settings 分頁)。
  1. Channel Access Token (long-lived) (位於 Messaging API 分頁,需點擊 Issue 產生)。

Step 4: 發送貼圖測試

若要發送貼圖,需查詢 Line 的 Package ID 與 Sticker ID。

  • 查詢列表: Sticker List 。
  • 例如:Package ID 446, Sticker ID 1988 (熊大貼圖)。

測試程式下載: Line 通知測試範例 。

五、自定義模型訓練

除了內建模型,HUB 8735 Ultra 也支援載入 自行訓練的模型,例如針對特定場景產品或缺陷辨識的自定義 YOLO 模型。

你可以在電腦上利用主流資料集與框架訓練模型,然後將模型轉成可在 8735 上推論的格式,上傳並載入、執行。

詳細訓練過程與轉檔教學,請參考專屬頁面:twgo.io/robot

結語

這篇「影像辨識篇」不只是示範各種範例,而是讓你理解:

辨識模型如何在裝置端運作
如何把 AI 辨識結果轉換為實際行動與控制
如何結合網路、雲端服務與即時通知
如何打造具互動性和智慧性的 AIoT 系統

透過這些實作範例,你可以更深入掌握 AIoT 裝置的核心價值,而 HUB 8735 Ultra 的內建 NPU 和靈活的 Arduino 環境則是你快速上手的重要助力。

電子報更新

請在下方輸入你的電子郵件地址並訂閱我們的電子報

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *