首页> 中国专利> 图像分割方法和图像集分割方法

图像分割方法和图像集分割方法

摘要

本发明提供了一种图像分割方法,包括如下步骤:CPU读取一图像,初始化图像的参数,分配CPU和GPU所需要的内存空间,并将图像传给GPU;GPU根据均值漂移算法对图像进行计算,以获得最初RGB颜色信息和最初坐标信息,并将其传回CPU;CPU根据最初RGB颜色信息和最初坐标信息对图像的像素进行聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU;GPU根据模糊C均值算法对区域的参数进行计算,以获得图像的最终分割结果,并将其传送到CPU;CPU输出图像的最终分割结果。本方法具有通用性好、分割速度快、可将图像分割成用户需要的区域数的特点。

著录项

  • 公开/公告号CN102314688A

    专利类型发明专利

  • 公开/公告日2012-01-11

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201110267364.2

  • 发明设计人 金海;郑然;汪聪;冯晓文;

    申请日2011-09-09

  • 分类号G06T7/00;

  • 代理机构华中科技大学专利中心;

  • 代理人朱仁玲

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-18 04:04:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-11-09

    未缴年费专利权终止 IPC(主分类):G06T7/00 授权公告日:20130123 终止日期:20150909 申请日:20110909

    专利权的终止

  • 2013-01-23

    授权

    授权

  • 2012-03-07

    实质审查的生效 IPC(主分类):G06T7/00 申请日:20110909

    实质审查的生效

  • 2012-01-11

    公开

    公开

说明书

技术领域

本发明涉及一种图像分割方法,具体涉及一种基于均值漂移算法和模 糊C均值算法的混合图像分割方法。

背景技术

图像分割技术是计算机图像处理和视觉学的重要研究内容之一,且为 研究的热点和难点。它是模式识别和图像分析的重要关键步骤,分割效果 的好坏直接影响着后续图像的处理。现今所广泛使用的各种图像分割方法, 都具有耗时长、分割效率低、分割效果差的缺点,因此不能广泛用于需要 实时处理的系统,例如基于图像内容的图像搜索引擎等。

发明内容

有鉴于此,本发明的一个目的在于提供一种图像分割方法,其具有耗 时短、分割效率高、分割效果好的优点。

本发明的另一个目的在于提供一种图像集分割方法,其具有耗时短、 分割效率高、分割效果好的优点。

一种图像分割方法,包括如下步骤:

CPU读取一图像,初始化图像的参数,分配CPU和GPU所需要的内 存空间,并将图像传给GPU;

GPU根据均值漂移算法对图像进行计算,以获得最初RGB颜色信息和 最初坐标信息,并将其传回CPU;

CPU根据最初RGB颜色信息和最初坐标信息对图像的像素进行聚类, 从而形成多个区域,统计区域的参数,并将其传送到GPU;

GPU根据模糊C均值算法对区域的参数进行计算,以获得图像的最终 分割结果,并将其传送到CPU;

CPU输出图像的最终分割结果。

CPU根据最初RGB颜色信息和最初坐标信息将RGB颜色信息相同且 相邻的像素聚为一类。

区域的参数包括区域的个数、区域内像素点数以及区域的颜色均值。

图像的最终分割结果包括最终RGB颜色信息及最终坐标信息。

一种图像集分割方法,包括如下步骤:

CPU接收多个图像,并确定多个图像的数量;

CPU读取第i个图像,初始化图像的参数,分配CPU和GPU所需要 的内存空间,并将第i个图像传给GPU;

CPU判断i+1是否小于或等于多个图像的数量;

如果是,则GPU根据均值漂移算法对第i个图像进行计算,以获得最 初RGB颜色信息和最初坐标信息,并将其传回CPU,同时CPU读取第i+1 个图像,初始化第i+1个图像的参数,分配CPU和GPU所需要的内存空间, 并将第i+1个图像传给GPU;

CPU根据最初RGB颜色信息和最初坐标信息对第i个图像的像素进行 聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU,同时GPU 根据均值漂移算法对第i+1个图像进行计算,以获得最初RGB颜色信息和 最初坐标信息,并将其传回CPU;

