Yolov5缺陷检测/目标检测 Jetson nx部署Triton server

news2024/12/22 19:43:32
 使用AI目标检测进行缺陷检测时,部署到Jetson上即小巧算力还高,将训练好的模型转为tensorRT再部署到Jetson 上供http或GRPC调用。

1 Jetson nx 刷机

找个ubuntu 系统NVIDIA官网下载安装Jetson 的sdkmanager一步步刷机即可。
本文刷的是JetPack 5.1, 其中包含
CUDA 11.4
cuDNN 8.6.0
TensorRT 8.5.2.2
Python 3.8.10
Ubuntu 20.04

2 下载解压/安装/测试Triton Server

其实triton server 不用安装,直接下载解压开箱即用,要安装的是一堆依赖。
下载triton server 软件包,Release 2.35.0 corresponding to NGC container 23.06
找到下面tritonserver2.35.0-jetpack5.1.2.tgz下载到Jetson并解压到home。
根据jetson.md安装triton server 的依赖包,如果不在jetson上使用triton 客户端可以不装triton client 的依赖。
将Triton server main分支下的docs文件夹下载后放到home/tritonserver2.35.0-jetpack5.1.2/tritonserver中,在这里插入图片描述
$ cd docs/examples
$ ./fetch_models.sh
下载示例模型,cd 到home/tritonserver2.35.0-jetpack5.1.2/tritonserver/bin
$./tritonserver --model-repository=…/docs/examples/model_repository --backend-directory=…/backends
如果看到下图8001/8000/8002 说明示例打开成功,triton server 安装成功。 在这里插入图片描述

3 Train yolov5 model

使用ultralytics的yolov5 模型train 一个自己的model, 我选用的是yolov5l6,略微大一些, best.pt 153.1MB。

4 .pt 转ONNX 转TensorRT

个人认为只有使用TensorRT模型部署NVIDIA显卡才是推理速度最极致的体验。
Jetson 上官网下载一个Pycharm 软件压缩包,新建python环境。
安装yolov5的依赖,参考Deploy on NVIDIA Jetson using TensorRT and DeepStream SDK
安装到pytorch 和torchvision 即可,
再使用yolov5文件夹内export.py
修改615行 --weights default ROOT / ‘best.py’
修改619行增加default=True使用半精度
修改638行default=[‘engine’]
在这里插入图片描述

Terminal $python3 export.py 可以看到log是先生成best.onnx再生成best.engine

在这里插入图片描述
半小时后转化完毕。
在这里插入图片描述

5部署yolov5 到triton sever

在examples文件夹下新建自己的模型仓库文件夹zz_model_repository
新建模型文件夹yolov5l6再新建名称为1 的文件夹将best.engine copy进来改名为model.plan
在yolov5l6下新建文件config.pbtxt输入以下内容:

name: "yolov5l6"
platform: "tensorrt_plan"
max_batch_size: 1
input [
    {
        name: 'images'
        data_type: TYPE_FP16
        format: FORMAT_NCHW
        dims: [3, 640, 640]
    }
]
output [
    {
        name: 'output0'
        data_type: TYPE_FP16
        dims: [25500, 8]
    }
]
backend: 'tensorrt'

在这里插入图片描述
同样cd 到home/tritonserver2.35.0-jetpack5.1.2/tritonserver/bin
$./tritonserver --model-repository=…/docs/examples/zz_model_repository --backend-directory=…/backends
出现下图说明模型加载成功。
在这里插入图片描述

6Triton client 调用模型

这一部分就是开发相机,图像前处理,调用模型,图像后处理部分了,略过。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PS透明屏,在科技展示中,有哪些优点展示?

PS透明屏是一种新型的显示技术,它将传统的显示屏幕与透明材料相结合,使得屏幕能够同时显示图像和透过屏幕看到背后的物体。 这种技术在商业展示、广告宣传、产品展示等领域有着广泛的应用前景。 PS透明屏的工作原理是利用透明材料的特性,通…

(树) 剑指 Offer 36. 二叉搜索树与双向链表 ——【Leetcode每日一题】

❓ 剑指 Offer 36. 二叉搜索树与双向链表 难度:中等 输入一棵二叉搜索树,将该二叉搜索树转换成一个 排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为…

python+vue生成条形码码并展示

需求 最近想做一个小工具,大概要实现这样的效果:后端生成条形码后,不保存到服务器,直接返回给前端展示。 大概思路是,通过 python-barcode库 生成条码的字节流,生成字节流后直接编码成base64格式返回给前…

关于Vue构建低代码平台的思考

一、前言 在项目实战开发中,尤其是大平台系统的搭建,针对不同业务场景,需要为用户多次编写用于录入、修改、展示操作的相应表单页面。一旦表单需求过多,对于开发人员来说,算是一种重复开发,甚至是繁杂的工作…

