APP下载

改进的区域生长法的医院调剂环境下药品图像分割

2020-12-07李帅赵国栋罗丰

中国医学工程 2020年11期
关键词:灰度滤波胶囊

李帅,赵国栋,罗丰

(1.西安电子科技大学 电子工程学院,陕西 西安 710000;2.北京红枫树智能控制技术股份有限公司,北京100098)

随着计算机技术的迅速发展和药房设备的自动化水平不断提高,为药房自动化设备装上“眼睛”,即加入视觉处理技术,在进一步提高自动化水平和彻底解放药剂师的双手方面有着重要的意义。目前,为确保病患的用药安全,自动化药房的最后核验步骤还是由药剂师依据经验亲自来比对,所以搭建一个药品识别平台对提高药房效率有着重要的意义,药品图像分割就是其中的关键一步。

目前常用的彩色图像分割有两种,即基于聚类进行分割和基于区域进行分割。基于聚类的算法有K 均值聚类和模糊C 均值(FCM)聚类,基于区域的算法有分水岭分割和区域生长算法。

1967 年,MACQUEEN[1]提出了K 均值聚类(K-means)为后面的聚类算法奠定了基础,但该算法依赖出生点的选择而且对异常点敏感。后来的学者对这做出了很多改进,1973 年,DUNN[2]在K-means 的基础上加入了隶属度的概念,提出了模糊C 均值聚类(FCM)。2002 年,AHMED等[3]在聚类过程中加入了空间概念,提高了FCM的抗噪性能。2012 年,公茂果等人在FCM 加入了局部纹理信息的考虑,提高了分割效果。总体来说,K 均值聚类通过计量样本点之间的距离来评价两个点的相似度,通过不断的迭代调整聚类中心使每个簇里内部相似度尽可能高、簇间相似度尽可能低。1991 年,VINCENT 等[4]提出的分水岭算法是将图像灰度值和地理拓扑理论相结合,基本实现了对距离较近的目标进行分割,但容易产生过分割现象。后续学者对分水岭算法做了改进,2011 年,胡敏等[5]基于形态学处理为分水岭分割提供了先验标记信息,去掉了人机交互进行标记的必要。2013 年,陈丽芳等[6]对分割后的结果进行处理,改善了过分割的现象。

基于区域的方法是目前分割算法应用场合最多且分割性能较好的算法。区域生长算法的基本原理就是选好一个生长点,然后依据设定好的生长准则对周围的像素点或者区域进行聚合,最终生长停止完成分割。区域分裂与合并法与生长相反,首先把图像不断分成一个个子区域,再通过某一规则对分类的子区域进行合并。基于区域的方法的效果好坏就在于种子点的选定、生长准则的设计和结束生长的条件。2014 年,曹彪[7]在将区域生长算法应用到了OCT 图像上,结合OCT 图像设置了种子点自动选取算法并改进了生长准则,提高了分割精度。2018 年,郑又能等[8]应用了最小二乘问题来在水岸线分割场景下实现种子点的自动选取。

1 药品图像预处理

预处理技术是整个图像处理流程的开端,主要作用是提高图像质量方便后续的算法实现。一般来说,预处理技术主要有图像滤波和图像增强。图像滤波是为了消除图像产生过程中的无法避免的外界干扰以及背景环境的问题在图像上产生的噪点,图像增强是为了突出图像某一方面的特性为后续的分割、识别等处理服务。

图像滤波可以根据输入输出之间是否为线性划分成线性滤波和非线性滤波两种。线性滤波就是将对灰度值进行加权和处理,如常见的有高斯滤波;非线性滤波是对灰度值进行非线性处理,如常见的有中值滤波、双边滤波。高斯滤波就是用服从二维正态分布的卷积核与图像作卷积计算,从而得到每个像素的值。本质上是一种低通滤波,在每个像素值的计算过程中都加入了周围像素的影响,这有一定的“平滑”效果,主要表现为图像模糊,如图2 所示。在实际使用中,一般将中值滤波用在椒盐噪声现象较为明显的场合。双边滤波和高斯滤波同样使用平均加权法,差异在于双边滤波既计算了像素间的欧氏距离,也加入了像素灰度的相似性计算,与高斯滤波相比,双边滤波可以更好的保存目标对象的边缘信息。

