MindSpore应用系列:树莓派上运行YOLOv5进行实时目标检测(三)

本文探讨在树莓派上使用MindSpore运行YOLOv5进行实时目标检测遇到的问题及解决方案。通过分析模型输出,解释了物体边框、置信度和分类的计算过程,并尝试使用MindSpore API处理输出数据。在遇到模型权重不匹配导致的空值问题后,作者转向了MindSpore YOLO套件,以简化模型构建和训练流程。
摘要由CSDN通过智能技术生成

接上回,https://www.hiascend.com/forum/thread-0239124904620783059-1-1.html

结尾处即使换成python3.7推理也会报错,报的是图编译的错。

还是用mindspore的接口来进行mindir的推理

import numpy as np
import cv2 as cv
import time
import numpy as np
import mindspore as ms
import mindspore.nn as nn
from mindspore import Tensor
from mindspore import context
context.set_context(mode=context.GRAPH_MODE)
graph = ms.load("yolov5s.mindir")
net = nn.GraphCell(graph)
in_data = cv.imread("C:\\ai\\infer\\data\\images\\dog.jpg")
img = cv.resize(in_data, (640,640), interpolation=cv.INTER_LINEAR)
image_np_expanded = img.astype('float32') / 255.0
input_tensor = Tensor(image_np_expanded)
print(input_tensor.shape)
img_dim=in_data.shape[:2]
output = net(input_tensor)
print(output[0].shape)
print(output[1].shape)
print(output[2].shape)复制

推理输出的shape分别为

(1, 20, 20, 3, 85) 

(1, 40, 40, 3, 85) 

(1, 80, 80, 3, 85)

这个就是对应下图的输出,略有差异是因为输入图像的shape不一致导致的。

image.png

对应mindspore

三个特征图中,最大的80, 80 负责检测小目标,而对应到640*640上,每格特征图的感受野是640/80=8*8大小。

40, 40 负责检测中等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值