CN103336959B - 一种基于gpu多核并行加速的车辆检测方法 - Google Patents

一种基于gpu多核并行加速的车辆检测方法 Download PDF

Info

Publication number
CN103336959B
CN103336959B CN201310306471.0A CN201310306471A CN103336959B CN 103336959 B CN103336959 B CN 103336959B CN 201310306471 A CN201310306471 A CN 201310306471A CN 103336959 B CN103336959 B CN 103336959B
Authority
CN
China
Prior art keywords
array
block
size
thread
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310306471.0A
Other languages
English (en)
Other versions
CN103336959A (zh
Inventor
袁通
刘志镜
王韦桦
刘慧�
邱龙滨
曹文涛
赵纬龙
赵宏伟
李雨楠
熊静
张小骏
王梓
曹志高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201310306471.0A priority Critical patent/CN103336959B/zh
Publication of CN103336959A publication Critical patent/CN103336959A/zh
Application granted granted Critical
Publication of CN103336959B publication Critical patent/CN103336959B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种基于GPU多核并行加速的车辆检测方法,其步骤包括计算机视觉、特征提取、目标相似度检测以及Map‑Reduce并行计算框架。本发明有益效果在于,通过Map‑Reduce的GPU并行计算提高了HOG特征提取算法效率,显著缩短了车辆检测所需时间,可用于自动化的智能交通和城市管理领域。

Description

一种基于GPU多核并行加速的车辆检测方法
技术领域
本发明涉及计算机视觉领域,具体涉及一种基于MapReduce的GPU并行计算应用于车辆检测的方法。
背景技术
随着智能交通系统在现代社会中重要性的不断提升,车辆监控技术得到了越来越广泛的应用。现有智能交通系统的问题主要是大量的监控信息难以得到有效的及时的处理。而如何通过计算机智能地实时地分析和提取有效的信息,以提升车辆监控与跟踪准确率,已经成为计算机视觉领域的一个热点研究问题。
基于视觉监控的智能分析技术是计算机视觉和智能交通领域的热点和难点问题,涉及到图像处理、机器学习、模式识别等课题。近年来学术界上进行了较多的相关研究。
国内外学者在基于视频序列的复杂场景下车辆检测技术上做了很多的工作。我国的道路交通情况比较复杂,存在车辆、行人公用一条道路的情况,行车道路上车辆的颜色、形状、速度都存在较大差异,因此基于像素级的目标检测方法,如帧间差法、背景差分法不能满足我国实际道路需要。现在基于视频序列的目标检测系统主要采用特征级的检测与机器学习算法相结合的方法对运动目标进行检测。目前,通常采用纹理信息作为特征点,常用的纹理特征有HOG(梯度方向直方图),小波滤波器,类Haar特征滤波器等。现在运用比较广泛的车辆检测的方法有:类Harr特征和自适应决策树结合算法,HOG描述子与SVM结合算法,HOG描述子与随机森林结合算法等。类Harr特征的检测算法在实际应用中,还存在一定数量的误检和漏检,因此HOG是现阶段比较好的特征描述子。
然而这些研究和应用还存在一定的问题:虽然基于HOG特征的检测和跟踪算法能够达到比较理想的效果,但是在传统的计算架构下,对HOG特征的提取、SVM训练的计算以及特征匹配的计算都比较费时,远不能满足实时性的要求。
MapReduce是由谷歌公司提出的并行算法,旨在帮助程序员轻松的编写分布式程序。程序员只需编写两个函数:Map函数和Reduce函数,其他有关并行的功能,包括:任务调度、容错、实时同步等都由运行时负责。Map函数负责处理输入数据并产生中间键key/value。Reduce函数根据key值将中间键进行合并,并产生最终的结果。目前MapReduce的实现包括基于机群的Hadoop系统、基于CPU的Phoenix系统和基于GPU的Mars系统等。
GPU英文全称为Graphic Processing Unit,中文翻译为“图形处理单元”,是一种专门处理在个人电脑、工作站或游戏机上图像运算工作的微处理器。GPU与CPU相比有更多的处理器和更大的内存带宽,所以GPU有较好的计算能力,可以进行大量计算,如图3所述,为显卡的内部结构示意图。但GPU也有相应的缺点,主要包括:(1)GPU最初的目的是加速图像处理,采用了SIMD(单指令多数据流)模式,这种模式不支持复杂的控制流;(2)GPU的线程是由硬件管理的;(3)GPU不支持直接存取主机内存,需要进行主机内存和显卡内存的调度;(4)GPU没有统一的标准,往往由各厂家决定。为了解决上述问题,NVIDIA公司和AMD公司分别提供了CUDA和Brook+类库,旨在让程序员更好的操作GPU,完成通用计算功能。
Bingsheng He、Wenbin Fang等人在《Mars:AcceleratingMapReduce with Graphics Processors》一文中提出一种基于MapReduce的显卡多处理器并行计算模型。
发明内容
鉴于现有技术的不足,本发明旨在于提供一种用基于MapReduce的GPU多核并行加速的车辆检测方法,具体用以分析和理解复杂场景下车辆行为,有效的降低了原有相应方法的时间复杂度,为用户提供了较高的实时性,同时在省时的基础上保障对车辆较高的识别准确率,能有效去除视频采集图像的复杂背景和噪声,本发明的应用有助于改善公共场所的安全监控水平。
为了实现上述目的,本发明采用的技术方案如下:
一种基于GPU多核并行加速的车辆检测方法,所述方法包括以下步骤:
(1)由CPU获得待检测的图像并复制到GPU内存,其中,将分配的内存设置为不可换页可提高传输速度;
(2)利用硬件纹理单元对所述图像进行降采样,然后对所述降采样后的图像进行伽马校验;
(3)计算梯度值,其中,将一个检测窗口划分为若干个区块,在每个区块内,使用GPU并行计算技术,利用水平梯度卷积算子[-1,0,1]与垂直梯度卷积算子 - 1 0 1 分别计算水平方向梯度与和垂直方向梯度,进而计算幅值与相位,根据得到的幅值与相位,按照相位值最近的两个bin之间的相位差为权值分解幅值,并记录;
(4)计算方向梯度直方图,其中,根据步骤(3)中得到的结果,使用基于MapReduce模型,在映射函数阶段对检测窗口进行子胞元划分,并使用二次线性插值求子胞元内的方向梯度直方图,具体是在化简函数阶段对相同区块内的子胞元方向梯度直方图进行合并,得出区块内的方向梯度直方图;
(5)归一化方向梯度直方图,其中,在Map函数阶段检测窗口进行区块划分,对区块内方向直方图数组求一个归一化系数,并该数组每个元素乘以这个系数,具体是归一化系数通过求数组内加权平方和的开平方的倒数得到;
(6)线性SVM计算,其中,将归一化的结果交由CPU进行合并,并与实现训练好的SVM系数向量进行内积运算;
(7)判断是否遍历完全,如果遍历完,退出GPU运算模式,如果没有遍历完,转到步骤(2);
(8)根据步骤(6)计算出的SVM值与预设的阈值对比,如果超过所述预设阈值,则说明当前检测窗口存在目标车辆,将坐标与尺度信息输出。
需要说明的是,所述步骤(4)中计算子胞元的方向梯度直方图的步骤为:
(1)调度程序将显卡内存中的输入数据input数组分为n块,每块大小为;
(2)每个线程执行MapCount函数,其中MapCount函数输出三个值:Map函数产生的中间键的个数i、Map函数产生的M-keys数组的大小j字节、Map函数产生的M-values数组的大小k字节。
(3)通过j、k计算出每个线程中M-keys数组和M-values数组的大小和其起始位置;
(4)每个线程并行执行用户自定义的Map函数,将产生的结果写入该线程对应M-keys数组、M-values数组和M-directory index数组中,M-directory index数组中的每条记录表示一条中间键记录;
(5)对中间键按照key值进行排序;
(6)按照key值将中间键进行分块,把相同key值的中间键数据交给一个GPU线程进行处理;
(7)每个线程执行ReduceCount函数,其中ReduceCount函数输出三个值:Reduce函数产生的结果记录的个数i、Reduce函数产生的R-keys数组的大小j字节、Reduce函数产生的R-values数组的大小k字节;
(8)通过j、k计算出每个线程中R-keys数组和R-values数组的大小和其起始位置;通过i计算出每个线程中R-directory index数组的大小和其起始位置;
(9)每个线程并行执行Reduce函数,其中:
输入:M-keys数组、M-values数组、经过排序的M-directoryindex数组输出:results数组;
操作:M-directory index数组可以表示为<mid,res>,mid为区块的编号;res表示该区块对应的直方图数组。将相同mid的res数组中对应的相同位置上元素求和,得到rdata数组;
将产生的结果写入该线程对应R-keys数组、R-values数组和R-directory index数组中。这样就可以得到每个区块对应的总直方图results数组<id,rdata>,其中id表示区块的编号,rdata表示对应区块的总直方图数组。
需要说明的是,所述步骤5区块的方向梯度直方图的归一化步骤为:
(1)调度程序将显卡内存中的输入数据input数组分为n块,每块大小为;
(2)每个线程执行MapCount函数,其中MapCount函数输出三个值:Map函数产生的中间键的个数i、Map函数产生的M-keys数组的大小j字节、Map函数产生的M-values数组的大小k字节;
(3)通过j、k计算出每个线程中M-keys数组和M-values数组的大小和其起始位置;
(4)每个线程并行执行用户自定义的Map函数,计算每个区块的方向梯度直方图,将产生的结果写入该线程对应M-keys数组、M-values数组和M-directory index数组中。得到results数组<id,rdata>,id表示区块的编号,rdata表示该区块的方向梯度直方图。
本发明有益效果在于,本发明将基于HOG特征的车辆检测算法较之传统架构的计算方法效率上提高30至50倍,将基于HOG特征的车辆检测算法应用于实时的交通视频处理中,将现有的实时车辆检测命中率大大提高。
附图说明
图1为本发明流程示意图;
图2为本发明中GPU多核并行计算流程图;
图3为显卡内部结构图。
具体实施方式
下面将结合附图对本发明作进一步的描述。
如图1、图2所示,本发明为一种基于GPU多核并行加速的车辆检测方法,所述方法包括以下步骤:
(1)由CPU获得待检测的图像并复制到GPU内存,其中,将分配的内存设置为不可换页的可提高传输速度;
(2)利用硬件纹理单元对所述图像进行降采样,然后对降采样后的图像进行伽马校验;
(3)计算梯度值:将一个检测窗口划分为若干个区块,在每个区块内,使用GPU并行计算技术,利用水平梯度卷积算子[-1,0,1]与垂直梯度卷积算子 - 1 0 1 分别计算水平方向梯度与和垂直方向梯度,进而计算幅值与相位,根据得到的幅值与相位,按照相位值最近的两个bin之间的相位差为权值分解幅值,并记录;
(4)计算方向梯度直方图,其中,每个区块有2×2个胞元,每个胞元有8×8个像素,每个区块有一个方向梯度直方图,每个直方图有9个bin,每个像素点的角度范围是[0,180°],每个bin占20°,对一个胞元的方向梯度直方图的表示按照其bin所占角度从大到小排列成一个大小为9的数组,对一个区块内4个胞元的方向梯度直方图需要二次线性插值,并最后进行归一化,那么一个区块内4个方向直方图按照胞元从左向右从上至下的方式排列成一个大小为36的数组,最后一个检测窗口的方向直方图按照区块从左向右从上至下的方式排列成一个大小为36×n的数组(n为检测窗口中的区块数目)。
进一步地说,具体计算时,一个区块内的4个胞元再分成2×2个子胞元,然后对一个检测窗口中所有的子胞元进行编号,一个区块内的子胞元按照从左向右从上至下的方式编号,不同区块内的子胞元也按照从左向右从上至下的方式编号,因此假设子胞元的编号值是i,那么该子胞元所在的区块号为对检测窗口进行划分,产生input数组,一个input数组是<id,data>组成,其中id是对应子胞元的编号,data是子胞元内存储的是每个像素点对应的两个bin编号h0和h1以及分解到相对应bin的幅值a0和a1,然后将input数组交给GPU并行计算出区块直方图。
需要说明的是,GPU并行计算的Map函数:
输入:input数组中的键值对,可以表示为<id,data>;
输出:M-directory index数组中的键值对,可以表示为<mid,res>,其中,mid为区块的编号;res表示该区块对应的直方图数组;
操作:根据事先建好的二维高斯表作为权值,用数组[ω0,ω1,ω2]表示,分别代表对1个、2个和4个胞元方向直方图贡献的权值,输出的是<mid,res>的键值对,sub=id%16得到子胞元在所在区块中的编号。,res的元素是4个胞元的方向直方图数组按照胞元从左往右从上往下排列而成,其中:
如果sub为0,则res[h0]为ω0×a0,res[h1]为ω0×a1;
如果sub为1或2,则res[h0]为ω1×a0,res[h1]为ω1×a1,res[9+h0]为ω1×a0,res[9+h1]为ω1×a1;
如果sub为3,则res[9+h0]为ω0×a0,res[9+h1]为ω0×a1;
如果sub是4或8,则res[h0]为ω1×a0,res[h1]为ω1×a1,res[18+h0]为ω1×a0,res[18+h1]为ω1×a1;
如果sub是5或6或9或10,则res[h0]为ω2×a0,res[h1]为ω2×a1,res[9+h0]为ω2×a0,res[9+h1]为ω2×a1,res[18+h0]为ω2×a0,res[18+h1]为ω2×a1,res[27+h0]为ω2×a0,res[27+h1]为ω2×a1;
如果sub是7或11,则res[9+h0]为ω1×a0,res[9+h1]为ω1×a1,res[27+h0]为ω1×a0,res[27+h1]为ω1×a1;
如果sub是12,则res[18+h0]为ω0×a0,res[18+h1]为ω0×a1;
如果sub是13或14,则res[18+h0]为ω1×a0,res[18+h1]为ω1×a1,res[27+h0]为ω1×a0,res[27+h1]为ω1×a1;
如果sub是15,则res[27+h0]为ω0×a0,res[27+h1]为ω0×a1;
需要进一步说明的是,计算子胞元的方向梯度直方图为:
1)调度程序将显卡内存中的输入数据input数组分为n块,每块大小为
其中,m表示整个输入数据的大小,n表示GPU中进行计算的线程个数,input数组由<id,data>组成,id表示子胞元的编号,data表示子胞元的像素数组;
2)每个线程执行MapCount函数。其中MapCount函数输出三个值:Map函数产生的中间键的个数i、Map函数产生的M-keys数组的大小j字节、Map函数产生的M-values数组的大小k字节;
其中,M-keys数组由mid组成,mid表示子胞元组成的区块编号;M-values数组存放该区块对应的直方图数组;
3)通过j、k计算出每个线程中M-keys数组和M-values数组的大小和其起始位置;通过i计算出每个线程中M-directory index数组的大小和其起始位置;
其中,M-keys数组由mid组成,mid表示子胞元组成的区块编号;
需要说明的是,M-values数组存放该区块对应的直方图数组res,M-directory index数组由键值对<key offset,key size,valueoffset,value size>组成,key offset表示M-keys数组中每个key值的偏移量,key size表示M-keys数组中每个key值的大小,valueoffset表示M-values数组中每个Value值的偏移量,value size表示M-values数组中每个Value值的大小。通过directory index数组可以从M-keys数组和M-values数组中取得相应的key值和value值。
4)每个线程并行执行用户自定义的Map函数,将产生的结果写入该线程对应M-keys数组、M-values数组和M-directory index数组中,M-directory index数组中的每条记录表示一条中间键记录;
5)对中间键按照key值进行排序;
6)按照key值将中间键进行分块,把相同key值的中间键数据交给一个GPU线程进行处理;
7)每个线程执行ReduceCount函数,其中ReduceCount函数输出三个值:Reduce函数产生的结果记录的个数i、Reduce函数产生的R-keys数组的大小j字节、Reduce函数产生的R-values数组的大小k字节;
其中,R-keys数组存放每个区块编号,R-values数组存放区块直方图的总和;
8)通过j、k计算出每个线程中R-keys数组和R-values数组的大小和其起始位置;
通过i计算出每个线程中R-directory index数组的大小和其起始位置。
其中R-keys数组存放每个区块编号,R-values数组存放区块直方图的总和;
需要说明的是,R-directory index数组由键值对<key offset,keysize,value offset,value size>组成,key offset表示R-keys数组中每个key值的偏移量,key size表示R-keys数组中每个key值的大小,value offset表示R-values数组中每个Value值的偏移量,valuesize表示R-values数组中每个Value值的大小。通过R-directoryindex数组可以从R-keys数组和R-values数组中取得相应的key值和value值。
9)每个线程并行执行Reduce函数,其中
Reduce函数:
输入:M-keys数组、M-values数组、经过排序的M-directoryindex数组;
输出:results数组;
操作:M-directory index数组可以表示为<mid,res>,mid为区块的编号,res表示该区块对应的直方图数组;
进一步地说,将相同mid的res数组中对应的相同位置上元素求和,得到rdata数组;将产生的结果写入该线程对应R-keys数组、R-values数组和R-directory index数组中。这样就可以得到每个区块对应的总直方图results数组<id,rdata>,其中id表示区块的编号,rdata表示对应区块的总直方图数组。
(5)归一化方向梯度直方图,将一个区块中方向直方图数组内所有元素乘以一个归一化系数α,假设一个区块中方向直方图数组为O|0|35|,则 &alpha; = 1 &Sigma; i = 0 . . . 35 O [ i ] &times; O [ i ] . 交由GPU并行计算。
需要说明的是,GPU并行计算的Map函数:
输入:input数组中的键值对,可以表示为<id,data>,id为区块号,data为区块内方向直方图数组;
输出:result数组中的键值对,可以表示为<id,rdata>,id为区块号,rdata为区块内方向直方图数组;
操作:rdata[i]=data[i]×α,1=0~35
需要进一步说明的是,区块的方向梯度直方图的归一化步骤为:
1)调度程序将显卡内存中的输入数据input数组分为n块,每块大小为
其中,m表示整个输入数据的大小,n表示GPU中进行计算的线程个数;input数组由<id,data>组成,id表示区块的编号,data对应区块的总直方图数组;
2)每个线程执行MapCount函数,其中MapCount函数输出三个值:Map函数产生的中间键的个数i、Map函数产生的M-keys数组的大小j字节、Map函数产生的M-values数组的大小k字节。
其中,M-keys数组由id组成,id表示区块的编号;M-values数组存放该区块对应的方向梯度直方图数组;
3)通过j、k计算出每个线程中M-keys数组和M-values数组的大小和其起始位置;
通过i计算出每个线程中M-directory index数组的大小和其起始位置,其中M-keys数组由id组成,id表示区块编号,M-values数组存放该区块对应的方向梯度直方图数组res;
需要说明的是,M-directory index数组由键值对<key offset,keysize,value offset,value size>组成,key offset表示M-keys数组中每个key值的偏移量,key size表示M-keys数组中每个key值的大小,value offset表示M-values数组中每个Value值的偏移量,valuesize表示M-values数组中每个Value值的大小。通过directory index数组可以从M-keys数组和M-values数组中取得相应的key值和value值。
4)每个线程并行执行用户自定义的Map函数,计算每个区块的方向梯度直方图。将产生的结果写入该线程对应M-keys数组、M-values数组和M-directory index数组中。得到results数组<id,rdata>,id表示区块的编号,rdata表示该区块的归一化的方向梯度直方图。
(6)线性SVM计算,将步骤(5)中得到的result数组返回给CPU,由CPU将result数组中键值对合并成数组,并与事先训练好的支持向量作内积运算,计算出SVM权值,计算SVM权值的公式为其中score为SVM权值,O[1...n]为合并后的result数组,X|1|n|为事先训练好的支持向量数组;
(7)是否已经遍历完整,如果遍历完,退出GPU运算模式,如果没有遍历完,转到步骤(2);
(8)根据步骤(6)计算出的SVM值score与事先设定好的阈值T对比,如果score≥T,则说明当前检测窗口存在目标车辆,将坐标与尺度信息输出。
对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。

