The two examples that come with edgeBorad, image classification runs smoothly, and now let's run "image calibration" also known as "object detection". This is an application for detecting screws and nuts. There was a detail that I didn't explain in the last test. At that time, I plugged in the DP cable. But it didn't work. I changed two monitors and still couldn't display the desktop. After issuing the startx command, an error occurred. It might be that the display driver doesn't match or there is something wrong with my minDP adapter cable, so I couldn't test the desktop application. I ordered a minDP to HDMI signal cable, and continued to test it after it arrived, but it still didn't work. Later, I finally figured it out, because the DP display core in the board only has DP bus signal but no HDMI display signal, and my signal cable is not an "active signal cable" so it can't be used. The ordinary cable only converts the signal level and has no function of converting the signal timing, so the desktop display still can't be tested. I briefly learned about the DP signal, and it seems very complicated. The DP display core will have compatibility issues. I'll test it after my minDP to DP cable arrives, so I can only use the terminal window for this experiment.
Let me first briefly introduce Baidu's AI products. Baidu's AI deep learning framework is PaddlePaddle. On this basis, we have developed the "zero threshold AI development platform (EasyDL) and video monitoring development platform (EasyMonitor)". It can also be said that EasyDL is the application version of artificial intelligence. What is edgeBorad? This product is an "offline computing platform" for artificial intelligence. That is, an offline application product of "artificial intelligence products". The steps for AI application development are as follows:
1. Use PaddlePaddle to "train the model".
2. After training the "model", import it into the SDK.
3. Use the SDK to develop applications.
The application has online and offline versions. edgeBorad is an offline version of the application platform. EasyDL is a development tool for this process. EasyDL greatly simplifies model training and application development. The example of machine learning is a pre-trained "model". Training the model requires a lot of data, and "layer adjustment" may be required in the middle. A trained model has extremely high commercial value. Therefore, many AI application developers are currently using deep learning frameworks to train models. For example, the edgeBorad currently tested can run the Baidu "model" SDK development application platform. To sum up, edgeBorad is a computing platform that can accelerate the operation of AI frameworks. Currently, edgeBorad is not a full-platform product, but an offline application platform.
I have registered an account on Baidu's AI platform. The edgeBorad application is charged, so the test will be carried out around the demo first. The authorization of edgeBorad is related to the purchase channel, which is currently being coordinated. Please wait patiently. It
is a pity that there is not much information about the CPU of edgeBorad FZ5. During the test, I tried to dig up more information for you. There is FPGA in the CPU of edgeBorad, and these FPGAs are units used to accelerate model calculations. The "driver" developed by Baidu is a software module that uses FPGA to accelerate neural networks. The "driver" needs to be loaded before running the application.
The last time I conducted a classification experiment was to let the machine "recognize objects". Later, I conducted more experiments and found that the model only recognized "zebras" and did not recognize the others. One of the examples of this experiment is that the resnet50 residual network recognizes beverages, which is still very interesting. It was found that the effect is OK. The fastest recognition speed is 4.346 seconds, and the confidence score is: 0.983295.
The experiment conducted this time is to identify objects. It is the screws and nuts in the picture.
cd /home/root/workspace/PaddleLiteSample/detection
mkdir build
cd build
cmake ..
make
After the compilation is complete, the experiment
./image_detection ../configs/vgg-ssd/screw.json
results are as follows:
driver_version: 1.5.1
paddle_lite_version: 1.5.1
label:1,score:0.999987 loc:1105,265,147,139
label:1,score:0.999972 loc:660,367,146,141
label:1,score:0.999971 loc:965,273,144,144
label:1,score:0.999956 loc:651,224,140,135
label:1,score:0.999888 loc:659,522,150,154
label:1,score:0.999881 loc:923,695,131,145
label:1,score:0.999833 loc:780,145,138,138
label:1,score:0.999699 loc:829,504,141,150
label:1,score:0.999419 loc:1090,413,135,144
label:1,score:0.988796 loc:1146,605,138,162
label:2,score:0.923222 loc:930,131,223,159
label:2,score:0.920051 loc:829,581,124,283
label:2,score:0.674371 loc:815,340,207,189
label:2,score:0.662774 loc:1021,536,133,240
label:2,score:0.497001 loc:635,669,200,186
Screws: 5, nuts: 10, time: 3.383 seconds
A result graph is also generated.
It seems wrong! In the picture, there are 6 screws and 10 nuts. "It seems that one screw is missing"
The USB camera is already being debugged.