PcDuino9 AI visual edge computing development kit
Contents
Introduction
PcDuino9 AI visual edge computing development kit is for image analysis development. The kit includes general IPC using hi3516D solution and pcDuino9 embedded AI visual edge computing module. The kit mainly uses the pcDuino9 embedded AI visual edge computing module to process the video stream acquired from hi3516D, and carries out a series of analysis and processing of the video stream. The kit builds a basic development environment for developers. It provides video frames obtained from hi3516D by pcDuino9,developers can freely develop on the frame maps, such as face detection, license plate detection, object detection and other AI image analysis and processing functions. At the same time, it provides an open API interface. Developers can return the information which were processed on pcDuino9 to hi3516D, and the detected image can be optimized select on hi3516D, and then output them via FTP.
Basic Framework
The development environment has been provided:
1. pcDuino9 Gets Video Frames from hi3516D
2. Return the information analyzed and processed by the developer to hi3516D
3. Select high quality pictures which has been analyzed on hi3516D and output them via FTP
Examples of development functions
1. Developing Frame maps on pcDuino9,such as face detection, license plate detection, object detection and other AI image analysis and processing functions.
2. Output of the analyzed pictures via FTP for other application requirements
3. ……
Package List
• General IPC with Hi3516D
• pcDuino9 embedded AI visual edge computing module
Hardware Introduction
The introduction of pcDuino9 embedded AI visual edge computing module
I/O Diagram
Pin Map
Specifications
RK3288 CPU Benchmark
Specifications of Hi3516D IPC
How To Get Video Frames from Hi3516D
Hi3516 transfers BT1120 data to pcDuino 9. pcDuino 9 converts BT1120 data into MIPI signal through LT8918, and then receives it. At present, it supports 640x480 60FPS frame data transmission. We encapsulate the protocol layer and make it similar to OpenCV style. While reading the frame data, we will return the frame number, which is transmitted by 3516 and is the synchronous frame number for data interaction.
#include <iostream> #include <opencv2/opencv.hpp> #include "C4L2.hpp" using namespace std; using namespace cv; int main(int argc,char *argv[]) { string dev = "/dev/video2"; C4L2Capture *cap = new C4L2Capture; int ret = cap->initialzer(dev); if(ret < 0){ cout << "C4L2Capture initialze failed... \n"; return -1; } while(true) { unsigned int syn = 0; //Frame ID Mat frame = cap->read(syn); if(frame.empty()){ cout << "this frame is empty ...\n"; break; } cv::imshow("DeepCam LLC",frame); cv::waitKey(10); } cap->destroy(); delete cap; return 0; }