上云无忧 > 文档中心 > 百度智能云飞桨EasyDL零门槛AI开发平台 - 图像Windows-x86-加速版SDK集成快速开始
飞桨EasyDL零门槛AI开发平台
百度智能云飞桨EasyDL零门槛AI开发平台 - 图像Windows-x86-加速版SDK集成快速开始

文档简介:
Windows CPU加速版SDK是适用于EasyDL图像模型快速部署的工具包。SDK中包含了EasyDL训练的模型资源文件、SDK和demo文件。 测试前的准备: Windows x86的硬件及开发环境 详情参考下方文档
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

简介

Windows CPU加速版SDK是适用于EasyDL图像模型快速部署的工具包。SDK中包含了EasyDL训练的模型资源文件、SDK和demo文件。

测试前的准备

  • Windows x86的硬件及开发环境

    • 详情参考下方文档
  • EasyDL平台的Windows x86 加速版SDK

    • 以图像分类为例,前往操作台训练模型后,选择发布为Windows x86的通用设备端SDK并勾选加速版,发布成功后即可从平台下载
  • 用于激活通用设备端加速版SDK的序列号

    • 前往控制台申请用于激活通用设备端SDK的序列号,注意选择加速版序列号
    • 首次使用SDK或者更换序列号、更换设备时,需要联网激活。激活成功之后,有效期内可离线使用

安装依赖

在使用SDK之前,首先要确认自己的硬件类型和相应的依赖库安装是否已经符合要求。

硬件要求:

  • Intel Xeon with AVX2 and AVX512
  • Intel Core Processors with AVX2
  • Intel Atom Processors with SSE

软件要求:

  • 64位 Windows 10
  • .NET Framework 4.5
  • Visual C++ Redistributable Packages for Visual Studio 2013
  • Visual C++ Redistributable Packages for Visual Studio 2015
  • Openvino 2020.1

其他要求:

  • 第一次使用SDK请确保联网

SDK结构

获取到的SDK解压后的目录结构是: 

其中:

  • bootstrap是SDK的入口脚本。
  • data/model文件夹下是EasyDL训练得到的模型资源文件。
  • tools文件夹下提供的是模型更新工具,用在迭代训练模型后,直接拉取新训练的模型,而不用重新下载SDK。

运行demo

打开EasyEdge.exe,输入Serial Num  点击"启动服务",等待数秒即可启动成功,本地服务默认运行在

http://127.0.0.1:24401/

服务运行成功,此时可直接在浏览器中输入http://127.0.0.1:24401,在h5中测试模型效果。 

Http服务集成

服务运行成功后,除网页直接访问外,也可以通过http请求的方式执行模型的预测并获取预测结果。

图像服务调用说明

Python 使用示例代码如下

import requests with open('./1.jpg', 'rb') as f: img = f.read() ## params 为GET参数
 data 为POST Body result = requests.post('http://127.0.0.1:24401/',
 params={'threshold': 0.1}, data=img).json()

C# 使用示例代码如下

FileStream fs = new FileStream("./img.jpg", FileMode.Open); BinaryReader br = new BinaryReader(fs);
 byte[] img = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); string url = 
"http://127.0.0.1:8402?threshold=0.1"; HttpWebRequest request = (HttpWebRequest)
HttpWebRequest.Create(url); request.Method = "POST"; Stream stream = request.GetRequestStream();
 stream.Write(img, 0, img.Length); stream.Close(); WebResponse response = request.GetResponse();
 StreamReader sr = new StreamReader(response.GetResponseStream()); Console.WriteLine(sr.ReadToEnd());
 sr.Close(); response.Close();

C++ 使用示例代码如下,需要安装curl

#include <sys/stat.h> #include <curl/curl.h> int main(int argc, char *argv[])
 { const char *post_data_filename = "./img.jpg"; FILE *fp = NULL; struct stat stbuf = { 0, };
 fp = fopen(post_data_filename, "rb"); if (!fp) { fprintf(stderr, "Error: failed to open
 file \"%s\"\n", post_data_filename); return -1; } if (fstat(fileno(fp), &stbuf)
 || !S_ISREG(stbuf.st_mode)) { fprintf(stderr, "Error: unknown file size \"%s\"\n",
 post_data_filename); return -1; } CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_ALL); 
