基于snpe-1.60.0_3313在骁龙865的开发板上测试yolov5(6.1)

1、下载yolov5(6.1)版本的代码以及模型(以下以yolov5n进行文档编写)

https://github.com/ultralytics/yolov5/releases

根据requirements.txt配置环境,配置完成后,调用export.py将L、M、N、S、X分别导出onnx模型,脚本具体配置如下:

def parse_opt():
    parser = argparse.ArgumentParser()
    parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='dataset.yaml path')
    parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'yolov5n.pt', help='model.pt path(s)')
    parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640, 640], help='image (h, w)')
    parser.add_argument('--batch-size', type=int, default=1, help='batch size')
    parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--half', action='store_true', help='FP16 half-precision export')
    parser.add_argument('--inplace', action='store_true', help='set YOLOv5 Detect() inplace=True')
    parser.add_argument('--train', default=1,action='store_true', help='model.train() mode')
    parser.add_argument('--optimize', action='store_true', help='TorchScript: optimize for mobile')
    parser.add_argument('--int8', action='store_true', help='CoreML/TF INT8 quantization')
    parser.add_argument('--dynamic', action='store_true', help='ONNX/TF: dynamic axes')
    parser.add_argument('--simplify', action='store_true', help='ONNX: simplify model')
    parser.add_argument('--opset', type=int, default=12, help='ONNX: opset version')
    parser.add_argument('--verbose', action='store_true', help='TensorRT: verbose log')
    parser.add_argument('--workspace', type=int, default=4, help='TensorRT: workspace size (GB)')
    parser.add_argument('--nms', action='store_true', help='TF: add NMS to model')
    parser.add_argument('--agnostic-nms', action='store_true', help='TF: add agnostic NMS to model')
    parser.add_argument('--topk-per-class', type=int, default=100, help='TF.js NMS: topk per class to keep')
    parser.add_argument('--topk-all', type=int, default=100, help='TF.js NMS: topk for all classes to keep')
    parser.add_argument('--iou-thres', type=float, default=0.45, help='TF.js NMS: IoU threshold')
    parser.add_argument('--conf-thres', type=float, default=0.25, help='TF.js NMS: confidence threshold')
    parser.add_argument('--include', nargs='+',
                      
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
根据提供的引用内容,SNPE是指Snapdragon Neural Processing Engine,是高通公司推出的一款深度学习推理引擎。而yolov5是一种目标检测算法,它可以用于检测图像或视频中的物体。下面是将yolov5模型转换为SNPE Enabled App的步骤: 1. 首先,需要将yolov5模型转换为SNPE所需的DLC文件。可以使用SNPE提供的Model Convert工具来完成此操作。具体步骤如下: ```shell snpe-tensorflow-to-dlc --input_network yolov5s.onnx --output_network yolov5s.dlc --allow_unconsumed_nodes ``` 这里假设yolov5模型已经转换为了ONNX格式。 2. 如果需要在Hexagon DSP上运行模型,则可以使用SNPE提供的ModelQuantize工具来量化模型。具体步骤如下: ```shell snpe-dlc-quantize --input_network yolov5s.dlc --output_network yolov5s_quantized.dlc --input_dims input:1,3,640,640 --calib_iter 50 ``` 这里假设输入张量的名称为input,大小为1x3x640x640,量化迭代次数为50。 3. 接下来,可以使用SNPE Task API来加载模型并完成推理。具体步骤如下: ```c++ // 加载模型 std::unique_ptr<zdl::DlSystem::ITensor> input = zdl::SNPE::SNPEFactory::getInput(mSNPE, "input"); std::unique_ptr<zdl::DlSystem::ITensor> output = zdl::SNPE::SNPEFactory::getOutput(mSNPE, "output"); // 处理输入 // ... // 完成推理 mSNPE->execute(inputTensors, outputTensors); // 处理输出 // ... ``` 这里假设输入张量的名称为input,输出张量的名称为output。 4. 最后,可以使用YOLOv5s来进行预处理和后处理。具体步骤如下: ```python # 预处理 img = cv2.imread('image.jpg') img = cv2.resize(img, (640, 640)) img = img.transpose((2, 0, 1)) img = np.expand_dims(img, axis=0) # 推理 output = snpe.infer({'input': img}) # 后处理 # ... ``` 这里假设输入张量的名称为input,大小为1x3x640x640。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lindsayshuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值