0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算机视觉中识别出的类别有什么用途

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达 2021-08-25 16:57 次阅读

计算机视觉的应用中,“识别”只是一个相当入门的技术,相信很多人在执行深度学习推理应用中,经常产生的质疑就是“识别出的类别,有什么用途呢”?

确认每一帧图像中有多少个我们想要识别的种类,以及他们在图像中的位置,只是整个应用的第一步而已,如果缺乏“目标追踪(tracking)”的能力,就很难提供视频分析的基础功能。

在标准 OpenCV 体系里有 8 种主流的目标追踪算法,有兴趣的可以在网上搜索并自行研究。

算法的基本逻辑就是需要对视频的相邻帧进行“类别”与“位置”的比对,因此这部分的计算还是相当消耗计算资源的,也就是当视频分析软件“开启”目标追踪功能时,其识别性能必定有所下降,大家必须先有这样的认知。

DeepStream 的定位就是针对“视频分析”的应用,因此“目标追踪”是其最基本的功能之一。

在前面使用的 myNano.txt 配置文件中,只需要调整一个设定值就能开启或关闭这个追踪功能,非常简单。

DeepStream 支持 IOU、KLT 与 NVDCF 三种目标追踪算法(如下图),其中 IOU 的性能最好,在 Jetson Nano 2GB 上的总体大约能到 200FPS;NVDCF 的精确度最高,但目前性能大约只能到 56FPS;KLT 算法目前在性能与精确度的平衡比较好,总体性也能到 160FPS,因此通常都选择 KLT 追踪器做演示。

算法的细节不多做解释,请自行寻找相关技术文件学习,这里就直接进入实验的过程。还是以前一篇文章中的 myNano.txt 配置文件为主,如果不知道的话,就用 source8_1080p_dec_infer-resnet_tracker_tiled_display_fp16_nano.txt 复制一份出来就可以,透过修改里面的参数,让大家体验一下 DeepStream 目标追踪的功能。

01

目标追踪功能的开关

在 myNano.txt 最下方,可以看到[tracker]的设定组,下面有个“enable=1”的参数,就是目标追踪的功能。

现在先执行一次启动追踪功能,如下图可以看到每个识别出的物件除了类别、标框之外,旁边还有个编号,这个编号会一直跟着该物件,这样就形成“追踪”的功能。

此时的识别性能如下图,总性能(8 个数字相加)大约 160FPS。

如果将[trakcer]下面改成“enable=0”,再执行看看结果如何?下图中能识别出物件的类别与标框位置,但是已经没有编号。

关闭追踪功能之后的识别性能如下图,总识别性能可以达到 250FPS 左右。

02

切换追踪器

前面说过,目前 DeepStream 5.0 支持三种追踪器,那么要如何选择呢?同样在[tracker]参数组下方,有这样的三行参数:

#ll-lib-file=/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_mot_iou.so

#ll-lib-file=/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_nvdcf.so

ll-lib-file=/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_mot_klt.so

前面加上“#”号的就是处于关闭的状况,请先将[tracker]切回“enable=1”的开启状态,接下来请自行加减“#”的位置以切换追踪器的选择,分别测试这三个追踪器的不同之处,包括识别性能与追踪能力。

这部分必须直接在视频中体验,因此就不截屏显示。测试结果可以感受到 IOU 追踪器的性能最好,可达到 200FPS 左右,但是同一物件的编号并不是太稳定,而 NVDCF 追踪器的编号最为稳定,但性能大概只有 IOU 的 1/4,最多只能承受 2 路视频的实时分析。

KLT 算法总体性能可达到 160FPS,可以支持到8路以内的实时识别,追踪能力也比 IOU 好不少,不过这个算法对 CPU 的占用率比较高,是这个算法的主要缺点。该如何选择需要看实际的场景与计算设备的资源而定。

03

获取追踪数据

前面打开目标追踪功能的目的,并不只是为了在显示器上看看而已,而是用这些数据做更有价值的应用,而这些数据要从什么地方得到呢?通常都需要透过 PythonC++从 DeepStream 提供的接口去获取。

这里提供一个无需了解 DeepStream 接口就能获取目标追踪数据的方法,只要我们在 myNano.txt 里面的[application]参数组,添加一条“kitti-track-output-dir=《PATH》”的路径指向就可以,这里假设要将数据存入“/home/nvidia/track”路径下,在 myNano.txt 里添加一行参数即可:

[application]

kitti-track-output-dir=/home/nvidia/track

执行“deepstream -c myNano.txt”之后,就可以看到/home/nvidia/track目录下产生非常多的文件,如下截屏:

每个文件存放“一帧”的目标追踪结果,例如我们测试的 sample_1080p_h264.mp4 视频有 48 秒,每秒有 30 帧图像,就会生成 1440 个文件。

前面 6 位数“00_000”代表视频源的编号,从“0”开始,如果有 4 路视频源就会有“00_000”~“00_003”的编号,后面 6 位则是流水号,例如这个测试视频就会生成“000000.txt”~“001440.txt”,由这两部分组合而成文件名。