滤波效果比较见图1~4。

图1 原图及其二值化

图2 高斯滤波及其二值化

图3 中值滤波及二值化

图4 双边滤波及其二值化

由上面的图像滤波及其二值图可看出,高斯滤波和中值滤波在目标边缘处都出现和背景的粘连,为后面的分割工作增加了难度,双边滤波可以在降低背景干扰的情况下较好的保护目标的边缘,综合考虑本次算法选择双边滤波算法进行滤波操作。

2 药品分割分析

为了避免药品光滑的表面出现反光导致药品表面像素信息的损失,我们采取在较暗光照条件下进行图像采集。暗光照条件导致了图像的信息集中在低值区域,我们采用gamma 校正的图像的增强算法扩宽了图像的细节信息,丰富了图像的特征。但药品图像在进行目标与背景的分割的时候主要有两个问题,一是部分颜色在转换到灰度空间时灰度值较低,缩小了与背景环境的差别,二是基于胶囊药品的特性,存在一个目标的具有两个颜色且在灰度图中差异较大,往往只保留其中一部分。

问题说明见图5~6。

图5 原图及灰度化结果一

图6 原图及灰度化结果二

除此之外,药品在设备内部会出现粘连现象,在保证药品本身完整的基础下将药品之间较好的分割开,也是分割算法的难点。粘连效果见图7。

图7 药品粘连

3 改进区域生长算法

区域生长法就是依据事先选好的规则将一个像素点或者一个小块领域不断进行聚合的过程。基本的算法思想就是从种子点(像素点或者小区域)开始,通过生长准则评判种子点和待生长点是否为性质相近来不断的使区域扩大,直到生长停止。算法的效果好坏取决于种子点、生长准则和生长停止的条件的选择是否合适。

区域生长的一般步骤如下:

(1)选择好合适的种子点。

(2)通过生长准则将新的像素点合并。

(3)直到到达生长停止的条件。

改进的区域生长算法的基本思想是先将样本图像与背景图像作差分处理,然后对结果做低阈值二值化处理和连通域筛选,得到药品的粗分割结果,针对胶囊上下部分区域特征差别较大,先将上下部分看成两个区域。我们选取连通域的质心和主轴方向的两个点作为种子的生长点,图像二值化处理是将灰度图的灰度值以某一固定值为阈值,将大于阈值的灰度值置255,小于阈值的灰度值置0,较少后续计算的运算量,突出图像中的轮廓特征。二值化的公式如式(1):

式中,th 为阈值,g(i,j)为灰度图中(i,j)位置的灰度值,b(i,j)为二值图中对应位置的值。二值化的方法有很多,但本文只是用二值化来筛选连通域,降低背景干扰同时预选ROI 区域,减少后续算法的运算量,所以选择了简单的固定阈值处理。

连通域筛选是在二值化图像中,选择出基本符合药品目标特征的连通域,将一下背景的噪点及条纹反光部分删除,提高算法的运行效率。通过测量连通域的面积和外接矩形的长宽比,经测量,本文采集的药品图像中目标的连通域均远远大于500 像素值且外接矩形的长宽比在1∶8 之间。

将得到的连通域扩充得到的药品的粗分割结果,标记为ROI 区域,效果见图8。

图8 种子生长点示意图

考虑到药品图像大致有三种类型:纯亮色、纯暗色、双色,我们使用基于Lab 颜色模型的色差来进行生长准则的阈值,色差的度量值如下:

