华为云modelarts平台SDK的调用

系列文章目录

第一章 华为云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语言虽然包装的好使用简单,但在解析数据时十分难受。

猜你喜欢

转载自blog.csdn.net/qq_44181970/article/details/113530675