Claims (3)

1.一种基于GPU多核并行加速的车辆检测方法,其特征在于,所述方法包括以下步骤:
(1)由CPU获得待检测的图像并复制到GPU内存,其中,将分配的内存设置为不可换页可提高传输速度;
(2)利用硬件纹理单元对所述图像进行降采样,然后对所述降采样后的图像进行伽马校验;
(3)计算梯度值,其中,将一个检测窗口划分为若干个区块,在每个区块内,使用GPU并行计算技术,利用水平梯度卷积算子[-1,0,1]与垂直梯度卷积算子分别计算水平方向梯度与和垂直方向梯度,进而计算幅值与相位,根据得到的幅值与相位,按照相位值最近的两个bin之间的相位差为权值分解幅值,并记录;
(4)计算方向梯度直方图,其中,根据步骤(3)中得到的结果,使用基于MapReduce模型,在Map函数阶段对检测窗口进行子胞元划分,并使用二次线性插值求子胞元内的方向梯度直方图,在Reduce函数阶段对相同区块内的子胞元方向梯度直方图进行合并,得出区块内的方向梯度直方图;
(5)归一化方向梯度直方图,其中,在Map函数阶段检测窗口进行区块划分,对区块内方向直方图数组求一个归一化系数,并该数组每个元素乘以这个系数,具体是归一化系数通过求数组内加权平方和的开平方的倒数得到;
(6)线性SVM计算,其中,将归一化的结果交由CPU进行合并,并与实现训练好的SVM系数向量进行内积运算;
(7)判断是否遍历完全,如果遍历完,退出GPU运算模式,如果没有遍历完,转到步骤(2);
(8)根据步骤(6)计算出的SVM值与预设的阈值对比,如果超过所述预设阈值,则说明当前检测窗口存在目标车辆,将坐标与尺度信息输出。
2.根据权利要求1所述的车辆检测方法,其特征在于,所述步骤(4)中计算子胞元的方向梯度直方图的步骤为:
(1)调度程序将显卡内存中的输入数据input数组分为n块,每块大小为m为输入数据input数组的大小;
(2)每个线程执行MapCount函数,其中MapCount函数输出三个值:Map函数产生的中间键的个数i、Map函数产生的M-keys数组的大小j字节、Map函数产生的M-values数组的大小k字节;
(3)通过j、k计算出每个线程中M-keys数组和M-values数组的大小和其起始位置;
(4)每个线程并行执行用户自定义的Map函数,将产生的结果写入该线程对应M-keys数组、M-values数组和M-directory index数组中,M-directory index数组中的每条记录表示一条中间键记录;
(5)对中间键按照key值进行排序;
(6)按照key值将中间键进行分块,把相同key值的中间键数据交给一个GPU线程进行处理;
(7)每个线程执行ReduceCount函数,其中ReduceCount函数输出三个值:Reduce函数产生的结果记录的个数i、Reduce函数产 生的R-keys数组的大小j字节、Reduce函数产生的R-values数组的大小k字节;
(8)通过j、k计算出每个线程中R-keys数组和R-values数组的大小和其起始位置;通过i计算出每个线程中R-directory index数组的大小和其起始位置;
(9)每个线程并行执行Reduce函数,其中:
输入:M-keys数组、M-values数组、经过排序的M-directory index数组输出:resul ts数组;
操作:M-directory index数组可以表示为<mid,res>,mid为区块的编号;res表示该区块对应的直方图数组,将相同mid的res数组中对应的相同位置上元素求和,得到rdata数组;
将产生的结果写入该线程对应R-keys数组、R-values数组和R-directory index数组中,这样就可以得到每个区块对应的总直方图resul ts数组<id,rdata>,其中id表示区块的编号,rdata表示对应区块的总直方图数组。
3.根据权利要求1所述的车辆检测方法,其特征在于,所述步骤(5)区块的方向梯度直方图的归一化步骤为:
(1)调度程序将显卡内存中的输入数据input数组分为n块,每块大小为m为输入数据input数组的大小;
(2)每个线程执行MapCount函数,其中MapCount函数输出三个值:Map函数产生的中间键的个数i、Map函数产生的M-keys数组的大小j字节、Map函数产生的M-values数组的大小k字节;
(3)通过j、k计算出每个线程中M-keys数组和M-values数组的大小和其起始位置;
(4)每个线程并行执行用户自定义的Map函数,计算每个区块的方向梯度直方图,将产生的结果写入该线程对应M-keys数组、M-values数组和M-directory index数组中,得到resul ts数组<id,rdata>,id表示区块的编号,rdata表示该区块的方向梯度直方图。
CN201310306471.0A 2013-07-19 2013-07-19 一种基于gpu多核并行加速的车辆检测方法 Expired - Fee Related CN103336959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310306471.0A CN103336959B (zh) 2013-07-19 2013-07-19 一种基于gpu多核并行加速的车辆检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310306471.0A CN103336959B (zh) 2013-07-19 2013-07-19 一种基于gpu多核并行加速的车辆检测方法