式中,∆L为待生长点与种子点在Lab 颜色模型中L 值上的差值,同理∆a、∆b为两点在a 和b 值上的差值。我们设定生长阈值th2,将待生长点与种子点的色差值小于阈值时,此时认为待生长点和种子点属于一个区域,对它进行生长标记。重复色差计算,直至遍历完所有未知点,完成目标分割。分割结果即为集合O,则

只要待生长点Ni,x满足生长条件R,与种子点的色差小于阈值,就将点Ni,x加入到集合O 中,即将种子点加入新的生长区域中。

种子的生长过程如图9 所示,将得到的初始种子点设为S1,将其周围的邻域点设为P1-P8,对于邻域点中满足生长准则的点设为生长点,加入到种子集合中。然后对新的种子点的邻域进行生长准则判断,使得种子点集合不断增加,目标区域不断扩大。直到所有的未知点完成生长,则区域生长算法分割完成。

图9 区域生长过程图

按照上述种子点的选择方法和生长准则,对于某双色胶囊样本得到的结果如图10 所示。

图10 本文算法中间处理结果

由上述方法得到的胶囊图像会出现上下两部分分隔开,对于这种情况下的连通域需进行合并处理。首先通过连通域形状参数确认胶囊的上部分和下部分,计算两部分连通域的主轴线的斜率和距离。经测试,同一个胶囊上下部分连通域主轴线的斜率大约在5 度以内,距离差在30 个像素值内,对于一个胶囊的连通域进行闭运算链接处理。

计算连通域的质心和主轴方向通过图像的几何矩进行计算。其中一阶矩的公式如下:

式中,I(x,y) 为图像(x,y)处的灰度值,当图像二值化后,m00就表示了图像白色区域的面积。

二阶矩:

其中,θ∈[-90o,90o]。

筛选连通域后合并的结果见图11。

图11 算法结果

算法步骤如下:

Step1:低阈值二值化图像,确定药品的出现区域,标记ROI,完成粗分隔;

Strp2:判断连通域形状参数,筛选出单独噪点、单药、多药连通域;

Strp3:单独噪点连通域置零,多药连通域进行标记,使用开运算,然后进行单药连通域处理;

Strp4:对于单药连通域和多药连通域的处理结果进行本文区域生长分割;

Strp5:对多药连通域的分隔结果进行形状参数判断,对同一胶囊的上下部分进行合并。

算法流程见图12。

图12 本文算法流程图

4 分割算法评价指标

对于分割算法性能的评价一般有主观和客观两种。其中,主观评价指标是指通过肉眼观察,对比原图来分析分割结果边界是否清晰准确,是否存在粘连以及错分的现象。客观评价就是通过选择某一评价标准来对结果进行计算测量,通过数字来表征来分割结果之间的差异。

本文采用两种方法相结合的方式来对分割结果进行评价。客观评价指标选择的是差异实验法。设S 为本文改进算法得到的药品图像,T 为手动分割的药品图像,I 代表整张太想爱你个,定义以下4 个参数:

上式中,TP 即本文算法正确分割区域,FP 为本文算法错误分割区域;FN 为本文算法漏检的目标区域,TN 为正确的背景区域。Sensitivityy(敏感率)表征了目标被分割到的概率,Accuracy(准确率)表征了分割结果中不是目标的概率。

我们从搜集到的图像数据中随机选择10 幅图像,分别用本文算法和手动进行分割,并用上式进行计算,计算结果见表1。

表1 本文分割算法评价表

由上表中的Sensitivity 和Accuracy 这两列的均值和均方差可以看出,本文改进的算法对于药品图像有着很好的分割准确度,同时各项数据的方差都较小,说明本文算法有着较好的稳定性。通过分析上表数据可以得出本文算法的分割结果和手动分割的结果相似,相差甚小,说明本文算法有着很高的准确率。

5 分割算法性能比较

本文所使用的计算机处理器为Inter(R) Core(TM) i5-8300H CPU @ 2.30GHz 2.30GHz,内存为8.0GB,软件环境为微软公司的Windows 10,仿真软件为Visual Studio 2019,算法库是Opencv 4.0。

