【模型导出与部署】项目接口与百度机器人对接
项目接口与百度机器人对接
- 1. 百度服务机器人介绍
- 2. 接口对接百度修改
- 2.1 web对接口
1. 百度服务机器人介绍
- 开放平台架构
- 机器人后台配置网址: https://console.bce.baidu.com/abcrobot/#/consolePage/extAbility/objIdentify
- 需要企业百度云账号,这里做演示说明
- 机器人配置后台
配置自定义物体识别功能
- 配置页面
- 其中需要配置我们自己的物体识别HTTP接口,密钥可以随意配置
2. 接口对接百度修改
- 参考百度人脸、物体识别协议
2.1 web对接口
from flask import Flask
from flask import request, abort, send_file, render_template, jsonify
import base64
from urllib import parse@app.route("/api/v3/prediction/commodity", methods=['POST'])
def commodity_predict_itcast():"""百度机器人对接接口"""# 百度机器人平台传入参数解析req = request.get_json()requestId = req["requestId"]img_str = req["image"]# 传入的image_str进行解码gbk编码形式img_str = parse.unquote(img_str)# str编码utf-8之后进行base64解码img = base64.b64decode(img_str.encode())# 预测结果标记,不标记图片直接返回预测结果,百度平台识别处理# 通过i获取图片label, location, xmin, ymin, xmax, ymax# pre_label = outputs[0][:, 0]# pre_conf = outputs[0][:, 1]# pre_xmin = outputs[0][:, 2]# pre_ymin = outputs[0][:, 3]# pre_xmax = outputs[0][:, 4]# pre_ymax = outputs[0][:, 5]y_predict = make_prediction_v2(img)# 预测结果返回参数封装resp = {"result":[]}for i in range(outputs[0][:, 1].shape[0]):resp["result"].append({"score":float(outputs[0][:, 1][i]), "root":"", "keyword":VOC_LABELS[str(outputs[0][:, 0][i])]})resp["extInfos"] = {}resp["filterThreshold"] = 0.7resp["resultNum"] = outputs[0][:, 1].shape[0]resp["requestId"] = requestIdprint(resp)return jsonify(resp)
- 对应的预测结果进行最后输出修改
def make_prediction_v2(image):"""对于前端传入的参数进行预测:return:"""# - 1、获取读取后台读取的图片def resize_img(image, input_size):img = io.BytesIO()img.write(image)# 使用pillow image 接收这个图片rgb = Image.open(img).convert('RGB')# 换砖大小if input_size:rgb = rgb.resize((input_size[0], input_size[1]))return rgb# - 2、图片大小处理,转换数组resize = resize_img(image, (300, 300))image_array = img_to_array(resize)# 3---> 4维度image_tensor = preprocess_input(np.array([image_array]))# - 3、打开通道channel, 构建stub,预测结果, predict_pb2进行预测请求创建# 8500:grpc 8501:httpwith grpc.insecure_channel("127.0.0.1:8500") as channel:# stub通道stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)# 构造请求 tensorflow serving请求格式request = predict_pb2.PredictRequest()request.model_spec.name = 'commodity'# 默认签名即可request.model_spec.signature_name = signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEYrequest.inputs['images'].CopyFrom(tf.contrib.util.make_tensor_proto(image_tensor, shape=[1, 300, 300, 3]))# 与模型服务进行请求获取预测结果# 模型服务的request {'concat_3:0': tensor类}results = stub.Predict(request)# 会话去解析模型服务返回的结果with tf.Session() as sess:_res = sess.run(tf.convert_to_tensor(results.outputs['concat_3:0']))# 进行预测结果的NMS过滤# 物体检测的类别数量8 + 1bbox = BBoxUtility(9)y_predict = bbox.detection_out(_res)return y_predict
【模型导出与部署】项目接口与百度机器人对接相关推荐
- 如何将revit的内建模型导出使用?项目族管理功能介绍
Revit中内建模型建模是我们常用的功能,每次建模完成后都可以在另一个项目中使用,但是前提是需要导出后再载入才能在另一个项目中使用.今天就教教大家如何将Revit的内建模型单独导出,方便大家下次使用在 ...
- tf.saved_model.save模型导出、TensorFlow Serving模型部署、TensorBoard中的HParams 超参数调优
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 4.11 综合案例:模型导出与部署 学习目标 目标 掌握Ten ...
- Django零基础部署机器学习模型(将模型预测打包成API接口/网页URL)
Django零基础部署机器学习模型 Django REST framework项目创建 框架结构了解 部署代码 Django REST framework项目创建 建立一个项目文件夹,使用VScode ...
- 4模型导出_项目模型规范总结 游戏模型制作的注意事项
点击上方"3D天工坊"关注我本期我们来总结一下模型规范导出等~ 1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确 ...
- 【项目实战课】微信小程序图像识别模型前后端部署实战
欢迎大家来到我们的项目实战课,本期内容是<微信小程序图像识别模型前后端部署实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战讲解. ...
- 数据采集标注、模型开发、部署落地,百度大脑全栈 AI 能力详解
AI 时代已来,软硬件解决方案企业在智能化转型过程中,面临着技术投入成本高.研发周期长等挑战.如何借助业内成熟技术.快速低成本地实现 AI 应用,已成为企业自身与技术平台特别关注的问题. 从核心技术能 ...
- 使用百度开放云 应用引擎 BAE 部署项目的一些心得
说明:本部署说明针对 Java 应用. 当然,我这里记录的也只是为了方便自己看,要想得心应手地使用 BAE 部署项目,还是要去看 BAE 的官方文档,还是要去看 BAE 的官方文档,还是要去看 BAE ...
- 训练好的深度学习模型是怎么部署的?
训练好的深度学习模型是怎么部署的? 来源:https://www.zhihu.com/question/329372124 作者:田子宸 先说结论:部署的方式取决于需求 需求一:简单的demo演示,只 ...
- 【PaddleDetection】基于PaddleDetection的齿轮瑕疵检测:从模型训练到部署中的那些坑
目录 0 题目简介 1 Baseline项目的本地化 1.1 飞桨环境配置 飞桨安装注意事项 1.2 PaddleDetection安装 PaddleDetection注意事项 1.3 数据集下载与配 ...
- YOLOV5 v6.1更新 | TensorRT+TPU+OpenVINO+TFJS+TFLite等平台一键导出和部署
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 yolov5 release 6.1版本增加了TensorRT ...
最新文章
- 面了大厂的 Python 岗后,炸了!
- 2019-11-10 秩和奇异的一些概念
- linux内网穿透局域网frp(实现有网就能访问你的局域网台式机服务器)
- java读取mxl_Dom4j 读取一个XML文件和将String写成XML文件 | 学步园
- axios+vue+springboot完成批量删除
- CI框架实现框架前后端分离的方法详解:把前端代码统一管理
- Hilbert变换及谱分析
- Apple DNS加速
- C#语言实例源码系列-实现XML文件操作
- 夏天来了,来吃鹅厂新瓜,小马哥已吃
- mysql数据库加锁语句_sql语句对数据库表进行加锁和解锁
- 千秋华夏 壮丽河山 国庆节快乐~
- 自动生成 changelog.md,做一名有追求的工程师
- UAP:SECURITY PROTOCOL IN/OUT Command
- 【Ubuntu 1】ubuntu的软件包
- HTML5与CSS3及Less
- 阿里云ECS服务器优惠券领取开通
- 了解3dmax坐标系
- 清理Virtualbox虚拟机VDI镜像文件的空间大小
- SAP 公司间关联交易 外向交货单自动生成内向交货单报错:处理的单位XXXXXXX已经入库.无法进行分配