作者:Felix
由 VIA 威盛開發的 Pixetto 也是一款 AI 視覺感測模組,硬體晶片使用核心為 Cortex-A7 900MHz 的 SoC HI3518,內建 64MB DDR SDRAM 處理影像與額外 128MB 的 Flash 儲存空間,並搭配 HI1311 整合了 Wi-Fi 功能。使用的鏡頭為格科微(GalaxyCore)的 GC2053 130度廣角鏡頭,可提供 1080P (210萬畫素) 的 FHD 影像畫質。
筆者第一時間看完這規格,心想說:「這不就是行車紀錄器的解決方案嘛!?」但話別說得太早,威盛有提供非常優異的 AI 軟體配套,且看筆者娓娓道來。
怎麼玩?
使用 USB 線將 Pixetto 連接到電腦,於電腦端即會出現一個隨插即用的 UVC (USB video device class)裝置,這時可以當作一般高畫質的 WEBCAM 來做使用。若要運用 Pixetto 的 AI 功能就必須到 VIA Pixetto 的官網,下載 pixutils 工具(目前2023年2月最新版本為 1.6.4),解壓縮後啟動 pixutils 即可看到下方使用者介面。若有新的韌體釋出,也會在此軟體中提醒,並且透過一鍵更新即能將 Pixetto 內部韌體更新到最新版。
Pixutils 介面可分為三個區塊,左上為 Pixetto 即時回傳的影像,若有套用影像辨識的相關功能,可以在此區做即時預覽。右上為功能設定區,用以設定 Pixetto 各種不同的 AI 識別功能並加以套用。下方則是訊息輸出區,除了應用上的提示訊息,若發生異常狀態也可以從 LOG 中進行問題判讀。在即時預覽區中可以看到影像邊緣有比較嚴重的變形,這是因為 Pixetto 搭配 130 度廣角鏡頭所致,屬於正常現象。官方所提供支援的內建功能都可以在此工具當中進行設定與測試,完整列表如下:
- 顏色偵測:辨識物體顏色、大小、與位置。
- 顏色組合:追蹤包含特定顏色組合的物體。
- 形狀偵測:偵測幾何形狀,例如三角形、四邊形、五邊形等等。
- 球體偵測:偵測符合指定顏色的球體,回傳大小與位置。
- 模板比對 *:透過比較畫面相似度,來辨識物體。適合用來辨識靜態照片。
- 特徵點檢測 *:根據物體特徵點來分類物體。可儲存五組特徵點。
- 神經網路*:運行上傳的神經網路模型,進行物體分類。
- 人臉偵測:偵測人臉,回傳位置與大小。
- 路標辨識:回傳交通號誌的編號、大小與位置。
- 手寫數字:辨識手寫數字
- 手寫英文字母:辨識手寫英文字母,回傳字母編號、大小與位置
- AprilTag (16h5) *:二維碼辨識,可回傳編號、位置、大小、三軸傾斜角度
- 遠端計算 *:Wi-Fi連接PC或服務器,實現進階物體分類。
- 道路偵測:回傳車道中心點,與道路兩側邊緣。
- 數字運算:回傳手寫算式與計算結果。
- 簡易分類器 *:分析物體特徵進行編號,用於區分有明顯特徵的物體。
支援 Arduino 積木、 Scratch 3 與 micro:bit
在經由 pixutils 預覽與設定後,就能搭配由官方提供的多項積木程式工具,讓 Pixetto 可以方便的與 數種現今主流程式學習軟體。以 Arduino 來說,威盛提供 Pixedit 軟體用積木來編輯 Arduino 程式碼,除了一般的邏輯、數學與 IO 控制,也涵蓋了 Pixetto AI 鏡頭模組的功能積木, 同時也有數種範例程式可以直接參考與套用。
它的介面上也相當直觀,最上排有功能列與硬體設定選擇,下方由左至右分別為積木區、程式編輯區以及即時生成的 Arduino 程式。較為可惜的是開發板支援選項只有 Arduino UNO 與 Nano,若要使用其他開發板,則必須要複製程式碼到 Arduino IDE 進行編輯(Arduino IDE 也需要先行安裝 Pixetto Library)。
Scratch 3 與 micro:bit 的部分也只要使用官方的程式編輯器,並依循威盛官方提供的 micro:bit 教學或是 scratch 3 教學也能順利地應用。 筆者對於 AI 硬體可以支援到 micro:bit 與 Scratch 給予認同與支持,這也代表著此硬體商對於國中小的資訊教育是有在乎並以行動展現支持的!
從 TM 匯入 TF Lite 神經網路模型
除了上述功能說明,筆者最激賞的就是 Pixetto 能夠支援 TensorFlow Lite 的模型匯入,並且在模組內及時推論,這也代表可以從 Teachable Machine(TM) 將訓練好的模型匯出到 Pixetto ,再搭配熟悉的 Arduino 或 micro:bit 就能完成一個邊緣運算系統雛型了!
筆者用 Teachable Machine 該篇的範例做延伸,開啟日前儲存的 Teachable Machine 檔案,所有分類資料即被匯入,重新訓練後即可再次得到模型。接著點選
,在 Tensorflow Lite 頁籤中選擇
。等待一段時間過後,會下載一個名為
的壓縮檔,解壓縮後內容包含了 Tensorflow Lite 模型(model_unquant.tflite)與標籤檔(labels.txt)兩個檔案。
回到 pixutils 工具,右側功能下拉式選單選擇神經網路辨識,點選套用按鈕後並在下方找到安裝神經網路模型的欄位,從資料夾中選擇剛剛下載的 .tflite 檔案,並且點選確認將模型檔傳送到 pixetto 上。
載入模型後可在預覽畫面看到即時的影像辨識結果,由於未載入標籤檔,所以只會有0、1、2等ID編號。試著擺入不同的物件,也能順利辨識出其對應的ID。順帶一提,預設選定的物件偵測演算法為 Central(Motion),也就是在中心區域的影像有變動時,才會將其截下並丟入神經網路中進行分類辨識。即便 Pixetto 支援數種不同的物件區域框選演算法,但實測效果均差強人意,反而是固定中心區域較為穩定實用。
若想要搭配 Arduino UNO 做使用,也可使用 Pixetto Editor 積木程式編輯器。如下圖所顯示的範例,即是在辨識到不同的開發板會將 RGB LED 模組(接到 Arduino 的 9/10/11 腳)點亮不同顏色的燈,經由筆者測試是能夠正常作動的!
整合應用
威盛官方教學內容中有一篇口罩辨識教學,使用 Pixetto 神經網路(TensorFlow Lite)辨識功能來做口罩偵測辨識的應用。內容除了使用影片講解專案製作流程,同時也提供訓練資料集,並且應用其線上機器學習訓練軟體(需要註冊成為會員後登錄方能使用),簡單幾步驟即可訓練完成得到初步驗證使用模型,可說是深度與實用性兼具的一片教學。
CIRCUS Pi 網站也有一篇教學文使用 Pixetto 視覺感測模組進行顏色的感測,再依據顏色感測的結果來調整小夜燈的顏色。雖然這僅是一個簡單的小專案,甚至(使用顏色感測器)不使用 AI 影像識別也辦得到,但此一專案套件完整,並且使用積木來編寫 Arduino 程式,Step by Step 淺顯易懂的教學方式甚至連小學生都有機會入門。
在上手之後還可以進階將 Pixetto 的運算更換為 Teachable Machine 所訓練出的神經網路模型,為往後的延伸應用做好紮跟。
小結 - 不是AI晶片,但用STEAM精神實踐AI
嚴格來說 Pixetto 這塊 AI 鏡頭模組並非使用 AI 晶片,所有的 AI 演算都是在 CPU 上執行,在市場上的售價也屬偏高,入手硬體稍有些門檻。但其所附帶的軟體卻相當完整,不管是 utility 公用程式還是對應 Arduino、micro:bit、Scratch 等各平台的積木程式工具,都是對於入門 AI 的學習者與開發者非常友善,讓低年齡層也可以體驗到如何將 AI 應用加入到程式邏輯中。
筆者最喜歡的則是匯入 TensorFlow Lite 的便利性,有不少單板電腦(如樹莓派等)都支援 TensorFlow Lite,但如 Pixetto 一般輕鬆匯入並可搭配 Arduino 使用的,目前還未看到第二台。當我們能基於以上兩特性的優點,進而整合開發出 AI 專題應用,又何必拘泥是否為 AI 晶片呢!?
(本篇文章經同意轉載自vMaker,原文連結;責任編輯:謝嘉洵。)
- 【開箱實測】OpenVINO榨出單板極限,實作離線LLM AI助理! - 2024/07/25
- 【Maker 玩 AI】Grove Vision AI 模組讓 Arduino 也能玩 YOLO 模型 - 2023/12/26
- 【Maker 玩 AI】Edge Impulse 搭配 XIAO ESP32-S3 實作影像分類專題 - 2023/12/04