You're reading an pre-release version of this documentation.
For the latest stable release version, please have a look at master.

案例集

概述

所有示例通过 Python 接口实现板卡推理,前处理(数据标准化/归一化、通道变换、输入数据量化)和反量化都已经加入网络中,板卡推理结果返回 PC 端做后处理,结果保存在模型工程目录下。提供源码地址、权重文件、NBG 文件、测试图片。

示例流程

flowchart TD A[开始] --> B[读取单张图片] B --> C[PC 端前处理] C --> D[传输处理数据至板卡] D --> E[板卡边缘计算推理] E --> F[返回推理结果至 PC 端] F --> G[PC 端后处理] G --> H[保存最终结果] H --> I[结束] %% 样式定义 classDef boardProcess fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px class E boardProcess

项目结构

1├── docs/                 # 项目文档
2├── resource/             # 算法模型
3├── src/                  # 源码
4│   ├── utils/            # 公共组件
5│   └── ***.py            # demo 测试验证相关代码,包含前后处理以及模型的调用
6└── README.md             # 项目说明文档

环境要求及配置

硬件要求

项目

要求

NPU 板卡

X78E_DSKC_202311V0 板卡

连接方式

网线连接(自备)

服务状态

板卡 server 已运行(详情参考 server_api.md)

Python 环境搭建

 1# 下载安装脚本
 2wget "https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease//Miniforge3-$(uname)-$(uname -m).sh"
 3
 4# 创建安装目录
 5mkdir -p ~/app
 6INSTALL_PATH="${HOME}/app/miniforge3"
 7
 8# 安装 mamba
 9bash Miniforge3-Linux-x86_64.sh -b -p ${INSTALL_PATH}
10
11# 配置环境变量
12echo "source ${INSTALL_PATH}/etc/profile.d/conda.sh" >> ${HOME}/.bashrc
13echo "source ${INSTALL_PATH}/etc/profile.d/mamba.sh" >> ${HOME}/.bashrc
14source ${HOME}/.bashrc
15
16# 创建并激活虚拟环境
17mamba create -n netrans python=3.10 -y
18mamba activate netrans

下载工程

1git clone https://gitlink.org.cn/nudt_dsp/demo_system_algorithm.git

安装依赖

1pip install -r requirements.txt

评估指标

指标

说明

fiducial_e

计算归一化的绝对误差,通过 fe 的均值和最大值评估,值越接近 0 越好

推理速度

下位机单张图片推理时间(毫秒)


执行与性能

以语义分割为例,直接运行 py 文件,其他案例一致。

执行命令

1cd demo_system_algorithm/src
2python deeplabv3.py

输出结果

推理时间、输出 fe 的相似度以及结果图片保存到 demo_system_algorithm/resource 对应的案例目录下。


案例详情

语义分割

项目

说明

模型类型

DeepLabV3(MobileNetV3 作为骨干网络),用于语义分割任务

目标应用

场景理解、自动驾驶、工业检测、医疗影像分析等

代码来源

https://github.com/bubbliiiing/deeplabv3-plus-pytorch.git

详细文档

docs/deeplab_v3.md

实例分割

项目

说明

模型类型

YOLOv5s-seg,基于 YOLOv5 架构的轻量级实例分割模型,同时完成目标检测和分割掩码预测

代码来源

https://github.com/ultralytics/yolov5.git

详细文档

docs/yolov5s-seg.md

单目标跟踪

项目

说明

模型类型

OSTrack(One-stream Transformer Tracker),基于 Transformer 架构的单目标视觉跟踪模型

代码来源

https://github.com/maliangzhibi/OSTrack-onnx.git

详细文档

docs/ostrack.md

分类

项目

说明

模型类型

ResNet18 分类模型,输出对 1000 个类别的概率分布

代码来源

https://github.com/ultralytics/yolov5.git

详细文档

docs/resnet18.md

关键点检测

项目

说明

模型类型

SuperPoint,端到端的自监督/半监督学习的关键点检测与描述子提取方法

功能

检测关键点位置与置信度,生成 128 维局部描述子用于图像匹配

代码来源

https://github.com/eric-yyjau/pytorch-superpoint

详细文档

docs/superpoint.md

人体姿态估计

项目

说明

模型类型

OpenPose 人体姿态估计模型,采用 PAFs + 关键点热力图实现多人姿态检测

代码来源

https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch

详细文档

docs/openpose.md

差异性检测

项目

说明

模型类型

A2Net,轻量化差异性检测网络,使用 MobileNetV2 作为主干

目标应用

城市规划、自然灾害评估、农林监测、环境变化监测等

代码来源

https://github.com/guanyuezhen/A2Net.git

详细文档

docs/a2net.md

图像分割检测

项目

说明

模型类型

YOLOv5s,针对高分辨率图片检测进行优化,通过子图分割和结果合并实现大图检测

代码来源

https://github.com/ultralytics/yolov5.git

详细文档

docs/yolov5s_segmentation_recognition.md


作者:ougaoliang