系列文章目录
第一章 华为云modelarts平台使用第二章 华为云modelarts平台SDK的调用
第三章 ros+modelarts实现多车辆协作
文章目录
一、模型部署
当模型部署完成后可以调用SDK将采集的图片传到华为云上,经过识别后,华为云会将识别后的结果发送到设备上。
我这里用到的设备是jetson nano(jetbot小车)和jetson tx2,本来可以直接用其配好环境直接做目标检测,但是比赛题目要求用到华为云modelarts平台。有机会我会用树莓派试一试,理论上只要是能运行python的板子都行(pc机也行)。
华为云官方的参考手册:https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0001.html
(这个手册很重要)主要看SDK参考这一块
按照手册上的步骤走即可,这个不难就不再过多讲了。
二、我的程序(仅供参考)
难题主要在于数据的解析。
jeson nano收到的数据如下所示,如何解析出识别到的是苹果是难点
detection_classes:识别到的物体
detection_boxes:物体的坐标
detection_scores:识别率
{
"detection_classes": [
"苹果",
"苹果"
],
"detection_boxes": [
[
"80.887726",
"263.80356",
"299.759",
"488.36438"
],
[
"58.76906",
"52.273037",
"302.06067",
"275.1259"
]
],
"detection_scores": [
"0.99877447",
"0.9964096"
]
}
我的程序如下所示:我只是简单的识别出种类。出于账号安全考虑access_key的值等用******代替。这些值所代表的意义手册里有。
from modelarts.session import Session
from modelarts.model import Predictor
import cv2
session = Session(access_key='******',secret_key='******', project_id='******', region_name='******')
predictor_instance = Predictor(session, service_id="******")
#predictor_info = predictor_instance.get_service_info()
predict_result = predictor_instance.predict(data="/home/wyd/下载/1.jpg", data_type="images")
print(predict_result)
j=0
n=0
for key,value in predict_result.items():
for i in predict_result[key]:
if (i=="苹果")&(j==0):
print("检测到苹果即将调用采摘车")
j=j+1
n=0
总结
部署的难点在于数据解析而不是环境的配置,华为云modelarts平台简化了环境配置这一步骤,将配置好的环境打包分享给用户,用户直接下载这个环境就可以使用,但是python语言虽然包装的好使用简单,但在解析数据时十分难受。