Location>code7788 >text

Grove Vision AI V2 Image Processing Module Unboxing Review

Popularity:153 ℃/2024-08-14 20:05:53

Grove Vision AI V2 Image Processing Module Unboxing Review

summaries

Today we're going to teach you how to quickly get started with the Grove Vision AI V2 image processing module, and together we're going to explore how to deploy AI models with SenseCraft and how to easily implement smart vision features by calling them through the XIAO ESP32C3!

Link to original article:

FreakStudio's Blog

Past Recommendations:

You're learning embedded and you don't know how to be object oriented?

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 00 Introduction to Object-Oriented Design Methods

The network's most suitable for the introduction of object-oriented programming tutorials: 01 Basic Concepts of Object-Oriented Programming

The Best Object-Oriented Programming Tutorials for Getting Started on the Web: 02 Python Implementations of Classes and Objects - Creating Classes with Python

The Best Object-Oriented Programming Tutorials for Getting Started on the Web: 03 Python Implementations of Classes and Objects - Adding Attributes to Custom Classes

The Best Object-Oriented Programming Tutorial on the Net for Getting Started: 04 Python Implementation of Classes and Objects - Adding Methods to Custom Classes

The Best Object-Oriented Programming Tutorial on the Net for Getting Started: 05 Python Implementation of Classes and Objects - PyCharm Code Tags

The best object-oriented programming tutorials on the net for getting started: 06 Python implementation of classes and objects - data encapsulation of custom classes

The best object-oriented programming tutorial on the net for getting started: 07 Python implementation of classes and objects - type annotations

The best object-oriented programming tutorial on the net for getting started: 08 Python implementation of classes and objects - @property decorator

The best object-oriented programming tutorials on the net for getting started: 09 Python implementation of classes and objects - the relationship between classes

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 10 Python Implementations of Classes and Objects - Class Inheritance and Richter's Replacement Principle

The best object-oriented programming tutorials on the net for getting started: 11 Python implementation of classes and objects - subclasses call parent class methods

The network's most suitable for the introduction of object-oriented programming tutorials: 12 classes and objects Python implementation - Python using the logging module to output the program running logs

The network's most suitable for the introduction of object-oriented programming tutorials: 13 classes and objects of the Python implementation - visual reading code artifacts Sourcetrail's installation use

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 14 Python Implementations of Classes and Objects - Static Methods and Class Methods for Classes

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 15 Python Implementations of Classes and Objects - __slots__ Magic Methods

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 16 Python Implementations of Classes and Objects - Polymorphism, Method Overriding, and the Principle of Open-Close

The Best Object-Oriented Programming Tutorials for Getting Started on the Web: 17 Python Implementations of Classes and Objects - Duck Types and "file-like objects"

The network's most suitable for the beginning of object-oriented programming tutorials: 18 classes and objects Python implementation - multiple inheritance and PyQtGraph serial data plotting graphs

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 19 Python Implementations of Classes and Objects - Using PyCharm to Automatically Generate File Annotations and Function Annotations

The best object-oriented programming tutorials on the net for getting started: 20 Python implementation of classes and objects - Combinatorial relationship implementation with CSV file saving

The best introductory object-oriented programming tutorials on the net: 21 Python implementation of classes and objects - Organization of multiple files: modulemodule and packagepackage

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 22 Python Implementations of Classes and Objects - Exceptions and Syntax Errors

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 23 Python Implementation of Classes and Objects - Throwing Exceptions

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 24 Python Implementations of Classes and Objects - Exception Catching and Handling

The best object-oriented programming tutorials on the web for getting started: 25 Python implementation of classes and objects - Python to determine the type of input data

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 26 Python Implementations of Classes and Objects - Context Managers and with Statements

The best introductory object-oriented programming tutorials on the web: 27 Python implementation of classes and objects - Exception hierarchy and custom exception class implementation in Python

The best object-oriented programming tutorials on the net for getting started: 28 Python implementations of classes and objects - Python programming principles, philosophies and norms in a big summary

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 29 Python Implementations of Classes and Objects - Assertions and Defensive Programming and Use of the help Function

The Best Object-Oriented Programming Tutorials for Getting Started on the Web: 30 Python's Built-In Data Types - the root class of object

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 31 Python's Built-In Data Types - Object Object and Type Type

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 32 Python's Built-in Data Types - Class Class and Instance Instance

The Best Object-Oriented Programming Tutorials for Getting Started on the Web: 33 Python's Built-In Data Types - The Relationship Between the Object Object and the Type Type

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 34 Python's Built-In Data Types - Python's Common Compound Data Types: Tuples and Named Tuples

The Best Object-Oriented Programming Tutorials on the Net for Getting Started: 35 Python's Built-In Data Types - Document Strings and the __doc__ Attribute

The Best Object-Oriented Programming Tutorials on the Web for Getting Started: 36 Python's Built-In Data Types - Dictionaries

