yolov5从英伟达平台移植到华为昇腾开发板上的思路

作者:朱金灿
来源:clever101的专栏

为什么大多数人学不会人工智能编程?>>> hot3.png

  最近需要将yolov5代码从英伟达平台移植到华为昇腾开发板上。搜了一些代码和资料,大致明白了二者的差别。

1.二者使用的模型文件不一样

  yolov5官方用的模型文件为pt文件,华为昇腾开发板用的是om模型文件。具体怎么转换参考文末的参考资料1.

2.代码方面的差别

  因为模型文件不一样,因此加载模型文件中生成的模型对象也是不一样的。yolov5官方代码如下:

    # Load model
    device = select_device(device)
    # weights为输入的模型文件
    model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half)

  从上面可以知道模型对象是从调用DetectMultiBackend函数返回的。
  华为昇腾开发板的开发示例代码如下:

 # 1.Load model
    print("Loading model %s" % opt.weights)
    model_path = str(opt.weights)
    net = Net(device_id, model_path)

  可以看到模型对象是调用Net函数生成的。因此后面要移植的话就得把二者对应起来。
参考资料:
1.Atlas200DK部署YOLOV5
2.YOLOv5 ascend
3.Atlas_ACL_E2E_Demo
4.yolov5的推理输出detect.py部分
5.华为Atlas 200I DK A2开发者套件–基础使用配置

你可能感兴趣的:(python,YOLO,华为,昇腾,Atlas,200I)