文章目录

  • NVIDIA TAO 工具包 (TAO Toolkit) 的部署和使用
    • 前期准备
      • 安装docker-ce
      • 安装nvidia-container-toolkit
      • 获取NGC帐户和API密钥
    • Tao Toolkit
      • 安装Tao Toolkit
        • 使用VirtualEnvRapper创建新的virtualenv
        • 安装TAO启动程序Python包nvidia-tao
      • 运行Tao Toolkit
        • 下载Computer Vision examples
        • 安装jupyter
        • 生成配置文件
        • 生成秘钥,打开python解释器
        • 路径
    • 登录Docker容器
    • 模型下载
      • 查看所有模型
      • 指定模型下载
      • 使用 Jupyter Notebook 进行训练
        • 安装Python虚拟环境
          • 安装virtualenv
          • 安装virtualenvwrapper
    • 车牌检测
      • 准备数据集
        • 下载LPD模型以及数据集
        • 下载lpd_prepare_data.py文件
        • 调整数据集图像/标签大小
        • 分割数据集
      • 配置规范文件
      • 训练
      • 导出模型
      • 训练LPD模型的正确性
    • 车牌识别
      • 下载LPR模型以及数据集
      • 数据预处理
      • 训练
      • 模型转换
        • 查看处理器架构
        • 下载tao-converter
        • 安装libssl-dev
        • 配置环境变量
          • 对于X86平台
          • 对于aarch平台
        • 运行 tao-converter(tlt模型转engine)
      • 模型推理

NVIDIA TAO 工具包 (TAO Toolkit) 的部署和使用

前期准备

tao-launcher 严格来说是一个只支持python3的包,能够在python3.6.9或3.7上运行。

安装docker-ce

参考:https://docs.docker.com/engine/install/

确保docker可以在没有sudo的情况下运行。

安装nvidia-container-toolkit

参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html

获取NGC帐户和API密钥

进入网页:https://developer.nvidia.com/zh-cn/tao-toolkit

点击右上角注册登录:

然后点击右上角,进入setup:

然后按照对应的指令安装:

$ wget -O ngccli_linux.zip https://ngc.nvidia.com/downloads/ngccli_linux.zip && unzip -o ngccli_linux.zip && chmod u+x ngc
$ md5sum -c ngc.md5
$ echo "export PATH=\"\$PATH:$(pwd)\"" >> ~/.bash_profile && source ~/.bash_profile

接下来需要获取AIPKEY,回到上面图片的页面

获取到KEY之后,继续执行

$ ngc config set

然后依次输入:

然后输入:

$ docker login nvcr.io

然后根据API-KEY页面下Docker下的显示输入,看到success 就成功了

Tao Toolkit

安装Tao Toolkit

使用VirtualEnvRapper创建新的virtualenv

Linux 下创建python的虚拟环境

安装virtualenv:

pip install virtualenv

创建虚拟环境:

virtualenv venv  #venv为虚拟环境目录名,目录名自定义
source venv/bin/activate

安装TAO启动程序Python包nvidia-tao

进入虚拟环境,安装tao

pip3 install nvidia-pyindex
pip3 install nvidia-tao
tao --help

出现:

运行Tao Toolkit

下载Computer Vision examples

wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/tao/cv_samples/versions/v1.2.0/zip -O cv_samples_v1.2.0.zip
unzip -u cv_samples_v1.2.0.zip  -d ./cv_samples_v1.2.0 && rm -rf cv_samples_v1.2.0.zip && cd ./cv_samples_v1.2.0

安装jupyter

pip3 install jupyter

生成配置文件

jupyter notebook --generate-config

生成秘钥,打开python解释器

$:python>>>from notebook.auth import passwd>>>passwd()#输入新的登陆密码(本地访问的时候使用)#再次确认#生成key,复制留存并修改到配置文件中去。ubuntu终端中ctrl+shift+C复制,ctrl+shift+V粘贴

exit()退出python环境

修改配置文件(编辑器自行选择,可以是gedit、nano等,这里使用vim)

vim  ~/.jupyter/jupyter_notebook_config.py

修改配置文件中一下内容,去掉注释后保存,配置文件默认都是注释掉的,如果找不到一下内容,那就直接在文件头输入保存即可。

c.NotebookApp.ip='*'                                              # 就是设置所有ip地址皆可访问
#或者c.NotebookApp.ip='0.0.0.0'
c.NotebookApp.password ="复制的那个密文key 替换等号后面的内容"

