马国强 田云臣 李晓岚
(天津农学院计算机与信息工程学院 天津 300384)
K-均值聚类算法在海水背景石斑鱼彩色图像分割中的应用
马国强田云臣*李晓岚
(天津农学院计算机与信息工程学院天津 300384)
摘要鱼类图像分割是养殖鱼类行为观测和智能化自动投饵系统的关键先决步骤。针对海水背景图像中鱼体分割,提出一种在人工海水环境中获取石斑鱼彩色RGB图像的软硬件系统,并将K-均值聚类算法应用于RGB格式图像的分割实验。观察并分析了彩色图像的三种单色(R、G或B)像素的直方图特征。以RGB三色像素点和三种单色(R、G或B)像素点为聚类数据集,使用K-均值聚类算法进行图像分割,聚类数设定为2,分别代表海水背景和鱼体目标。通过对100幅图像分割结果的观察和统计,可以得出初步结果,即使用蓝色(B)通道聚类分割的结果,最令人满意。
关键词图像分割K-均值聚类海水养殖
0引言
如今,很多视频监控系统已经广泛应用于工业生产、智能交通和人的行为观察等。同样,鱼类的行为监控对于海洋公园和水产养殖的管理都十分重要[1]。视频监控系统的关键操作是基于目标对象的分割与跟踪。
视频监控系统采集的图像通常为真彩色RGB格式。彩色图像分割在计算机视觉技术方面是一个相对较新的领域。关于彩色图像分割的文献,并不像关于灰度值图像分割的那么广泛[2]。国内外的研究学者提出了很多关于彩色图像的分割算法。Pinkiewicz等在利用计算机视觉技术对鱼的游泳行为分析过程中,使用了正常阈值、自适应阈值、平均背景估计和使用Sobel算子的边缘检测共4种方法,对单一图像和连续多帧图像进行了分割[3]。Felzenszwalb等将一幅RGB格式的彩色图像当成三幅单色的图像,分别进行分割[4]。Vassilis等在对每一幅彩色图像处理之前,将其分为R、G和B三个颜色分量。用户可以选择鱼和背景对比度最高的分量进行分割。在实验中,绿色分量具有最好的对比度,所以该分量被选择做进一步的处理[5]。Chuang等提出了一种基于分水岭算法的,从输送带实时视频中的彩色图像分割出鱼体的新算法[6]。Zhang等首先使用自动色彩均衡ACE(Automatic Color Equalization)在HSV颜色空间对彩色图像进行无监督的增强处理,然后,结合ACE,并使用基于区域的分割算法。该方法可得到复杂背景图像中任意区域的鱼体作为感兴趣的对象[7]。
聚类分割方法是一类很重要的图像分割方法。聚类法实质上是一种无监督的统计迭代方法,它的基本原理是提取各样本(这里就是各像素点)的特征值,并根据这些特征迭代执行图像分类[8]。Yao等提出了一种对传统的K-均值聚类分割算法改进后用于鱼的图像分割的新算法[9]。第一步,最佳聚类数目被确定为灰度直方图的峰数,类的中心值用OTSU法计算的阈值的均值进行过滤得到;第二步,利用数学形态学上的开闭操作,得到鱼体的轮廓。Chuang等提出了一种利用直方图反投影过程的新算法,核心思想是利用双局部阈值来保证鱼的形状的可靠分割[10]。黄芬等使用K-均值聚类算法对归一化的小麦冠层图像进行基于H分量的彩色图像分割,获得目标图像[11]。对光照均匀与不均匀图像分别作不同处理,光照均匀图像获得两个聚类,即初步目标图像和背景图像。光照不均匀图像获得三个聚类,将聚类中心接近的两个聚类合并得到初步目标图像,剩余一个聚类则为背景图像。
本文首先对人工海水背景中的石斑鱼RGB格式彩色图像的不同颜色分量直方图特性进行了分析。然后在此基础上,对RGB向量值表示的像素点和用红色(R)、绿色(G)和蓝色(B)分量(通道)表示的单通道像素点,分别使用K-均值聚类算法进行分割实验。最后,通过对100幅彩色图像的分割结果的观察和统计,发现使用蓝色(B)分量聚类,能够得到相对稳定和满意的分割效果。
1海水背景石斑鱼彩色图像的获取
石斑鱼属于海水养殖鱼类,工厂化养殖采用人工制造的低盐度海水作为水质环境。一般情况下,这种人工海水与淡水相比透光性较差,在这种水质中拍摄的彩色图像背景相对较暗。
1.1石斑鱼饲喂实验水箱及图像获取系统简介
饲喂石斑鱼的水箱系统是一个分三层的整体结构,从上到下依次为清水箱、养殖箱和过滤箱,由厚度为10 mm的高透明玻璃粘结而成。三个水箱同样大小,均为长120 cm,宽80 cm,高60 cm,两水箱间高度为40 cm。养殖用水使用人工海水,盐度保持在28,保持各水箱的水深在50 cm左右。在养殖箱放养10条青石斑鱼,平均体重80.5 g,平均体长19.5 cm。
1.2彩色图像获取系统简介
彩色图像获取系统由硬件和软件两部分构成。
硬件部分包括USB接口的高清摄像头、有源高速USB集线器和普通计算机。摄像头型号为随锐(SUIRUI)HD28A 高清广角网络摄像头,USB集线器使用奥睿科(ORICO) A3H10-BK型号全铝高速USB 3.0 10口HUB 集线器(带电源),计算机为联想(Lenovo) 扬天S740-00 21.5英寸一体机,处理器型号为i5-4430S,内存为8 GB,硬盘容量为1 TB,1 GB显存的独立显卡,带两个USB 3.0的接口。高清摄像头做防水处理,固定在一根直支架一头,伸入水中,支架另一头固定在养殖箱的上边缘。
软件部分主要Windows 7旗舰版操作系统和Matlab R2012a。用Matlab 语言开发了图形界面的彩色图像获取程序,负责控制摄像头进行单幅图像的拍照、10张图像连拍和图像文件保存等操作。
1.3彩色图像的基本特征
利用彩色图像获取系统的Matlab图形界面程序,设置高清摄像头的分辨率为1280×720像素,真彩RGB格式,每个通道都是256级。通过“单次拍摄”和“连续拍摄”按钮,获取并保存图像文件。
使用Maltab自带的histogram()函数,分别画出红色、绿色和蓝色(R、G和B)分量(通道)的直方图。观察发现,只有蓝色(B分量)的直方图,具有明显的“双峰”特征。
一幅原始彩色RGB图像(编号:A02)及其各分量(通道)图以及对应的直方图如图1-图7所示(因黑白印刷,色彩可能无法显示)。
图1 RGB原图 图2 红色R分量(通道)图像
图3 绿色G分量(通道)图像 图4 蓝色B 分量(通道)图像
图5 红色R分量(通道)像素值直方图 图6 绿色G分量(通道)像素值直方图
图7 蓝色B分量(通道)像素值直方图
2K-均值聚类算法原理及图像分割流程
聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类技术经常被称为无监督学习。1967 年MacQueen 首次提出了K-均值聚类算法(K-means算法)。由于K-均值聚类算法的简洁和效率,使得它成为所有聚类算法中使用最广泛的一种算法。
2.1K-均值聚类算法概述
K-均值聚类算法可以概括为:给定一个由n个样本组成、需要分类数据集,每个样本由r个特征值来描述,以及计划的聚类数目k,k一般事先指定。以r个特征值为依据(输入量),根据某个区分函数(一般为欧氏距离函数)的值为目标函数,反复把逐个样本分入k个聚类中。最终将数据集中的所有样本点分为k类,使得所有样本点到其所属类的中心的距离之和最小。
K-均值聚类算法的迭代过程是:第一步,先随机选取k个样本数据点作为初始的聚类中心,分别代表k个类的类中心。然后分别计算数据集中除选作初始聚类中心的其他所有样本数据点与k个聚类中心点之间的距离,把每个样本数据点分配给距离它最近的聚类中心所代表的类。第二步,根据第一步得到的每个类中样本数据点的值,通过简单平均的计算办法,重新计算每个类的聚类中心点的值。第三步,重新计算数据集中所有样本数据点到新的k个聚类中心点的距离,把每个样本数据点分配给距离它最近的聚类中心所代表的类。重新计算聚类中心点的值和根据与聚类中心的距离重新分配所有样本数据点到新的聚类中心所代表的类的过程将不断重复,直到满足以下某个终止条件:
(1) 没有新的(或达到最小数目的)样本数据点被重新分配给不同的聚类中心点所代表的类。
(2) 所有(或接近于k个)聚类中心点的值不再发生变化或变化量小于设定的阈值。
(3) 所有样本数据点到其所属类的中心点的距离之和已达最小(或变化达到某个最小值)。
K-均值聚类算法必须事先确定类的数目k。在实际应用过程中,k值往往很难事先确定,因此有一定的局限性。但是,在人工海水养殖环境中拍摄的鱼类图像中,只有海水背景和鱼体目标。在这里k是确定的,即k=2。换句话说,这样的图像比较适合使用K-均值聚类算法进行分割。
2.2使用彩色图像像素点的K-均值聚类公式
彩色图像获取系统得到的为1280×720像素的中等分辨率彩色图像,保存格式为RGB真彩图像文件。
每幅RGB格式的真彩图像文件中,共包含1280×720=921 600个像素点,每个像素点由R、G、B三个值构成的一个向量表示,比如(255,255,255)。
在这里,用于聚类的数据是由921 600个数据点组成的数据集X={xi|xi∈R3,i=1,2,…,921 600},每个数据点xi是由3个表征其特征的R、G、B数据组成的向量。
K-均值聚类的目标是将n(此处n=921 600)个数据点划分到k(此处k=2)类组成的数据集C={ck|k=1,2,…,k},其中ck类的类中心设为μk。一个被划分到ck类的数据点xi到类中心μk的距离为:
(1)
所有被划分到ck类的点xi到该类的类中心μk的欧氏距离之和为:
M(ck)=∑xi∈ckD(xi,μk)
(2)
用于聚类的数据集中所有数据点到其所属类的欧氏距离总合,即将每个类中的数据点到其类中心的欧氏距离之和相加,为:
(3)
聚类目标就是使式(3)中的S(xi)的值最小。
K-均值聚类算法的步骤可描述为:
Step1聚类开始,随机选定k(此处k=2)个数据点作为k个类的初始类中心点的值。设定初始S(xi)值为0,设定最大迭代次数h。
Step2依次计算数据集中各数据点到k个类中心的欧氏距离,并将其划分到距离最近的一个类中,得到k个类的数据集。
Step3依次计算k个类中所有数据点的简单算术平均值,作为该类的新的类中心。
Step4计算所有数据点到其所属类的类中心的欧氏距离之和S(xi),判断S(xi)的值是否未改变或者改变量在某最小值之内,或者迭代次数达到上限h,如果是,就转到Step5,聚类结束;如果否,就转到Step2,继续迭代。
Step5迭代结束,算法终止。
2.3分割实验流程
使用Matlab R2012a科学计算开发软件作为实验编程工具,利用其数据挖掘工具包自带的kmeans()函数作K-均值聚类算法的实现工具。kmeans(X,k)函数有两个输入参数,X和k,X是数据点构成的n×p的矩阵,矩阵的每一行代表一个数据点,其一列代表构成该数据点的某个特征值;kmeans()函数返回一个n行1列的向量,其中每一行的值表示该行号的数据点所属的类号。
当使用像素点的RGB值聚类时,X是n×3的矩阵,其中n是一幅彩色图像中的总像素点数,这里n=921 600。每一行的3列值分别表示R、G和B分量的值。当只使用R、G或B一个分量的值聚类时,X是n×1的向量,表示R、G或B分量的值。这里,k=2。分割流程如图8所示。
图8 石斑鱼图像K-均值聚类算法分割流程图
3图像分割实验与分析
本实验采用了上述彩色图像获取系统拍摄的人工海水中养殖的石斑鱼图像,共100幅。使用Windows 7操作系统和Matlab R2012a,作为图像分割实验基本软件环境。计算了使用同一图像文件的4种数据, K-均值聚类分割后得到的满意结果数量。
3.1图像分割结果
通过对100幅图像,采用RGB向量数据和分别采用单独的某个原色值(R、G或B)分割结果的观察,发现使用蓝色单色值分割效果总体令人满意。此处,以两幅图的分割结果为例,如图9所示。
图9 RGB及其三分量的不同分割结果举例图
3.2聚类分割结果分析
我们仔细观察和对比了像素值分布直方图和图像分割结果,发现只有三色中的蓝色分量(B分量)的直方图普遍具有“双峰”特点。基于这个分量的K-均值聚类算法分割结果,也最令人满意。分析其原因,可能蓝色是构成人工海水背景的主色调。
通过对100幅人工海水中石斑鱼的RGB图像文件进行分割实验。以每个像素点的RGB向量值作为聚类分割的数据点,只有10个图像文件得到了可用的分割结果;以每个像素点的红色(R)分量值作为聚类分割的数据点,只有8个图像文件得到了可用的分割结果;以每个像素点的绿色(G)分量值作为聚类分割的数据点,只有6个图像文件得到了可用的分割结果;而以每个像素点的蓝色(B)分量值作为聚类分割的数据点,有98个图像文件得到了可用的分割结果,并且其余2个文件使用其他分量或RGB向量值,也同样得不到满意的分割结果。
采用RGB向量值或R、G、B分量得到的分割满意结果文件数如图10所示。
图10 采用不同数据点矩阵得到的分割满意图像数比较
4结语
(1) 本文提出了一种构建人工海水中石斑鱼彩色RGB图像获取系统的基本框架。
(2) 将K-均值聚类算法应用于石斑鱼彩色图像的分割,并对采用RGB向量值和R、G、B各分量值的分割结果进行了对比和分析。
(3) 分割结果表明,人工海水背景的石斑鱼彩色图像分割,仅使用蓝色(B)分量,可得到满意的分割结果。
参考文献
[1] Jiahong Lee,Meiyi Wu,Zhicheng Guo.A tank fish recognition and tracking system using computer vision techniques[C]//Computer Science and Information Technology (ICCSIT2010),The 3rd IEEE International Conference on Computer Science and Information Technology,Chengdu,China,9-11 July,2010:528-532.
[2] Özlem N Subakan,Baba C Vemuri.A Quaternion Framework for Color Image Smoothing and Segmentation[J].International Journal of Computer Vision,2011,91(3):233-250.
[3] Pinkiewicz T H,Purser G J,Williams R N.A computer vision system to analyse the swimming behaviour of farmed fish in commercial aquaculture facilities:A case study using cage-held Atlantic salmon[J].Aquacultural Engineering,2011,45(1):20-27.
[4] Felzenszwalb P F,Huttenlocher D P.Efficient graph based image segmentation[J].International Journal of Computer Vision,2004,59(2):167-181.
[5] Vassilis M Papadakis,Ioannis E Papadakis,Fani Lamprianidou,et al.A computer-vision system and methodology for the analysis of fish behavior[J].Aquacultural Engineering,January,2012,46(1):53-59.
[6] Mengche Chuang,Jenqneng Hwang,Craig S Rose.Aggregated segmentation of fish from conveyor belt videos[C]//ICASSP 2013 : The 38th IEEE International Conference on Acoustics, Speech, and Signal Processing, Vancouver, Canada, 26-30 May,2013:1807-1811.
[7] Peizhe Zhang,Canping Li.Region-based Color Image Segmentation of Fishes with Complex Background in Water[C]//2011 IEEE International Conference on Computer Science and Automation Engineering.2011,Shanghai,China,10-12 Jun,2011:596-600.
[8] 刘玉洁.改进的K均值聚类算法彩色图像分割的研究[J].工业控制计算机,2012,25(4):76-77.
[9] Hong Yao,Qingling Duan,Daoliang Li,et al.An improved K-means clustering algorithm for fish image segmentation[J].Mathematical and Computer Modelling,2013,58(3-4):790-798.
[10] Mengche Chuang,Jenqneng Hwang,Kresimir Williams,et al.Richard Towler Automatic Fish Segmentation Via Double Local Thresholding for Trawl-based Underwater Camera Systems[C]//ICIP 2011:The 18th IEEE International Conference on Image Processing,Brussels,11-14 Sept,2011:3145-3148.
[11] 黄芬,于琪,姚霞,等.小麦冠层图像H分量的K均值聚类分割[J].计算机工程与应用,2014,50(3):129-134.
APPLICATION OF K-MEANS CLUSTERING ALGORITHM IN COLOUR IMAGE SEGMENTATION OF GROUPER IN SEAWATER BACKGROUND
Ma GuoqiangTian Yunchen*Li Xiaolan
(SchoolofComputerandInformationEngineering,TianjinAgriculturalUniversity,Tianjin300384,China)
AbstractFish’s image segmentation is the key and prerequisite step of the behaviour observation and intelligent automatic feeding system for farmed fish. For fish segmentation of the image with seawater background, we proposed a hardware and software system in regard to acquiring colour RGB image of grouper farmed in artificial seawater environment, and applied k-means clustering algorithm in the experiment of RGB format images’ segmentation. We observed and analysed the histogram characters of three planes of monochromatic pixels (R, G or B) of colour image. Using three-colour pixel points (RGB) and three planes of monochromatic pixels (R, G or B) as the clustering data sets, we employed k-means clustering algorithm for image segmentation, the clustering number value was set to 2, representing the seawater background and fish object respectively. Through observation and statistics of 100 image segmentation results, it could draw a preliminary conclusion that the results of using blue (B) plane clustering segmentation satisfied the most.
KeywordsImage segmentationK-means clusteringMari culture
收稿日期:2014-10-29。天津市科技支撑计划重点项目(14ZCZ DNC00009);公益性行业(农业)科研专项项目(201203017)。马国强,讲师,主研领域:图像处理,模式识别。田云臣,教授。李晓岚,讲师。
中图分类号TP391.41
文献标识码A
DOI:10.3969/j.issn.1000-386x.2016.05.048