这是 KITTI 格式的数据,第一栏位是该物件的类别,第二栏是该物件的“追踪编号”,后面数据所代表的意义,请自行参考 KITTI 的格式定义。

现在我们就可以依序读入这些追踪文件,或者将这些文件回传给控制中心,进行文件解析与信息提取,这样是不是很方便?相信这些内容对于开发会很有帮助。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4862

    浏览量

    102755
  • 机器视觉
    +关注

    关注

    161

    文章

    4335

    浏览量

    120044

原文标题:NVIDIA Jetson Nano 2GB 系列文章(29): DeepStream 目标追踪功能

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    计算机视觉有哪些优缺点

    计算机视觉作为人工智能领域的一个重要分支,旨在使计算机能够像人类一样理解和解释图像和视频的信息。这一技术的发展不仅推动了多个行业的变革,也带来了诸多优势,但同时也伴随着一些挑战和局限
    的头像 发表于 08-14 09:49 684次阅读

    机器视觉计算机视觉有什么区别

    机器视觉计算机视觉是两个密切相关但又有所区别的概念。 一、定义 机器视觉 机器视觉,又称为计算机
    的头像 发表于 07-16 10:23 452次阅读

    计算机视觉的工作原理和应用

    计算机视觉(Computer Vision,简称CV)是一门跨学科的研究领域,它利用计算机和数学算法来模拟人类视觉系统对图像和视频进行识别
    的头像 发表于 07-10 18:24 1556次阅读

    计算机视觉与人工智能的关系是什么

    引言 计算机视觉是一门研究如何使计算机能够理解和解释视觉信息的学科。它涉及到图像处理、模式识别、机器学习等多个领域的知识。人工智能则是研究如
    的头像 发表于 07-09 09:25 495次阅读

    计算机视觉与智能感知是干嘛的

    引言 计算机视觉(Computer Vision)是一门研究如何使计算机能够理解和解释视觉信息的学科。它涉及到图像处理、模式识别、机器学习等
    的头像 发表于 07-09 09:23 729次阅读

    计算机视觉和机器视觉区别在哪

    计算机视觉和机器视觉是两个密切相关但又有明显区别的领域。 一、定义 计算机视觉 计算机
    的头像 发表于 07-09 09:22 394次阅读

    计算机视觉在人工智能领域有哪些主要应用?

    计算机视觉是人工智能领域的一个重要分支,它主要研究如何让计算机能够像人类一样理解和处理图像和视频数据。计算机视觉技术在许多领域都有广泛的应用
    的头像 发表于 07-09 09:14 1131次阅读

    计算机视觉属于人工智能吗

    属于,计算机视觉是人工智能领域的一个重要分支。 引言 计算机视觉是一门研究如何使计算机具有视觉
    的头像 发表于 07-09 09:11 1090次阅读

    深度学习在计算机视觉领域的应用

    随着人工智能技术的飞速发展,深度学习作为其中的核心技术之一,已经在计算机视觉领域取得了显著的成果。计算机视觉,作为计算机科学的一个重要分支,
    的头像 发表于 07-01 11:38 656次阅读

    机器视觉计算机视觉的区别

    在人工智能和自动化技术的快速发展,机器视觉(Machine Vision, MV)和计算机视觉(Computer Vision, CV)作为两个重要的分支领域,都扮演着至关重要的角色
    的头像 发表于 06-06 17:24 1195次阅读

    计算机视觉的主要研究方向

    计算机视觉(Computer Vision, CV)作为人工智能领域的一个重要分支,致力于使计算机能够像人眼一样理解和解释图像和视频的信息。随着深度学习、大数据等技术的快速发展,
    的头像 发表于 06-06 17:17 820次阅读

    计算机视觉的十大算法

    随着科技的不断发展,计算机视觉领域也取得了长足的进步。本文将介绍计算机视觉领域的十大算法,包括它们的基本原理、应用场景和优缺点。这些算法在图像处理、目标检测、人脸
    的头像 发表于 02-19 13:26 1192次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的十大算法

    计算机视觉与图像处理、模式识别、机器学习学科之间的关系

    计算机视觉(computer vision):用计算机来模拟人的视觉机理获取和处理信息的能力。就是指用摄影机和电脑代替人眼对目标进行识别、跟
    的头像 发表于 01-18 16:41 521次阅读

    工业视觉计算机视觉的区别

    工业视觉主要解决以往需要人眼进行的工件的定位、测量、检测等重复性劳动;计算机视觉的主要任务是赋予智能机器人视觉,利用测距、物体标定与识别等功
    发表于 01-16 10:06 527次阅读
    工业<b class='flag-5'>视觉</b>与<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的区别

    计算机视觉:AI如何识别与理解图像

    计算机视觉是人工智能领域的一个重要分支,它致力于让机器能够像人类一样理解和解释图像。随着深度学习和神经网络的发展,人们对于如何让AI识别和理解图像产生了浓厚的兴趣。本文将探讨计算机
    的头像 发表于 01-12 08:27 1330次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>:AI如何<b class='flag-5'>识别</b>与理解图像