保存退出

执行命令:jupyter notebook

在本地浏览器输入服务器地址+端口号

密码是之前在python解释器环节自己设置的

路径

我的路径及虚拟环境如下:

cd /data/home/trainee/tao/source venv/bin/activate

登录Docker容器

(venv) trainee@inspur-dev:~/tao$ docker login nvcr.io
----------------------输入用户名和密码------------------------------
WARNING! Your password will be stored unencrypted in /data/home/trainee/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

模型下载

查看所有模型

查看所有对话式 AI 模型,命令如下:

(venv) trainee@inspur-dev:~/tao$ ngc registry model list nvidia/tlt-riva/*
----------------------------------------------------
[{"application": "Riva","builtBy": "NVIDIA","createdDate": "2021-07-30T16:02:07.759Z","description": "Base English n-gram LM trained on LibriSpeech, Switchboard and Fisher","displayName": "Riva ASR English LM","framework": "Riva","isPublic": true,"labels": [{"key": "builtBy","values": ["NVIDIA"]},{"key": "framework","values": ["Riva"]},{"key": "precision","values": ["n/a"]},{"key": "publisher","values": ["NVIDIA"]}],"latestVersionIdStr": "deployable_v1.0","latestVersionSizeInBytes": 7932483714,"logo": "https://raw.githubusercontent.com/kbojo/images/master/Nvidia-Centric-TLT-Riva.png","modelFormat": "ARPA","name": "speechtotext_english_lm","orgName": "nvidia","precision": "n/a","publisher": "NVIDIA","teamName": "tlt-riva","updatedDate": "2021-11-16T22:07:59.681Z"
}]

指定模型下载

从 NGC 模型注册表下载选择的模型,命令如下:

ngc registry model download-version <ORG/model_name:version> -dest <path_to_download_dir>

例如,使用该命令将 resnet 18 分类模型下载到 /data/home/trainee/tao/models/目录:

(venv) trainee@inspur-dev:~/tao$ ngc registry model download-version nvidia/tao/pretrained_classification:resnet18 --dest models
----------------------------------------------------
{"download_end": "2022-01-20 06:43:53.403896","download_start": "2022-01-20 06:43:25.363507","download_time": "28s","files_downloaded": 1,"local_path": "/data/home/trainee/tao/models/pretrained_classification_vresnet18","size_downloaded": "82.38 MB","status": "Completed","transfer_id": "pretrained_classification_vresnet18"
}

使用 Jupyter Notebook 进行训练

安装Python虚拟环境

安装virtualenv
(venv) trainee@inspur-dev:~/tao$ pip install virtualenv -i  https://pypi.tuna.tsinghua.edu.cn/simple/
安装virtualenvwrapper
(venv) trainee@inspur-dev:~/tao$ pip install virtualenvwrapper -i  https://pypi.tuna.tsinghua.edu.cn/simple/

查看python路径

(venv) trainee@inspur-dev:~/tao$ whereis python
----------------------------------------------------
python: /usr/bin/python3.8 /usr/bin/python3.8-config /usr/lib/python2.7 /usr/lib/python3.8 /usr/lib/python3.9 /etc/python3.8 /usr/local/lib/python3.8 /usr/include/python3.8 /data/home/trainee/tao/venv/bin/python /data/home/trainee/tao/venv/bin/python3.8

添加环境变量

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.8

显示所有环境变量

export

mkvirtualenv launcher -p /usr/bin/python3.8

车牌检测

准备数据集

下载LPD模型以及数据集

LPD网络模型下载链接:https://catalog.ngc.nvidia.com/?filters=&orderBy=scoreDESC&query=LPD

$ git clone https://github.com/openalpr/benchmarks benchmarks

下载lpd_prepare_data.py文件

GitHub链接:https://github.com/NVIDIA-AI-IOT/deepstream_tao_apps/blob/release/tlt3.0/misc/dev_blog/LPDR/lpd/lpd_prepare_data.py

调整数据集图像/标签大小

$ python lpd_prepare_data.py --input_dir benchmarks/endtoend/us --output_dir lpd --target_width 640 --target_height 480


将结果保存至/data/home/trainee/tao/lpd/文件夹

分割数据集

  1. 将.tao_mounts.json文件复制到/data/home/trainee/文件夹下,.tao_mounts.json文件的内容如下:
{"Mounts": [{"source": "/home/<username>/tao-experiments","destination": "/workspace/tao-experiments"},{"source": "/home/<username>/openalpr","destination": "/workspace/openalpr"}]
}

  1. 将数据分成两部分:80% 用于训练集,20% 用于验证集。运行以下命令随机拆分数据集并生成 tfrecords。
tao detectnet_v2 dataset_convert -d /workspace/openalpr/SPECS_tfrecord.txt -o /workspace/openalpr/lpd_tfrecord/lpd

配置规范文件

将批量大小设置为 4 并运行 120 个 epoch 进行训练。每 10 个 epoch 使用验证集对训练模型进行评估。

训练

$ tao detectnet_v2 train -e /workspace/openalpr/SPECS_train.txt -r /workspace/openalpr/exp_unpruned -k nvidia_tlt

训练完成后,得到如下文件夹

导出模型

$ tao detectnet_v2 export -m /workspace/openalpr/exp_unpruned/weights/model.tlt -o /workspace/openalpr/export/unpruned_model.etlt --cal_cache_file /workspace/openalpr/export/calibration.bin -e /workspace/openalpr/ SPECS_train.txt -k nvidia_tao --cal_image_dir /workspace/openalpr/lpd/data/image --data_type int8 --batch_size 4 --batches 10 --engine_file /workspace/openalpr/export/unpruned_int8.trt

训练LPD模型的正确性

$ tao detectnet_v2 evaluate -m /workspace/openalpr/exp_unpruned/weights/model.tlt -k nvidia_tao -e /workspace/openalpr/SPECS_train.txt

车牌识别

下载LPR模型以及数据集

LPD网络模型下载链接:https://catalog.ngc.nvidia.com/?filters=&orderBy=scoreDESC&query=LPD

$ git clone https://github.com/openalpr/benchmarks benchmarks

数据预处理

python preprocess_openalpr_benchmark.py --input_dir=./benchmarks/endtoend/us --output_dir=./data/openalpr

将得到 train文件夹 和 val文件夹

训练

$ tao lprnet train -e /workspace/tao-experiments/lprnet/tutorial_spec.txt -r /workspace/tao-experiments/lprnet/ -k nvidia_tao -m /workspace/tao-experiments/lprnet/us_lprnet_baseline18_trainable.tlt

模型转换

查看处理器架构

$ uname -m

下载tao-converter

根据自己的平台架构和所需要的环境下载下载tao-converter,链接如下:

NVIDIA官网:https://developer.nvidia.com/tao-toolkit-get-started

安装libssl-dev

$ sudo apt-get install libssl-dev

配置环境变量

对于X86平台
$ export TRT_LIB_PATH="/usr/lib/x86_64-linux-gnu"
$ export TRT_INC_PATH="/usr/include/x86_64-linux-gnu"
对于aarch平台
$ export TRT_LIB_PATH=/usr/lib/aarch64-linux-gnu
$ export TRT_INCLUDE_PATH=/usr/include/aarch64-linux-gnu

运行 tao-converter(tlt模型转engine)

./tao-converter -k nvidia_tlt -p image_input,1x3x48x96,4x3x48x96,16x3x48x96 models/LP/LPR/ch_lprnet_baseline18_deployable.etlt -t fp16 -e models/LP/LPR/lpr_ch_onnx_b16.engine

模型推理

$ make

执行make命令之后如果报错,可参考https://blog.csdn.net/qq_44824148/article/details/122841870?spm=1001.2014.3001.5502这篇博客。

将视频复制/home/inspur/deepstream_lpr_app-master/deepstream-lpr-app/文件夹下,

$ cd deepstream-lpr-app
$ cp dict_ch.txt dict.txt
$ sudo ./deepstream-lpr-app 2 2 0 ch_car_test.mp4 output.264

NVIDIA TAO 工具包 (TAO Toolkit) 的部署和应用【LDR、LPR】相关推荐

  1. 我的NVIDIA开发者之旅——利用NVIDIA TAO工具包3.0和Deepstream快速搭建车辆信息识别系统

    利用NVIDIA TAO工具包3.0和Deepstream快速搭建车辆信息识别系统 实现目标 部署工具:NVIDIA DeepStream SDK 简单设置参数 工作流程 注意事项 GPU深度学习推理 ...

  2. nvidia cuda工具包更新9.0版本记录

    因工作需要,对公司2台服务器升级cuda到9.0版本.本文记录其过程. 介绍 cuda在nvidia官方网站有下载,最新版本为9.2,但公司采用的tensorflow只使用9.0,为了版本的兼容,决定 ...

  3. IDE工具(42) Alibaba Cloud Toolkit 一键部署插件使用入门

    一.前言 Cloud Toolkit官方介绍文档:https://www.aliyun.com/product/cloudtoolkit Cloud Toolkit 是针对 IDE 平台为开发者提供的 ...

  4. Centos7 卸载nvidia驱动和CUDA toolkit

    需要重装nvidia驱动,因此需要卸载之前的版本. 方法: 查看安装的nvidia模块命令 rpm -qa|grep -i nvid|sort 删除相关模块 yum remove kmod-nvidi ...

  5. IDEA插件: 一键自动部署jar到远程服务器 使用 Cloud Toolkit 来部署应用到腾讯云、阿里云服务器

    参考文档 https://cloud.tencent.com/developer/article/1458723 https://blog.csdn.net/qq_38288606/article/d ...

  6. 在Windows 10(Win10)下安装“NVIDIA图形驱动程序”、“NVIDIA控制面板”、CUDA Toolkit、cuDNN Archive的详细过程记录

    目标:安装CUDA Toolkit和cuDNN Archive 目录 一. 安装NVIDIA驱动程序和NVIDIA 控制面板 二.安装CUDA Toolkit 三.安装cuDNN Archive 一. ...

  7. 移动开发工具包Mobile Toolkit Volum 2发布

    根据国外媒体报道,Resco公司(一家致力于开发移动设备应用程序组件和工具的公司)日前发布了MobileForms Toolkit 2009 Volume 2.MobileForms是一款丰富的库和控 ...

  8. Centos7篇---Centos7 卸载nvidia驱动和CUDA toolkit

    需要重装nvidia驱动,因此需要卸载之前的版本. 查看版本 lspci | grep -i nvidia 由于驱动问题无法显示显卡的具体型号,在下面的网址输入2504,可以看到显卡型号是 GeFor ...

  9. Microsoft Deployment Toolkit 2008部署操作系统系列(一)

    Hi~大家好.N长时间没更新blog了.今天我们来看看如何去用MDT2008去部署XP.Let's go~ 之前的篇blog介绍了MDT2008,如果你还不清楚它 ,先去看看上篇.MDT2008的两种 ...

最新文章

  1. python 图片 文本 矫正
  2. 2019年猪年海报PSD模板-第四部分
  3. 软件质量保证与测试——Ad hoc Test
  4. 工作278:控制数据从字典表获取
  5. 虚拟邮箱怎么设置方法_腾讯企业邮箱邮件列表白名单设置方法
  6. python显示乱码_python2显示乱码问题实战详解
  7. 易语言客户端请求http_易语言建立HTTP连接请求源码
  8. Jenkins 内部服务器遭访问且被部署密币挖机
  9. JSP_tomcat_mysql_注冊验证用户;
  10. mysql执行程序_Sql在Mysql的执行
  11. python二维列表转字典_在Python中字符串、列表、元组、字典之间的相互转换
  12. 【转】见与不见————仓央嘉措
  13. 如何使用File APIs来读取文件
  14. 基于MES的生产车间管理信息系统
  15. 用PowerPoint(PPT)快速制作炫酷数字倒计时
  16. mavell 7040使用方法
  17. vue 仿二手交易app_Vue全家桶仿闲鱼移动端App
  18. 通讯模块 CI854AK01 3BSE030220R1
  19. 2023 目标,与君共勉
  20. 神经网络:基于模糊神经网络(Fuzzy Neural Networks,FNN)的数据预测(提供MATLAB代码)

热门文章

  1. python使用seek函数报错:io.UnsupportedOperation: can't do nonzero end-relative seeks
  2. Android studio 运行警告 We recommend using a newer Android Gradle plugin to use compileSdk = 33
  3. C#中的转义字符和Verbatim字符串
  4. pandoc md 文件转化pdf(中文字体)
  5. python绘制各种摆线(包括心形线星形线等,超炫酷)
  6. 幼麟棋牌游戏进程分析
  7. 发送QQ邮件报证书不被信任 Error in certificate
  8. 概念(航天):LEO,MEO,GTO,GEO,IGSO,SSO
  9. LeetCode练习题:斐波那契数列
  10. 收藏!立体库设备维修保养计划