NOTE: The NXP Demo Experience is now GoPoint for i.MX Applications Processors.
NXP's GoPoint for i.MX Applications Processors unlocks a world of possibilities. This user-friendly app launches pre-built applications packed with the Linux BSP, giving you hands-on experience with your i.MX SoC's capabilities. It is for the ones who are interested in showcasing various features and capabilities of the SoCs provided by NXP. The application examples included in GoPoint are meant to be easy to run for users of all skill levels, making complex use cases accessible to anyone. Users might need some basic knowledge when it comes to setting up equipment on Evaluation Kits (EVKs), such as changing Device Tree Blob (DTB) files.
For more information about GoPoint, please refer to GoPoint for i.MX Applications Processors User's Guide.
This repository contains example applications supported by GoPoint for i.MX Applications Processors.
Name | Description | 8MM | 8QM | 8MP | 93 | 95 |
---|---|---|---|---|---|---|
Image classification |
Image classification example using NNStreamer. Image classification is an ML task that attempts to comprehend an entire image as a whole. The goal is to classify the image by assigning it to a specific label. Typically, it refers to images in which only one object appears and is analyzed. | ✅ | ✅ | ✅ | ✅ | ✅ |
Object detection |
Object detection example using NNStreamer. Object detection is the ML task that detects instances of objects of a certain class within an image. A bounding box and a class label are found for each detected object. | ✅ | ✅ | ✅ | ✅ | ✅ |
Pose estimation |
Pose estimation example using NNStreamer. The goal of pose estimation is to detect the position and orientation of a person or object. In human pose estimation, this is usually done with specific keypoints such as hands, head, legs, etc. | ✅ | ✅ | ✅ | ||
ML Benchmark |
This tool allows to easily compare the performance of TensorFlow Lite models running on CPU (Cortex-A) and NPU. The tool works on i.MX93 and i.MX8M Plus. | ✅ | ✅ | |||
ML Gateway |
ML Gateway easily configures the i.MX8M Plus and i.MX93 EVKs as machine learning accelerator servers and allows resource-constrained MPU systems (clients) without NPUs to connect and run ML inference. This is currently enabled for i.MX8M Mini on the client side. | ✅ | ✅ | ✅ | ||
Selfie Segmenter |
Selfie Segmenter showcases the ML capabilities of i.MX8M Plus and i.MX93 by using the NPU to accelerate an instance segmentation model. This model lets you segment the portrait of a person and can be used to replace or modify the background of an image. | ✅ | ✅ | |||
i.MX Smart Fitness |
i.MX Smart Fitness showcases the i.MX' Machine Learning capabilities by using an NPU to accelerate two Deep Learning vision-based models. Together, these models detect a person present in the scene and predict 33 3D-keypoints to generate a complete body landmark, known as pose estimation. From the pose estimation, a K-NN pose classifier classifies two different body poses: 'Squat-Down' and 'Squat-Up'. The application tracks the 'squats' fitness exercise and the repetition counter is set to 12 repetitions in an infinite loop. | ✅ | ✅ | |||
Face Recognition |
An OpenCV application example of how to use machine learning to recognize faces. The user can save multiple profiles and the application will recognize the identity of each person by their names. | ✅ | ||||
Driving Monitoring System (DMS) |
An example over how to implement a Driver Monitoring System (DMS) using the NPU. | ✅ | ✅ | |||
Low Power Baby Cry Detection |
An application example showing how to implement baby cry detection in Cortex-M33 core when Linux is in suspend mode. When the application is started, Linux enters suspend mode, and users must enter the timeout value in Cortex-M33 console. Then Cortex-M33 records one second audio input from MIC array on the i.MX93 EVK board, and try to identify whether there is baby crying sound in the audio by running ML model inference. If baby crying sound is detected, it will wake up Cortex-A55 core and stop. If baby crying sound is not detected, it will suspend Cortex-M33 core for the configured timeout and wake up Cortex-M33 core to record one second audio again, and run the same process in an infinite loop until a baby crying sound is detected. | ✅ | ||||
Low Power KWS Detection |
An application example showing how to implement key word detection in Cortex-M33 core when Linux is in suspend mode. When the application is started, Linux enters suspend mode. Cortex-M33 will record one second audio input from MIC array on the i.MX93 EVK board, and try to identify whether there is key word UP in the audio by running ML model inference. If key word is detected, it will wake up Cortex-A55 core and stop. If no key word is detected, it will record one second audio again, and run the same process in an infinite loop until a key word is detected. |
✅ |
This repository is licensed under the BSD-2-Clause license, but some source code included might be licensed under different licenses, as specified in their local folders.