主讲人 | 何琨 英伟达
量子位编辑 | 公众号 QbitAI

随着智慧城市、自动驾驶的快速落地,车辆的检测和识别应用场景非常广泛,如车牌识别、车流统计、车辆属性识别等。

近日,在英伟达x量子位发起的系列CV公开课第一期课程直播中,NVIDIA社区开发者经理何琨老师分享了如何利用TLT 3.0、DeepStream等工具低门槛、快速搭建一个车辆信息识别系统

分享大纲如下:

· 车辆信息识别任务介绍

· NVIDIA DeepStream SDK简介及其使用

· NVIDIA Transfer Learning Toolkit介绍及其使用

· 实战演示:快速搭建车辆信息识别系统

· 下期直播报名

以下为分享内容整理:


大家好,我来自NVIDIA开发者社区,今天的分享内容是“快速搭建基于Python的车辆信息识别系统”。

今天的分享仍然以一个具体的项目来做实例,包含源码和部署流程,课后会把课程PPT、源码分享给大家(见文末),希望大家能够有所收获。

车辆信息识别任务

首先,通过这个动图说明我们今天“车辆信息识别”的任务,首先我们需要检测到车辆,然后检测到这辆车的车牌并识别;另外我们还需要识别这辆车的颜色、品牌、类型等。这就是我们今天课程的任务,我们可以将上述任务拆解为5个小任务:

1.检测到车辆

2.识别车类型

3.识别车品牌

4.检测到车牌

5.识别车牌号

我将分两部分演示这5个小任务。一部分是完成车辆检测,车牌检测与识别;另一部分是识别车辆品牌与车辆型号。

拿到这个任务,首先我们需要考虑采用什么样的数据集;其次在训练过程中还要考虑在什么框架下完成训练,如何对模型进行剪枝、优化;模型训练完成后,还需要考虑部署到哪里,比如服务器终端还是一些嵌入式产品。

首先,是数据的准备部分。NVIDIA提供的是一些美国车牌的视频,跟国内车牌有一些区别。大家在实际训练中,可以自行收集更合适的数据集。

其次,为快速完成一个模型训练,需要用到迁移学习工具:Transfer Learning Toolkit(TLT)

最后,部署模型时,可以使用DeepStream工具便捷实现。

在今天的示例展示开始前,先为大家介绍一下这两个工具的功能及如何使用。

NVIDIA DeepStream SDK

DeepStream是NVIDIA专门为视觉相关的应用来设计的一整套工具链,集成了很多工具。

它的核心任务之一是帮用户搭建视频应用的完整产业链。当我们要做一个基于视觉的应用时,我们不只是在训练一个模型,还需要处理很多流程,比如编解码、批处理等,DeepStream可以帮助用户完成这些流程。

如上图,最底层基础部分,NVIDIA有一系列的硬件;

再往上看,在不同硬件部署时,我们可以再采用不同的基于CUDA-X的工具,比如要做视频的编、解码可能用到CUDA,做视频的inference时可以用到TensorRT、Triton Inference Server,不同的工具对应不同的调用方式;

大家用DeepStream搭建系统时,只需要调用DeepStream SDK这一个应用,它是一系列软件搭建起来的工具的集合,并且可以投产于真实的项目中。

如何使用DeepStream?

说明文档:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html#quickstart-guide

具体看下DeepStream SDK每一步的处理过程。

我们要搭建一个基于视觉应用的程序,第一步是数据源。今天我们展示的实例代码是基于本地的视频,大家也可以使用不同的视频源,都可以接入到SDK系统里。

第二步,对视频源的数据进行处理。包括Code、DeCode的过程,使程序、算法能够直接使用和识别数据。这一步可以极大提升我们的处理效率、节省时间。

第三步,视频预处理,包括缩放、剪切、调整分辨率等。

第四部,Batching,即设置一定延迟,将几张图片组合起来,组成一张大图再传输给GPU,同时处理多张图片来提高效率。