通过对药品图像分析,我们发现处方结果图大致有单药片、单胶囊以及部分粘连这几种情况,我们对这几种情况进行分别采集各十张,原图为3 072×2 048 分辨率,大小为280 KB,采用K 均值聚类、FCM 聚类算法、分水岭算法以及本文的区域生长算法进行了实验,部分结果见图13~17。

图13 药品原图

图14 K 均值聚类结果

图15 FCM 聚类结果

图16 分水岭分割结果

图17 本文分割算法

观察图14 可知,K 均值聚类对于目标单一的场景下表现较好,可以较为清楚的将药品目标与背景分隔开,尤其是对于药片目标,分割结果清楚准确。但在有较多目标的场景下,一方面对于胶囊目标分割不完整,边界部分缺失,一方面当胶囊在药片旁边时容易被忽略,受胶囊表面光斑影响严重。

观察图15 可知,FCM 聚类算法在K 均值聚类算法中加入了软间隔,同样在药品种类较为单一的情况下表现良好,但在多种药品情况下会出现部分目标边界不完整甚至大部分缺失的问题。

观察图16 可知,在手动准确的标记的情况下分水岭算法可以较好的药品目标从背景分离,边界也较为清楚准确,但这一方面依赖人工标记提供的准确的先验信息,另一方面在胶囊药品标记信息不准确时会出现上下部分分离或者部分缺失的现象。

观察图17 可知,本文算法在中间过程无人为参与的情况下,对于胶囊目标、药片目标以及混合情况、粘连情况都表现较好,目标分割准确,较少出现目标缺失或目标部分内容缺失的情况出现,基本满足了医院调价环境下药品分割算法的需要。

表2 为100 张测试图各算法用时结果统计平均值。本文算法与常见分割算法评价结果见表3。

表2 各算法所用时间表 (s)

表3 各算法评价结果表

由上述结果可以看出,K 均值聚类和FCM 聚类算法性能相似,首先是费时太久,算法收敛速度慢,而且对于胶囊的同物双色的特性并没有很好的识别性能,对于部分胶囊表面存在的反光光斑较敏感,分割精度较低,性能较差。

分水岭分割算法与本文算法效果相近,都需要先对目标进行标记,但分水岭算法存在大量的梯度运算,导致耗时较久,而且对于胶囊的上下部分没有进行处理,没有将上下部分合并为一个目标。

综上所述,本文算法可以较好的对于医院调剂环境下的药品目标进行分割,提取出的目标轮廓较为准确清晰,而且区域生长算法计算较为简单,节省时间。除此之外,本文算法对于胶囊的颜色分布特性进行了处理,基于连通域的主轴线的距离和偏转角度差来判断胶囊的上下部分连通域,从而进行合并。整体分割效果较好,而且耗时最短。

6 结束语

为了将医院调剂环境下的药品图像更精确的分割出来,提出了一种改进的区域生长算法。首先对图像进行预处理,双边滤波降低背景干扰点和噪声的影响,然后用改进的区域生长算法进行药品和药品、药品和背景之间的分割。本文算法使用连通域质心及主轴线上的点作种子点,在不遗漏胶囊药品上下部分的同时克服了生长点需人工交互的缺点。生长准则采用色差来计算,较好的实现了药品和背景的分割。对于胶囊药品,设计了连通域合并规则,实现了胶囊药品的完整分割。经测试表明,本文算法在时间复杂度和分割效果上均优于其他常见算法。

猜你喜欢

灰度滤波胶囊
采用改进导重法的拓扑结构灰度单元过滤技术
时光胶囊
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
时光胶囊
Arduino小车巡线程序的灰度阈值优化方案
基于EKF滤波的UWB无人机室内定位研究
一种GMPHD滤波改进算法及仿真研究
RTS平滑滤波在事后姿态确定中的应用
聚焦“毒胶囊”
基于热区增强的分段线性变换提高室间隔缺损超声图像可懂度研究