More highlights to watch:

Accelerating Your Python: A Quick Guide to Python Parallel Computing

Understanding CM3 MCU Debugging Principles in One Article

Liver half a month, embedded technology stack summary out of the big

The "Secrets of the Martial Arts" of the Computer Competition

A MicroPython open source project collection: awesome-micropython, including all aspects of Micropython tool library

Avnet ZUBoard 1CG Development Board - A New Choice for Deep Learning

text

1. Introduction of hardware equipment

First, let's take a quick look at the hardware devices we'll be using.

image

The vision processing module we use is the Grove Vision AI V2 image processing module with the following features:

image

image

The Grove Vision AI module processes the images and performs model inference locally, and then sends the results via IIC or UART to the XIAO, which needs to receive and parse the data from the Grove Vision AI, and based on the results performs the appropriate actions, such as controlling the LEDs, driving the motors, or triggering other peripherals. This makes the XIAO the execution unit of the system, responding to the detection results delivered by the Grove Vision AI.

image

image

Deployment models

2.1 Introduction to the SenseCraft platform

Seeed SenseCraft Model Assistant (or SSCMA for short) is an open source project focused on embedded AI. Optimized for real-world scenarios, OpenMMLab's excellent algorithms make the implementation more humane and achieve faster and more accurate reasoning on embedded devices.

Algorithms in the following directions are currently supported:

SenseCraft AI provides a seamless and user-friendly experience that helps users easily deploy a large number of publicly available AI models to their edge devices.

image

2.2 Deployment process

Use the USB to link the module to your computer and then deploy it on the SenseCraft website:

image

image

2.3 Previewing the model recognition effect

image

2.4 SenseCraft Platform Benefits

  • Lowering the Barrier to Entry to AI: SenseCraft's platform design simplifies the complexity of AI model development, making it easy for even beginners to get started.
  • Wide range of hardware compatibilitySupports a wide range of Seeed hardware products, allowing users to choose the right device for their project.
  • edge computing: Local reasoning capability reduces dependence on the network and improves application real-time and security

2.5 Rock-Paper-Scissors Classification Model Testing

image

coding

#include <Seeed_Arduino_SSCMA.h>

SSCMA AI;

void setup()
{
    ();
    (9600);
}

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

        for (int i = 0; i < ().size(); i++)
        {
            ("Box[");
            (i);
            ("] target=");
            (()[i].target);
            (", score=");
            (()[i].score);
            (", x=");
            (()[i].x);
            (", y=");
            (()[i].y);
            (", w=");
            (()[i].w);
            (", h=");
            (()[i].h);
        }
        for (int i = 0; i < ().size(); i++)
        {
            ("Class[");
            (i);
            ("] target=");
            (()[i].target);
            (", score=");
            (()[i].score);
        }
        for (int i = 0; i < ().size(); i++)
        {
            ("Point[");
            (i);
            ("] target=");
            (()[i].target);
            (", score=");
            (()[i].score);
            (", x=");
            (()[i].x);
            (", y=");
            (()[i].y);
        }
    }
}

Next we briefly analyze the code:

  1. Import library functions first <Seeed_Arduino_SSCMA.h>

    • The main purpose of the SSCAM library is to process data streams for Grove Vision AI without involving model inference or image processing.
  2. Initialization section

    • SSCMA AI;: Create a file namedAI of SSCMA objects for communicating with the Grove Vision AI.
    • void setup(): insetup() function, first use the() Initialize the Grove Vision AI module. Then, initialize the Grove Vision AI module with the(9600) Initializes serial communications for outputting results to the serial monitor.
  3. primary cycle

    • void loop()loop() The function is executed iteratively and is mainly used to keep calling Grove Vision AI for inference and outputting results.
    • if (!()): Call() Reasoning is performed, and if the reasoning is successful (i.e., theinvoke() come (or go) backfalse), then processing of the inference results begins.
    • Performance Information Output
      • (): Obtain information on the performance of the inference process, including preprocessing (prepocess), reasoning (inference) and reprocessing (postprocess) Time.
    • Detection frame output
      • (): Get all the detected frames in the inference result and loop through the output of information about each detected frame, including target, score, position (x, y) and size (w, h).
    • Classification Result Output
      • (): Get all the categorized information in the inference result and loop through the output for each categorization, including the goal and score.
    • Key point output
      • (): Get information about all the keypoints in the inference result and loop through the output for each keypoint, including the target, score, and position (x, y).

2.6 Parsing Serial Output Messages

invoke success: This line indicates() The method call is successful, i.e., the image recognition process is complete.

image

perf: prepocess=7, inference=80, postpocess=0: This line shows three key performance indicators for the recognition process:

image

Box[0] target=1, score=81, x=209, y=161, w=63, h=114: This line contains information about the first detected bounding box:

image

Web Link:

  • SenseCraft platform:/ai/#/model

  • Official Website:/cn/grove_vision_ai_v2/

image