第五步,深度学习推理任务。这里可以使用您已有的模型、或者NVIDIA提供的预训练模型等,不需要再从头开始进行训练。推理主要包含检测、识别、图像分割三部分,今天的课程任务都会涵盖到。

推理完成后,还可以进行二级推理网络或者多级网络的搭建。比如今天的课程任务,检测到车辆后,再在检测框里检测车牌,就是二级网络。接下来可能还要识别车牌号,这个识别网络就是三级网络。

第六步,深度学习的结果出来之后,针对某些需要Tracking的任务,DeepStream里边也已经内置了相应模块,直接调用就可以进行跟踪任务的处理。

这时,主要的计算任务就完成了,第七步就需要将结果显示出来,比如显示在屏幕上、传输到远端,或者储存为本地的文件。(今天直播里我们将用到一个嵌入式设备—NX来显示画面,将处理完的视频存到本地后播放。)

以上就是一套完整的流程,我们通过使用DeepStream SDK,只需100多行代码就可以实现整个流程。

上图是关于DeepStream的注意事项,大家在实际应用的时候,可以参考相关内容、应用场景等。

TensorRT

TensorRT是英伟达专门为GPU深度学习推理设置的一个工具(相关课程可参考英伟达开发者社区:https://www.nvidia.cn/developer/online-training/community-training/),可以帮助GPU更快的做深度学习推理任务。

它会在内部做一系列优化,如精度校正动态Memory多流的执行Kernel调用,网络层融合计算等。正是通过这一系列优化,生成了可执行的推理引擎,就可以进行一个深度学习推理任务。

NVIDIA Transfer Learning Toolkit

接下来介绍一下NVIDIA Transfer Learning Toolkit(TLT)工具。

上述介绍了部署工具,那么如何得到推理引擎呢?这就需要用到TLT工具(目前版本已更新至TLT 3.0)。

TLT 3.0是一个简单的、集成化的工具,可以帮助大家快速的训练一个模型,并且把这个模型转化成TensorRT或者DeepStream可以直接使用的深度学习推理引擎。

TLT 3.0为开发者提供了一系列的预训练模型,并且提供了一系列工具,大家可以在预训练模型的基础上进行模型训练、调整、剪枝,以及导出模型进行部署等。而且大家可以通过简单的几行代码来实现上述功能。

目前,TLT 3.0已经涵盖了很多内容,在视觉、语音等方面都有很多可以实际应用的模型。

我们今天的主题是“车辆信息识别”,课程任务中主要会涉及图像分类、目标检测和图像分割方面的预训练模型,大家都可以去NGC下载(ngc.nvidia.com)。

实战演示:快速搭建车辆信息识别系统

接下来,何琨老师通过代码演示,带大家实现了“车辆信息识别”任务。大家可观看视频、继续学习:

直播回放链接:

https://www.bilibili.com/video/BV1Vf4y1h74b/ (p.s.代码演示部分从第30分钟开始~)

源代码下载链接:

Python:https://github.com/NVIDIA-AI-IOT/deepstream_python_apps

C:https://github.com/NVIDIA-AI-IOT/deepstream_lpr_app

课程PPT链接:https://images.nvidia.cn/cn/webinars/2021/May18/%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA%E5%9F%BA%E4%BA%8EPython%E7%9A%84%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E8%AF%86%E5%88%AB%E7%B3%BB%E7%BB%9F.pdf

下期直播报名

本次CV公开课还有2期课程未直播,分别为:

第2期(6.02 周三 20:00-21:30):利用TLT3.0和Triton快速搭建情感识别系统

第3期(6.17 周四 20:00-21:30):利用TLT3.0和Triton快速搭建手势识别系统

欢迎人工智能从业者、有AI开发需求的小伙伴扫码/阅读原文报名~

NVIDIA专家实战演示,教你快速搭建基于Python的车辆信息识别系统相关推荐

  1. CV公开课报名 | 快速搭建基于Python的车辆信息识别系统

    位来 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 时下,智慧城市和自动驾驶快速发展,车辆的检测和识别应用场景非常广泛,如车牌识别.车流统计.车辆属性识别等. 但是从0搭建一个精度高.速度快的 ...

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

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

  3. 适合新手:手把手教你用Go快速搭建高性能、可扩展的IM系统(有源码)

    本文为开源工程:"github.com/GuoZhaoran/fastIM"的配套文章,原作者:"绘你一世倾城",现为:猎豹移动php开发工程师,感谢原作者的技 ...

  4. 手把手教你快速搭建私服环境

    手把手教你快速搭建私服环境,简单实用,一看就懂 1.准备工作:先下载Nxus Nexus 是 Maven 仓库管理器, 通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库 ...

  5. 手把手搭建企业IT实战环境第三季:快速搭建SCCM1902服务器

    手把手搭建企业IT实战环境第三季:快速搭建SCCM1902服务器 ©Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者 博客:https://blog. ...

  6. 手把手教你快速搭建 EOS 主网见证人节点(BP)

    EOS主网启动至今已经超过一个月,然而截至当前,注册成为EOS Block Producer(大家习惯称为见证人)的账号仅有393个,活跃的EOS BP节点更是仅有376个,远远不如EOS主网上线前我 ...

  7. 快速搭建基于GB/T28181-2016的完整音视频框架

    快速搭建基于GB/T28181-2016的完整音视频框架 建设目标 国家相关标准.行业标准 平台框架结构 平台开放 前端设备SDK 视频接入网关 PC客户端 移动客户端(Android) 标准过检 更 ...

  8. 快速搭建ELK7.5版本的日志分析系统--搭建篇

    一.ELK安装部署 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide ...

  9. 如何快速搭建基于PostgreSQL的空间数据库(SDE)

    如何快速搭建基于PostgreSQL的空间数据库(SDE) 1        安装准备 1.1 ArcGIS平台 ArcGIS Desktop 10.5以及ArcGIS Enterprise 10.5 ...

最新文章

  1. 如何动态修改windows下的host文件
  2. php开发如何测试,用thinkphp开发微信,如何测试?
  3. python __builtins__ complex类 (13)
  4. 可心耳语-属于网络工程师的人声电台(第一期)
  5. IK分词源代码分析学习——与solr4.0接口
  6. zookeeper 3.6.2启动报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
  7. OpenCV用thrust使用cv :: cuda :: GpuMat
  8. BZOJ3514 Codechef MARCH14 GERALD07加强版 LCT维护最大生成树 主席树
  9. html checkbox 多选 根据数据库来显示选取和未选取,前端框架(2)DIV多选复选框框的封装和MySql数据库存取...
  10. ArcGIS API for Silverlight/WPF/Windows Phone/Android 插件下载地址
  11. python 取模_中年大叔学编程-Python的基础语法和运算符
  12. android rtorrent 编译,rtorrent交叉编译
  13. python文本分类评价指标 top1如何计算_推荐算法评价指标
  14. EasyIcon:免费图标搜索和下载平台
  15. 新的vulkan的SDK很难下载
  16. 自学QT之qss教程
  17. 购买的域名设置域名解析
  18. matlab 一榀框架,一榀框架(一榀框架的选取依据)
  19. BUUCTF学习笔记-Easy_Clac
  20. 滑块验证码的解决方法

热门文章

  1. 如何使用ui-router中的ui-sref将参数传递给控制器
  2. SQL查询从多个表返回数据
  3. 将整个ASCII文件读入C ++ std :: string [重复]
  4. 如何浏览文本字段(下一个/完成按钮)
  5. 如何从文件内容创建Java字符串?
  6. PXC DDL 操作阻塞写
  7. Djando 的 cmd命令
  8. 2017全球中国锂电池市场趋势概述
  9. centos6.5下iptables基础知识详解与配置
  10. 【Xamarin 在Mac OS 上的部署安装环境】