IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Vitis AI Library应用 -> 正文阅读

[人工智能]Vitis AI Library应用

Vitis AI提供两种应用例程,VART和Vitis AI Library,下文详细描述了Vitis AI Library中refinedet应用的实现过程。

编译AI模型

DNNDK 和Vitis AI Library编译AI库的方式相同。

编译refinedet模型

RefineDet模型用来检测人体。

$~/Vitis-AI/AI-Model-Zoo/all_models_1.2/caffe
$cp -r cf_refinedet_coco_480_360_0.8_25G_1.2/ ../../../Tool-Example/
$cd ~/Vitis-AI
$./docker_run.sh xilinx/vitis-ai:1.2.82
$conda activate vitis-ai-caffe
  • 生成.dcf文件,修改.json文件,这两步已经完成。
  • 运行编译指令
vai_c_caffe -p cf_refinedet_coco_480_360_0.8_25G_1.2/quantized/Edge/deploy.prototxt -c cf_refinedet_coco_480_360_0.8_25G_1.2/quantized/Edge/deploy.caffemodel -a arch.json -o cf_refinedet_coco_480_360_0.8_25G_1.2/output -n refinedet
  • 出现如下错误:
 Error parsing text-format caffe.NetParameter: 2310:21: Message type "caffe.DetectionOutputParameter" has no field named "objectness_score".
[VAI_C][Error] Open prototxt file failed: cf_refinedet_coco_480_360_0.8_25G_1.2/quantized/Edge/deploy.prototxt
  • 在readme中:

    remove layers after "arm_conf_reshape",将arm_conf_reshape层和它之后的层删除,再进行编译正常输出。

file

  • 将编译生成的.elf模型拷贝到sd卡

编译AI应用

编译Vitis-AI-Library应用

  • 安装交叉编译环境

进入https://github.com/Xilinx/Vitis-AI/tree/v1.2/Vitis-AI-Library#quick-start-for-edge,下载sdk-2020.1.0.0sh。

$mkdir petalinux_sdk
$cd petalinux_sdk
$./sdk-2020.1.0.0.sh
  • 创建环境变量
$source ~/petalinux_sdk/environment-setup-aarch64-xilinx-linux
  • 下载 vitis_ai_2020.1-r1.2.0.tar.gz,并安装
$tar -xzvf vitis_ai_2020.1-r1.2.x.tar.gz -C ~/petalinux_sdk/sysroots/
aarch64-xilinx-linux
  • 交叉编译refinedet
$cd ~/Vitis-AI/Vitis-AI-Library/overview/samples/refinedet
$bash -x build.sh
  • 编译后生成4个可执行文件:

file

将生成的文件拷贝到sd卡。

启动单板

  • sd卡FTA32中的内容:

file

  • refinedet_lib文件夹中的内容包括refinedet模型和可执行文件。

file

  • 查看ip,通过ssh访问单板
$ifconfig

file

  • 启动单板后,先执行init.sh, XRT环境变量
$cd /mnt/sd_mmcblk1p1
$source ./init.sh
  • 进入sd_mmcblk1p1目录
$cd /mnt/sd_mmcblk1p1
$ cp dpu_sw_optimize.tar.gz vitis-ai-runtime-1.2.0.tar.gz vitis_ai_library_r1.2.0_images.tar.gz vitis_ai_library_r1.2.0_video.tar.gz ~/
  • 运行dpu_sw_optimize
$cd ~
$tar -xzf dpu_sw_optimize.tar.gz
$cd dpu_sw_optimize/zynqmp/
$./zynqmp_dpu_optimize.sh
  • 安装 Vitis AI Runtime 1.2.0
tar -xzvf vitis-ai-runtime-1.2.0.tar.gz
cd ~/vitis-ai-runtime-1.2.0/aarch64/centos
rpm -ivh --force libunilog-1.2.0-r10.aarch64.rpm
rpm -ivh --force libxir-1.2.0-r12.aarch64.rpm
rpm -ivh --force libtarget-factory-1.2.0-r10.aarch64.rpm
rpm -ivh --force libvart-1.2.0-r16.aarch64.rpm
rpm -ivh --force libvitis_ai_library-1.2.0-r15.aarch64.rpm

运行Vitis AI Library应用

解压vitis_ai_library_r1.2.x_images.tar.gz和 vitis_ai_library_r1.2.x_video.tar.gz

mkdir -p ~/Vitis-AI/vitis_ai_library
tar -xzvf vitis_ai_library_r1.2.0_images.tar.gz -C Vitis-AI/vitis_ai_library
tar -xzvf vitis_ai_library_r1.2.0_video.tar.gz -C Vitis-AI/vitis_ai_library

拷贝refinedet_lib文件夹到 ~/Vitis-AI/vitis_ai_librarysamples/refinedet/

修改/etc/vart.conf文件

firmware:/run/media/mmcblk1p1/dpu.xclbin
rpm -ivh --force xilinx_model_zoo_zcu102-1.2.0-1.aarch64.rpm

模型安装到/usr/share/vitis_ai_library/models中,进入refinedet_pruned_0_8文件夹

cd /usr/share/vitis_ai_library/models

进入refinedet_pruned_0_8文件夹,文件夹中有如下两个文件。

file

  • 模型存放位置

新建与模型名字相同的文件夹,将与模型名字相同的.elf文件拷贝到新建的文件夹,然后执行。

cd ~Vitis-AI/vitis_ai_library/samples/refinedet/refinedet_lib
mkdir refinedet_pruned_0_8

将.elf文件改名成refinedet_pruned_0_8.elf,拷贝到refinedet_pruned_0_8文件夹,将reffinedet_pruned_0_8.prototxt拷贝到refinedet_pruned_0_8文件夹。

  • 查找模型,在configurable_dpu_task_imp.cpp 中指出了查找模型的位置。

file

  • 删除zcu104模型

/usr/share/vitis_ai_library/models/refinedet_pruned_0_8的,模型是针对ZCU104单板器件的,不能使用,因此将refinedet_pruned_0_8文件夹名字进行修改,防止程序执行时运行。

  • 在refinedet_lib目录,运行例程
./test_jpeg_refinedet refinedet_pruned_0_8 sample_refinedet.jpg
  • 输出结果

file

  • 启动摄像头识别
 export DISPLAY=:0.0
 xrandr --output DP-1 --mode 640x480
./test_video_refinedet refinedet_pruned_0_8 0

硬码农二毛哥

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:25:17  更:2021-08-10 13:26:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:43:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码