Publications (2)

Publication Number Publication Date
CN103336959A CN103336959A (zh) 2013-10-02
CN103336959B true CN103336959B (zh) 2016-09-28

Family

ID=49245116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310306471.0A Expired - Fee Related CN103336959B (zh) 2013-07-19 2013-07-19 一种基于gpu多核并行加速的车辆检测方法

Country Status (1)

Country Link
CN (1) CN103336959B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103809937B (zh) * 2014-01-26 2016-09-21 北京仿真中心 一种基于gpu的通视并行处理方法
CN104299241A (zh) * 2014-10-30 2015-01-21 武汉大学 基于 Hadoop 的遥感图像显著性目标检测方法及系统
CN104809180B (zh) * 2014-12-15 2018-09-07 安徽四创电子股份有限公司 基于无监督智能学习算法的非法运营车辆识别方法
CN104519323A (zh) * 2014-12-26 2015-04-15 桂林远望智能通信科技有限公司 一种人车目标分类系统和方法
US9483706B2 (en) * 2015-01-08 2016-11-01 Linear Algebra Technologies Limited Hardware accelerator for histogram of gradients
CN107111756B (zh) * 2015-01-14 2021-11-02 萨罗尼科斯贸易与服务一人有限公司 用于检测图像中的实体的设备和方法
CN105115428B (zh) * 2015-04-24 2018-02-02 上海工程技术大学 面向辐对称电缆切面绝缘层厚度的并行图像测量方法
CN105488099B (zh) * 2015-11-03 2019-03-26 杭州全实鹰科技有限公司 一种基于相似度学习的车辆检索方法
CN107316016B (zh) * 2017-06-19 2020-06-23 桂林电子科技大学 一种基于Hadoop和监控视频流的车辆轨迹统计方法
CN107544090B (zh) * 2017-09-11 2021-08-24 中国石油大学(华东) 一种基于MapReduce的地震数据解析存储方法
CN108595211B (zh) * 2018-01-05 2021-11-26 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置
CN109063683B (zh) * 2018-08-28 2022-02-11 第六镜科技(北京)集团有限责任公司 人脸检测方法及系统
CN110389784A (zh) * 2019-07-23 2019-10-29 哈尔滨汇拓投资中心(有限合伙) 一种图像处理器环境中的编译查询处理方法
CN110929627B (zh) * 2019-11-18 2021-12-28 北京大学 基于宽模型稀疏数据集的高效gpu训练模型的图像识别方法
CN113096407B (zh) * 2021-02-27 2022-10-11 惠州华阳通用电子有限公司 一种限高通道车辆防撞方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662639A (zh) * 2012-04-10 2012-09-12 南京航空航天大学 一种基于Mapreduce的多GPU协同计算方法
CN102695040A (zh) * 2012-05-03 2012-09-26 中兴智能交通(无锡)有限公司 基于gpu的并行高清视频车辆检测方法
CN103021017A (zh) * 2012-12-04 2013-04-03 上海交通大学 基于gpu加速的三维场景重建方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662639A (zh) * 2012-04-10 2012-09-12 南京航空航天大学 一种基于Mapreduce的多GPU协同计算方法
CN102695040A (zh) * 2012-05-03 2012-09-26 中兴智能交通(无锡)有限公司 基于gpu的并行高清视频车辆检测方法
CN103021017A (zh) * 2012-12-04 2013-04-03 上海交通大学 基于gpu加速的三维场景重建方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mars: Accelerating MapReduce;Wenbin Fang等;《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》;20110430;第608-620页 *
基于视频的车辆检测与跟踪;张和颖;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215;I138-948 *

