通过Vitis Ai 3.0平台量化yolov5模型并部署到ZCU102板卡上相关问题求解!

2023-11-10

通过Vitis Ai 3.0平台量化yolov5模型并部署到ZCU102板卡上相关问题求解!

这些天再通过Vitis Ai 3.0平台来量化yolov5模型的并且部署到zcu102板子上的时候一直遇到检测结果比较离谱的问题,因此想要发个贴请教下大佬们。

首先在虚拟机中应用的相关系统和环境为:

  • OS: Ubuntu 20.04.6 Linux System
  • Vitis ai docker images: xilinx/vitis-ai-pytorch-cpu:ubuntu2004-3.0.0.106
  • the model we use is Yolov5_nano(yolov5n_nndct.yaml)
  • the traning code and quantification code are officially downloaded from yolov5

在使用cocococo128数据集训练ylov5n模型后,我尝试了几种方法在Vitis Ai 3.0上进行量化,然后在ZCU102上部署。量化的结果是满意和合格的,其map也能在在0.3左右,图片检测的结果也比较正常。但是一旦编译完成之后上板测试,检测的结果就有点离谱了,有时定位错误,有时甚至无法探测到目标。例如,下图1sample1来自数据集coco128,部署到板上测试产生的结果如下图sample1_result所示。它的瞄框太离谱了,完全无法使用。

sample1sample1_result
下面是我尝试的几种方法或者测试例子,但无一例外最终上板测试时结果都跟上面一致。

量化官方的pt模型

我试过使用文件夹嚛yolov5_nano/float中的yolov5n float.pt来进行量化。在Linux终端vitis ai 3.0环境中中执行的命令是:

 python val.py --data ./data/coco128.yaml --weights ./float/yolov5n_float.pt --batch-size 4 --imgsz 640 --conf-thres 0.5 --iou-thres 0.65 --quant_mode calib --nndct_quant
 python val.py --data ./data/coco128.yaml --weights ./float/yolov5n_float.pt --batch-size 1 --imgsz 640 --conf-thres 0.5 --iou-thres 0.65 --quant_mode test --nndct_quant
 python val.py --data ./data/coco128.yaml --weights ./float/yolov5n_float.pt --batch-size 1 --imgsz 640 --conf-thres 0.5 --iou-thres 0.65 --quant_mode test --nndct_quant --dump_xmodel

calib和test的结果从图片上来看是正常的,并且测试的map也能在0.3左右。但是一旦按照下面的命令编译生成xmodel并部署到zcu102板子上面时,结果就像上面的图片一样了,完全不正常。

vai_c_xir -x ./Model_0_int.xmodel -a /opt/vitis_ai/compiler/arch/DPUCZDX8G/ZCU102/arch.json -o ./ -n model

量化由train.py和export.py导出的模型

我还尝试运行train.py来获得best.pt文件,然后在yolov5文件夹中使用export.py来生成xmodel。在终端中运行的命令是:

python train.py --weights ./float/yolov5n_float.pt --data ./data/coco128.yaml --batch-size 4 --cfg ./models/yolov5n_nndct.yaml --epochs 10 --nndct_quant --hyp ./data/hyps/hyp.scratch-med.yaml --device cpu
python export.py --weights ./runs/train/exp7/weights/best.pt --data ./data/coco128.yaml --batch-size 1 --conf-thres 0.5 --iou-thres 0.65 --include nndct

编译的命令和上面一致,但是结果仍然离谱。

直接量化train.py产生的模型

如果直接用运行train.py产生的best.pt文件,还是上述一致的方法生成xmodel,量化时结果也正常,但上板就寄了。。。

现在感觉量化时calib和test结果都没啥问题,我感觉可能出现问题的环节就是生成xmodel以及编译时,以至于上板结果总是出错。希望有遇到相关问题的大佬能够一起讨论或者帮忙解答,感激不尽。

同时我也发布在了vitis ai官方git的issue下面,欢迎大家评论。
vitis ai github issue 1319
也可以联系我的邮箱:2260376317@qq.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过Vitis Ai 3.0平台量化yolov5模型并部署到ZCU102板卡上相关问题求解! 的相关文章

