当前位置: 首页 > 专利查询>东北大学专利>正文

一种数字图像分割及并行化方法技术

技术编号:22365126 阅读:21 留言:0更新日期:2019-10-23 05:01
本发明专利技术提供一种数字图像分割及并行化方法,包括:读取图像数据;计算能量矩阵;调用PushKernel()核函数;调用PullKernel()函数,重复调用m次PullKernel()函数后调用RelabelKernel()核函数,读取结点高度值;根据迭代层数k判断结点高度是否可以重标记,若满足条件,则更新高度值,将结点状态更新到Active状态。本发明专利技术的技术方案针对GPU的特性,启用常量存储器,达到提升整体带宽的作用。利用存储器的特性,进行任务的分配,以达到存储器大小和并行线程数量完全匹配,改进效率。对于图像分割的第二步,将原有的压入操作拆解成两步,分为Push和Pull两步操作,更利于后续的操作;引入新的重标记过程,利用广度优先遍历的方式,全局的对所有结点的高度进行重标记,减少算法的整体迭代次数,显著提高算法运行效率。

【技术实现步骤摘要】
一种数字图像分割及并行化方法
本专利技术涉及数字图像处理
,具体而言,尤其涉及一种数字图像分割及并行化方法。
技术介绍
图像分割是将图像分割成若干个特定的、具有不同意义的区域,并对感兴趣的目标进行提取的过程。在实际的应用中,一般用户只会对图像的某些特定区域感兴趣,如提取车辆的车牌号实现车辆定位和实时监控等。为了达到以上目的,就需要通过图像分割获取感兴趣区域,然后进行后续的识别、分析、理解工作。随着社会的发展,图像采集设备能够采集到的图像质量得到较大幅度的提高,人们对于图像处理的需求和期望也相应的随之增高,特别是对处理的速度有了更高的要求。多年来,图像分割一直都是图像处理领域的焦点和重点内容,成百上千种的图像分割算法已被人们相继提出。但多年的研究工作过后,也没能得出一种通用的图像分割理论,提出的分割算法往往针对某种特定的问题,并没有一种适用于各类图像。
技术实现思路
根据上述提出的技术问题,而提供一种数字图像分割及并行化方法。本专利技术在基于图论的图像分割算法的基础上,针对现有算法运行速度慢的缺陷,对算法的两步进行改进,并利用并行化的思想对算法流程进行设计与实现,达到提高算法运行效率的目的。本专利技术采用的技术手段如下:一种数字图像分割及并行化方法,包括:步骤S1:读取图像数据;步骤S2:计算能量矩阵;步骤S3:将边的权值顶点存放在全局内存中,将结点状态信息存在常量内存中,将结点的高度信息存在纹理内存中;步骤S4:将边的权值信息和结点的超额流从全局内存读入共享内存,调用PushKernel()核函数,从纹理内存中读取当前结点和周围邻居结点的高度信息;从常量内存中获取当前结点及邻接半个线程束中的结点状态信息;从以上获取的高度信息以及结点状态信息中判断当前结点是否能像邻居压入超额流,如果能,则将压入的超额流量保持在全局内存中;步骤S5:调用PullKernel()函数,读取步骤S4中保持在全局内存中的数据,判断当前结点是否与该数据相关联,即判断是否需要更新当前结点的超额流,如果是,则修改该结点的超额流;步骤S6:重复m次步骤S5后,调用RelabelKernel()核函数,RelabelKernel从纹理内存中读取到当前结点及其邻居结点的高度值,根据当前迭代层数k判断当前结点高度是否可以重标记,如果可以,则更新纹理内存中的高度值,并将结点状态更新到Active状态。进一步地,所述步骤S2中计算能量矩阵的具体过程如下:步骤S21:将步骤S1中读取到的图像数据从CPU模式拷贝到GPU下;步骤S22:根据GPU的特性,同时对所有的像素进行相同的操作,且计算所有像素点的边界项,初始化相邻像素点q与p构成的边,并依据公式计算B{p·q};步骤S23:计算区域项,如果像素点pi为前景,则初始化边(s,pi),并将权值设定为最大值K;如果像素点pi为背景,则初始化边(pi,t),并将权值设定为最大值K;其他像素点则比较R'p(0)与R'p(1)的大小,取其中较大者,计算对应的λR'p(1);步骤S24:将数据从GPU拷贝回CPU,得到能量矩阵。进一步地,步骤S23中计算的区域项,其公式如下:上式中,μ为提出的一个新的系数来中和像素点p属于前景的概率Pobj与属于背景的概率Pbkg,lp为像素点p分割后的标签,则图像分割的最终结果可以表示为L={l1,l2,...lp,...},R'(L)为改进后的区域性计算方式,R'p(lp)为给像素点p分配标签lp的惩罚,即区域能量,P为像素点集合,T为背景像素集,S为前景像素集。进一步地,所述权值的关系表如下:其中,前景种子点为和背景种子点为在交互时手动注入。较现有技术相比,本专利技术具有以下优点:1、本专利技术提供的数字图像分割及并行化方法,通过对图论的图像分割算法的两步进行改进,并利用并行化的思想对算法进行设计,达到提升算法运行效率的目的。2、本专利技术提供的数字图像分割及并行化方法,针对GPU的特性,启用常量存储器,达到提升整体带宽的作用。利用存储器的特性,进行任务的分配,以达到存储器大小和并行线程数量完全匹配,改进效率。3、本专利技术提供的数字图像分割及并行化方法,对于图像分割的第二步,将原有的压入操作拆解成两步,分为Push和Pull两步操作,更利于后续的操作;4、本专利技术提供的数字图像分割及并行化方法,引入新的重标记过程,利用广度优先遍历的方式,全局的对所有结点的高度进行重标记,减少算法的整体迭代次数,显著提高算法运行效率。基于上述理由本专利技术可在数字图像处理等领域广泛推广。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术方法流程图。图2为本专利技术实施例提供的Push和Pull操作图解。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例如图1所示,本专利技术提供了一种数字图像分割及并行化方法,包括:步骤S1:读取图像数据;步骤S2:计算能量矩阵;步骤S2中计算能量矩阵的具体过程如下:步骤S21:将步骤S1中读取到的图像数据从CPU模式拷贝到GPU下;步骤S22:根据GPU的特性,同时对所有的像素进行相同的操作,且计算所有像素点的边界项其中初始化相邻像素点q与p构成的边,并依据公式计算B{p·q};用来决定相邻结点之间的n-link边的权值:步骤S23:计算区域项,如果像素点pi为前景,则初始化边(s,pi),并将权值设定为最大值K;如果像素点pi为背景,则初始化边(pi,t),并将权值设定为最大值K;其他像素点则比较R'p(0)与R'p(1)的大小,取其中较大者,计算对应的λR'p(1);具体的,步骤S23中计算的区域项,其公式如下:上式中,μ为提出的一个新的系数来中和像素点p属于前景的概率Pobj与属于背景的概率Pbkg,lp为像素点p分割后的标签,则图像分割的最终结果可以表示为L={l1,l2,...lp,...},R'(L)为改进后的区域性计算方式,R'p(lp)为给像素点p分配标签lp的惩罚,即区域能量,P为像素点集合,T为背景像素集,S为前景像素集。权值的关系表如下:其中,前景种子点为和背景种本文档来自技高网
...

