NVIDIA-TAO环境配置及预训练模型使用样例-车牌号识别(Docker容器方法)

news2025/2/25 21:21:59

TAO是英伟达推出的可以简化企业AI应用和部署的模型自适应平台,其提供了大量的预训练模型以及模型finetune程序,使得用户可以快速的在自己的数据上进行模型finetune,之后用TAO的部署工具可以快速完成模型的部署。

TAO提供了四种使用方式,本文将介绍其中的容器使用方法。官方手册:Working With the Containers — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/working_with_the_containers.html

要使用TAO的镜像首先需要注册NV-NGC账号,之后使用 docker login nvcr.io登陆账号:

a. Username: "$oauthtoken"

b. Password: "YOUR_NGC_API_KEY"

其中Username统一使用$oauthtoken,Password使用NV-NGC登陆账户的set up中生成的API key,具体参考下图:

 

 点击右上角的按键生成如下的key:

复制上图生成的key登陆出现successed即可。

下面介绍TAO预训练模型的使用方法,本文用TAO提供的车牌号识别的预训练模型为样例。

LPRNet预训练模型-车牌号识别

官方手册:https://docs.nvidia.com/tao/tao-toolkit/text/character_recognition/lprnet.html#

模型介绍:License Plate Recognition | NVIDIA NGC

TAO提供了好几个镜像,里面分别包含不同的模型,如下图:

 根据需要使用的预训练模型查找相应的镜像,可参考容器手册:Working With the Containers — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/working_with_the_containers.html

如下图所示,LRNNet包含在tao-toolkit:4.0.0-tf1.15.5,

   

因此直接在docker里pull这个镜像即可,镜像地址:TAO Toolkit | NVIDIA NGCDocker containers distributed as part of the TAO Toolkit packageicon-default.png?t=M85Bhttps://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/containers/tao-toolkit/tags

 下载LRNNet的预训练模型,地址:License Plate Recognition | NVIDIA NGCModel to recognize characters from the image crop of a License Plate.icon-default.png?t=M85Bhttps://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/lprnet/version,其中分别为一个可训练的模型和可部署的模型,根据需要下载即可。

完成预训练模型的下载和准备好镜像镜像之后启动容器,记得将模型映射到容器里,此处不在赘述容器的启动方法。

预训练模型推理

TAO将LPR的推理、训练、验证等代码封装打包成了一个程序,因此进入容器之后可直接使用lprnet程序来完成相应的功能,用lprnet -h可查看相关说明,如下图:

可以看到lprnet支持验证、导出模型、推理和训练四个task,导出模型是将用于训练的tlt模型导出为etlt模型以便于进行部署。官方手册运行推理的命令地址:LPRNet — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/character_recognition/lprnet.html#running-inference-on-the-lprnet-model

由推理的命令可知我们需要提供测试图像、模型位置和配置文件,配置文件的编写在官方手册有介绍,地址:LPRNet — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/character_recognition/lprnet.html#creating-an-experiment-spec-file

值得注意的是配置文件中字符集文件的参数要填写下载的预训练模型包含的字符集路径,如下图

下载预训练模型时另外另个文件就是字符集,上图红框中的参数要写下图红框文件的保存路径。根据识别中国或美国车牌的需求选择一个即可。配置文件要保存成.prototxt格式!!!

 本文随机在网上下载了一张中文车牌号图片进行测试,如下图:

 最后使用命令:lprnet inference --gpu_index=0 -m 模型路径 -i 数据文件夹路径 -e 配置文件路径 -k 模型解码秘钥。

需要注意的是目前TAO的预训练模型都进行了加密,因此在使用模型的时候需要提供解码的秘钥,秘钥可以在模型的介绍页面进行查找,本文使用的车牌识别模型在介绍页面提供了解码秘钥:Model load key: nvidia_tlt。目前TAO所有预训练模型的key应该都是nvidia_tlt。

本文运行结果如下图:红框中就是识别的结果。

