海思SD3403开发板学习系列:四 模型转换
前言
就以目前正在研究的YOLOX系列作为模型转换的例子。
YOLOX是yolo系列的一个衍生模型,相比于一般yolo,YOLOX最大的特点就是无锚框。
一、MindStudio
- 打开一个终端,并打开MindStudio的安装目录下的bin文件夹下,执行如下命令打开MindStudio
./MindStudio.sh
- 随便打开一个工程或者新建一个新的工程
- 在工具栏里选择Model Converter
二、模型转换步骤
-
配置文件参数
自上而下分别是:
.protext文件
.caffemodel文件
自定义模型名称(不用写.om后缀名)
平台的SOC版本
指定输出路径(不指定会默认输出到用户目录下的modelzoo文件夹下)
输入的形式(NCHW可以理解为四个维度分别为batch,channel,height,width)
输入的大小和类别(大小根据模型自定义,类型有UINT8和FP16,我选择的是UINT8)
选择输出节点并设置输出类型 (类型有UINT8、FP16和FP32,我选择的是FP32)
选择完后就next下一步
-
模型输入参数
如果上一步中输入的类型选择UIN8则可以配置当前这页参数
这里重点关注输入数据的形式,输入图像的宽高,输入图像的排列方式(RGB/BGR),数据标准化方式,其他参数一般用不上,默认就可以。
Input Image Format:输入的数据形式,选择很多 yuv就有很多种,也有普通rgb或rgba的数据形式,根据需求选择,我这边选用YVU420sp也就是NV21的数据形式,BT.709的标准,这些都因需求而定。
Input Image Resolution:就是图像的宽度和高度
Model Image Format:RGB或者BGR,训练时啥样就啥样,我目前使用的yolox官方代码是RGB排列
Normalization:数据标准化方式,通道的均值,最小值和方差,这里需要注意的是MindStudio使用的是方差的倒数。
Crop: 裁切图像
Resize: 重新设置输入图像大小
Padding:在原图周边进行填充
选择完后就next下一步
-
这一页的参数基本不需要设置,默认即可,然后Finish
-
看到如下内容就是成功转完模型了
备注:
yolox的focus层改为了一个卷积层替换。
yolox的上采样层使用反卷积进行了替换。