本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——4Bin模型转化过程

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——4Bin模型转化过程

​ 大家好,经过前几期的介绍,对于X3派上的Yolo模型部署,我们已经可以进行到最后一步了

​ 今天给大家带来,转模型的关键步骤,其实也就是对于地平线社区大佬们博客的核心总结,也把有一些难理解的步骤,用最简单的话语进行概括下

1.打开环境

首先进入环境 horizon_bpu 是我的环境名字

conda activate horizon_bpu

2.模型的验证

我们先进入官方的包(这一个步骤,在上面)

yolov5s_v2.0/04_detection/03_yolov5s/mapper/

​ 使用 hb_mapper checker 工具进行模型验证,模型验证需要利用hb_mapper checker后面跟一堆参数来对模型进行配置。

  • --model-type:我们这里模型onnx,所以填onnx
  • --march:旭日3派只能填bernoulli2
  • --proto:若模型为caffe,则填入caffe所需的prototxt文件。onnx模型就不用写这个参数
  • --model:onnx模型就是xx.onnx
  • --input-shape:(该参数可选,不写的话程序会自动识别参数,如果指定以指定为主

以我们的为例子,命令如下:

hb_mapper checker  \
--model-type onnx \
--march bernoulli2 \
--model best.onnx \

2.1 修改01_check_X3.sh

当然如果你按照前面的配置完成模型只需要修改01_check_X3.sh 里面的模型目录就行

image-20240205190751884

2.2 运行01_check_X3.sh

运行如图就行(我这里忘记截图了,找一个别人的看看)

image-20240205193026595

3. 校准模型

3.1建立图像文件夹

在如下目录建立一个fire文件存储你的图片

当然你可以直接把你的训练集放进来就行

image-20240205191700102

3.2修改02_preprocess.sh

把下面的路径改到你的fire

对应到你的就是把你的图片数据集放到这个地方

image-20240205191918394

3.3运行02_preprocess.sh

运行结果如下不报错就行

image-20240205192905750

4.转化模型

4 编辑配置文件

按照下面内容修改模型目录和输出名字

image-20240205192517492

运行03_build_X3.sh

如图这样就转化成功了

image-20240205193133641

在output文件夹就有bin文件了

image-20240205193154842

5.板子运行

进入官方镜像的以下目录

image-20240205195834674

5.1修改coco_class_name

image-20240205195927740

5.2修改test_yolov5.py

image-202402052001203665.3修改 postprocess.py

​ 这个地方呢,为什么是会这个数据呢,应该是与672有关

​ 我呢还没研究到这一步,目前只是记录下我当时比赛过程中,遇到的

​ 其实哈,我也没试试这个改成别的能用不,不过我推断就得这个数据,不然模型输出大小与后续不匹配,mat乘积应该是有问题的

​ 后续我研究研究大佬的文章,给大家出个核心概括版

image-20240205200600262

5.4 运行

image-20240205202211000

6总结与未来展望

​ 到目前为止,已经完成了对于模型的转化,然后对于官方的工具包,也进行了运行

​ 出现5.4的结果就证明,模型的使用部署没问题

​ 下面我将给大家带来,如何将模型应用到Websocket,并且和大家初步一起记录下我在01到手测试的障碍物识别页面展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/393307.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习进行到了第十七天(2024.8.5)

1.Mybatis的定义 数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。MyBatis 支持定制化 SQL、存储过程以及高级映射,可以…

linux磁盘可视化分析工具

在 Linux 系统中,了解磁盘使用情况对于系统维护和优化至关重要。文件和目录随着时间的推移会占据大量磁盘空间,了解哪些部分占用的空间最多可以帮助我们更好地管理和清理磁盘。Baobab,也称为 GNOME Disk Usage Analyzer,是一款非常…

Radamsa:一款高性能通用模糊测试工具

关于Radamsa Radamsa是一款高性能的通用模糊测试工具,广大研究人员可以将其当作一个应用程序稳定性测试的测试用例生成工具。 工具运行机制 该工具使用简单,支持自定义脚本开发,可以用于测试程序对格式错误和潜在恶意输入的承受能力。它的工…

AGI思考探究的意义、价值与乐趣 Ⅴ

搞清楚模型对知识或模式的学习与迁移对于泛化意味什么,或者说两者间的本质?相信大家对泛化性作为大语言模型LLM的突出能力已经非常了解了 - 这也是当前LLM体现出令人惊叹的通用与涌现能力的基础前提,这里不再过多赘述,但仍希望大家…

国标GB28181视频平台LntonCVS视频融合共享平台视频汇聚应用方案

近年来,国内视频监控应用迅猛发展,系统接入规模不断扩大,导致了大量平台提供商的涌现。然而,不同平台的接入协议千差万别,使得终端制造商不得不为每款设备维护多个不同平台的软件版本,造成了资源的严重浪费…

【LeetCode】54. 螺旋矩阵

螺旋矩阵 题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2:…

基于STM32的环境监测系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码传感器读取代码应用场景 家居环境监测工业环境监测常见问题及解决方案 常见问题解决方案结论 1. 引言 环境监测系统在我们的日常生活和工作中变得越来越重要。通过监测空气质量、…

秃姐学AI系列之:丢弃法 + 代码实现 | 数值稳定性

丢弃法 动机 一个好的模型需要对输入数据的扰动鲁棒 使用有噪音的数据等价于Tikhonov正则丢弃法:在层之间加入噪音 正则都可以理解为它在控制模型不要过拟合,不要太大 丢弃法不在数据中增加噪音,转而在层中增加噪音,所以丢弃法…

JavaScript前端面试题——fetch

什么是fetch? fetch:fetch是浏览器内置的api,用于发送网络请求 ajax&axios&fetch的关系 ajax:ajax 是一种基于原生 JavaScript 的异步请求技术。它使用 XMLHttpRequest 对象来发送请求和接收响应。 axios:…

C++设计模式笔记(内附可运行代码示例)

持续更新, 欢迎关注....... 前言 设计目的 高内聚,低耦合 设计原则 1、开放封闭原则 类的改动是通过增加代码进行,而不是修改源代码。 2、单一职责原则 职责单一,对外只提供一种功能,引起类变化的原因都应该只有一个。 3…

GitHub Revert Merge Commit的现象观察和对PR的思考

文章目录 前言Pull Request 为什么会是这样?Pull Request Branch的差异 ?Two Dot Diff和Three Dot Diff 老生常谈: Merge 和 Rebasegit mergegit rebase Revert Main分支中的一个Merge Commit现象描述解决方案: Revert Feature分支中的一个Merge Commi…

Linux系统 腾讯云服务/宝塔面板安装《最新版本2024》禅道开源版本20.2

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 有两种方式1.自带有服务器安装和2.使用禅道官方的服务器免费使用 第一种:免费的提供5人使用,存储的数据大小也是有限制的范围的 禅道下载 - 禅道项目管理软件 下滑页面就能…

python中的魔术方法(特殊方法)

文章目录 1. 前言2. __init__方法3. __new__方法4. __call__方法5. __str__方法6. __repr__方法7. __getitem__方法8. __setitem__方法9. __delitem__方法10. __len__方法11. 富比较特殊方法12. __iter__方法和__next__方法13. __getattr__方法、__setattr__方法、__delattr__方…

Linux用户-普通用户

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。…

微信小程序实现上传照片功能

案例&#xff1a; html: <view class"zhengjianCont fontSize30" style"margin-bottom: 40rpx;"><view class"kuai"><image binderror"imageOnloadError" bind:tap"upladPhoto" data-params"business…

杂谈c语言——3.内存对齐

先看两个例子&#xff1a; typedef struct S {int a;double b;char c; }S;typedef struct B {int a;char b;double c; }B;int main() {printf("S : %d\n", sizeof(S));printf("B : %d\n", sizeof(B));return 0; } 结果为&#xff1a; S:24; B:16&#xff…

常用在线 Webshell 查杀工具推荐

一、简介 这篇文章将介绍几款常用的在线 Webshell 查杀工具&#xff0c;包括长亭牧云、微步在线云沙箱、河马和VirusTotal。每个工具都有其独特的特点和优势&#xff0c;用于帮助用户有效检测和清除各类恶意 Webshell&#xff0c;保障网站和服务器的安全。文章将深入探讨它们的…

【Redis】String字符串

目录 String字符串 常见命令 SET GET MSET MGET SETNX 计数命令 INCR INCRBY DECY DECYBY INCRBYFLOAT 其他命令 APPEND GETRANGE SETRANGE STRLEN 内部编码 String类型的典型使用场景 缓存(Cache)功能 计数功能 共享会话(Session) String字符串 字符…

类和对象(下)C++

1.初始化列表 1.为什么有初始化列表&#xff0c;它的作用&#xff1f; ->初始化列表&#xff0c;是构造函数初始化的另一种形式。 ->在语法上面理解&#xff0c;初始化列表可以认定为是每个成员变量定义初始化的地方. ->引用成员变量&#xff0c;const成员变量&am…

Qt实现简易CAD软件的开发:技术解析与实现

文章目录 简易CAD软件的开发&#xff1a;技术解析与实现引言项目概述程序入口主窗口的实现主窗口类定义&#xff08;mainwindow.h&#xff09;主窗口类实现&#xff08;mainwindow.cpp&#xff09; 自定义绘图视图自定义绘图视图类定义&#xff08;myqgraphicsview.h&#xff0…