Also Published As

Publication number Publication date
CN103336959A (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
CN103336959B (zh) 一种基于gpu多核并行加速的车辆检测方法
Wang et al. 3D-CenterNet: 3D object detection network for point clouds with center estimation priority
CN109034210A (zh) 基于超特征融合与多尺度金字塔网络的目标检测方法
CN110956126B (zh) 一种联合超分辨率重建的小目标检测方法
CN106991665B (zh) 基于cuda图像融合并行计算的方法
Chen et al. GPU-accelerated real-time stereo estimation with binary neural network
CN108121945A (zh) 一种多目标检测跟踪方法、电子设备及存储介质
Li et al. Adaptive linear feature-reuse network for rapid forest fire smoke detection model
Yang et al. Visual tracking with long-short term based correlation filter
Zhang et al. A semi-supervised 3D object detection method for autonomous driving
Chen et al. Fast HOG feature computation based on CUDA
CN104616034B (zh) 一种烟雾检测方法
Song et al. Object detection based on cortex hierarchical activation in border sensitive mechanism and classification-GIou joint representation
Fan et al. Global contextual attention for pure regression object detection
Fan [Retracted] Image Recognition and Simulation Based on Distributed Artificial Intelligence
CN111223125B (zh) 一种基于Python环境下的目标运动视频跟踪方法
CN116935249A (zh) 一种无人机场景下三维特征增强的小目标检测方法
Wang et al. FPA-DNN: a forward propagation acceleration based deep neural network for ship detection
Wu et al. Research on license plate detection algorithm based on ssd
Chen et al. Application of an improved hough transform and image correction algorithm in acc
Lu et al. Video object detection based on non-local prior of spatiotemporal context
Qi et al. Improving single shot detector for industrial cracks by feature resolution analysis
Deng et al. Deep Convolutional Neural Network Algorithm Based on Im2Col and Non-Local Mean Filter
Liu et al. Research on object detection algorithm based on uva aerial image
Ma et al. Object detection with auto-learning anchor algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160928

Termination date: 20210719