GPU根据模糊C均值算法对区域的参数进行计算,以获得第i个图像 的最终分割结果,并将其传送到CPU,同时CPU根据最初RGB颜色信息 和最初坐标信息对第i+1个图像的像素进行聚类,从而形成多个区域,统计 区域的参数,并将其传送到GPU;

CPU判断i+2是否小于或等于多个图像的数量;

如果是,则CPU输出第i个图像的最终分割结果,读取第i+2个图像, 初始化第i+2个图像的参数,分配CPU和GPU所需要的内存空间,并将第 i+2个图像传给GPU,同时GPU根据模糊C均值算法对区域的参数进行计 算,以获得第i+1个图像的最终分割结果,并将其传送到CPU,

CPU判断i+3是否小于或等于多个图像的数量;

如果是,则CPU输出第i+1个图像的最终分割结果,读取第i+3个图 像,初始化第i+3个图像的参数,分配CPU和GPU所需要的内存空间,并 将第i+3个图像传给GPU,GPU根据均值漂移算法对第i+2个图像进行计 算,以获得最初RGB颜色信息和最初坐标信息,并将其传回CPU;

设置i=i+2;

重复CPU根据最初RGB颜色信息和最初坐标信息对第i个图像的像素 进行聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU,同 时GPU根据均值漂移算法对第i+1个图像进行计算,以获得最初RGB颜 色信息和最初坐标信息,并将其传回CPU的步骤。

本发明的图像集分割方法,还包括步骤:

如果i+1不是小于或等于多个图像的数量,则GPU根据均值漂移算法 对第i个图像进行计算,以获得最初RGB颜色信息和最初坐标信息,并将 其传回CPU;

CPU根据最初RGB颜色信息和最初坐标信息对第i个图像的像素进行 聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU;

GPU根据模糊C均值算法对区域的参数进行计算,以获得第i个图像 的最终分割结果,并将其传送到CPU;

CPU输出第i个图像的最终分割结果。

本发明的图像集分割方法,还包括步骤:

若i+2不是小于或等于多个图像的数量,则CPU输出第i个图像的分 割结果,同时GPU根据模糊C均值算法对区域的参数进行计算,以获得第 i+1个图像的最终分割结果,并将其传送到CPU;

设置i=i+1;

CPU输出第i个图像的最终分割结果。

本发明的图像集分割方法,还包括步骤:

若i+3不是小于或等于多个图像的数量,则CPU输出第i+1个图像的 最终分割结果,同时GPU根据均值漂移算法对第i+2个图像进行计算,以 获得最初RGB颜色信息和最初坐标信息,并将其传回CPU;

设置i=i+2;

CPU根据最初RGB颜色信息和最初坐标信息对第i个图像的像素进行 聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU;

GPU根据模糊C均值算法对区域的参数进行计算,以获得第i个图像 的最终分割结果,并将其传送到CPU;

CPU输出第i个图像的最终分割结果。

CPU根据最初RGB颜色信息和最初坐标信息将RGB颜色信息相同且 相邻的像素聚为一类。

区域的参数包括区域的个数、区域内像素点数以及区域的颜色均值, 图像的最终分割结果包括最终RGB颜色信息及最终坐标信息。

本发明的方法具有以下优点:(1)均值漂移算法与模糊C均值算法的 结合,使得本发明对图像以及图像集都能达到较好的分割效果;(2)分割 速度快,采用CPU与GPU相结合的异步并发执行模式,充分利用GPU的 并行计算能力以及CPU的控制能力,合理分配任务,最大化利用硬件;(3) 将图像分割成用户需要的区域数,模糊C均值算法聚类时输入聚类中心参 数,便将图像分割成此数目的区域数,这对需要提取固定数目的图像区域 特征应用很重要。

附图说明

图1为本发明图像分割方法的流程图;

图2为本发明图像集分割方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

如图1所示,本发明的图像分割方法,包括以下步骤:

(1)CPU读取一图像,初始化图像的参数,分配CPU和GPU所需要的 内存空间,并将图像传给GPU;

(2)GPU根据均值漂移算法对图像进行计算,以获得最初RGB颜色信 息和最初坐标信息,并将其传回CPU;

(3)CPU根据最初RGB颜色信息和最初坐标信息对图像的像素进行聚 类,从而形成多个区域,统计区域的参数,并将其传送到GPU;