【技术保护点】
1.一种数字图像分割及并行化方法,其特征在于,包括:步骤S1:读取图像数据;步骤S2:计算能量矩阵;步骤S3:将边的权值顶点存放在全局内存中,将结点状态信息存在常量内存中,将结点的高度信息存在纹理内存中;步骤S4:将边的权值信息和结点的超额流从全局内存读入共享内存,调用PushKernel()核函数,从纹理内存中读取当前结点和周围邻居结点的高度信息;从常量内存中获取当前结点及邻接半个线程束中的结点状态信息;从以上获取的高度信息以及结点状态信息中判断当前结点是否能像邻居压入超额流,如果能,则将压入的超额流量保持在全局内存中;步骤S5:调用PullKernel()函数,读取步骤S4中保持在全局内存中的数据,判断当前结点是否与该数据相关联,即判断是否需要更新当前结点的超额流,如果是,则修改该结点的超额流;步骤S6:重复m次步骤S5后,调用RelabelKernel()核函数,RelabelKernel从纹理内存中读取到当前结点及其邻居结点的高度值,根据当前迭代层数k判断当前结点高度是否可以重标记,如果可以,则更新纹理内存中的高度值,并将结点状态更新到Active状态。

【技术特征摘要】
1.一种数字图像分割及并行化方法,其特征在于,包括:步骤S1:读取图像数据;步骤S2:计算能量矩阵;步骤S3:将边的权值顶点存放在全局内存中,将结点状态信息存在常量内存中,将结点的高度信息存在纹理内存中;步骤S4:将边的权值信息和结点的超额流从全局内存读入共享内存,调用PushKernel()核函数,从纹理内存中读取当前结点和周围邻居结点的高度信息;从常量内存中获取当前结点及邻接半个线程束中的结点状态信息;从以上获取的高度信息以及结点状态信息中判断当前结点是否能像邻居压入超额流,如果能,则将压入的超额流量保持在全局内存中;步骤S5:调用PullKernel()函数,读取步骤S4中保持在全局内存中的数据,判断当前结点是否与该数据相关联,即判断是否需要更新当前结点的超额流,如果是,则修改该结点的超额流;步骤S6:重复m次步骤S5后,调用RelabelKernel()核函数,RelabelKernel从纹理内存中读取到当前结点及其邻居结点的高度值,根据当前迭代层数k判断当前结点高度是否可以重标记,如果可以,则更新纹理内存中的高度值,并将结点状态更新到Active状态。2.根据权利要求1所述的数字图像分割及并行化方法,其特征在于,所述步骤S2中计算能量矩阵的具体过程如下:步骤S21...

【专利技术属性】
技术研发人员:王超张赛赛李佳霖李丹程王莹于海
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1