基于SVM支持向量机的水质图像分析

2018-05-07 05:45李昂金晓军万权性
电脑知识与技术 2018年8期
关键词:计算机视觉机器学习

李昂 金晓军 万权性

摘要:针对运用水色图像来判别水质状况的问题,设计了一种基于计算机视觉与机器学习的水质图像评价方法。利用颜色矩阵对水质图像进行特征提取,采用SVM支持向量机算法对水质图像的RGB三通道特征进行数据分析,使用Python语言进行编程,得到一个水质评价模型。实验表明,该方法能有效通过水体的颜色对不同水质进行识别,具有一定的实际应用价值。

关键词:计算机视觉;机器学习;Pvthon;水质图像

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)08-0157-03

随着工业技术的日益提升,人类的生活变得越来越便利。但与此同时环境污染问题日趋严重,大气、土壤、水质污染是各个工业国家不得不面对的问题。污染需要治理,因此对于污染物的评价与监测十分重要。水产养殖业是我国国民经济的一个重要组成部分,在水产养殖过程中,选择没有污染的水域进行养殖十分重要。有经验的渔业生产从业者能够通过水体的颜色来判断水质的好坏,从而确定水体是否适合鱼类生长。在生产环境下,通常是以传统的肉眼观测法,以经验来观察判断,这种方式虽然有效,但观察结果不够稳定,主观性较强,容易引起观察性偏差。因此寻求一种定量分析有便于推广的方法十分必要。随着计算机视觉技术的快速发展,利用机器视觉代替人工视觉已经用于工业生产的诸多领域,同时也为水产养殖业提供了更好的技术支持。通过合理将计算机视觉技术与专家经验相结合,可以通过水体的颜色,对水质的优劣程度进行分级,对水质情况进行自动快速的识别。本文针对水质污染的评价方法进行研究,通过计算机科学技术对水质图像进行特征提取与数据分析,得到一个有效的水质自动评价模型。

1数据预处理

颜色直方图产生的特征维数一般大于颜色矩的特征维数,为了避免过多变量影响后续的分类效果,在本案例中选择采用颜色矩来提取水样图像的特征,即建立水样图像与反映该图像特征的数据信息关系,同时由有经验的专家对水样图像根据经验进行分类,建立水样数据信息与水质类别的专家样本库,进而构建分类模型,得到水样图像与水质类别的映射关系,并经过不断调整系数优化模型,最后利用训练好的分类模型,用户就能方便地通过水样图像判别出该水样的水质类别。水色分类如表1所示。

图1为基于图像处理的水质评价流程,主要包括以下步骤。

1)采集水质样本图像,选择性抽取一部分形成建模数据集,将实时抽取的图片作为增量数据集。

2)数据预处理,对步骤1形成的兩个数据集进行图像切割和颜色矩特征提取。

3)由专家对步骤2形成的建模数据进行观测,根据经验对水样图像进行分类,形成专家样本。

4)利用专家样本构建分类模型。

5)利用上一步的构建好的分类模型进行实时水质评价。

在采集水样图像时,会将盛水的玻璃容器一起拍成照片。由于感兴趣区域为水样区域,因此要排除玻璃容器与背景噪声的干扰。这里采用图像切割的方法,截取水样的中心区域附近的图像作为研究对象。具体方法为,提取水样图像中央80×80像素的图像。设原图像的大小是MXN,则截取宽从第fix(M/2)-40个像素点到第fix(M/2)+40个像素点,长从第fix(M/2)-40个像素点到第fix(M/2)+40个像素点的子图像。即可把图2中左边的原始水样图像切割并保存到右边的切割后的水样图像。

2特征提取

图像中任何的颜色分布都可以用它的矩来表示。根据概率论的思想,随机变量的概率分布可以由其各阶矩唯一的表示和描述。一幅图像的色彩分布可以认为是一种概率分布,那么图像可以由其各阶颜色矩来描述[6-8]。这里通过提取颜色矩阵来提取水样图像的特征,各阶颜色矩的计算方式为:

3水质评价模型构建

3.1模型输入

对特征提取后的样本进行抽样,抽取80%作为训练样本,剩下的20%作为测试样本,用于水质评价检验。

这里采用SVM支持向量机作为水质评价分类模型,该模型的输入包括两部分,一部分是训练样本的输入,另一部分是建模参数的输入。由于特征的取值范围在0~1之间,如果直接输入SVM模型,彼此之间区分度会比较小。为了解决这一问题,将所有特征都统一乘以一个适当的常数k,从而提高区分度和准确率。常数k的取值要适当,如果过小将导致区分度过低,使得模型精确度差。如果过大则会导致模型在训练样本中过拟合。所以k值的选取需要通过大量测试来确定一个最优值。经过实验,本次建模中k的最优值为30,因此将输入的特征统一乘以30,然后建立支持向量机模型。

3.2实验与分析

模型建立完成之后,使用训练样本对分析对象进行回判,得到的混淆矩阵如表3所示,分类准确率为96.9%,分类效果良好,可应用该模型进行水质评价。

4实验结果

本文实验使用python语言编程实现。水样数据采集于多个水产养殖池塘与湖泊,使用数码相机进行图像拍摄。为实现批量处理,将水质图片进行统一命名,命名规则为“类别一编号.jpg”。将所有测试样本作为输入样本,输入已经构建好的支持向量机模型,输出的结果即为预测的水质类型。水质评价的混淆矩阵如表4所示,分类准确率为97.56%。实验结果表明,该水质评价模型对于新增的水色图像的分类效果较好,可将模型应用于水质自动评价系统,实现水质评价。

5结束语

本文设计基于计算机视觉的水质图像分析方法,结合实际的水质样本,使用图像处理算法提取水样的颜色矩,使用SVM支持向量机算法对特征值进行数据分类,最终将训练出的模型对水质进行评价。本文图像处理算法与数据处理均使用py-thon语言进行编程实现。实验结果证明,本方法能有效对不同水质进行分类,实现水质评价。具有一定的实用意义。

猜你喜欢
计算机视觉机器学习
基于深度卷积神经网络的物体识别算法
双目摄像头在识别物体大小方面的应用
危险气体罐车液位计算机视觉监控识别报警系统设计
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究