📄️ Example Overview
This project contains multiple AI example programs written in C/C++, designed for the RDK S100 platform, covering common AI tasks such as image classification, object detection, instance segmentation, pose estimation, OCR, and speech recognition. The examples perform inference using quantized models in .hbm format, enabling developers to quickly validate model performance and accelerate application development.
📄️ Image Classification - ResNet18
This example demonstrates how to deploy the ResNet18 model using C/C++ for image classification inference on RDK S100 devices equipped with a BPU chip. The example code is located in the /app/cdevdemo/bpu/01classificationsample/01resnet18/ directory.
📄️ Image Classification - MobileNetV2
This example demonstrates how to perform image classification using a BPU-deployed MobileNetV2 model with C/C++ inference. The example code is located in the directory /app/cdevdemo/bpu/01classificationsample/02mobilenetv2/.
📄️ Object Detection - Ultralytics YOLOv5x
This example demonstrates how to perform image object detection on the BPU using a quantized Ultralytics YOLOv5x model. It supports preprocessing, postprocessing, NMS (Non-Maximum Suppression), drawing of final bounding boxes, and saving results. The example code is located in the directory /app/cdevdemo/bpu/02detectionsample/01ultralytics_yolov5x/.
📄️ Object Detection - Ultralytics YOLO11
This example is based on the Ultralytics YOLO11 model and performs object detection on images using C/C++. It supports image preprocessing, inference, post-processing (including decoding, confidence filtering, and NMS), and saving the result image. The example code is located in the /app/cdevdemo/bpu/02detectionsample/02ultralytics_yolo11/ directory.
📄️ Semantic Segmentation - UNetMobileNet
This example demonstrates how to run the UNet-MobileNet semantic segmentation model on the BPU, supporting functionalities such as image preprocessing, inference, and post-processing (parsing outputs and overlaying color segmentation masks). The example code is located in the /app/cdevdemo/bpu/03instancesegmentationsample/01_unetmobilenet/ directory.
📄️ Instance Segmentation - Ultralytics YOLO11
This example demonstrates how to run the YOLOv11 instance segmentation model on the BPU, supporting functionalities such as image preprocessing, inference, and post-processing (parsing outputs and overlaying colored segmentation masks). The example code is located in the directory /app/cdevdemo/bpu/03instancesegmentationsample/02ultralyticsyolo11_seg/.
📄️ Pose Estimation - Ultralytics YOLO11
This example demonstrates how to run the Ultralytics YOLO11 pose estimation model on the BPU to perform human keypoint detection and visualization. It supports model preprocessing, inference execution, and post-processing (including keypoint decoding, bounding box drawing, and keypoint annotation). The example code is located in the /app/cdevdemo/bpu/04posesample/01ultralyticsyolo11pose/ directory.
📄️ Instance Segmentation - Ultralytics YOLOE11
This example demonstrates how to run the Ultralytics YOLOE11 instance segmentation model on the BPU. The program implements a complete pipeline from input image preprocessing, model inference, post-processing, to result visualization. The example code is located in the /app/cdevdemo/bpu/05openinstancesegsample/01yoloe11_seg/ directory.
📄️ Lane Detection - LaneNet
This example runs the LaneNet model on the BPU to perform instance segmentation and binary segmentation of lane lines, and saves the resulting images locally. The example code is located in the /app/cdevdemo/bpu/06lanedetectionsample/01_lanenet/ directory.
📄️ Automatic Speech Recognition - ASR
This example runs a speech recognition model based on the BPU inference engine to automatically transcribe .wav audio files into corresponding text. The example code is located in the /app/cdevdemo/bpu/07speechsample/01asr/ directory.
📄️ Text Detection and Recognition - PaddleOCR
This example runs the PaddleOCR model on the BPU inference engine for text detection and recognition, supporting OCR recognition and visualization in Chinese scenarios. The example code is located in the /app/cdevdemo/bpu/08OCRsample/01paddleOCR/ directory.
📄️ USB Camera YOLOv5x Inference
A real-time inference example of Ultralytics YOLOv5x based on the BPU, supporting reading frames from a USB camera, performing object detection, and visualizing detection results in full-screen mode. The sample code is located in the /app/cdevdemo/bpu/09usbcamerasample/ directory.
📄️ MIPI Camera YOLOv5x Inference
This example demonstrates real-time inference of Ultralytics YOLOv5x on the BPU, supporting image capture from a MIPI camera for object detection and full-screen visualization of detection results. The sample code is located in the /app/cdevdemo/bpu/10mipicamerasample/ directory.
📄️ Video Decoding and YOLOv5x Inference
This example demonstrates an end-to-end pipeline on platforms such as the RDK S100, combining SP decoding/display/VIO with BPU to achieve:
📄️ RTSP Video Streaming and YOLOv5x Inference
This example demonstrates how to combine SP hardware modules (decoder, VIO, display) and BPU on platforms such as RDK S100 to achieve the following pipeline: