SenseCraft 部署模型到Grove Vision AI V2影像處理模組

FreakStudio發表於2024-08-14

Grove Vision AI V2 影像處理模組開箱測評

摘要

今天教大家快速上手 Grove Vision AI V2 影像處理模組,我們將一起探討如何利用 SenseCraft 部署 AI 模型,和如何透過 XIAO ESP32C3 呼叫這些模型,輕鬆實現智慧視覺功能!

原文連結:

FreakStudio的部落格

往期推薦:

學嵌入式的你,還不會物件導向??!

全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論

全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念

全網最適合入門的物件導向程式設計教程:02 類和物件的 Python 實現-使用 Python 建立類

全網最適合入門的物件導向程式設計教程:03 類和物件的 Python 實現-為自定義類新增屬性

全網最適合入門的物件導向程式設計教程:04 類和物件的Python實現-為自定義類新增方法

全網最適合入門的物件導向程式設計教程:05 類和物件的Python實現-PyCharm程式碼標籤

全網最適合入門的物件導向程式設計教程:06 類和物件的Python實現-自定義類的資料封裝

全網最適合入門的物件導向程式設計教程:07 類和物件的Python實現-型別註解

全網最適合入門的物件導向程式設計教程:08 類和物件的Python實現-@property裝飾器

全網最適合入門的物件導向程式設計教程:09 類和物件的Python實現-類之間的關係

全網最適合入門的物件導向程式設計教程:10 類和物件的Python實現-類的繼承和里氏替換原則

全網最適合入門的物件導向程式設計教程:11 類和物件的Python實現-子類呼叫父類方法

全網最適合入門的物件導向程式設計教程:12 類和物件的Python實現-Python使用logging模組輸出程式執行日誌

全網最適合入門的物件導向程式設計教程:13 類和物件的Python實現-視覺化閱讀程式碼神器Sourcetrail的安裝使用

全網最適合入門的物件導向程式設計教程:全網最適合入門的物件導向程式設計教程:14 類和物件的Python實現-類的靜態方法和類方法

全網最適合入門的物件導向程式設計教程:15 類和物件的 Python 實現-__slots__魔法方法

全網最適合入門的物件導向程式設計教程:16 類和物件的Python實現-多型、方法重寫與開閉原則

全網最適合入門的物件導向程式設計教程:17 類和物件的Python實現-鴨子型別與“file-like object“

全網最適合入門的物件導向程式設計教程:18 類和物件的Python實現-多重繼承與PyQtGraph串列埠資料繪製曲線圖

全網最適合入門的物件導向程式設計教程:19 類和物件的 Python 實現-使用 PyCharm 自動生成檔案註釋和函式註釋

全網最適合入門的物件導向程式設計教程:20 類和物件的Python實現-組合關係的實現與CSV檔案儲存

全網最適合入門的物件導向程式設計教程:21 類和物件的Python實現-多檔案的組織:模組module和包package

全網最適合入門的物件導向程式設計教程:22 類和物件的Python實現-異常和語法錯誤

全網最適合入門的物件導向程式設計教程:23 類和物件的Python實現-丟擲異常

全網最適合入門的物件導向程式設計教程:24 類和物件的Python實現-異常的捕獲與處理

全網最適合入門的物件導向程式設計教程:25 類和物件的Python實現-Python判斷輸入資料型別

全網最適合入門的物件導向程式設計教程:26 類和物件的Python實現-上下文管理器和with語句

全網最適合入門的物件導向程式設計教程:27 類和物件的Python實現-Python中異常層級與自定義異常類的實現

全網最適合入門的物件導向程式設計教程:28 類和物件的Python實現-Python程式設計原則、哲學和規範大彙總

全網最適合入門的物件導向程式設計教程:29 類和物件的Python實現-斷言與防禦性程式設計和help函式的使用

全網最適合入門的物件導向程式設計教程:30 Python的內建資料型別-object根類

全網最適合入門的物件導向程式設計教程:31 Python的內建資料型別-物件Object和型別Type

全網最適合入門的物件導向程式設計教程:32 Python的內建資料型別-類Class和例項Instance

全網最適合入門的物件導向程式設計教程:33 Python的內建資料型別-物件Object和型別Type的關係

全網最適合入門的物件導向程式設計教程:34 Python的內建資料型別-Python常用複合資料型別:元組和命名元組

全網最適合入門的物件導向程式設計教程:35 Python的內建資料型別-文件字串和__doc__屬性

全網最適合入門的物件導向程式設計教程:36 Python的內建資料型別-字典

更多精彩內容可看:

給你的 Python 加加速:一文速通 Python 平行計算

一文搞懂 CM3 微控制器除錯原理

肝了半個月,嵌入式技術棧大彙總出爐

電子計算機類比賽的“武林秘籍”

一個MicroPython的開源專案集錦:awesome-micropython,包含各個方面的Micropython工具庫

Avnet ZUBoard 1CG開發板—深度學習新選擇

正文部分

1.硬體裝置介紹

首先,讓我們快速瞭解一下我們即將使用的硬體裝置。

image

我們使用的視覺處理模組為 Grove Vision AI V2 影像處理模組,具有如下特點:

image

image

Grove Vision AI 模組會本地處理影像並執行模型推理,然後將結果透過 IIC 或 UART 傳送到 XIAO。XIAO 需要接收並解析來自 Grove Vision AI 的資料,根據這些結果執行相應的操作,如控制 LED、驅動電機或觸發其他外設。這使得 XIAO 成為系統的執行單元,響應 Grove Vision AI 傳遞的檢測結果。