预训练模型Finetune

如果要用自己的数据对TAO提供的预训练模型进行finetune/train,只需在配置文件中修改数据的路径及字符集路径即可,

 训练数据的准备参考:LPRNet — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/character_recognition/lprnet.html#preparing-the-dataset

最后训练命令参考:
LPRNet — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/character_recognition/lprnet.html#training-the-model部署

模型部署可参考:LPRNet — TAO Toolkit 4.0 documentationhttps://docs.nvidia.com/tao/tao-toolkit/text/character_recognition/lprnet.html#deploying-the-model

部署需要使用到TAO的deploy镜像,地址:TAO Toolkit | NVIDIA NGCDocker containers distributed as part of the TAO Toolkit packageicon-default.png?t=M85Bhttps://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/containers/tao-toolkit/tags

部署需要使用etlt模型,因此训练好的模型需要导出成etlt格式,然后按照官方手册用tao-converter将etlt模型转为TensorRT的engine,之后使用Deep streamSDK进行部署即可,Deep streamSDK的用法不在本文介绍。

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

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

相关文章

【LeetCode】118. 杨辉三角

【LeetCode】118. 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 数学方式 双重循环&#…

UDP-TCP

文章目录再谈端口号协议号:端口号范围划分pidof(),命令行输入,根据进程名直接拿到进程idnetstat -nltp :查看网络状态UDP协议如何做到向上交互?(分用问题)如何做到封装和解包?Linux内核当中,如何…

【学习笔记】JDK源码学习之LinkedHashMap(附带面试题)

【学习笔记】JDK源码学习之LinkedHashMap(附带面试题) 其他好文: 地址 什么是 LinkedHashMap ? 它的作用又是什么?它和 HashMap 有什么区别呢? 老样子,带着以上问题来深入了解 LinkedHashMap 的作用吧。…

音频文件格式有哪些?误删音频文件如何恢复?

音频用于在计算机系统上以数字格式存储的音频数据。日常生活中,我们也会通过录音来保存一些重要的内容,或者是记录一些重要的事情。但是,你知道音频文件有哪几种格式吗?如果音频在保存的过程中,因为我们的误操作&#…

72. 如何给 SAP ABAP ALV 报表的修改功能添加自定义校验逻辑

本教程前面的步骤,我们已经介绍了如何编辑 SAP ALV 报表里的某一列数据: 70. 利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列允许被编辑如下图 Airfare 和 Capacity 列所示。然而实际的开发项目中,我们肯定不会允许用户对这些列进行随心所欲的修改,必定要增添一些自定…

力扣(202.454)补9.18

