跳转至

OpenDLA介绍

1 总体介绍

OpenDLAModel&OpenDLA 是为用户提供在sgs平台上进行快速部署的开发套件。其中, OpenDLAModel为开源模型的转换代码, OpenDLA为转换后离线模型的运行示例。为了更方面客户进行开源模型转换, OpenDLAModel中提供了onnx模型、参数配置示例、数据处理脚本等文件, 并且封装好了IPU Toolchain的转换命令脚本convert.sh。

OpenDLAModel和OpenDLA分别依赖IPU_SDK和Linux_SDK, 具体调用流程如下:

1.1 OpenDLAModel&OpenDLA

OpenDLAModel的具体目录结构如下:

├── detection
    └── yolov5
    └── yolov8
        └── quant_data                      #少量量化数据集, 仅作为示例参考
        └── onnx                            #onnx模型存放路径
        └── input_config.ini                #输入参数配置文件
        └── new_offline_input_config.ini    #后处理模型输入配置文件
        └── modify_out_nodes.py             #修改onnx模型输出节点
        └── yolov8_pre.py                   #前处理脚本
        └── yolov8_post.py                  #后处理模型构建脚本
        └── convert.sh                      #模型转换命令
        └── convert_ipu.sh                  #添加后处理模型的转换命令
    └── yolov11_obb
├── pose
    └── yolov8
├── segmentation
    └── yolov8
├── ocr
    └── lpr
    └── ppocr
├── llm
    └── punc
    └── transformerlm
├── vlm
    └── clip
    └── mobilesam
    └── yolo_world
├── asr
    └── conformer
├── speaker
    └── resnet
├── vad
    └── nemo
├── tts
    └── vits
├── separation
    └── sepformer
├── sed
    └── eat
├── config
├── convert.sh

其中,convert.sh的运行参数如下:

-a:算法路径
-c:算法的cfg文件路径
-p:IPU SDK路径,需要输入`绝对路径`
-s:是否打开模型仿真
-d:v8/v5检测模型是否打开后处理优化模式

具体运行指令可参考具体算法的说明文档。

OpenDLA具体的开源算法列表如下:

├── Benchmark           #用于测试offline模型的端上开销
├── Resource            #存放板端运行的图像/音频/文本/字典等文件
├── classification      #C/C++具体示例代码
├── detection
    └── yolov5
    └── yolov8
    └── yolov11_obb
├── pose
    └── yolov8
├── segmentation
    └── yolov8
├── ocr
    └── lpr
    └── ppocr
├── llm
    └── punc
    └── transformerlm
├── vlm
    └── clip
    └── mobilesam
    └── yolo_world
├── asr
    └── conformer
├── speaker
├── vad
    └── nemo
├── tts
    └── vits
├── separation
    └── sepformer
├── sed
    └── eat

2 开发工具

用户在部署过程中所用到的开发工具, 均由FAE给出, 具体目录结构如下所示:

  • ReleaseForCus
        └────Linux_SDK_Release
                        └────sdk
                            └────verify/opendla
                        └────project
                            └────release/chip/${chip_name}/sigma_common_libs/${toolchian}/${version}/arm/release/static/*.lib
                        └────kernel
                        └────boot
        └────IPU_SDK_Release
                        └────docker
                        └────SGS_IPU_Toolchain
        └────OpenDLAModel
    

其中, Linux_SDK_Release详情介绍可参考《开发环境搭建》, IPU_SDK_Release详情介绍可参考IPU Doc。

3 模型支持列表

下面的表格中展示了sgs平台上的模型支持列表。对于不同平台,开源模型的支持情况不同,原因主要有以下几种情况: - 平台算子暂未支持 - 平台算力限制

chip algorithm
muffin classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/ppocr/conformer/sed/punc/vad/transformerlm/vits/clip/yolov8_world/mobilesam
ifackel classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/ppocr/conformer/sed/punc/vad/transformerlm/vits/clip/yolov8_world/mobilesam
souffle classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/ppocr/conformer/sed/punc/vad/transformerlm/vits/clip/yolov8_world/mobilesam
maruko classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/conformer/sed
iford classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/conformer/sed
ifado classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/conformer/sed
pcupid classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/ppocr/conformer/sed/punc/vad/transformerlm/vits/clip/yolov8_world/mobilesam
opera classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/ppocr/conformer/sed/punc/vad/transformerlm/vits/clip/yolov8_world/mobilesam
mochi classification/yolov5/yolov8/yolov8-pose/yolov8-seg/lpr/conformer/sed