用百度大脑EasyDL平台轻松玩转AI

什么是EasyDL?

EasyDL是百度大脑推出的定制化AI训练及服务平台,支持面向各行各业有定制AI需求的企业用户及开发者使用。支持从数据管理与数据标注、模型训练、模型部署一站式AI开发流程,通过原始图片、文本、音频、视频类数据经过EasyDL加工、学习、部署可发布为公有云API、设备端SDK、本地化部署及软硬一体产品。

百度大脑EasyDL怎么玩转AI?

01. EasyDL的使用方式

EasyDL是一站式的深度学习模型训练和服务平台,搭配米尔FZ3深度学习计算卡,提供可视化的操作界面,只需上传少量图片就可以获得高精度模 型,具体可以参考EasyDL官网。

通过EasyDL进行数据训练步骤如下:

1.选择训练类别

根据通用场景可以选择“图像分类”或者“物体检测”。

2.“图像分类”训练

选择“图像分类”,进入训练界面,选择“开始训练”,弹出图像分类和物体检测的对话框,选择需要的模型类型,如选 择图像分类。

3.创建模型

进入模型中心,选择“创建模型”,根据个人需求填写模型的内容,带*号为必填选项。填写ok后选择“下一步”

4.训练模型

进入“训练模型”,选择模型类别,算法选择“通用”,训练方式选“默认”,因需要离线部署在设备上,必须勾选“离线

5.生成SDK

(1)训练完成后,在我的模型中申请发布模型,选择软硬一体方案中的"EdgeBoard +专用SDK",提交申请,等待审核。

(2)模型审核成功后,在”我的模型“处,点击”服务详情“按钮,在弹出的对话框中,选择下载SDK。

(3)获取序列号

点击“管理序列号“跳转至百度云-->EasyDL定制训练平台-->离线SDK管理界面,查看用于激活sdk的序列号。

6.在FZ3里安装SDK

1.下载的软件部署包包含了简单易用的SDK和Demo。只需简单的几个步骤,即可快速部署运行FZ3。部署包文件结构如下:

2.使用序列号License 激活SDK

打开demo.cpp文件

【文件路径】 :

EasyEdge-m1800- edgeboard/cpp/baidu_easyedge_linux_cpp_aarch64_PADDLEMOBILE_FPGA_v0.3.2_gcc6.2_20190518/demo/demo.cpp

写入license序列号

将set_licence_key函数中的字符串参数"set your license here"替换为序列号License即可

3.将SDK放到FZ3系统/home/root/workspace/目录下,

(放入方法参见上文 “文件拷贝”)进行解压;

然后按下述方法进行启动运行。

02. 运行SDK

1.加载驱动,系统启动后加载一次即可(也可以加系统启动脚本)

insmod /home/root/workspace/driver/fpgadrv.ko

若未加载驱动,可能报下面的错误:

Failed to to fpga device: -1

设置系统时间(系统时间必须正确)

date --set "2019-5-18 20:48:00"

2.编译

//进入cpp文件的demo文件夹
cd/home/root/workspace/EasyEdge-m180edgeboard/cpp/baidu_easyedge_linux_cpp_aarch64_PADDLEMOBILE_FPGA_v0.3.2_gcc6.2_20190518/d
emo
// 如果没有build目录,创建一个
mkdir build cd build
rm -rf *
//调用cmake 创建 Makefile      cmake ..
// 编译工程
make

3.执行示例

//在build目录下运行执行文件
./easyedge_demo  {RES资源文件夹路径}  {测试图片路径}

例:在SDK中放入需要预测的图片,如将预测图片放入RES文件夹中,

./easyedge_demo/home/root/workspace/EasyEdge-m1800-edgeboard/RES//home/root/workspace/EasyEdge-m1800-edgeboard/RES/1.jpg

便可看到识别结果

03. HTTP服务调用

1.加载驱动,系统启动后加载一次即可(也可以加系统启动脚本)

insmod /home/root/workspace/driver/fpgadrv.ko

若未加载驱动,可能报错:

Failed to to fpga device: -1

设置系统时间(系统时间必须正确)

date --set "2019-5-18 20:48:00"

2.部署包中附带了HTTP服务功能,可直接运行

# ./easyedge_serving {RES目录} {序列号} {绑定的host,默认0.0.0.0} {绑定的端口,默认24401} cd ${SDK_ROOT}
export LD_LIBRARY_PATH=./lib
./demo/easyedge_serving    /home/root/workspace/EasyEdge-m1800-edgeboard/RES/    "1111-1111-
1111-1111"

日志显示

2019-07-18 13:27:05,941 INFO [EasyEdge] [http_server.cpp:136] 547974369280 Serving at 0.0.0.0:24401

则启动成功。此时可直接在浏览器中输入 http://{FZ3 ip地址}:24401 ,在h5中测试模型效果。

04. HTTP私有服务请求说明

http 请求参数

URL中的get参数:

参数

说明

默认值

threshold

阈值过滤, 0~1

0.1

HTTP POST Body即为图片的二进制内容(无需base64, 无需json)

Python请求示例:

import requests
with open('./1.jpg','rb') asf: 
         img =f.read()
         result = 
      requests.post( 'http://127.0.0.1:24401/',params={'threshold': 0.1}, 
           data=img).json()

http 返回数据

返回示例

{"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
},}

错误说明
SDK所有主动报出的错误,均覆盖在EdgeStatus枚举中。同时SDK会有详细的错误日志,开发者可以打开Debug日志查看额外说明:

global_controller()->log_config.enable_debug = true;

目前百度大脑米尔FZ3深度学习卡让您轻松对接EasyDL平台,该产品已经上市预售,点击了解更多详情:http://www.myir-tech.com/product/mys-czu3eg.htm

文章来源: 米尔MYiR 

最新文章