202.快乐数 不会。又要用到数学的思想,你要学会去分析。🙁 根据上表你需要知道,一个很大的数,经过快乐运算,不可能会一直增大,一定会受到限制。 class Solution { private int getNext(int n) { …

知识点21--springboot 文件上传

前面有一篇简单版的文件上传,是为了让大家知道文件上传是在干什么,但是在正式的开发中文件上传是一个稍微有些麻烦的东西,需要从页面层开发到数据层,如果你常常听人说文件上传会知道有一些相关的名词,比如切片、秒传、…

编程算法集锦

编程算法集锦一、分治法1.分治法介绍2.归并排序3.快速排序4.中值问题二、贪心法1.贪心法2.最小生成树Kruskal算法3.Huffman编码4.单源点最短路径三、回溯法1.回溯法-n皇后问题2.子集和数四、动态规划1.数塔问题2.最长公共子序列3.求序列-2 11 -4 13 -5 -2的最大字段和4.求最长的…

Linux内核工作队列(workqueue)详解

1、为什么需要工作队列? 在内核代码中,经常会遇到不能或不合适去马上调用某个处理过程,此时希望将该工作推送给某个内核线程执行,这样做的原因有很多,比如: 中断触发了某个过程的执行条件,而该过…

电表485通讯抄表软件

电表485通讯主要是有线抄表,电表485通讯抄表软件选用485线传送数据,适宜集中化安装电表,下列给您具体说说电表485通讯抄表原理、应用领域等。 电表485通讯抄表原理 RS485抄表适用电表集中化安装场合,为节省RS485通讯线成本&…

VR渲染之Stereo Rendering解析

VR渲染的独特和最明显的方面之一是需要生成两个视图,左右眼睛各一个。我们需要这两个视图来为观众创建立体3D效果。 Multi Camera 传统上,VR应用程序必须绘制两次几何体--一次是左眼,一次是右眼。这基本上使非VR应用程序所需的处理翻了一番。…

揭秘百度智能测试在测试定位领域实践

作者 | intelligents 前几篇,分别介绍了测试活动测试输入、测试执行、测试分析、测试定位和测试评估五个步骤中测试输入、执行、分析、评估的智能化研究和实践,本章节重点介绍测试定位环节的智能化实践。 测试定位的主要作用是在构建失败或问题发生后&…

傻白探索Chiplet,国内外研究现状(六)

目录 一、概述 二、国外Chiplet历史与现状 2.1 AMD 2.1.1 EPYC(Naples) 2.1.2 EPYC(Rome) 2.1.3 EPYC(Milan-X ) 2.1.4 Ryzen(Matisse) 2.2 苹果 2.3 Intel 2.3.1 Alter…

【大数据技术】Spark+Flume+Kafka实现商品实时交易数据统计分析实战(附源码)

需要源码请点赞关注收藏后评论区留言私信~~~ Flume、Kafka区别和侧重点 1)Kafka 是一个非常通用的系统,你可以有许多生产者和消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase等发送数据。它对H…

2022年我国江蓠行业现状:养殖面积、产量不断增长 进口量仍大于出口

根据观研报告网发布的《中国江蓠市场现状深度研究与发展前景预测报告(2022-2029年)》显示,江蓠属于“海藻”产业,为暖水性藻类,我国俗称 “龙须菜”、 “海菜”、 “蚝菜”。藻体紫褐色或紫黄色、绿色。 江蓠在热带、 …

Opencv(C++)笔记--霍夫变换检测直线、霍夫变换检测圆

目录 1--原理 2--Opencv API 3--实例代码 4--霍夫变换检测圆 1--原理 具体原理可参考 博客1 和 视频讲解1; 霍夫变换检测直线的核心思想是:在笛卡尔坐标系下,一条直线(两个点(x1, y1)和(x2,…

行业权威来揭秘,商用PC为什么首选12代酷睿

第12代酷睿处理器可以提供更卓越的性能,凭借架构先进性让商用台式机和笔记本电脑为用户带来更好的体验,帮助企业和员工效率倍增。 作者|九月 来源| PConline 想要让办公效率进一步提升,一台强大的PC设备是必不可少的生产力和内容创作工…

有什么适合零基础的人做的副业兼职

互联网上有很多套路。这是不可预防的。只要你敢贪婪,你就会陷入别人设计的陷阱。在业余时间做兼职应该是很多人的梦想,因为他们可以在有限的时间内赚更多的钱。很多人不知道的是,其实我们赚钱的渠道很多:比如网上发文章.短视频直播.我们媒体、…

基于SpringBoot+Mybatis框架的私人影院预约系统(附源码,包含数据库文件)

基于SpringBootMybatis框架的私人影院预约系统,附源码,包含数据库文件。 非常完整的一个项目,希望能对大家有帮助哈。 本系统的完整源码以及数据库文件都在文章结尾处,大家自行获取即可。 项目简介 该项目设计了基于SpringBoo…

Spring MVC—Spring MVC概述

文章目录Java web的发展历史一.Model I和Model II1.Model I开发模式2.Model II开发模式二. MVC模式SpringMVC 的工作原理和流程springmvc 的拦截器Spring和SpringMVC的区别————————————————————————————————Java web的发展历史 一.Model I和M…