1. YOLO模型资料
本文档内容以yolov5-7.0工程、yolov5s模型为例。
a. 模型结构
详细的模型结构可以利用netron工具打开.pt或.onnx模型查看。
b. 模型参数即验证结果
其中,YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x为五种类型的预训练模型,其包含的检测类别相同,均包括以下80类'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus',
'train','truck','boat', 'traffic light','fire hydrant',
'stop sign','parking meter', 'bench', 'bird', 'cat', 'dog',
'horse', 'sheep', 'cow','elephant', 'bear', 'zebra', 'giraffe',
'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat',
'baseball glove', 'skateboard', 'surfboard','tennis racket',
'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl',
'banana', 'apple','sandwich', 'orange', 'broccoli', 'carrot',
'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
'potted plant','bed', 'dining table', 'toilet', 'tv', 'laptop',
'mouse', 'remote', 'keyboard', 'cell phone','microwave', 'oven',
'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase',
'scissors', 'teddy bear','hair drier', 'toothbrush':
Size表示模型支持输入的图像尺寸为640*640。
MAP(50-95)表示只有当预测结果置信度阈值为50-95时才算正确的话,模型在coco测试集上的预测精确度。
Speed cpu b1表示该模型在cpu上的推理速度是多少。
Speed V100 b1表示该模型在gpu上的推理速度是多少,其中V100为英伟达的一种显卡类型。
Params表示模型需要训练的参数数量,单位是million。
FLOPs表示模型执行推理时每秒需要进行的浮点数运算次数,次数越少说明模型约轻量,模型参数越少。
2. 移植过程和优化文档
通过章节一得到yolo原始模型,其后缀为.pt,要想将其放到SS928芯片上执行推理,必须将其转换为.om模型,.pt模型转为.om模型需要分两步:
1).pt模型转为.onnx;
2).onnx转为.om;
其中,步骤1依赖github开源的yolo工程,步骤2依赖海思提供的atc工具,即资料包中的Ascend-cann-toolkit_6.10.t01spc030b330_linux.x86_64.run。
下面将对步骤1和步骤2的实现进行详细的说明:
2.1环境搭建指南
.pt模型转换为.onnx
2.1.1.准备一个纯净的ubuntu18:04的环境;
2.1.2.安装anaconda
通过安装Anaconda来创建虚拟环境,可以在同一个系统上创建多个相互独立的 Python 运行环境。每个虚拟环境中都可以安装所需的 Python 包和库,以满足不同项目或应用程序的需求,而且不会影响到系统上其他的 Python 环境,保证了环境隔离。(与全局系统环境和其他虚拟环境都隔离开来)
(1)Anaconda镜像资源下载网址:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
(2)选择对应的版本下载,下载完成后在终端输入命令运行.sh文件即可安装:
./Anaconda3-2020.11-Linux-x86_6