curl = curl_easy_init(); if (curl != NULL) { curl_easy_setopt(curl, CURLOPT_URL, 
"http://127.0.0.1:24401?threshold=0.1"); curl_easy_setopt(curl, CURLOPT_POST, 1L);
 curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE,(curl_off_t)stbuf.st_size);
 curl_easy_setopt(curl, CURLOPT_READDATA, (void *)fp); res = curl_easy_perform(curl);
 if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n",
 curl_easy_strerror(res)); } curl_easy_cleanup(curl); } curl_global_cleanup(); fclose(fp); return 0; }

请求参数

字段 类型 取值 说明
threshold float 0 ~ 1 置信度阈值

HTTP POST Body直接发送图片二进制。

返回参数

字段 类型 取值 说明
confidence float 0~1 分类或检测的置信度
label string 分类或检测的类别
index number 分类或检测的类别
x1, y1 float 0~1 物体检测,矩形的左上角坐标 (相对长宽的比例值)
x2, y2 float 0~1 物体检测,矩形的右下角坐标(相对长宽的比例值)

关于矩形坐标

x1 * 图片宽度 = 检测框的左上角的横坐标

y1 * 图片高度 = 检测框的左上角的纵坐标

x2 * 图片宽度 = 检测框的右下角的横坐标

y2 * 图片高度 = 检测框的右下角的纵坐标

图像分割

返回结果格式参考API调用文档 代码参考 https://github.com/Baidu-AIP/EasyDL-Segmentation-Demo

声音服务调用说明

Python 使用示例代码如下

import requests with open('./1.mp3', 'rb') as f: audio = f.read() ## params 为GET参数 
data 为POST Body result = requests.post('http://127.0.0.1:24401/', params={'threshold': 0.1}, data=audio).json()

C# 使用示例代码如下

FileStream fs = new FileStream("./audio.mp3", FileMode.Open); BinaryReader br = new BinaryReader(fs);
 byte[] audio = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); string url
 = "http://127.0.0.1:8402?threshold=0.1"; HttpWebRequest request = (HttpWebRequest)
HttpWebRequest.Create(url); request.Method = "POST"; Stream stream = request.GetRequestStream();
 stream.Write(audio, 0, audio.Length); stream.Close(); WebResponse response = request.GetResponse();
 StreamReader sr = new StreamReader(response.GetResponseStream()); 
Console.WriteLine(sr.ReadToEnd()); sr.Close(); response.Close();

C++ 使用示例代码如下,需要安装curl

#include <sys/stat.h> #include <curl/curl.h> int main(int argc, char *argv[]) 
{ const char *post_data_filename = "./audio.mp3"; FILE *fp = NULL; struct stat stbuf =
 { 0, }; fp = fopen(post_data_filename, "rb"); if (!fp) { fprintf(stderr, "Error: 
failed to open file \"%s\"\n", post_data_filename); return -1; } if (fstat(fileno(fp),
 &stbuf) || !S_ISREG(stbuf.st_mode)) { fprintf(stderr, "Error: unknown file size 
\"%s\"\n", post_data_filename); return -1; } CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_ALL);
 curl = curl_easy_init(); if (curl != NULL) { curl_easy_setopt(curl, CURLOPT_URL,
 "http://127.0.0.1:24401?threshold=0.1"); curl_easy_setopt(curl, CURLOPT_POST, 1L); 
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE,(curl_off_t)stbuf.st_size); 
curl_easy_setopt(curl, CURLOPT_READDATA, (void *)fp); res = curl_easy_perform(curl);
 if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n",
 curl_easy_strerror(res)); } curl_easy_cleanup(curl); } curl_global_cleanup(); fclose(fp); return 0; }

请求参数

字段 类型 取值 说明
threshold float 0 ~ 1 置信度阈值

HTTP POST Body直接发送声音二进制。

返回参数

字段 类型 取值 说明
confidence float 0~1 分类或检测的置信度
label string 分类或检测的类别
index number 分类或检测的类别

相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部