
EasyDL is a customized AI training
and service platform launched by Baidu Brain, which supports enterprise users
and developers who have customized artificial intelligence (AI) requirements for
various industries. It supports one-stop AI development process from data
management and data annotation, model training, and model deployment and provides
a visual operation interface to help enterprises more quickly and easily build
computer vision models with a drag-and-drop interface. Some original pictures, text, audio, and
video data can be processed, learnt and deployed by EasyDL and then be published
as public cloud API, device-side SDK, and local Integration of software and
hardware products.
How to Use EasyDL?
MYIR’s FZ3 Card is a
deep learning accelerator card based on Xilinx Zynq UltraScale+ MPSoC. It can provide a visual operation interface with EasyDL. Users can take advantage of the FZ3 Card to have some AI experience for fun. Detailed steps of using EasyDL for data training are as below.
 
FZ3 Card - Deep Learning Accelerator Card
1. Select training category
Users may choose
"image classification" or "object detection" according to
the general scene.

2. Create “Image classification” model
Select “Image
classification”->” Train now”->” Create model”, fill in the content of
the model according to personal needs, and the * sign is must. Select
"next" after completion.

3. Training model
Enter “Training model”,
select the model category, select “Special hardware adaptation SDK”, must
select “EdgeBoard (FZ)”, click “Please choose” to choose training data, after
completion, check "add recognition result as other default classification",
and select "start training". According to the size of the training
data set, the training time will be
different. Generally, about 100 pictures can be completed in 10 minutes at
most.

4. Generate SDK
1) After the training is completed, apply for the
release model in” my model”, select the "EdgeBoard + dedicated SDK"
in the
integrated software and hardware solution, submit the application, and
wait for review.
2) After the model review is approved, click the
"Service Details" button at "My Model" and select the
download SDK in the dialog
window that pops up.
3) Get serial number
Click "Manage Serial Number" to skip
to Baidu Cloud-->EasyDL customized training platform-->Offline SDK
management interface to
view the serial number for activating the SDK.
5. Install the SDK in FZ3
1) The downloaded software deployment package
contains SDK and demo which are easy to use. FZ3 can be quickly deployed and
run
after a few simple steps. The deployment package file structure is as below.
2) Use serial number license to
activate the SDK
Open
the file demo.cpp
[Directory: EasyEdge-m1800-
edgeboard/cpp/baidu_easyedge_linux_cpp_aarch64_PADDLEMOBILE_FPGA_v0.3.2_gcc6.2_20190518/demo/demo.cpp]
Write
license serial number

3) Put
the SDK in the directory /home/root/workspace/ directory (see "file
copy" above) for decompression, then start and run according to the
following methods.
Run SDK
1.
The driver can be loaded once after the system starts-up (Or add the system
startup script)
insmod /home/root/workspace/driver/fpgadrv.ko
If the driver is not loaded, the following error may be reported:
Failed to to fpga device: -1
Set system time (System time must be correct)
date --set "2019-5-18 20:48:00"
2. Compile
cd /home/root/workspace/EasyEdge-m1800- edgeboard/cpp/baidu_easyedge_linux_cpp_aarch64_PADDLEMOBILE_FPGA_v0.3.2_gcc6.2_20190518/d emo
mkdir build cd build
rm -rf *
cmake ..
make
3. Run sample
// Run the execution file in the build directory
./easyedge_demo
{RES Resource folder path} {Test image path }
For example: Put the image which you want to predicte
in the SDK. If you put the image into the folder RES, you can see the
recognition result
./easyedge_demo /home/root/workspace/EasyEdge-m1800-edgeboard/RES/
/home/root/workspace/EasyEdge-m1800-edgeboard/RES/1.jpg
Call
HTTP Service
1. Load the driver once after the system
starts-up (Or add system startup script)
insmod /home/root/workspace/driver/fpgadrv.ko
If
the driver is not loaded, an error may be reported:
Failed to to fpga
device: -1
Set system time (System time must be correct)
date --set "2019-5-18
20:48:00"
2. HTTP service function is included in the
deployment package, which can be run directly.
# ./easyedge_serving
{RES directory} {serial number} {bounded host,default is 0.0.0.0} {bounded port,default is 24401}
cd ${SDK_ROOT}
export LD_LIBRARY_PATH=./lib
./demo/easyedge_serving /home/root/workspace/EasyEdge-m1800-edgeboard/RES/ "1111-1111-
1111-1111"
The start-up is successful if the log shows as
below:
2019-07-18
13:27:05,941 INFO [EasyEdge] [http_server.cpp:136] 547974369280 Serving at
0.0.0.0:24401
Now
you can directly input http://{fz3 IP address}:24401 in the browser to test the
model effect in H5.

HTTP private
service request description
* http
request parameters
Get parameter in URL:
parameter
|
Explanation
|
Defaults
|
threshold
|
Threshold
filtering, 0~1
|
0.1
|
HTTP post body is the binary content of the
image (No Base64, no JSON)
Request example for Python:
import requests
with open('./1.jpg', 'rb') as f: img = f.read()
result = requests.post( 'http://127.0.0.1:24401/',
params={'threshold': 0.1}, data=img).json()
Request example for JAVA
* http
data return
Example of return data:
{
"cost_ms": 52,
"error_code": 0, "results":
[
{
"confidence": 0.94482421875,
"index": 1, "label": "IronMan",
"x1": 0.059185408055782318,
"x2": 0.18795496225357056,
"y1": 0.14762254059314728,
"y2": 0.52510076761245728
},
{
"confidence": 0.94091796875,
"index": 1, "label": "IronMan",
"x1": 0.79151463508605957,
"x2": 0.92310667037963867,
"y1": 0.045728668570518494,
"y2": 0.42920106649398804
},
}
Errors description
All
active errors reported by the SDK are covered in the Edgestatus enumeration. At
the same time, the SDK will show a detailed error
log. Developers can open the
debug log to check additional instructions:
global_controller()->log_config.enable_debug = true;
Please
get more information about the FZ3 Card from MYIR’s website:
http://www.myirtech.com/list.asp?id=630

About MYIR
MYIR Tech Limited is a global provider of ARM hardware and software
tools, design solutions for embedded applications. We support our customers in
a wide range of services to accelerate your pace from project to market.
We sell products ranging from board level products such as development
boards, single board computers and CPU modules to help with your evaluation,
prototype, and system integration or creating your own applications. MYIR also
provide our customers charging pile billing control units, charging control
boards and relative solutions inside of China. Our products are used widely in
industrial control, medical devices, consumer electronic, telecommunication
systems, Human Machine Interface (HMI) and more other embedded applications.
MYIR has an experienced team and provides custom services based on many
processors (especially ARM processors) to help customers make your idea a
reality.
More information about MYIR can be found at: www.myirtech.com
|