(4)GPU根据模糊C均值算法对区域的参数进行计算,以获得图像的最 终分割结果,并将其传送到CPU;

(5)CPU输出图像的最终分割结果。

在步骤(1)中,将图像的RGB数据转换成LUV空间型数据,存储到内 存空间中。

初始化图像的参数包括:颜色空间半径、坐标空间半径以及区域最小 像素数,传输的图像包括原始的图像数据和权重数据。

在步骤(2)中,一个图像块的线程数设置为nThread(取值64,128或256), 每个线程处理一个像素点的计算,根据图像大小动态地分配图像块数目。 图像块数目为:(width*height)/nThread+1,其中width代表图像宽度,height 代表图像高度。

每个线程执行一个像素点yi,j的飘移计算,计算公式为:

y(i,j)+d=Σk=1m{g(|y(i,j),s-xk,shs|2)g(|y(i,j),r-xk,rhr|2)w(xk)xk}Σk=1m{g(|y(i,j),s-xk,shs|2)g(|y(i,j),r-xk,rhr|2)w(xk)}

其中d为已经进行过飘移计算的次数,m为模糊指数,y(i,j),s表示像素 点yi,j的空间分量,y(i,j),r表示像素点yi,j的颜色分量,xk是落入以yi,j为中心 的、空间半径为hs的范围的点,hs,hr空间分量和颜色分量的窗体半径,xk,r表示像素点k的颜色分量,xk,s表示像素点k的空间分量,w(xk)表示权重。 循环用此公式进行计算,只到|y(i,j)+d-y(i,j)+d-1|<ε便终于循环。当所有线程均 完成循环计算后,GPU将数据传回CPU。

在步骤(3)中,CPU根据RGB颜色信息和坐标信息将RGB颜色信息相 同且相邻的像素聚为一类。

区域的参数包括区域的个数、区域内像素点数以及区域的颜色均值, 图像的分割结果包括RGB颜色信息及坐标信息。

在本步骤中,CPU递归搜索每个像素的八邻域,将颜色信息相同像素 点标记为同一区域。统计区域的个数,重新组织数据,每个区域作为一个 整体取其颜色值进行下一步的计算。GPU分别分配隶属矩阵、聚类中心、 原始数据、距离矩阵等内存空间,将数据从CPU端拷贝到GPU。

在步骤(4)中,模糊C均值算法主要包括以下过程:

(i)初始化隶属度矩阵

隶属度矩阵大小为c*n的二维浮点型数组,其中c为聚类中心数目,n 为像素点个数。设置每个图像块的线程数目为nThread(取64,128或256),图 像块的数目为n/256+1。每个线程首先为每个像素点随机生成c个0-1之间 的浮点数。接着进行归一化操作,先求c个数的累加和sumc,用sumc除每个 数则完成初始化隶属度矩阵工作。

(ii)根据隶属度矩阵计算聚类中心

计算公式为:其中0<i<c,u为隶属度矩阵,n为像素点个数, m为模糊指数,xj为第j个像素点。

隶属度矩阵的指数运算,设置每个图像块的线程数目为nThread(取 64,128或256),图像块的数目为n/nThread+1,每个线程负责一个像素点 的指数运算。

矩阵乘法运算,为减少分子的重复乘法操作,先对指数运算后的隶属 度矩阵和数据矩阵做矩阵乘法操作。

累加缩减运算,设置每个图像块的线程数目为nThread(取64,128或 256),图像块的初始数目为n/(2*nThread)+1,每个线程执行一次加法后,线 程数缩减,最终只有一个图像块计算出最终的结果。为提高效率,当线程 小于等于32时,对其循环展开。

将分子与分母做除法,即可更新聚类中心。

(iii)价值计算,判断其是否小于一阈值。若小于则转(v),否则转(iv)。

计算公式为:其中U为隶属度矩阵,C为 聚类中心,d为距离矩阵,m为模糊指数。

(iv)距离计算,更新隶属度矩阵,然后转(ii)

计算每个像数点到c个聚类中心的欧基几德距离,设置每个图像块的 线程数目为nThread(取64,128或256),图像块的初始数目为 n/(2*nThread)+1,每个线程负责计算一个像素点到c个聚类中心的距离,其 值保存到距离矩阵中。

