什么是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