1.用于大规模脑核磁分割的最大熵多阈值蚁群进化Spark方法,其特征在于,包括以下步骤:
步骤1、对大规模脑核磁图像进行读取和预处理,首先,对图像进行线性灰度变换,在不改变图像特征的基础上增加前景和背景之间的对比度;其次,采用中值滤波方法过滤图像的噪声;最后,根据面积对比法,消除不相关的区域,去掉脑核磁图像的外壳,得到预处理后的大规模脑核磁图像;
步骤2、由于大规模脑核磁图像的复杂性,选用多阈值的阈值图像分割方法,利用改进的蚁群算法优化基于Kapur熵的阈值化目标函数,得到最优的多阈值解,利用多阈值分割方法大规模脑核磁图像进行分割;
步骤3、面对大规模脑核磁图像,搭建Spark框架,将蚁群封装在可并行计算的弹性分布式数据集RDD中,Spark程序根据集群节点数量将弹性分布式数据集RDD集合拆分成若干分区,每个分区中包含一只或多只蚂蚁,利用Spark框架对大规模脑核磁图像进行并行处理;
步骤4、蚁群算法以最大信息熵为目标,获得最恰当的分割阈值组步骤5、借助获得的最佳阈值组 将脑核磁图像分为k+1个互不重叠的图像区域,以此得到最终的分割图。
2.根据权利要求1所述用于大规模脑核磁分割的最大熵多阈值蚁群进化Spark方法,其特征在于,所述步骤1的具体步骤如下:步骤1.1、读取大规模脑核磁图像,表示为Image=[Nimgs,height,width,channels],其中Nimgs表示大规模脑核磁图像的数量,height表示大规模脑核磁图像的高度,width表示大规模脑核磁图像的宽度,channels表示大规模脑核磁图像的通道数;
步骤1.2、对读取的大规模脑核磁图像Image=[Nimgs,height,width,channels]进行线性灰度变换,增强前景与背景之间的对比度,对于脑核磁图像原图Imagei=[height,width,channels]中的像素点灰度值I(x,y)进行如下线性灰度变换,变换后的图像的灰度:I(x,y)=a*I(x,y)+b (1)其中0≤x≤height,0≤y≤width,a,b为常数,设置a=1.5,b=0;
步骤1.3、中值滤波对图像进行图像去噪,对于图像的中的任意像素值I(x,y),利用的3×3,那么将3×3中的9个像素进行排序,将中心点像素I(x,y)赋值为9个像素值的中值,表示为:
3.根据权利要求1所述用于大规模脑核磁分割的最大熵多阈值蚁群进化Spark方法,其特征在于,所述步骤2的具体步骤如下:步骤2.1、假设脑核磁图像X的大小为Height×Width,具有L个灰度级,坐标(h,w)位置上像素的灰度值为xhw∈{0,1,...,L‑1},将图像灰度域0~L‑1的灰度值作为蚂蚁行走路径的节点,设置阈值数量为k,表示为T=(t1,t2,...,tk),第一个节点的可选范围均为0~L‑1,第二个节点的可选范围为t1~L‑1,以此类推,第k个节点的可选范围为tk‑1~L‑1;
步骤2.2、初始化信息素矩阵τ,能见度矩阵η,蚁群规模M,最大迭代次数G,信息启发式因子α=1,期望启发式因子β=2,信息素强度Q=1,挥发因子ρ=0;
步骤2.3、根据欧式距离算出每个像素xij到初始阈值组T之间的距离dij,具体公式如下:计算t时刻每个像素xi到初始阈值组T的路径上的信息素浓度τi,表示如下:如果像素级i被设置为阈值,则τi=1,那么将像素级i加入新的阈值组集合New_T中,即New_T=New_T∪{i},如果像素级i未被设置为阈值,则τi=0;
步骤2.4、计算选择每个灰度级为阈值的概率,将蚁群置于原点,假设t时刻,蚂蚁m选择m
灰度级i节点为阈值的概率Pi(t)计算公式如下:其中allowedm=Z‑{i}表示蚂蚁m下一时刻可以选择的像素级节点集合;α为信息启发因子,反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时所起的作用,其值越大,说明蚂蚁之间协作性越强;β为期望启发因子,反映了蚂蚁在运动过程中的启发信息在蚂蚁选择路径中的受重视程度;ηi(t)表示启发函数,反映了蚂蚁选择像素级i为阈值的期望程度,其计算表达式为:ηi(t)=1/di;
步骤2.5、将蚁群置于原点,每只蚂蚁按照公式(5)计算得到的转移概率选择要行走的路径,蚂蚁经过的一个节点即表示分割阈值t1,经过的第二个节点表示分割阈值t2,以此类推,经过的第k个节点表示分割阈值tk;
步骤2.6、选择基于Kapur熵的阈值化目标函数,假设脑核磁图像X的每一个灰度级统计个数为h(i),其灰度概率可表示为脑核磁图像X像素点数量的h(i)归一化,如公式下:由于利用多阈值对脑核磁图像进行阈值分割,对此Kapur熵表示如下:以最大熵为目标函数,表示为:
通过该目标函数的最大化来获取最优阈值 表示为:步骤2.7、当蚁群完成一次搜索,获得k个阈值,并将其代入公式(9)最大熵函数,最大熵目标函数的大小作为蚂蚁的评价值;
步骤2.8、蚂蚁完成一次搜索任务,算法结束一次循环,此时需要对蚂蚁经过的每段路径上的信息素需要及时更新,信息量的计算公式如下:步骤2.9、若迭代次数达到最大迭代次数G,则终止搜索过程,获得一组最优分割阈值否则转向步骤2.6,继续派出蚂蚁搜索路径。
4.根据权利要求1所述用于大规模脑核磁分割的最大熵多阈值蚁群进化Spark方法,其特征在于,所述步骤3的具体步骤如下:步骤3.1、初始化相关参数,将蚂蚁封装为类Ant,类中包含的search()函数就是多阈值求解的函数,初始化M个Ant实例,表示蚁群的规模为M,有M只蚂蚁;利用ArrayBuffer[]容器类型将M个Ant实例添加到容器中,再利用Spark环境SparkContext提供的parallelize()方法将其转换为弹性分布式数据集RDD,Spark程序将RDD集合拆成n个分区,每个分区包含一支或者多只蚂蚁,并广播蚁群参数变量;
步骤3.2、在一轮迭代中,每个分区的蚁群RDD按照步骤2中的搜索方法得到各自的多阈值可行解,通过最大化最大熵函数为可行解的评价标准,得到每个分区的最佳阈值组解,汇总所有的分区的最佳阈值组,得到当前迭代最佳阈值组,当前迭代次数g=g+1;
步骤3.3、更新信息素矩阵并进行广播,判断是否到最大达迭代次数G,若结束则输出结果,否则转至步骤3.2。