更新隶属度矩阵,计算公式为:其中d为距离,m为 模糊指数。设置每个图像块的线程数目为nThread(取64,128或256),图像块 的初始数目为n/(2*nThread)+1,每个线程负责计算一个像素点的c个矩离值 的计算。

(v)根据隶属度矩阵计算数据的最终归属

设置每个图像块的线程数目为nThread(取64,128或256),图像块的初 始数目为n/(2*nThread)+1,每个线程负责比较一个像素点隶属于哪个聚类中 心的值最大,将该像素点标记最终归属于此类。

如图2所示,本发明的图像集分割方法,包括以下步骤:

1.CPU接收多个图像,并确定多个图像的数量;

2.CPU读取第i个图像,初始化图像的参数,分配CPU和GPU所需 要的内存空间,并将第i个图像传给GPU;

3.CPU判断i+1是否小于或等于多个图像的数量;如果是,则进入步 骤4,如果不是,则进入步骤16;

4.GPU根据均值漂移算法对第i个图像进行计算,以获得最初RGB颜 色信息和最初坐标信息,并将其传回CPU,同时CPU读取第i+1个图像, 初始化第i+1个图像的参数,分配CPU和GPU所需要的内存空间,并将第 i+1个图像传给GPU;

5.CPU根据最初RGB颜色信息和最初坐标信息对第i个图像的像素进 行聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU,同时 GPU根据均值漂移算法对第i+1个图像进行计算,以获得最初RGB颜色信 息和最初坐标信息,并将其传回CPU;

6.GPU根据模糊C均值算法对区域的参数进行计算,以获得第i个图 像的最终分割结果,并将其传送到CPU,同时CPU根据最初RGB颜色信 息和最初坐标信息对第i+1个图像的像素进行聚类,从而形成多个区域,统 计区域的参数,并将其传送到GPU;

7.CPU判断i+2是否小于或等于多个图像的数量,如果是,则转入步 骤8,如果不是,则转入步骤12;

8.CPU输出第i个图像的最终分割结果,读取第i+2个图像,初始化第 i+2个图像的参数,分配CPU和GPU所需要的内存空间,并将第i+2个图 像传给GPU,同时GPU根据模糊C均值算法对区域的参数进行计算,以 获得第i+1个图像的最终分割结果,并将其传送到CPU,

9.CPU判断i+3是否小于或等于多个图像的数量,如果是,则转入步 骤10,如果不是,则转入步骤14;

10.CPU输出第i+1个图像的最终分割结果,读取第i+3个图像,初始 化第i+3个图像的参数,分配CPU和GPU所需要的内存空间,并将第i+3 个图像传给GPU,GPU根据均值漂移算法对第i+2个图像进行计算,以获 得最初RGB颜色信息和最初坐标信息,并将其传回CPU;

11.设置i=i+2,然后转到步骤5;

12.CPU输出第i个图像的最终分割结果,同时GPU根据模糊C均值 算法对区域的参数进行计算,以获得第i+1个图像的最终分割结果,并将其 传送到CPU;

13.设置i=i+1,然后转到步骤19;

14.CPU输出第i+1个图像的最终分割结果,同时GPU根据均值漂移 算法对第i+2个图像进行计算,以获得最初RGB颜色信息和最初坐标信息, 并将其传回CPU;

15.设置i=i+2,然后转到步骤17。

16.GPU根据均值漂移算法对第i个图像进行计算,以获得最初RGB 颜色信息和最初坐标信息,并将其传回CPU;

17.CPU根据最初RGB颜色信息和最初坐标信息对第i个图像的像素 进行聚类,从而形成多个区域,统计区域的参数,并将其传送到GPU;

18.GPU根据模糊C均值算法对区域的参数进行计算,以获得第i个图 像的最终分割结果,并将其传送到CPU;

19.CPU输出第i个图像的最终分割结果;

实例:

为了验证本发明的可行性和有效性,在下列表1所示的实验配置环境 下执行编写的计算机程序,对发明进行测试,运行结果如表2所示。

表1:实验配置环境

在表2中,均值漂移算法的参数为(x,y),其中x表示位置空间半径,y 表示颜色空间半径。通过测试100幅图像的运行时间,发现加速比可达多 于150倍,可见本发明具有良好的运行效率。

表2:运行结果

以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干的改 进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号