01_checker.sh:该文件仅与模型文件有关,需要通过—input-shape给定输入节点名称与形状。如果checker通过,说明模型没问题,checker报错,说明模型存在问题,很大可能是使用了不支持的算子。
02_preprocess.sh: 该文件与模型无关,用来预处理数据集且生成*.rgbp的格式。因此在改文件中需要提供源文件目录(--src_dir),生成后文件目录(--dst_dir),以及预处理过程(data_preprocess.py)。data_preprocess.py这个文件是纯python代码,需要根据自己训练时使用的预处理方式来改写。默认预处理文件中使用的是opencv读取图像,格式为BGR,一般情况下会使用BGR2RGBTransformer函数来转换一下。如果将*.yaml文件中的preprocess_on设为True,02_preprocess.sh文件应该会被自动忽略,但是自带的预处理方式与模型实际训练采用的方式不一致的话会影响部署模型精度。这里的源文件应该选取具有代表性的图像,其质量直接影响量化后模型的表现,图像数量可自行选择,coco上可在val集中选50张左右。
03_build.sh: 该文件实现模型的量化桥准,仅需要配置*.yaml文件。需要配置的参数也不多,详细内容请参考官方视频教程。这里需要提供校正数据集目录,即02_preprocess.sh预处理后生成的.rgbp文件目录。
04_inference.sh: 该文件用来测评单帧图像在量化前后模型的一些性能,关注测评图像途径(IMAGE)。如果使用自己的模型,需要对inference.py内容做相应修改(以03_yolov5为例,后处理均在该文件中实现,因此可根据自己模型需求实现不同的后处理。)通常模型后处理部分很难直接转换成.onnx格式,因此在生成.onnx前可直接导出主干网络的输出结果,然后另外实现后处理。这里想请问各位大佬一下yolov5里面的后处理在板端需要另外写代码吗?
05_evaluate.sh: 该文件对模型进行性能的综合评估,如果是在coco数据集上,则需要提供所有的coco_val数据集图像与对应的.json文件(image=‘/path/to/your coco_val images’,anno=’path/to/your coco_val *.json’)。评估函数coco_evaluate.py与训练模型使用的类似,如果需要做实例分割等任务,这个函数也要做相应修改。
之后我也会分享一下将自己训练的模型转成x3支持的onnx遇到的坑,目前还在采坑中



