CN107749065A - 基于cuda的vibe背景建模方法 - Google Patents
基于cuda的vibe背景建模方法 Download PDFInfo
- Publication number
- CN107749065A CN107749065A CN201710463013.6A CN201710463013A CN107749065A CN 107749065 A CN107749065 A CN 107749065A CN 201710463013 A CN201710463013 A CN 201710463013A CN 107749065 A CN107749065 A CN 107749065A
- Authority
- CN
- China
- Prior art keywords
- mrow
- thread
- vibe
- pixel
- background
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/215—Motion-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
基于CUDA的VIBE背景建模方法,首先对接入的视频流进行解码,而后将解码的图像帧数据导入GPU设备,在对导入至GPU设备中的图像帧数据进行滤波,利用线程为已完成滤波的每一个图像像素建立VIBE背景模型,在将当前线程块需要的VIBE背景模型参数数据写入共享内存,待智能分析算法计算完毕后,将计算结果从共享内存写入全局存储器,进而提高背景建模算法的效率;使系统面对较大数据量时能保证实时运行,且可将多余的资源分配给其它算法使用,为其它功能改善提供一定的空间。
Description
技术领域
本发明涉及模式识别与人工智能技术领域,尤其涉及一种基于 CUDA的VIBE背景建模方法。
背景技术
随着社会的进步和经济的发展,我国的摄像机监控网络的规模越 来越大,在维护公共安全方面扮演着越来越重要的作用。在现有的视 频监控系统中,主要还是依靠人工进行监测,耗费大量的人力和时间, 特别是对于规模较大的监控系统,不可能为每个摄像机安排专人进行 24小时的监控,所以在大多数情况下这些视频监控系统只是起到了 “事后查询”的作用,并不能在事故发生前进行预警和干预。因此,一 种能够自动监控视频场景,在特定事件发生时进行报警的实时智能监 控系统具有巨大的研究价值,在军事、安防、刑侦、交通控制、灾难 监测等方面具有广泛的应用前景。
实时智能监控系统所依赖的智能监控技术,一般可以分为3个层 次:位于底层的目标检测技术、位于中间层的目标跟踪技术和位于顶 层的目标识别(分类)和行为分析技术,其中目标检测技术是智能监 控技术的基础,它的性能直接影响着更上层的目标跟踪、识别以及行 为分析,背景建模算法是目标检测的关键技术,主要用来检测视频场 景中的运动前景。作为关键技术之一的背景建模算法,一方面,其准 确率和鲁棒性直接影响着上层智能分析算法的结果;另一方面,它需 要为后续智能分析算法留出足够的计算时间,其速度性能也是一项重 要的评价指标。
近年来,GPU的通用编程能力和浮点运算能力飞速发展,并且价 格低廉,为算法的加速提供了一种新的解决手段。英伟达公司针对其 GPU的特点,提出一种利用GPU进行通用计算的平台CUDA,虽然不 同型号GPU含有的流处理器(Multiprocessor)数量不同,但它们有其它 很多共同点,每个流处理器含有8个处理核心(Processor)、8192个寄 存器、16KB大小的共享内存(Shared Memory)、一定数量的全局内存 (Global Memory)、一定数量的常缓冲(Constant Cache)和纹理缓冲 (Texture Cache),全局内存比共享内存大,可以存储较多的数据,但 访问速度却较为缓慢;每个流处理器支持最多达768个活动线程 (thread),与CPU线程不同,CUDA线程可以互不干扰的并行计算,并 且较CPU线程更加轻量级,线程切换消耗更少的资源和时间,因此 如何基于CUDA技术以提升背景建模算法效率已经成为亟待解决的重 要问题。
发明内容
本发明所解决的技术问题在于提供一种基于CUDA的VIBE背景 建模方法,以解决上述背景技术中的缺点。
本发明所解决的技术问题采用以下技术方案来实现:
基于CUDA的VIBE背景建模方法,首先对接入的视频流进行解 码,而后将解码的图像帧数据导入GPU设备,再对导入至GPU设备 中的图像帧数据进行滤波,利用CUDA线程为已完成滤波的每一个图 像像素建立VIBE背景模型,将当前线程块需要的VIBE背景模型参数数据写入共享内存,待智能分析算法计算完毕后,将计算结果从共享 内存写入全局存储器,进而提高背景建模算法的效率,具体步骤:
1)模型初始化
为快速开始运动目标检测,利用第一帧图像进行瞬时初始化,在 初始化模型时充分利用图像相邻像素点之间相似的空间分布特性,对 图像中任一像素点x,从其8邻域N8(x)中随机选取N个样本用于初始 化:
M(x)={vi(y)|y∈N8(x)} (1)
式(1)中,v(x)表示取值于x点的像素值,用具有i下标的vi表 示样本的像素值,i=1,2,…N为样本的个数,VIBE仅用单帧图像初始 化背景模型,内存占用少,计算速度快,从第二帧开始即可有效检测 运动目标;
2)模型匹配
假设当前输入帧是It,像素点x处的像素值是v(x),定义以v(x)为 中心、R为半径的球体SR(v(x)),SR(v(x))表示所有与v(x)距离小于R的 点集合,用M(x)落在SR(v(x))内的样本个数#描述v(x)与背景模型 M(x)的相似度,设置给定阀值#min,若#<#min,则判定v(x)为前景, 若#>#min,则判定v(x)为背景,前景二值图F(x)可表示为:
式(3)中,表示计算v(x)与M(x)中n个样本之间的欧式距 离,表示欧氏距离小于R的个数,若小于给定阈值#min,则x点 被判定为运动前景点,否则判定为背景点;
VIBE背景建模算法根据当前图像帧像素vt(x)更新t-1时刻所建立 的背景模型Mt(x),首先将输入样本与已建立的背景模型进行相互匹 配,若判断为背景点,采用随机方式决定是否需要在该时刻进行更新, VIBE更新时从背景模型中随机选择一个样本,该样本并不一定是最早 的一个而是随机选取,然后用匹配上的新样本替换;
VIBE背景建模算法为每个像素分别建立背景模型,并独立对当前 像素进行分类,将对每个像素的VIBE背景建模算法处理过程交由 CUDA线程进行处理,连续的线程处理连续的像素,对每一帧图像而 言,CUDA实现VIBE背景建模算法的处理过程,当主机将图像数据传 到GPU设备后启动核函数进行运动前景分割,然后将前景分割图像 传回主机,之后等待主机将下一帧图像传给GPU设备,如此依次处 理每帧图像,假设基于CUDA实现的VIBE背景建模算法的核函数为 VIBE-kernel,图像宽度、高度分别为W和H,设定一个线程块处理图像的一行像素,线程块中的线程总数为M,并将这M个线程、H个 线程块分别组织成一维线性排列,则此时的核函数配置为 VIBE_kernel<<<H,M>>>;线程块中的线程按照线程在线程块中的次 序对应处理一行像素中的M个像素,当计算完M个像素后,则以M为 步长转到这一行像素中的后续像素进行处理,超出图像范围的线程则 执行空指令;
背景模型中每个样本为一个像素值,将背景模型数据存储在全局 存储器中,为降低访问全局存储器的次数,每个样本分配4字节样本 存储空间,即RGBA8:8:8:8,并在背景模型初始化时将A字节置零, 这样在访问样本数据时即可将一个样本转换为一个32位的int型数据 进行传输;样本存储空间由CUDA运行时函数分配,自动满足地址对 齐要求(至少对齐到256字节),若图像的宽度不是32的倍数,则在 一行像素的样本数据末尾填充一定的数据量,使得对应的一行像素的 像素连续个数为32的倍数;
3)模型更新
设定同一线程块中的线程在VIBE背景建模算法的同一更新阶段 使用相同随机数,若一个线程束中的线程所对应的像素被判断为背景 像素,则此线程束中所有线程都将进入VIBE背景建模算法更新阶段, 由于线程束中的线程在VIBE背景建模算法的更新阶段使用相同随机 数,故可保证线程束中的线程在VIBE背景建模算法更新过程中同时 更新或不更新、访问相同序号的样本和相对应位置的邻域像素;
这种方式得到两个有利结果:一是访问相同序号的样本和相对应 位置的邻域像素可使得线程束中的线程在访问模型数据时访问连续 的地址空间,从而满足合并访问的要求,最大限度提高访存效率;二 是由于线程束中的线程同时更新或不更新,即线程束中的线程运行在 同一路径上,从而降低了产生分支的可能性,有利于提高GPU的并 行计算效率。
在本发明中,VIBE背景建模算法的CUDA实现采用预缓存随机数, 为使得同一线程块中的线程在同一阶段使用相同随机数,首先指定线 程块中的一个线程读取缓存的随机数,存储于共享存储器中,而后通 过广播(即多个线程访问共享存储器中的同一地址,此时仅需一次即 可响应所有线程的请求)的方式传给其他的线程,在这一线程读取完 随机数后,对线程块中的线程进行同步,以使得线程块中所有线程能 够正确使用该随机数,同步操作由_syncthreads()指令完成。
有益效果:本发明基于CUDA进行VIBE背景建模,将导入至GPU 设备中的图像帧数据进行滤波,利用线程为已完成滤波的每一个图像 像素建立VIBE背景模型,在将当前线程块需要的VIBE背景模型参数 数据写入共享内存,待智能分析算法计算完毕后,将计算结果从共享 内存写入全局存储器,进而提高背景建模算法的效率,使系统面对较 大数据量时能保证实时运行,且可将多余的资源分配给其它算法使 用,为其它功能改善提供一定的空间。
附图说明
图1是CPU与GPU浮点运算能力比较示意图。
图2是本发明的较佳实施例中的二维欧式空间中像素分类示意 图。
图3是本发明的较佳实施例中的VIBE算法CUDA实现处理流程 图。
图4是本发明的较佳实施例中的线程块与图像的对应关系示意 图。
图5是本发明的较佳实施例中的线程与像素的对应关系示意图。
图6是本发明的较佳实施例中的VIBE样本数据存储方式示意图。
图7是本发明的较佳实施例中的线程束访问样本数据示意图。
图8是本发明的较佳实施例中的运动目标检测示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于 明白了解,下面结合具体图示,进一步阐述本发明。
参见图1所示基于CUDA的VIBE背景建模方法,首先对接入的 视频流进行解码,而后将解码的图像帧数据导入GPU设备,再对导 入至GPU设备中的图像帧数据进行滤波,利用CUDA线程为已完成滤 波的每一个图像像素建立VIBE背景模型,将当前线程块需要的VIBE背景模型参数数据写入共享内存,待智能分析算法计算完毕后,将计 算结果从共享内存写入全局存储器,进而提高背景建模算法的效率, 具体步骤:
1)模型初始化
为快速开始运动目标检测,利用第一帧图像进行瞬时初始化,而 由于仅采用一帧图像初始化,无法利用时间分布连续的信息,本算法 在初始化模型时充分利用图像相邻像素点之间相似的空间分布特性, 对图像中任一像素点x,从其8邻域N8(x)中随机选取N个样本用于初 始化:
M(x)={vi(y)|y∈N8(x)} (1)
式(1)中,v(x)表示取值于x点的像素值,用具有i下标的vi表 示样本的像素值,i=1,2,…N为样本的个数,VIBE仅用单帧图像初始 化背景模型,内存占用少,计算速度快,从第二帧开始即可有效检测 运动目标;
2)模型匹配
假设当前输入帧是It,像素点x处的像素值是v(x),如图2所示, 定义一个以v(x)为中心,R为半径的球体SR(v(x)),SR(v(x))表示所有与 v(x)距离小于R的点集合,用M(x)落在SR(v(x))内的样本个数#描述 v(x)与背景模型M(x)的相似度,设置给定阀值#min,若#<#min,则判 定v(x)为前景,若#>#min,则判定v(x)为背景,前景二值图F(x)可表示 为:
式(3)中,表示计算v(x)与M(x)中n个样本之间的欧式距 离,表示欧氏距离小于R的个数,若小于给定阈值#min,则x点 被判定为运动前景点,否则判定为背景点;
VIBE背景建模算法根据当前图像帧像素vt(x)更新t-1时刻所建立 的背景模型Mt(x),首先将输入样本与已建立的背景模型进行相互匹 配,若判断为背景点,采用随机方式决定是否需要在该时刻进行更新, VIBE更新时从背景模型中随机选择一个样本,该样本并不一定是最早 的一个而是随机选取,然后用匹配上的新样本替换;
VIBE背景建模算法为每个像素分别建立背景模型,并独立对当前像素进 行分类,但是VIBE背景建模算法的更新过程包含对邻域像素的样本传播过 程,故具有局部相关性;当前像素的邻域像素中已经被处理过的像素点的处 理过程可能更新当前像素背景模型中的样本,但也可能不更新当前像素背景 模型中的样本,此时当前像素可以利用它原有的背景模型对当前像素点进行 分类,即当前像素的处理过程并不依赖于其他像素的处理结果,故VIBE背景 建模算法仍然具有很高的并行度,适合采用CUDA技术进行并行化加速,将 对每个像素的VIBE背景建模算法处理过程交由CUDA线程进行处理,连续 的线程处理连续的像素;对每一帧图像而言,CUDA实现VIBE背景建模算 法的处理过程如图3所示,当主机Host将图像数据传到GPU设备后,GPU 设备启动核函数进行运动前景分割,然后将前景分割图像传回主机Host,之 后等待主机Host将下一帧图像传给GPU设备,如此依次处理每帧图像,假设 基于CUDA实现的VIBE背景建模算法的核函数为VIBE-kernel,图像宽度、 高度分别为W和H,设定一个线程块处理图像的一行像素,线程块中的线程 总数为M,并将这M个线程、H个线程块分别组织成一维线性排列,则此时 的核函数配置为VIBE_kernel<<<H,M>>>;线程块、线程与它们所处理的数据 的对应关系如图4和图5所示,图5中,线程块中的线程按照线程在线程块 中的次序对应处理一行像素中的M个像素,当计算完M个像素后,则以M为步长转到这一行像素中的后续像素进行处理,超出图像范围的线程则执行空 指令;
VIBE背景建模算法的背景模型中每个样本为一个像素值,将背景 模型数据存储在全局存储器中,以3通道RGB(8:8:8)彩色图像为例, 每个样本的数据量为24bits,当VIBE背景建模算法需要访问样本数据 时,每个样本需分3次读取,每次读一个字节;为降低访问全局存储 器的次数,为每个样本分配4字节存储空间,即RGBA8:8:8:8,浪费 其中的一个字节,这样在访问样本数据时,即可将一个样本转换为一 个32位的int型数据进行传输,VIBE背景建模算法的每个像素样本 数据按照图6所示的方式进行样本存储,并在背景模型初始化时将A 字节置零;
样本存储空间由CUDA运行时函数分配,自动满足地址对齐要求(至少 对齐到256字节),若图像的宽度不是32的倍数,则在一行像素的样本数据 末尾填充一定的数据量,使得对应的一行像素的像素连续个数为32的倍数, 即使得一行像素任一序号样本的总数据量为128字节的倍数,这样做的目的 是使得每行像素第一个像素的每个样本都对齐到128字节;按照存储VIBE背 景模型的样本后,以线程束中的线程更新对应像素自身样本数据为例,并假 定线程束中的所有线程访问同一序号的样本,则此时的访存方式如所示,线 程束中的线程同时访问样本存储空间,线程访问样本数据时,一个线程一次 访问的数据长度为4个字节,因此,按照访问方式,一个线程束中线程访问 的样本数据正好位于一个128字节对齐的数据段内,能够在一次存储器事务 中完成数据传输,从而达到最高的访问效率;
当然,一个线程束中的线程并不一定全部需要访问样本数据,因 为当像素被判为前景时,并不需要更新背景模型;但GPU设备是以 一定的对齐段进行数据传输,因此如果某一对齐段中的某些字节被访 问,则这一对齐段中的数据均被传输,多访问的数据会被丢弃;例如, 对于2.X计算能力的硬件,如果全局存储器中的数据被同时缓存到L1 缓存和L2缓存,则全局存储器的访问使用128字节的存储器事务, 只要一个对齐的128字节段中的地址被访问,则会产生128字节的数 据传输,由上分析可得,应当尽可能使得线程束中的线程访问的数据 位于一个适当尺寸的对齐段内,从而能够在一次存储器事务完成数据 传输,最大限度提高访存效率,并且尽可能减少无用数据的传输,从 而提高有效带宽;
3)模型更新
由于VIBE更新像素样本的过程釆用随机抽样,相邻像素间在更新自身样 本和向邻域像素传播样本的过程中并不一定选择相同序号的样本或相对应位 置的邻域像素,且不一定同时更新,因此即使将样本按如所示的方式进行存 储,也无法保证以较大概率使得相邻线程在访问样本数据时满足合并访问的 要求;为此,本实施例设定同一线程块中的线程在VIBE算法的同一更新阶段 使用相同的随机数,若一个线程束中的线程所对应的像素被判断为背景像素, 则此线程束中所有线程都将进入VIBE背景建模算法更新阶段,由于线程束中 的线程在VIBE背景建模算法的更新阶段使用相同随机数,故可保证线程束中 的线程在VIBE背景建模算法更新过程中同时更新或不更新、访问相同序号的 样本和相对应位置的邻域像素;
这种方式得到两个有利结果:(1)根据所示的样本存储方式,访问相同 序号的样本和相对应位置的邻域像素可使得线程束中的线程在访问模型数据 时访问连续的地址空间,从而满足合并访问的要求,最大限度提高访存效率; (2)由于线程束中的线程同时更新或不更新,即线程束中的线程运行在同一 路径上,从而降低了产生分支的可能性,有利于提高GPU的并行计算效率。
当然,一个线程束中的线程仍然存在产生分支的可能性,因为线 程束中的某些线程对应的像素在当前时刻可能被分类为背景,而线程 束中的其他线程所对应的像素被分类为前景,但是这种情况无法进行 优化;更新阶段采用同一线程块中的线程使用相同随机数,从同一帧 图像的空间上易降低随机性,但对于单个像素,其更新过程仍然是随 机,并不会对前景目标分割效果产生明显影响,对于超出图像边界的 访问,则设定相对应的线程执行空操作。
在本实施例中,VIBE背景建模算法的CUDA实现采用预缓存随机 数,为使得同一线程块中的线程在同一阶段使用相同随机数,首先指 定线程块中的一个线程读取缓存的随机数,存储于共享存储器中,而 后通过广播(即多个线程访问共享存储器中的同一地址,此时仅需一 次即可响应所有线程的请求)的方式传给其他的线程,在这一线程读 取完随机数后,对线程块中的线程进行同步,以使得线程块中所有线 程能够正确使用该随机数,同步操作由_syncthreads()指令完成。
在本实施例中,利用VIBE背景建模方法进行运动目标检测结果 如图8,左图采用VIBE背景建模算法做的背景建模,检测出前景,即 运动目标,右图是原始视频,可看出利用该背景建模算法可过滤掉河 流中的水波纹,准确检测出运动目标;另外,在利用CUDA并行化后, 处理视频的速度明显加快,1个小时1080P的高清视频只需要3分钟 便可处理完成。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本 行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施 例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和 范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落 入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (4)
1.基于CUDA的VIBE背景建模方法,其特征在于,首先对接入的视频流进行解码,而后将解码的图像帧数据导入GPU设备,再对导入至GPU设备中的图像帧数据进行滤波,利用CUDA线程为已完成滤波的每一个图像像素建立VIBE背景模型,并将当前线程块需要的VIBE背景模型参数数据写入共享内存,待智能分析算法计算完毕后,将计算结果从共享内存写入全局存储器,进而提高背景建模算法的效率,具体步骤:
1)模型初始化
为快速开始运动目标检测,利用第一帧图像进行瞬时初始化,在初始化模型时充分利用图像相邻像素点之间相似的空间分布特性,对图像中任一像素点x,从其8邻域N8(x)中随机选取N个样本用于初始化:
M(x)={vi(y)|y∈N8(x)} (1)
式(1)中,v(x)表示取值于x点的像素值,用具有i下标的vi表示样本的像素值,i=1,2,…N为样本的个数,从第二帧开始即可有效检测运动目标;
2)模型匹配
假设当前输入帧是It,像素点x处的像素值是v(x),定义以v(x)为中心、R为半径的球体SR(v(x)),SR(v(x))表示所有与v(x)距离小于R的点集合,用M(x)落在SR(v(x))内的样本个数#描述v(x)与背景模型M(x)的相似度,设置给定阀值#min,若#<#min,则判定v(x)为前景,若#>#min,则判定v(x)为背景,前景二值图F(x)可表示为:
<mrow>
<mi>F</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mo>#</mo>
<mo>{</mo>
<mi>M</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>&cap;</mo>
<msub>
<mi>S</mi>
<mi>R</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>v</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>)</mo>
<mo>}</mo>
<mo><</mo>
<msub>
<mo>#</mo>
<mrow>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>e</mi>
<mi>l</mi>
<mi>s</mi>
<mi>e</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mo>#</mo>
<mo>{</mo>
<msub>
<mi>v</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>&cap;</mo>
<msub>
<mi>S</mi>
<mi>R</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>v</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
<mo>)</mo>
</mrow>
<mo>}</mo>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mi> </mi>
<mi>d</mi>
<mi>i</mi>
<mi>s</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>v</mi>
<mi>i</mi>
</msub>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mi>v</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
<mo>)</mo>
<mo><</mo>
<mi>R</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mrow>
<mi>e</mi>
<mi>l</mi>
<mi>s</mi>
<mi>e</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
式(3)中,表示计算v(x)与M(x)中n个样本之间的欧式距离,表示欧氏距离小于R的个数,若小于给定阈值#min,则x点被判定为运动前景点,否则判定为背景点;
VIBE背景建模算法根据当前图像帧像素vt(x)更新t-1时刻所建立的背景模型Mt(x),首先将输入样本与已建立的背景模型进行相互匹配,若判断为背景点,采用随机方式决定是否需要在该时刻进行更新,VIBE更新时从背景模型中随机选择一个样本,然后用匹配上的新样本替换;
为每个像素分别建立背景模型,并独立对当前像素进行分类,而后将对每个像素的VIBE背景建模算法处理过程交由CUDA线程进行处理;背景模型中每个样本为一个像素值,背景模型数据存储在全局存储器中,为降低访问全局存储器的次数,每个样本分配4字节样本存储空间,即RGBA8:8:8:8,并在背景模型初始化时将A字节置零;样本存储空间由CUDA运行时函数分配,自动满足地址对齐要求,若图像的宽度不是32的倍数,则在一行像素的样本数据末尾填充一定的数据量,使得对应的一行像素的像素连续个数为32的倍数;
3)模型更新
设定同一线程块中的线程在VIBE背景建模算法的同一更新阶段使用相同随机数,若一个线程束中的线程所对应的像素被判断为背景像素,则此线程束中所有线程都将进入VIBE背景建模算法更新阶段。
2.根据权利要求1所述的基于CUDA的VIBE背景建模方法,其特征在于,CUDA实现VIBE背景建模算法的处理过程为:当主机将图像数据传到GPU设备后启动核函数进行运动前景分割,然后将前景分割图像传回主机,之后等待主机将下一帧图像传给GPU设备,如此依次处理每帧图像,假设基于CUDA实现的VIBE背景建模算法的核函数为VIBE-kernel,图像宽度、高度分别为W和H,设定一个线程块处理图像的一行像素,线程块中的线程总数为M,并将这M个线程、H个线程块分别组织成一维线性排列,则此时的核函数配置为VIBE_kernel<<<H,M>>>;线程块中的线程按照线程在线程块中的次序对应处理一行像素中的M个像素,当计算完M个像素后,则以M为步长转到这一行像素中的后续像素进行处理。
3.根据权利要求2所述的基于CUDA的VIBE背景建模方法,其特征在于,对超出图像范围的线程则执行空指令。
4.根据权利要求1所述的基于CUDA的VIBE背景建模方法,其特征在于,VIBE背景建模算法的CUDA实现采用预缓存随机数,首先指定线程块中的一个线程读取缓存的随机数,存储于共享存储器中,而后通过广播的方式传给其他的线程,在这一线程读取完随机数后,对线程块中的线程进行同步,以使得线程块中所有线程能够正确使用该随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710463013.6A CN107749065A (zh) | 2017-06-19 | 2017-06-19 | 基于cuda的vibe背景建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710463013.6A CN107749065A (zh) | 2017-06-19 | 2017-06-19 | 基于cuda的vibe背景建模方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107749065A true CN107749065A (zh) | 2018-03-02 |
Family
ID=61254805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710463013.6A Pending CN107749065A (zh) | 2017-06-19 | 2017-06-19 | 基于cuda的vibe背景建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107749065A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765829A (zh) * | 2018-07-06 | 2018-11-06 | 江西洪都航空工业集团有限责任公司 | 一种基于智能视频分析的市政物品失窃检测与报警方法 |
CN111784736A (zh) * | 2020-06-10 | 2020-10-16 | 中国科学院国家空间科学中心 | 基于单像元并行计算的运动小目标实时检测系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882311A (zh) * | 2010-06-08 | 2010-11-10 | 中国科学院自动化研究所 | 基于cuda技术的背景建模加速方法 |
US20160139671A1 (en) * | 2013-01-15 | 2016-05-19 | Samsung Electronics Co., Ltd. | Method for providing haptic effect in electronic device, machine-readable storage medium, and electronic device |
CN106157332A (zh) * | 2016-07-07 | 2016-11-23 | 合肥工业大学 | 一种基于ViBe算法的运动检测优化方法 |
CN106358003A (zh) * | 2016-08-31 | 2017-01-25 | 华中科技大学 | 一种基于线程级流水线的视频分析加速方法 |
-
2017
- 2017-06-19 CN CN201710463013.6A patent/CN107749065A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882311A (zh) * | 2010-06-08 | 2010-11-10 | 中国科学院自动化研究所 | 基于cuda技术的背景建模加速方法 |
US20160139671A1 (en) * | 2013-01-15 | 2016-05-19 | Samsung Electronics Co., Ltd. | Method for providing haptic effect in electronic device, machine-readable storage medium, and electronic device |
CN106157332A (zh) * | 2016-07-07 | 2016-11-23 | 合肥工业大学 | 一种基于ViBe算法的运动检测优化方法 |
CN106358003A (zh) * | 2016-08-31 | 2017-01-25 | 华中科技大学 | 一种基于线程级流水线的视频分析加速方法 |
Non-Patent Citations (1)
Title |
---|
谢尊中: "基于CUDA的实时智能视频分析算法研究及应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765829A (zh) * | 2018-07-06 | 2018-11-06 | 江西洪都航空工业集团有限责任公司 | 一种基于智能视频分析的市政物品失窃检测与报警方法 |
CN111784736A (zh) * | 2020-06-10 | 2020-10-16 | 中国科学院国家空间科学中心 | 基于单像元并行计算的运动小目标实时检测系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110537194B (zh) | 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法 | |
US10977854B2 (en) | Data volume sculptor for deep learning acceleration | |
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
US20210334234A1 (en) | Distributed graphics processor unit architecture | |
CN106709503A (zh) | 一种基于密度的大型空间数据聚类算法k‑dbscan | |
CN113012023A (zh) | 基于众核处理器的视频分析加速方法及系统 | |
CN112949578B (zh) | 车灯状态识别方法、装置、设备及存储介质 | |
CN110298213A (zh) | 视频分析系统和方法 | |
CN114139684A (zh) | 图神经网络生成方法、装置、系统、介质以及电子设备 | |
CN116246062A (zh) | 使用图像/文本对执行语义分割训练 | |
CN111626311A (zh) | 一种异构图数据处理方法和装置 | |
CN114554279B (zh) | 基于远程分析的触发器响应剪辑提取 | |
AU2017288044B2 (en) | Method and system for flexible, high performance structured data processing | |
CN107749065A (zh) | 基于cuda的vibe背景建模方法 | |
CN114741732A (zh) | 一种基于隐私数据保护的智能网联汽车数据训练方法、电子设备及计算机可读存储介质 | |
CN112235598B (zh) | 一种视频结构化处理方法、装置及终端设备 | |
CN114118410A (zh) | 图结构的节点特征提取方法、设备及存储介质 | |
Qu et al. | Lightweight oriented detector for insulators in drone aerial images | |
Zhou et al. | Vehicle detection in remote sensing image based on machine vision | |
Li et al. | Pillar‐based 3D object detection from point cloud with multiattention mechanism | |
CN112000611A (zh) | 图数据划分方法、处理方法及电子设备 | |
CN111581443A (zh) | 分布式图计算方法、终端、系统及存储介质 | |
WO2023137916A1 (zh) | 基于图神经网络的图像场景分类方法及装置 | |
CN114900435B (zh) | 一种连接关系预测方法及相关设备 | |
CN115359665A (zh) | 基于射频视频一体机的多通道违章车辆记录方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180302 |
|
RJ01 | Rejection of invention patent application after publication |