CN110363779B - 一种数字图像分割及并行化方法 - Google Patents
一种数字图像分割及并行化方法 Download PDFInfo
- Publication number
- CN110363779B CN110363779B CN201910649115.6A CN201910649115A CN110363779B CN 110363779 B CN110363779 B CN 110363779B CN 201910649115 A CN201910649115 A CN 201910649115A CN 110363779 B CN110363779 B CN 110363779B
- Authority
- CN
- China
- Prior art keywords
- node
- memory
- image segmentation
- calculating
- reading
- 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.)
- Active
Links
Images
Classifications
-
- 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/11—Region-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/194—Segmentation; Edge detection involving foreground-background segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种数字图像分割及并行化方法,包括:读取图像数据;计算能量矩阵;调用PushKernel()核函数;调用PullKernel()函数,重复调用m次PullKernel()函数后调用RelabelKernel()核函数,读取结点高度值;根据迭代层数k判断结点高度是否可以重标记,若满足条件,则更新高度值,将结点状态更新到Active状态。本发明的技术方案针对GPU的特性,启用常量存储器,达到提升整体带宽的作用。利用存储器的特性,进行任务的分配,以达到存储器大小和并行线程数量完全匹配,改进效率。对于图像分割的第二步,将原有的压入操作拆解成两步,分为Push和Pull两步操作,更利于后续的操作;引入新的重标记过程,利用广度优先遍历的方式,全局的对所有结点的高度进行重标记,减少算法的整体迭代次数,显著提高算法运行效率。
Description
技术领域
本发明涉及数字图像处理技术领域,具体而言,尤其涉及一种数字图像分割及并行化方法。
背景技术
图像分割是将图像分割成若干个特定的、具有不同意义的区域,并对感兴趣的目标进行提取的过程。在实际的应用中,一般用户只会对图像的某些特定区域感兴趣,如提取车辆的车牌号实现车辆定位和实时监控等。为了达到以上目的,就需要通过图像分割获取感兴趣区域,然后进行后续的识别、分析、理解工作。随着社会的发展,图像采集设备能够采集到的图像质量得到较大幅度的提高,人们对于图像处理的需求和期望也相应的随之增高,特别是对处理的速度有了更高的要求。
多年来,图像分割一直都是图像处理领域的焦点和重点内容,成百上千种的图像分割算法已被人们相继提出。但多年的研究工作过后,也没能得出一种通用的图像分割理论,提出的分割算法往往针对某种特定的问题,并没有一种适用于各类图像。
发明内容
根据上述提出的技术问题,而提供一种数字图像分割及并行化方法。本发明在基于图论的图像分割算法的基础上,针对现有算法运行速度慢的缺陷,对算法的两步进行改进,并利用并行化的思想对算法流程进行设计与实现,达到提高算法运行效率的目的。
本发明采用的技术手段如下:
一种数字图像分割及并行化方法,包括:
步骤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下;
步骤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为前景像素集。
权值的关系表如下:
步骤S24:将数据从GPU拷贝回CPU,得到能量矩阵。
步骤S3:将边的权值顶点存放在全局内存中,将结点状态信息存在常量内存中,将结点的高度信息存在纹理内存中;
为了并行的进行压入操作,将整个压入操作分割成两个过程,分别体现为PushKernel()和PullKernel(),其中PullKernel()将超额流保存在一个全局数组中。具体的:
步骤S4:将边的权值信息和结点的超额流从全局内存读入共享内存,调用PushKernel()核函数,从纹理内存中读取当前结点和周围邻居结点的高度信息;从常量内存中获取当前结点及邻接半个线程束中的结点状态信息;从以上获取的高度信息以及结点状态信息中判断当前结点是否能像邻居压入超额流,如果能,则将压入的超额流量保持在全局内存中;
本实施例中,调用PushKernel()核函数,对图中每一个结点u的高度信息和超额流信息从全局内存中读取到共享内存中,进行同步保证所有线程都加载完,判断u的每一个邻居的高度是否满足压入条件,如果满足,则将超额流记录,并保存到一个全局的内存F中,以供下一阶段使用;
步骤S5:Pull操作的作用是对结点的信息进行更改。调用PullKernel()函数,读取步骤S4中保持在全局内存中的数据,判断当前结点是否与该数据相关联,即判断是否需要更新当前结点的超额流,如果是,则修改该结点的超额流;
本实施例中,调用PullKernel()函数,对图中的每一个结点u,首先从全局内存F中读取到它的邻居给它压入的超额流,然后通过累加这些值得到结点u新的超额流e(u);如图2所示,为Push和Pull操作的图解,Push使每个结点向它周围的结点发送超额流,Pull使每个结点从它周围的结点获得超额流。并行的重标记操作是从全局的角度对所有结点的高度重新进行校正,以广度优先遍历的思想,将汇点的高度设为0。每次迭代,该节点的高度等于当前结点所有邻居的结点高度的最小值加一,最终完成整个迭代的过程。
步骤S6:重复m次步骤S5后,调用RelabelKernel()核函数,RelabelKernel从纹理内存中读取到当前结点及其邻居结点的高度值,根据当前迭代层数k判断当前结点高度是否可以重标记,如果可以,则更新纹理内存中的高度值,并将结点状态更新到Active状态。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (4)
1.一种数字图像分割及并行化方法,其特征在于,包括:
步骤S1:读取图像数据;
步骤S2:计算能量矩阵;
步骤S3:将边的权值顶点存放在全局内存中,将结点状态信息存在常量内存中,将结点的高度信息存在纹理内存中;
步骤S4:将边的权值信息和结点的超额流从全局内存读入共享内存,调用PushKernel()核函数,从纹理内存中读取当前结点和周围邻居结点的高度信息;从常量内存中获取当前结点及邻接半个线程束中的结点状态信息;从以上获取的高度信息以及结点状态信息中判断当前结点是否能像邻居压入超额流,如果能,则将压入的超额流量保持在全局内存中;
步骤S5:调用PullKernel()函数,读取步骤S4中保持在全局内存中的数据,判断当前结点是否与该数据相关联,即判断是否需要更新当前结点的超额流,如果是,则修改该结点的超额流;
步骤S6:重复m次步骤S5后,调用RelabelKernel()核函数,RelabelKernel从纹理内存中读取到当前结点及其邻居结点的高度值,根据当前迭代层数k判断当前结点高度是否可以重标记,如果可以,则更新纹理内存中的高度值,并将结点状态更新到Active状态。
2.根据权利要求1所述的数字图像分割及并行化方法,其特征在于,所述步骤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,得到能量矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910649115.6A CN110363779B (zh) | 2019-07-18 | 2019-07-18 | 一种数字图像分割及并行化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910649115.6A CN110363779B (zh) | 2019-07-18 | 2019-07-18 | 一种数字图像分割及并行化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110363779A CN110363779A (zh) | 2019-10-22 |
CN110363779B true CN110363779B (zh) | 2022-11-25 |
Family
ID=68221223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910649115.6A Active CN110363779B (zh) | 2019-07-18 | 2019-07-18 | 一种数字图像分割及并行化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110363779B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013189101A1 (zh) * | 2012-06-20 | 2013-12-27 | 浙江大学 | 一种基于单幅图像的头发建模和肖像编辑方法 |
CN104463843A (zh) * | 2014-10-31 | 2015-03-25 | 南京邮电大学 | 安卓***的交互式图像分割方法 |
CN105701832A (zh) * | 2016-01-19 | 2016-06-22 | 苏州大学 | 三维图割算法结合随机游走算法的pet‐ct肺肿瘤分割方法 |
WO2016101279A1 (zh) * | 2014-12-26 | 2016-06-30 | 中国海洋大学 | 一种合成孔径雷达图像舰船目标快速检测方法 |
-
2019
- 2019-07-18 CN CN201910649115.6A patent/CN110363779B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013189101A1 (zh) * | 2012-06-20 | 2013-12-27 | 浙江大学 | 一种基于单幅图像的头发建模和肖像编辑方法 |
CN104463843A (zh) * | 2014-10-31 | 2015-03-25 | 南京邮电大学 | 安卓***的交互式图像分割方法 |
WO2016101279A1 (zh) * | 2014-12-26 | 2016-06-30 | 中国海洋大学 | 一种合成孔径雷达图像舰船目标快速检测方法 |
CN105701832A (zh) * | 2016-01-19 | 2016-06-22 | 苏州大学 | 三维图割算法结合随机游走算法的pet‐ct肺肿瘤分割方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110363779A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110866896B (zh) | 基于k-means与水平集超像素分割的图像显著性目标检测方法 | |
JP3740065B2 (ja) | 領域分割された映像の領域特徴値整合に基づいた客体抽出装置およびその方法 | |
Carreira-Perpinan | Acceleration strategies for Gaussian mean-shift image segmentation | |
CN112163634A (zh) | 实例分割模型样本筛选方法、装置、计算机设备及介质 | |
CN108629783B (zh) | 基于图像特征密度峰值搜索的图像分割方法、***及介质 | |
JP5117670B2 (ja) | 画像及び画像群を表現する方法、画像又は画像群を比較する方法、画像又は画像群を検索する方法、各方法を実行する装置およびシステム、プログラム、及びコンピュータ読み取り可能な記憶媒体 | |
JP6100300B2 (ja) | 階層グラフに基づく画像マッティングおよび前景推定の方法およびシステム | |
CN108491856B (zh) | 一种基于多尺度特征卷积神经网络的图像场景分类方法 | |
JP4098021B2 (ja) | シーン識別方法および装置ならびにプログラム | |
US8983199B2 (en) | Apparatus and method for generating image feature data | |
CN113128478B (zh) | 模型训练方法、行人分析方法、装置、设备及存储介质 | |
CN109409376B (zh) | 针对固废对象的图像分割方法、计算机终端及存储介质 | |
Xia et al. | Knowledge distillation based degradation estimation for blind super-resolution | |
JP2004350283A (ja) | 圧縮ビデオから3次元オブジェクトをセグメント化する方法 | |
US20220392019A1 (en) | Method for denoising videos and electronic device therefor | |
CN116089883B (zh) | 用于提高已有类别增量学习新旧类别区分度的训练方法 | |
CN110751191A (zh) | 一种图像的分类方法及*** | |
CN111274964B (zh) | 一种基于无人机视觉显著性分析水面污染物的检测方法 | |
Mseddi et al. | Real-time scene background initialization based on spatio-temporal neighborhood exploration | |
CN110363779B (zh) | 一种数字图像分割及并行化方法 | |
US8478032B2 (en) | Segmenting an image | |
Liu et al. | Segmentation by weighted aggregation and perceptual hash for pedestrian detection | |
CN109299295B (zh) | 蓝印花布图像数据库搜索方法 | |
CN102298699A (zh) | 图像表示和分析方法 | |
CN108765428A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |