English | 简体中文
Cvitek 所提供的 TDL(Turnkey Deep Learning)集成算法,用以缩短应用程序开发所需的时间。此架构实现了 TDL 所需算法包含其前后处理, 提供统一且便捷的编程接口。
参考链接: https://github.com/sophgo/tdl_sdk
本仓库基于 tdl_sdk,针对 Milk-V Duo 系列开发板创建,方便用户单独使用各示例进行验证测试,或者开发相关应用。
该仓库的示例需在 V2 版本的固件中测试,镜像地址: Relese。
使用本地的 Ubuntu 系统,推荐 Ubuntu 22.04 LTS
。
也可以使用虚拟机中的 Ubuntu 系统、Windows 中 WSL 安装的 Ubuntu 或者基于 Docker 的 Ubuntu 系统。
安装编译依赖的工具:
sudo apt-get install wget git make
获取本仓库代码:
git clone https://github.com/milkv-duo/duo-tdl-examples.git
以下以编译人脸检测的程序为例,介绍编译的过程。
进入代码目录:
cd duo-tdl-examples
加载编译环境:
source envsetup.sh
第一次加载会自动下载所需的编译工具链,下载后的目录名为host-tools
,下次再加载编译环境时,会检测该目录,如果已存在则不会再次下载。
加载编译环境时需要按提示输入所需编译目标:
Select Product:
1. Duo (CV1800B)
2. Duo256M (SG2002) or DuoS (SG2000)
如果目标板是 Duo 则选择 1
,如果目标板是 Duo256M 或者 DuoS 则选择 2
。由于 Duo256M 和 DuoS 支持 RISCV 和 ARM 两种架构,还需要按提示继续选择:
Select Arch:
1. ARM64
2. RISCV64
Which would you like:
如果测试程序需要在 ARM 系统中运行,选择 1
,如果是 RISCV 系统则选择 2
。
同一个终端中,只需要加载一次编译环境即可。
人脸检测的示例程序为 sample_vi_fd
,进入到 sample_vi_fd 目录:
cd sample_vi_fd
使用 make
命令编译:
make
将当前目录中生成的 sample_vi_fd
程序通过 scp 或者其他方式上传到 Duo 系列开发板中进行测试。如需清除编译生成的程序,可以执行 make clean
清除。
通过网络直接上传到 Duo 开发板中的程序,可能没有执行权限,需要先在开发板的系统里通过 chmod
命令添加可执行权限:
chmod +x sample_vi_fd
在开发板中测试该人脸检测示例的命令为 sample_vi_fd + 人脸检测模型文件
,注意 Duo 和 Duo256M/DuoS 中使用的模型是不同的:
-
Duo (CV180X)
./sample_vi_fd /mnt/cvimodel/scrfd_320_256_ir_0x.cvimodel
-
Duo256M/DuoS (SG200X)
./sample_vi_fd /mnt/cvimodel/scrfd_768_432_int8_1x.cvimodel
此时将摄像头对准人脸,终端日志中会打印当前检测到人脸的数量。如需通过电脑实时预览视频画面,可参考 人脸检测文档。
更多示例及详细使用说明,请参考 Milk-V 文档。
https://github.com/sophgo/tdl_models/tree/main
Chinese Version(中文版) | 格式 | English Version | Format | ||
深度学习SDK软件开发指南 | html | TDL SDK Software Development Guide | html | ||
YOLO系列开发指南 | html | YOLO Development Guide | html |
原始 tdl_sdk 仓库的编译依赖固件SDK duo-buildroot-sdk-v2,编译过程稍复杂一些。该仓库将示例代码从 tdl_sdk 中分离出来,对于只关心 AI 程序开发的用户,可以直接编译测试。本仓库示例的源码与 tdl_sdk 是一致的,会定期同步 tdl_sdk 中相关代码的更新。
为了简化示例程序的编译,libs 目录中存放了示例所依赖的预编译动态库 so 文件,其中大部分的库的源码都可以在 tdl_sdk 和 cvi_mpi 中找到。每个库对应的源码文件请参考本仓库 libs 目录下的 README 说明。