基于RGB和HSV的胶囊异囊缺陷识别方法
2014-12-23刘晓玉齐丹阳
陈 毅,刘晓玉,蒋 峥,刘 斌,齐丹阳
(武汉科技大学 信息科学与工程学院,湖北 武汉430081)
0 引 言
胶囊缺陷主要包括黑点、气泡、油污、异物、厚薄不均、双帽、破瘪、异囊等,其中异囊缺陷是胶囊缺陷中的一种特殊缺陷,主要是指某一批次一种颜色的胶囊中混有其它颜色的胶囊。异囊的形成主要有两方面原因:一方面是由于厂家某一时段会同时生产多种颜色的胶囊,在胶囊收集装袋的过程中可能未将袋中的残留胶囊清空;另一方面是胶囊缺陷自动检测机的入料口处残留了上一批次的胶囊。胶囊厂生产的胶囊会销售给制药企业,制药企业向胶囊中灌装药物形成最终的药品。而制药企业购买胶囊时会有很多相关指标,其中重要的一项为同一批次胶囊要求百分之一百不能混有异囊,否则按照合同赔偿相应损失。这里的损失绝大多数是以百万元计,其原因在于药品流通在市场中,如果同一批药品中有异囊出现,制药企业可能要担负制假药的责任,从而极大地损害企业的信誉度,造成无法挽回的损失。
关于胶囊缺陷检测技术,文献 [1]提出了基于彩色图像的破损胶囊检测方法。文献 [2,3]主要是针对胶囊形变缺陷的研究。文献 [4]研究了一种胶囊缺陷检测系统,能够检测大多数种类的瑕疵。但是上述缺陷检测方法中都没有涉及异囊的检测方法。
检测异囊实质就是颜色识别,颜色识别目前主要的工作集中于颜色空间的选取和色差的计算。色差即颜色的差异,不同的颜色空间可使用不同的色差公式。考虑到采集的图像是RGB格式,且从RGB 颜色空间转换到其它颜色空间要花费大量时间,因此,本文在RGB颜色空间下分割图形,采用基于图像直方图的加权平均方法获取R、G、B分量的值,将R、G、B 分量值转成H、S、V 分量值,利用基于HSV 带权重的色差公式计算色差,从而达到检测异囊的目的。
1 颜色空间
颜色空间指彩色坐标系统,其中表示了彩色图像的数值。目前提出的颜色空间主要分3类:基于物理学和工艺的彩色空间,它包括RGB 颜色空间,CMY (K)颜色空间,YCbCr颜色空间等;均匀颜色空间,它包括CIELAB颜色空间,CIELUV 颜色空间;基于感知的颜色空间,它包括HSI颜色空间,HSV 颜色空间,对立颜色空间等。
1.1 RGB颜色空间
RGB颜色空间是计算机技术中使用最广泛的颜色空间,它建立在加性混合3 种基色R、G、B 的基础上。RGB颜色空间采用物理三基色表示,因而物理意义很清楚,适合彩色显像管工作,然而这一体制并不适应人的视觉特点。
RGB颜色空间的色差公式目前常用的有距离色差公式、角度色差公式,但由于RGB颜色空间本身不均匀的固有属性,这些度量公式效果不佳。杨振亚等人提出了一种综合距离和角度特点的色差公式[5],该公式在一定程度上补偿了RGB颜色空间的不均匀性,但实验表明该公式的色差变化不平滑,当色差大于某一值时会产生小范围的突变,不利于图像处理。
1.2 HSV颜色空间
HSV 颜色空间是用孟赛尔颜色空间的色调H,饱和度S,亮度V 为三要素来表示的,属于非线性彩色表示系统。HSV 色彩表示方法同人对色彩的感知相一致,且在HSV空间中,人对色差的感知较均匀,因此HSV 空间是适合人的视觉特性的颜色空间,其各个分量的独立性强,有利于图像处理。
1.3 RGB到HSV颜色空间的转换
对于R,G,B ∈[0,255],H ∈[00,1800],S,V ∈[0,1],RGB空间到HSV 空间的映射过程如下。设:Max=max (R ,G,B );Min=min (R ,G,B )。
当Max≠Min时,定义
则
其中
2 异囊检测
2.1 检测系统概述
异囊检测部分主要包括高速工业相机采集图像、上位机对图像进行图像处理、下位机根据上位机处理结果判断是否剔除胶囊。系统如图1所示,采集到的原始图像如图2所示。通常胶囊由颜色不同的二节 (俗称帽和体)组成,这里图2中左侧胶囊的上面一节为银灰色,下面一节为红色,右侧胶囊上面一节为黑色,下面一节为红色。在线检测之前,首先要通过手动定标的方式确定所检测批次胶囊上下两节的标准颜色值。在线检测中,对于每颗被检测胶囊,需获取其上下两节的颜色值,并与事先标定的标准颜色值进行比较,当两部分的颜色差异值都小于规定的阈值,则认为不是异囊否则认为是异囊。设定本文检测的某一批次胶囊是图2中左侧所示的胶囊,则由于图2中右侧胶囊颜色和左侧胶囊颜色不一致,可判定为异囊。
图1 系统组成
2.2 基于RGB和HSV颜色空间的检测
RGB颜色空间具有颜色简洁、高速、对硬件要求低的特点。但它并不是一个直观的颜色空间,各个分量之间冗余信息多,对目标物体的颜色描述相对复杂,不利于颜色的识别。HSV 颜色空间与人眼视觉感知相一致,因此在该颜色空间中可以较好地得到颜色的认知属性,这比较有利于算法的设计与实现。
图2 采集到的原始图像
由于工业相机采集到的图片是基于RGB 格式的,若直接基于HSV 图像进行检查则须经过RGB到HSV 转换的步骤。而该转换必须遍历每个像素点,从而使得计算量比较大,这对于在线实时检测系统来说无疑是一大瓶颈。故本文采取基于RGB颜色空间获取一组能够表示当前颜色的R、G、B分量值值,然后将这组R、G、B分量值转换成H、S、V 分量值,再利用HSV 颜色空间的色差公式计算色差的方法检测异囊。由于这里的转换仅仅是将一组R、G、B分量值即3个数据转换成相应的3个数据H、S、V 分量值而已,因此这次转换所花费的时间完全可以忽略不计,这与将一整幅RGB 图像转换成HSV 图像所消耗的时间区别较大。检测算法的完整流程如图3所示。
图3 算法流程
2.2.1 基于RGB的图像分割
从图2我们知道,胶囊的颜色要分成上下两部分的颜色。胶囊的颜色本身非常多样,不同药厂有不同的要求,可谓是五花八门,因此要准确提取胶囊的颜色需要将胶囊分割成两部分。目前,彩色图像分割有多种方法,大部分基 于 灰 度 图 像 分 割 技 术 如 直 方 图 阈 值 法[6,7]、聚 类[8,9]、区域增长[10]、边缘检测、模糊方法[11]、神经元网络[12]都可以扩展到彩色图像。许多彩色图像分割方法不仅把灰度图像分割方法应用于不同的颜色空间,而且可以直接应用于每个颜色分量上,其结果再通过一定的方式进行组合,即可获取最后的分割结果。
由于采集到的图像中胶囊基本上都是居于图像正中间,所以本文针对固定区域来进行颜色的检测。固定的区域如图4中虚线方框区域所示,该区域对应的R、G、B分量图像如图5所示。鉴于图像中胶囊两节之间有明显的分隔线这一重要特征,本文采取基于Y 方向的Scharr算子应用于彩色图像的R 分量图像从而寻找到分隔线,然后根据分隔线所在位置进行图像的分割,如图6所示。
图4 原始图像叠加选定区域框后的图像
图5 R、G、B分量图像
图6 分割图
2.2.2 RGB分量值的获取
对分割后的图像要进一步提取R、G、B的值,该步骤关系到后续颜色值的比较以及最终的检测精度,因此非常关键。提取R、G、B的值最常用的方法就是求取图像的灰度平均值,但是该方法不仅受图像噪声的影响,而且由于光照不均其精度也不够。对图像进行滤波可以消除一部分噪声的影响,但也增加了一定的计算量。另外在实际的生成过程中我们发现,有部分胶囊的颜色较为相近,在检验过程中若人眼不仔细观察则会误认为是同一种胶囊,这种情况也给精确识别所有异囊带来一定的难度。
本文考虑到以上因素,提出了一种基于归一化直方图的方法获取R、G、B的值。该方法的主要思想是认为直方图中概率值越大的灰度级则其有效程度越高,在计算过程中则主要计算有效程度高的灰度级。图7为B 分量图像的归一化直方图,从图中可以清晰地看到有些灰度级的概率值很小,即在图像中所占比重很少,可以判定为噪声或其它干扰因素,所以计算分量值时这部分不应该计算在内。本文先按照直方图概率值进行降序排序,排序后的概率值依次命名为p0,p1,…,p255,对应的灰度级依次命名为a0,a1,…,a255。接着将概率值从下标0开始依次取值,当取到下标为m 时,若所取的概率值总和Pm达到一定的阈值s则停止。Pm计算如下面公式所示
其中m 满足下面公式的要求
然后计算这部分概率值对应灰度级的加权平均值,计算公式如下
式中:result——本次颜色分量值计算结果。
图7 B分量图像的直方图
2.2.3 基于HSV 的色差计算
先将上一节获取到的R、G、B分量值按照1.3节中的转换方法将其转换成H、S、V 分量值。色差[13,14]衡量的是2种颜色的相似程度。在HSV 颜色空间中,H 色调描述的是一种纯色的颜色属性,S饱和度则表示一种纯色被白光稀释的程度,V 亮度则是一个比较主观的描述子。也就是说,H 和S在很大程度上表征了一种颜色。基于以上考虑,本文采取一种加权的方式计算色差。对于HSV 颜色空间的2个颜色值F1=(H1,S1,V1)T和F2=(H2,S2,V2)T,色差定义如下
其中
且k>0.5,即让H 和S 对色差的贡献远大于V 的贡献。
2.2.4 颜色比较
由于胶囊由两节组成因而呈现有2种颜色,并且胶囊的摆放顺序是随机的,因此在检测异囊时,颜色的比较要进行多次。这里设胶囊上下两节的标准颜色值分别为up-Color,downColor,当前检测到的颜色值为up,down,其中每个颜色值都包含H、S、V 这3 个分量值,比较步骤如下:
(1)按 照2.2.3 节 中 公 式 计 算 得 到 色 差 值dist1 和dist2,即
如果dist1和dist2同时小于阈值T,那么表示是同一种颜色胶囊则比较结束,否则进行下一步骤。
(2)交换颜色值的比较顺序,按照2.2.3 节中公式再次计算色差值dist1和dist2,即
如果dist1和dist2同时小于阈值T,那么表示是同一种颜色胶囊则比较结束,否则认为是异囊,比较结束。
这里阈值T 可以经过实验和在线测试确定。
3 本文算法与常规基于HSV 算法比较
3.1 常规HSV检测算法
常规就HSV 颜色空间的颜色识别方法是首先将图片整体转换成HSV 格式,然后再检测。检测的主要步骤是图像分割,然后获取HSV 分量值,再进行色差计算和颜色比较,方法参照2.2节所述方法。
3.2 对比分析
基于vc6.0和opencv1.0的软件平台下,在Inter(R)Pentium (R)CPU 单核E5300、2.6GHz硬件环境下,经过严格测试表明,本文方法和常规基于HSV 的检测方法的检测都能达到较高精度满足现实需要。但是利用Pentium CPU 内部时间戳进行计时,发现基于HSV 的检测方法中,从RGB到HSV 的转换步骤所花费时间占程序整体花费时间比率达10%以上。显然上述花费的时间代价较大,而且转换的图像为较小图像,对于稍大的图像可以预见其时间代价会更大,将不利于图像的在线处理。
其中,表1中异囊检出率是指待检测胶囊是异囊而最终作为异囊被正确检测出来的准确率,可以看到,除常规HSV 算法中当所取图像较大时稍有误差,其他的算法在在线实验中都能达到100%,也即满足我们前面所述的目标;非异囊误检率是指待检测胶囊本来不是异囊但最终却被当做异囊检测出来,对于图像大小是340*70 时,本文算法的非异囊误检率是0.0067%,即约15000颗胶囊中可能会有一颗会被误认为是异囊而检测出来,这样的误检率对于生产厂家来说是可以接受的。
表1 不同算法比较
4 结束语
本文提出了一种简单有效的基于RGB 颜色空间利用HSV 颜色空间色差公式检测异囊的方法。本文的创新之处一是利用归一化直方图加权平均的方法获取颜色分量值,二是巧妙利用RGB和HSV 之间的联系和各自的优点,在RGB颜色空间中获取颜色值,通过避免颜色空间的转换来提高计算速度,使用HSV 颜色空间的色差公式计算色差保证了检测精度。这对于颜色识别一类问题提出了新的一种解决思路。
[1]LI Lian,YAN Yang.The image processing analysis and research of damaged capsule [C]//The 13th Youth Academic Conference Paper Set of China Instrument Society,2011 (in Chinese).[李连,闫洋.破损胶囊检测的图像处理分析与研究 [C]//中国仪器仪表学会第十三届青年学术会议论文集,2011.]
[2]WANG Juan,ZHOU Yongxia.Image processing in capsule shape defect detection [J].Journal of China University of Metrology,2012,23 (3):239-245 (in Chinese). [王娟,周永霞.图像处理在胶囊外形缺陷检测中的应用 [J].中国计量学院学报,2012,23 (3):239-245.]
[3]LAI Dahu,HUANG Yanwei,et al.Inspection for defected capsules based on extreme learning machine [J].Journal of Fuzhou University,2012,40 (4):489-494 (in Chinese).[赖大虎,黄宴委.基于极端学习机的胶囊缺陷检测 [J].福州大学学报,2012,40 (4):489-494.]
[4]WU De.The research of the capsule detection system based on image processing [D]Guangzhou:Guangdong University of Technology,2011 (in Chinese). [吴德.基于图像处理的胶囊检测系统的研究 [D].广州:广东工业大学,2011.]
[5]YANG Zhenya,WANG Yong,YANG Zhendong,et al.Vector-angular distance color difference formula in RGB color space[J].Computer Engineering and Applications,2010,46 (6):154-156 (in Chinese).[杨振亚,王勇,杨振东,等.RGB颜色空间的矢量-角度距离色差公式 [J].计算机工程与应用,2010,46 (6):154-156.]
[6]Siang Tan K,Mat Isa NA.Color image segmentation using histogram thresholding-fuzzy C-means hybrid approach [J].Pattern Recognition,2011,44 (1):1-15.
[7]Qin K,Xu K,Liu F,et al.Image segmentation based on histogram analysis utilizing the cloud model[J].Computers &Mathematics with Applications,2011,62 (7):2824-2833.
[8]WANG Gaihua,LI Dehua.Texture feature fusion-based twostage clustering segmentation algorithm [J].Journal of Image and Graphics,2012,17 (9):1075-1084 (in Chinese).[王改华,李德华.融合纹理特征的两阶段聚类分割算法 [J].中国图象图形学报,2012,17 (9):1075-1084.]
[9]Wang W,Wang D,Wang L.Fuzzy clustering segmentation algorithm research for sport graphics based on artificial life[C]//2nd International Conference on Consumer Electronics,Communications and Networks.IEEE,2012:1046-1049.
[10]Tang J.A color image segmentation algorithm based on region growing [C]//Proc of the 2nd IEEE International Conference on Computer Engineering and Technology,2010:634-637.
[11]YU Yong,ZHENG Jiao,GUO Xijuan. Weighted fuzzy threshold segmentation algorithm based on image pixels spatial information [J].Computer Applications and Software,2013,30 (3):274-277 (in Chinese).[于勇,郑姣,郭希娟.基于图像像素间空间信息的加权模糊阈值分割算法 [J].计算机应用与软件,2013,30 (3):274-277.]
[12]Wang H,Ji C,Gu B,et al.A simplified pulse-coupled neural network for cucumber image segmentation [C]//Proc of IEEE International Conference on Computational and Information Sciences,2010:1053-1057.
[13]Fernández-Vázquez R,Stinco CM,Hernanz D,et al.Colour training and colour differences thresholds in orange juice [J].Food Quality and Preference,2013,30 (2):320-327.
[14]Liu GH,Yang JY.Content-based image retrieval using color difference histogram [J].Pattern Recognition,2013,46(1):188-198.