image

image

2.SenseCraft 部署模型

2.1 SenseCraft 平臺簡介

Seeed SenseCraft Model Assistant(或簡稱 SSCMA)是一個專注於嵌入式 AI 的開源專案。針對真實場景最佳化了 OpenMMLab 的優秀演算法,使實現更加人性化,在嵌入式裝置上實現更快、更準確的推理。

目前支援以下方向的演算法:

SenseCraft AI 提供了無縫且使用者友好的體驗,可以幫助使用者輕鬆地將大量公開可用的 AI 模型部署到他們的邊緣裝置上。

image

2.2 部署流程

使用 USB 連結模組和電腦,然後在 SenseCraft 網站上進行部署:

image

image

2.3 預覽模型識別效果

image

2.4 SenseCraft 平臺優勢

  • 降低 AI 入門門檻:SenseCraft 的平臺設計簡化了 AI 模型開發的複雜性,使得初學者也能快速上手
  • 廣泛的硬體相容性:支援多種 Seeed 硬體產品,使用者可以根據專案需求選擇適合的裝置
  • 邊緣計算:本地推理能力減少了對網路的依賴,提高了應用的實時性和安全性

2.5 石頭剪刀布分類模型測試

image

上程式碼

#include <Seeed_Arduino_SSCMA.h>

SSCMA AI;

void setup()
{
    AI.begin();
    Serial.begin(9600);
}

void loop()
{
    if (!AI.invoke())
    {
        Serial.println("invoke success");
        Serial.print("perf: prepocess=");
        Serial.print(AI.perf().prepocess);
        Serial.print(", inference=");
        Serial.print(AI.perf().inference);
        Serial.print(", postpocess=");
        Serial.println(AI.perf().postprocess);

        for (int i = 0; i < AI.boxes().size(); i++)
        {
            Serial.print("Box[");
            Serial.print(i);
            Serial.print("] target=");
            Serial.print(AI.boxes()[i].target);
            Serial.print(", score=");
            Serial.print(AI.boxes()[i].score);
            Serial.print(", x=");
            Serial.print(AI.boxes()[i].x);
            Serial.print(", y=");
            Serial.print(AI.boxes()[i].y);
            Serial.print(", w=");
            Serial.print(AI.boxes()[i].w);
            Serial.print(", h=");
            Serial.println(AI.boxes()[i].h);
        }
        for (int i = 0; i < AI.classes().size(); i++)
        {
            Serial.print("Class[");
            Serial.print(i);
            Serial.print("] target=");
            Serial.print(AI.classes()[i].target);
            Serial.print(", score=");
            Serial.println(AI.classes()[i].score);
        }
        for (int i = 0; i < AI.points().size(); i++)
        {
            Serial.print("Point[");
            Serial.print(i);
            Serial.print("] target=");
            Serial.print(AI.points()[i].target);
            Serial.print(", score=");
            Serial.print(AI.points()[i].score);
            Serial.print(", x=");
            Serial.print(AI.points()[i].x);
            Serial.print(", y=");
            Serial.println(AI.points()[i].y);
        }
    }
}

接下來我們對程式碼進行簡單分析:

  1. 先匯入庫函式 <Seeed_Arduino_SSCMA.h>

    • SSCAM 庫的主要目的是處理 Grove Vision AI 的資料流,而不涉及模型推理或影像處理。
  2. 初始化部分

    • SSCMA AI;:建立一個名為 AI 的 SSCMA 物件,用於與 Grove Vision AI 進行通訊。
    • void setup():在 setup() 函式中,首先使用 AI.begin() 初始化 Grove Vision AI 模組。然後,透過 Serial.begin(9600) 初始化串列埠通訊,以便將結果輸出到串列埠監視器。
  3. 主迴圈

    • void loop()loop() 函式會反覆執行,主要用來不斷呼叫 Grove Vision AI 進行推理,並輸出結果。
    • if (!AI.invoke()):呼叫 AI.invoke() 進行推理,如果推理成功(即 invoke() 返回 false),則開始處理推理結果。
    • 效能資訊輸出
      • AI.perf():獲取推理過程的效能資訊,包括預處理(prepocess)、推理(inference)和後處理(postprocess)的時間。
    • 檢測框輸出
      • AI.boxes():獲取推理結果中的所有檢測框,並迴圈輸出每個檢測框的資訊,包括目標、得分、位置(x, y)和大小(w, h)。
    • 分類結果輸出
      • AI.classes():獲取推理結果中的所有分類資訊,並迴圈輸出每個分類的資訊,包括目標和得分。
    • 關鍵點輸出
      • AI.points():獲取推理結果中的所有關鍵點資訊,並迴圈輸出每個關鍵點的資訊,包括目標、得分和位置(x, y)。

2.6 串列埠輸出訊息解析

invoke success:這行表明 AI.invoke() 方法呼叫成功,即影像識別過程已經完成。

image

perf: prepocess=7, inference=80, postpocess=0:這行顯示了識別過程中的三個關鍵效能指標:

image

Box[0] target=1, score=81, x=209, y=161, w=63, h=114:這行表示檢測到的第一個邊界框(box)的資訊:

image

網站連結:

  • SenseCraft 平臺:https://sensecraft.seeed.cc/ai/#/model

  • 官方網址:https://wiki.seeedstudio.com/cn/grove_vision_ai_v2/

image

相關文章