基于GPU运算的车辆跟踪算法

时间:2022-10-24 10:43:53

基于GPU运算的车辆跟踪算法

【摘要】随着并行计算技术的高速发展,GPU的架构不断完善,GPU强大的并行计算能力得以充分发挥,在图像处理领域优势更加明显。与以往的系统相比,基于GPU 的系统不仅在性能上有着显著的提升,在开发成本和开发周期上也有一定的优势。SIFT 描述算子,作为一个图像特征点的描述方法,具有图像旋转、尺度缩放、亮度变化的不变特性,对视角变化、仿射变换、噪声也保持一定程度的稳定性的特点,在医学图像,计算机动画,虚拟现实等领域都有着广泛的应用。SIFT算子涉及到大量的矩阵运算,与之前采用的CPU计算的方式相比,GPU的并行运算能提高几百甚至上千倍的速度。车辆特征的跟踪涉及到车辆特征的检测、描述与匹配,用GPU的并行运算,让车辆的跟踪真正得以实现。

【关键词】GPU;特征检测;特征比对;图像识别;CUDA

1.GPU的运算能力

GPU和基于的GPU通用计算(Genelral purpose GPU,GPGPU)在过去的十六年(1998-2014)里不断发展完善。

基于GPU的通用计算已经成为了计算领域发展的新趋势。

GPU微架构由大量相同的单元组成,设计目的是尽可能提高计算吞吐量,通过线程之间的切换来隐藏对存储器访问的延迟。GPU主要用于处理图像着色程序,十分类似于通用计算中的对大量相同类型数据的密集数值计算。

GPU在处理能力和存储器带宽上相对于CPU有明显优势,在成本和功耗上也不需要付出太大代价。由于图形渲染的高度并行性,使得GPU可以通过增加并行处理单元和存储器控制单元的方式提高处理能力和存储器带宽。GPU设计者将更多的晶体管用做执行单元。

GPU是由同一个运算单元执行整数和浮点计算,GPU的整型计算能力与其浮点能力相似。目前,主流GPU都采用了统一架构单元,凭借强大的可编程流处理器阵容,GPU在单精度浮点运算方面远远超越CPU。

GPU的内存子系统非常强大,那就是GPU上的显存。主流GPU普遍拥有40-60 GB/s显存带宽。存储器的超高带宽让巨大的浮点运算能力得以稳定吞吐,也为数据密集型任务的高效运行提供了保障。

GPU通用计算被越来越多的采用,除了GPU本身架构的优越性,市场需求也是重要的原因。提高GPU利用率的有效途径就是将软件的部分计算任务分配到GPU上,从而实现高性能、低功耗的最终目标。

GPU的效率在以下情况下能得到有效的发挥:

・运算密集。

・高度并行。

・控制简单。

・分多个阶段执行。

符合这些条件或者是可以改写成类似特征的应用程序,就能够在GPU上获取较高的性能。

2.目标车辆跟踪

为了跟踪图像中移动的目标车辆,需要从图像中提取出与目标相联系的特征。利用有效的数学方法,描述这些特征,再匹配这些描述参数,可以从众多目标中跟踪到所需目标。为了确保准确无误地跟踪目标,这些描述方法要求在各种视角、光照、距离以及噪声条件下具备一定的抗干扰性。

SIFT特征是一个检测和描述图像局部特征的算法,这种算法具有优良的特性,能较准确地用于特征匹配。

它具有广泛的用途,包括目标识别,三维重建、表情识别以及视频和运动追踪。SIFT基于两个大的组成部分,并使用了多种改进技术以改善各项指标。

目标车辆的跟踪分三大步骤,如图1所示。

图1

2.1 SIFT目标特征的检测

SIFT主要检测块状特征。借助一种旋转不变微分算子,SIFT可以在尺度空间中检测到特征点的所在位置和尺度。虽然存在很多其它的微分算子,SIFT却依赖于LoG算子。其原因之一是实现方便,原因之二是LoG检测的特征比较稳定。块状特征位于尺度空间的极值点,它们的一阶导数为零,而LoG算子并不是为了检测这些特征。LoG算子检测的是像素灰度值变化加速率极大和极小的位置。因为有些尺度空间上的极值点满足LoG的检测条件,所以SIFT检测到的特征既有块状特征,也有非块状特征。基于以上的分析可以看出,SIFT检测的特征点的标准比较严格,因而特征点也比较稳定,可以免受一定程度的外在影响。通过使用高斯差分空间(DoG),可以相对较快地寻找到特征点位置。

2.2 SIFT目标特征的描述

SIFT的特征描述算法通过统计一阶微分向量的方向、大小来找到一个主方向,而后根据特征的检测尺度选择邻域范围,并产生描述符。SIFT特征的描述符是基于一阶微分,能应对相当程度的光照及视角的变化。为了获得最佳效果,SIFT将特征邻域分成4x4区域,并根据方向、大小作一阶向量的直方图统计。SIFT描述符覆盖的范围与LoG检测尺度有关,半径大概为检测尺度的6倍,因此能包括与特征有关的绝大多数信息。这个原则在工业界也称为钉准则。为了区别不同位置的重要性,SIFT用高斯窗口对各一阶微分向量的长度进行加权,使得远离特征中心的位置所占权重较小。

2.3 SIFT目标特征的匹配

特征的匹配有很多种计算方法,其中用最近领域法匹配目标是传统的方法。除此之外,用Hough变换和线性最小平方验证目标也是一种有效的方法。本文采用最小距离法计算,也能很好匹配两幅图像的目标特征。

3.在GPU平台上的运算

以两张400x300的普通卡口图像为例,分别在CPU和GPU上运算SIFT角点,运算的结果基本相同,都是检测到103个角点。对这些角点的描述和匹配分别在两个平台上运算,得出的时间如表1所示:

表1

角点描述 角点匹配

CPU 146ms 83ms

GPU 21ms 7ms

系统中,在有大量的运算且不需要频繁跳转的情况下,在GPU上运算优势很明显,本文测试的两幅图像是比较典型的智能交通卡口图像,由原来的1600x1200缩小而成的。同时,本文还将特征检测和匹配软件的特点和GPU 的硬件架构结合起来,充分发挥其硬件性能。另外,根据目前最新的GPU发展状况,利用NVIDIA提供的CUDA库开发完成。

上一篇:台山1000MW机组振动监视与保护系统可靠性分析 下一篇:港口集装箱定位技术分析