随机推荐

  • 使用python写一个星球大战游戏.py

    如果要使用 Python 写一个类似于星球大战的游戏 需要用到一些专业的游戏引擎 比如 Pygame 首先 需要安装 Pygame 库 可以使用以下命令进行安装 pipinstall pygame 其次 可以在 Pygame 中使用 pyt
  • 网络安全人才青黄不接、数字化转型迫在眉睫、你还在犹豫吗?

    大专能不能学网络安全呢 大专学网络安全能不能找到工作呢 大专学网络安全有竞争力吗 网络上关于质疑大专学历进入网络安全行业的声音越来越多了 居然有很多人在质疑大专学历从事网络安全没有竞争力 很多人看到某些招聘软件上起薪12K的薪资就望而却步了
  • Linux文件管理

    成功不易 加倍努力 1 文件系统目录结构 1 1文件系统的目录结构 1 2 常见的文件系统目录功能 1 3 应用程序的组成部分 1 4 Linux下的文件类型 2 文件操作命令 2 1 显示当前工作目录 2 2 绝对和相对路径 2 3 更改
  • Nano编辑器安装使用指南

    关于nano Nano编辑器是一个命令行文本编辑器 具有简单易用的界面和一些基本功能 Nano小巧友好 提供许多额外的特性 例如交互式的查找和替换 定位到指定的行列 自动缩进 特性切换 国际化支持 文件名标记完成等 Nano是为了代替闭源的
  • 《Zookeeper-分布式过程系统技术详解》第一部分基础概念笔记学习

    1 Zookeep的客户端API功能强大 其中包括 保障强一致性 有序性和持久性 实现通用的同步原语的能力 在实际分布式系统中 并发往往导致不正确的行为 ZooKeeper提供了一种简单的并发处理机制 2 ZooKeeper不适用的场景 整
  • 重新学javaweb---JSTL标签

    JSTL简介 标准标签库JSTL的全名为 Java Server Pages Standard Tag Library JSTL主要提供了5大类标签库 核心标签库 为日常任务提供通用支持 如显示和设置变量 重复使用一组项目 测试条件以及其他
  • Promise常用API介绍

    Promise中的API PromiseState 实例对象中的一个属性 Promisestate 状态 pending 未决定 resolved fullfilled 成功 rejected 失败 pending 变为resolved p
  • CSDN周赛64期题解(含部分代码)

    计算之魂 主题周赛如期回归 因为差不多每次都是新题 让人多了点期待 相信非编程题无需多言 答案都在书里 翻书翻得快 满分无障碍 当然 如果提前读过此书就更好了 比如原书中把金块切了 2 刀 问题中扩展了一下 变成切 9 刀 如果提前理解过原
  • 【推荐系统】 一、推荐系统简介

    1 推荐系统的作用和意义 在这个时代 无论信息消费者还是信息生产者都面临巨大的挑战 信息消费者 在大量信息中找到自己感兴趣的信息很困难 信息生产者 将自己生产的信息让广大消费者关注很困难 推荐系统将用户与信息联系起来 1 1 用户角度 推荐
  • Mysql语句执行顺序

    1 SQL书写顺序 select distinct 显示字段 from 表名 join 要连接的表名 on 连接查询条件 where 约束条件 group by 分组字段 having 分组过滤条件 order By DESC 降序 或AS
  • NSLog效率低下的原因以及NSLog宏定义

    我是前言 打Log是我们debug时最简单朴素的方法 NSLog 对于objc开发就像 printf 对于c一样重要 但在使用 NSLog 打印大量Log 尤其是在游戏开发时 如每一帧都打印数据 NSLog 会明显的拖慢程序的运行速度 游戏
  • java实现敏感词过滤算法DFA并忽略敏感词中的特殊字符

    参考文章 https blog csdn net chenssy article details 26961957 补充说明 1 具体的DFA介绍参考原文章 此处只是补充了文章中没有介绍的点以及根据实际需求进行了改造 2 最大 小匹配规则
  • Flask学习笔记_BBS论坛搭建(三)

    Flask学习笔记 BBS论坛搭建 三 1 cms管理 1 1 项目模块划分 目录结构搭建 1 2 每个模块注册蓝图 并绑定 1 3 数据库配置 连接 迁移控制 这里本来用了flask script 但migrate的新版不支持他了 所以就
  • CSDN竞赛第41期题解

    CSDN竞赛第41期题解 非编程题部分 第一题 算盘是一种古代中国发明的计算机 原因在于人们在操作算盘时可以充分利用人脑的计算能力 错的 第二题 以下选项中 哪一项不属于计算机的本质特征 C 受电力驱动 电力不是本质特征 第三题 布莱兹 帕
  • ElasticSearch学习:文档的基本操作

    上一个我们基本是围绕索引操作 里面的指定类型 或者文档里面的一些属性 这里是主要关注文档操作 毕竟主要常见的操作就是围绕文档内容来进行的 毕竟主要是做搜索 首先先导入一些数据进去 一 简单的查询操作 put testdoc user 1 n
  • 机器学习 -Statsmodels

    机器学习记录 Statsmodels 用于探索数据 估计模型 并运行统计检验 conda install y statsmodels 线性回归 import numpy as np import pandas as pd import ma
  • Linux·网络编程套接字(三)

    目录 简单的TCP英译汉服务器 简单回顾 更改handler方法 地址转换函数 字符串IP转整数IP 整数IP转字符串IP 绑定失败问题 TCP协议通讯流程 通讯流程总览 三次握手的过程 数据传输的过程 编辑 四次挥手的过程 TCP和UDP
  • 人不成熟的五大特征-读后感

    原文地址 人不成熟的五大特征 百度经验 1 立即要回报 1 所有简单的快的 别人也能做 这并不能使你超过别人 2 做出别人做不出来的复杂成果 需要较长的时间和持续的学习 得到就得付出 时间 资源 金钱 3 尽量宏观 全局 眼光放长远 考虑全
  • 11系统越狱无法连接服务器,Electra发布iOS 11.2-11.3.1“不完美”越狱工具(附教程)...

    7月8日消息 据相关媒体报道 iOS越狱团队Electra日前发布了适用于所有iPhone iPod touch iPad用户的iOS 11 2 11 3 1 不完美 越狱工具 不过 由于此次越狱依旧是 不完美 状态 因此设备关机或重启后启
  • 通过Vitis Ai 3.0平台量化yolov5模型并部署到ZCU102板卡上相关问题求解!

    通过Vitis Ai 3 0平台量化yolov5模型并部署到ZCU102板卡上相关问题求解 这些天再通过Vitis Ai 3 0平台来量化yolov5模型的并且部署到zcu102板子上的时候一直遇到检测结果比较离谱的问题 因此想要发个贴请教