国产语音芯片里面可重复擦写语音芯片有哪些?可以在线烧写语音

目录 详细测试 主要是做一个测试板,对KT148A一线通讯的芯片进行测试和验证,实现的功能有两点。 2.1 第一步--硬件环境的搭建 2.2 第二步--自己更换声音的测试 三、总结 简介 基本目前的语音芯片,尤其是SOP8的封装类型的芯片,都绕…

网络安全---正则回溯

目录 一、题目引入 二、举出回溯例子进行分析 第一步: 正则往前匹配 第二步:匹配到头 第三步:往回匹配 第四步:直到分号结束 (匹配上) 原因: 三、进入正题一(分析题型&#x…

【MOOC】北京理工大学Python网络爬虫与信息提取慕课答案-综合挑出了一些很难评的慕课测验题

1 Requests库中的get()方法最常用,下面哪个说法正确?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬…

解决 Android Studio 的 Gradle 面板上只有关于测试的 task 的问题

文章目录 问题描述解决办法 笔者出问题时的运行环境: Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 17 问题描述 笔者最近发现一个奇怪的事情。笔者的 Android Studio 的 Gradle 面板上居然除了用于测试的 task 之外,其它什…

【架构设计】如何设计一个高性能短链系统

一、前言 所谓系统设计,就是给一个场景,让你给出对应的架构设计,需要考虑哪些问题,采用什么方案解决。很多面试官喜欢出这么一道题来考验你的知识广度和逻辑思考能力。 虽然各个系统千差万别,但是设计思想基本一致&a…

sql刷题

文章目录 section A1 各部门工资最高的员工(难度:中等)2 换座位(难度:中等)3 分数排名(难度:中等)4 连续出现的数字(难度:中等)5 树节…

leetcode每日一练-第70题-爬楼梯

一、思路 动态规划 二、解题方法 使用一个动态规划数组 dp 来记录到达每个台阶的不同方法数。初始情况下,当台阶数为 1 时,方法数为 1,当台阶数为 2 时,方法数为 2。然后,我们从第 3 阶开始逐步计算每一阶的方法数&…

剑指Offer12.矩阵中的路径 C++

1、题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平…

vue去掉所有输入框两边空格,封装指令去空格,支持Vue2和Vue3,ElementUI Input去空格

需求背景 就是页面很多表单输入框,期望在提交的时候,都要把用户两边的空格去掉 ❌使用 vue 的指令 .trim 去掉空格 中间会输入不了空格, 比如我想输入 你好啊 中国, 这中间的空格输入不了,只能变成 你好啊中国 ❌在提交的时候使用…

[HDLBits] Exams/m2014 q4i

Implement the following circuit: module top_module (output out);assign out1b0; endmodule

适配器模式来啦

网上的大多数的资料中适配器模式和代理模式都是紧挨着进行介绍的,为什么呢??? 是因为适配器模式和代理模式有太多的相似之处,可以进行联动记忆但是也要做好区分。 在菜鸟教程中,适配器模式的定义是作为两…

Intellij IDEA 导入 eclipse web 项目详细操作

Eclipse当中的web项目都会有这两个文件。但是idea当中应该是没有的,所以导入会出现兼容问题。但是本篇文章会教大家如何导入,并且导入过后还能使用tomcat运行。文章尽可能以图片的形式进行演示。我的idea使用的版本是2022.3.3版本。当然按正常来说版本之…

Flink源码之RPC

Flink是一个典型的Master/Slave分布式实时处理系统,分布式系统组件之间必然涉及通信,也即RPC,以下图展示Flink组件之间的关系: RPCGateWay 一般RPC框架可根据用户业务类生成客户端和服务器端通信底层代码,此时只需定…

基于Dlib库+SVM+Tensorflow+PyQT5智能面相分析-机器学习算法应用(含全部工程源码)+训练及测试数据集

目录 前言总体设计系统整体结构图系统流程图模型流程 运行环境Python 环境TensorFlow环境界面编程环境 模块实现1. 数据预处理2. 模型构建1)定义模型结构2)交叉验证模型优化 3. 模型训练及保存4. 模型测试1)摄像头调用2)模型导入及…

用Python批量复制文件,方法有9种,方便快捷

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 当我们复制一个文件时用复制粘贴就可以了,如果是多个文件呢? 就会很麻烦了! 今天给大家介绍一下用Python批量复制文件,方法有九种!希望对你有帮助 1. Shutil Copy…

Vue 整合 Element UI 、路由嵌套、参数传递、重定向、404和路由钩子(五)

一、整合 Element UI 1.1 工程初始化 使用管理员的模式进入 cmd 的命令行模式,创建一个名为 hello-vue 的工程,命令为: # 1、目录切换 cd F:\idea_home\vue# 2、项目的初始化,记得一路的 no vue init webpack hello-vue 1.2 安装…