基于机器视觉技术的鱼类识别研究进展

发表时间:2024/11/20 13:17:13  来源:渔业信息与战略2019年2期  作者:杨东海,张胜茂,汤先峰  浏览次数:287  
西南渔业网-丰祥渔业网秉承:求是务实不误导不夸大不炒作!水产专业网站为您提供优质服务!【郑重提醒】:本站所有文章,如需转载请注明出处,否则谢绝转载!!谢谢合~
市场在变,我们的诚信永远不会变!

机器视觉是人工智能领域的一个重要分支,主要利用计算机来模仿人的视觉功能。通过对目标图像提取特征进行处理并加以分析理解,最终用于目标的分类识别[1]。鱼类识别技术是运用机器视觉技术,识别出特定场景、环境中鱼类的种类,从而应用在生产生活中[2]。

鱼类在加工或养殖的过程中,需要进行分类识别,但是鱼类种类繁多[3-5],形态多样易变[6],而且经验丰富的鱼类学专家较少,培养出一位鱼类学专家周期长,造成鱼类识别的困难。传统的识别方法,一般采用人工筛选,该方法不仅劳动强度大,工作效率低,而且识别准确率很低[7]。随着图像处理与机器视觉技术的发展,从基于特征值、相关系数、神经网络、分级分类、支持向量机,到后续利用多种形式的卷积神经网络对鱼类种类进行识别,新的鱼类识别技术可以降低劳动强度,提高准确率,该技术基本达到应用水平。

鱼类识别技术用途广泛,如应用在鱼类知识科普方面。在水族馆鱼类知识科普系统中,通过遥控摄像机拍摄鱼缸实况视频,经过图像处理,可实现鱼类种类自动识别。该系统允许水族馆游客远程控制摄像机,通过在互动界面上选择想要了解鱼的位置,该鱼的信息将显示在另一个屏幕上[8]。此外,鱼类识别技术在鱼类物种食用、装饰和其他用途上都起着重要作用。鱼类识别在渔业资源研究、水产养殖发展、鱼类稀有物种保护和观赏鱼贸易管理等领域的应用上也是必不可少的[8]。本文通过系统综述鱼类识别的最新研究进展,为进一步深入研究机器视觉技术在鱼类识别上的应用,奠定了一定的基础。

1 鱼类识别系统

进行鱼类识别,首先对采集到的鱼类图像进行预处理,然后对鱼类图像特征提取,并建立有关鱼类物种识别算法模型,最后实现对鱼类图像的分类识别。具体流程如图1所示。

图1 鱼类识别流程 Fig.1 Flow chart of fish identification

鱼类识别系统硬件装置一般由环形灯、检测箱、摄像头、图像视频采集卡、计算机等组成[7,9-10]。在实验中,将鱼放到输送带上,然后用摄像头和图像视频采集卡获取鱼体的灰度图像,不同图像表示鱼的状态信息各不相同,最后用计算机软件Matlab2009a进行图像的处理与鱼类种类的识别[7]。有些鱼类识别系统软件主要在VC++6.0平台上编程实现,流程为先利用摄像头和图像采集卡获取鱼类图像,并对图像大小、采集频率、图像进行存储,然后对鱼类图像进行预处理,提取轮廓、特征等信息,最后完成鱼类种类识别[9]。涂兵等[10]研究的鱼类识别系统,软件平台是基于VS2013与Open CV完成鱼体图像采集和图像相关形态参数的获取、数据分析结果的快速存储。而一种基于神经网路的鱼类识别系统,其组成主要有2个部分:一是图像数据采集装置;二是软件平台采用keras框架,利用计算机显卡进行分类模型的训练[11]。综上可知,鱼类跟踪系统的软件环境有多种选择,需要与自身研究相匹配。

2 特征提取

在鱼类识别建模之前,需要提取鱼类特征信息。鱼类特征提取一般是对鱼类的形状、纹理和颜色等特征进行计算处理,以为鱼类识别算法的建模提供核心数据。

2.1 形状特征

鱼类生活在水中,大都具有适宜游泳的体型和鱼鳍[12]。鱼类的外形多种多样,根据鱼体的形状特征,一般可分为头部、躯干部和尾部3个部分,从头部到尾部有1条连接鱼体的头尾轴[13]。一般鱼类的体型是流线型,整个身体呈纺锤形而稍扁,这种体型更利于在水中游泳。

假设鱼的中心点为鱼体的质心点,根据鱼类的形状特征可以构建出鱼体的基本轮廓[13]。对于鱼体轮廓的获取,可以把鱼体图像的内部点掏空,仅保留边缘点来实现。在鱼体轮廓图上提取鱼体的特征信息可以实现鱼体的尺寸检测[9]。利用机器视觉算法提取出要识别的鱼体背部轮廓曲线[10],然后利用曲率尺度空间变换、傅立叶边界直方图提取形状特征[14]。万鹏等[15]把预处理后鱼体的二值化图像,按照鱼的长轴方向分成5段,最后用鱼体各段宽度与长度的比值作为鱼体的形态特征。由于水下受背景干扰以及对比度差,利用Haar分类器定位出图像中鱼头部和尾巴,进一步获取蓝鳍金枪鱼(Thunnusthynnus)的形状特征[16]。而ALSMADI等[17]尝试在鱼体上标示标志点,然后利用长度、角度测量的局部几何方法,根据大小和形状尺寸提取形状特征,也取得较好的效果。

研究表明,矩函数可以用于形状特征提取[18]。Krawtchouk 矩是一种新的正交矩,其克服了传统正交矩要进行坐标变换等缺陷,Krawtchouk 矩构建的不变量可以获得大量鱼的形状信息,具有旋转、尺度不变性等优势[19]。随着对形状特征提取的多角度涉入,出现一种基于信号配准和测地线形状的识别方法,利用形状测地线,加快了形状特征处理的速度[20]。由于不同形状的鱼类具有不同的声散射特性,利用离散余弦变化来表征鱼类在形状上的散射特征信息,实现鱼类形状特征的提取[2]。图像直方图计算代价小,包含丰富的图像信息,广泛用于图像分类,可以利用边缘检测直方图来提取形状特征信息,使用Canny边缘检测算法获取图像中的边缘信息,通过在形状图像上应用二维傅里叶变换,在频域中执行通用的傅里叶描述符提取[21]。

2.2 纹理特征

纹理特征是反映图像中同质现象的视觉特征[22],是物体表面的基本特性。纹理特征体现了物体表面具有缓慢变化或周期性变化的结构组织的排列属性[23]。在图像分析和图像分类中应用广泛。

鱼类纹理特征提取方法有灰度共生矩阵[17]、小波变换[24]等。利用灰度共生矩阵通过计算图像中一定方向与距离的两个像素灰度之间的相关性,来反映图像在方向、间隔、变化幅度及快慢上的信息[25],具有很强的鲁棒性[26]。因此可以借助图像的灰度级直方图统计矩,空间Gabor滤波,共生矩阵的性质提取鱼类图像纹理特征[27]。运用灰度共生矩阵计算图像中出现像素亮度值的不同组合的频率[28],对图像进行纹理分析,确定像素的方向、像素距离以及图像灰度等级[29]。然而,目前已有的纹理特征提取算法大多只能提取单波段的灰度图像的纹理特征,用于多波段彩色图像的纹理特征提取算法很少[30]。因此在单波段的灰度图像纹理特征提出的基础上,出现了彩色图像纹理特征提取的方法,该方法首先对图像的R、G、B 3个波段分别计算出灰度共生矩阵,然后每2个波段联合计算出灰度共生矩阵,得出9个矩阵,对这9个矩阵进行纹理特征计算,最后得到长度为9的纹理特征向量,实现了对彩色图像的纹理特征提取[31]。而侯群群等[32]通过分析参数对角二阶矩、熵、对比度和相关性等4个纹理特征的影响规律,给出了合理的参数取值范围,优化了纹理特征提取方法。

小波变换是通过伸缩平移运算对函数多进行所尺度细化,获得一种自适应时频信号分析的方法[33],在图像分析中得到广泛应用。鱼类分类系统可以利用小波变换提取鱼体图像的特征[24]。小波变换主要优点是有不同的窗口,尺寸大,低频宽,高频窄等,从而可获得在所有频率范围内的最佳的时频分辨率[34]。

2.3 颜色特征

图像中的每个像素点都存储着红、绿、蓝3个颜色分量的信息,共同构成了该点的颜色信息。提取鱼体图像的颜色分量,第一步需要对整幅图像的颜色分量进行统计,计算出各个颜色分量的直方图;第二步对颜色值大于30的像素点,求出均值和方差,并把计算出的均值作为图像新的颜色值[9]。

图像分割的质量决定了特征提取的好坏[35]。图像分割是把一幅图像根据灰度、颜色、纹理和形状等特征划分成若干互不相交的区域,并使这些特征在同一区域内呈现出相似性,不同的区域中呈现出差异性。在此基础上,选取一种主要颜色描述符对图像感兴趣区域的颜色进行提取的方法[36]。为了加快数据处理速度,把颜色特征直接从离散余弦变换的压缩域中提取出来,大大节省计算的时间[37]。由于颜色特征缺乏空间信息,为了进一步为图像颜色特征的提取提供更多的数据支持,出现一种基于HSV非均匀量化分块颜色直方图的图像检索算法,用于解决基于颜色的图像检索问题[38]。首先利用分块直方图算法把图像分成特定的子块,然后计算出各个子块的颜色特征,并把含有重要空间信息的子块设置权值,将其他子块的权值设为零。颜色空间是一个多维空间,不同的维度表示颜色的不同组成部分,鱼类的背部和腹侧着色构成非常重要的特征,因此在颜色特征提取中,进一步选择了基于鱼体图像的腹侧部分的特征[39]。

3 分类方法

鱼类识别系统分类方法很多,一般可分为基于特征值、相关系数、神经网络、分级分类、支持向量机和利用多种形式的卷积神经网络对鱼类种类进行识别,识别的准确率得到很大提高。

3.1 特征值识别

特征值识别是利用提取鱼体图像的特征值,通过特征值比较判断,实现鱼类识别。基于特征值识别的水下鱼类分类系统,能通过利用灰度直方图统计矩提取鱼类纹理特征值,利用曲率尺度空间提取形状特征值,实现鱼类识别[40]。张志强等[9]的鱼类识别系统通过提取鱼体图像各个颜色分量和长短轴之比等特征值,对计算得到的图像特征值统筹判断,最后利用这些特征值构建出鱼类识别模型,实现鱼类品种分类。研究表明,可以利用声纳图像进行鱼体的特征提取,如长度、角度和鱼体态分布数据等,然后根据这些特征值建立鱼体数据库与需要识别的目标相匹配,从而实现了鱼类识别[41]。而利用机器视觉技术和称重传感器技术,可以设计出一种对大黄鱼外部形态参数特征值和重量的自动检测方法[42]。采用鱼体背部弯曲潜能算法,计算出不同鱼类的背部弯曲潜能值的分布区间,通过对比要识别的鱼类背部弯曲潜能值区间的不同,可以实现对鱼类的分类识别[43]。

3.2 相关系数

相关系数识别是计算出鱼体特征数学模型的相关系数值,实现鱼类识别。一种基于鱼体背部轮廓相关系数算法的鱼类种类识别系统,首先对采集到的鱼体图像进行预处理,然后提取鱼的背部轮廓特征,建立相关的数学模型,再通过机器视觉算法提取出目标鱼类的背部轮廓曲线,计算出鱼体背部轮廓特征数学模型的相关系数值,从而实现了对鱼类种类的分类识别[10]。这种基于鱼体背部轮廓相关系数算法的鱼类识别方法取得了较理想的结果,为鱼类识别提供新的思路。

3.3 分级分类

2012年,HUANG等[44]提出一种基于分级分类来实现对鱼类识别的方法,其主要步骤为:首先把样本划分为特征相似组,然后对子类进一步划分,一般的分类方法是把某些特征用于全部的鱼类样本分类,而分层方法用特定的特征对相似鱼类分类,分层次的解决方案是利用类之间的相关性和找到类似的分组,特别适用在有大量的类别的识别中。而分级分类会引入错误,出现错误的累积,为了克服此缺陷,2014年HUANG又提出了一种排斥系统分类的方法用于鱼类识别[45]。该方法主要用平衡保证优化树分级分类,然后用高斯混合模型评估测试样本的后验概率,拒绝低概率选项,结果显示,累计错误减少。2016年,HUANG进一步提出在非约束环境中利用基于拒绝选项的平衡保证优化树,实现对鱼类实时识别,并在分级分类之后应用高斯混合模型和贝叶斯规则作为拒绝选项,过滤掉不确定的决策,从而更加提高鱼类识别率[46]。

对于鱼类识别的分级分类算法,也可以通过部分分类应用到物体层级的每个层次,在置信度较低时,粗到细的分类就停止,并通过阈值决策做出最优的选择,实现鱼类识别[47]。

3.4 支持向量机

支持向量机(support vector machine,SVM)是在统计学习理论的基础上发展起来的机器学习方法,广泛用于处理分类和回归问题[48-49]。

基于纹理特征的SVM分类器鱼类识别系统取得一定的成效[50]。然而基于形状特征和纹理特征的SVM识别方法对鱼类的识别率优于只用形状特征或纹理特征的鱼类识别率,综合颜色特征和纹理特征的支持向量机识别方法对鱼类识别的准确率高于只用颜色特征或纹理特征的准确率。因此,可以利用在颜色和纹理特征上使用多类支持向量机的方法实现鱼类物种分类[24]。通过对鱼体图像的长宽比、鱼头尾的Krawtchou矩不变量形状特征和鱼体图像的灰度共生矩阵的纹理特征的计算,然后再把形状特征和纹理特征组合计算出高维特征向量,再通过最小二乘SVM识别出鱼的种类,最后可以利用人工蜂群算法进一步提高识别度,取得良好的效果[7]。

杜伟东等[2]提出了一种基于SVM结合多方位声散数据决策层融合的鱼类识别系统。首先利用小波包变换和离散余弦变换对多方位声散数据进行特征提取,再通过SVM分类器对提取特征进行决策,最后利用决策融合算法实现鱼类识别。而通过提供的视频帧,提取出足够大的感兴趣区域,再运用基于多类SVM分类器,也可以实现鱼类的识别[51]。研究表明,通过提取鱼的6个特定形状特征:体长、臀鳍长度、尾鳍长度、背鳍长度、骨鳍长度和胸鳍长度,并提取鱼的纹理特征,组合成分类依据,建立相关模型,再利用SVM算法可实现鱼类识别,达到很好的效果[52]。也可以利用线性SVM分类器实现对鱼类的识别。首先,通过稀疏和低阶矩阵分解和提取鱼体的前景图像,然后使用一个深层架构来提取前景鱼体图像的特征,再利用空间金字塔池提取与不变量关联大的信息,最后用线性SVM进行分类[53]。

3.5 神经网络

人工神经网络也称神经网络,是一种仿照动物神经网络行为特征的数学模型,采用分布式并行方式对信息进行处理[54]。把神经网络算法运用到鱼类识别中,取得很好的效果,为鱼类识别奠定基础。

基于神经网络的鱼类识别系统,通过提取鱼的不同位置的高度和宽度特征,将测量值和鱼类种类信息作为神经网络的输入值,然后训练输入数据,从而实现鱼类种类识别。为了减少训练时间,引入学习率和动量因子来消除非共线连接和节点[55]。2010年ALSMADI等[28]提出一种利用反向传播分类器来实现鱼类识别。首先,提取鱼体图像的颜色纹理特征,然后利用多层前反馈神经网络训练出分类器,实现对鱼类识别。为了进一步提高识别率,在鱼体上标示标志点,利用长度和角度测量方法,根据大小和形状提取特征,利用灰色共生矩阵提取纹理特征,再利用反向传播神经网络识别出鱼类种类[56]。对于提取的特征量,不仅局限于形状、颜色和纹理特征。利用小波包多尺度信息熵的提取作为特征量,输入反向传播神经网络分类器,对不同形状的鱼类进行识别,识别率也比较理想[57]。

近年来,卷积神经网络[58](convolutional neural networks,CNN)在图像分类领域,取得很大突破。采用高维内部表示的深层CNN对于特征提取的工作有限,所以采取减少内部全连接层的维度,结合层限制再进行训练,然后使用高斯混合模型对从修改层获得的低维度特征进行建模,最后实现对鱼类的识别[59]。而通过高精度快速R-CNN(regions with convolutional neural network features)网络,来实现对鱼类识别,也获得很好的效果[60]。由于采用单一神经网络训练模型进行鱼类识别,识别率不高,因此通过鱼类检测的二元SVM分类器和用于鱼类分类的多类SVM,并提取CNN特征,实现鱼类分类,获得很高的识别率[61]。张俊龙等[62]提出基于一种深度学习的海底观测视频中鱼类识别方法,首先利用背景差分法过滤掉不包含鱼类的图片,然后基于暗通道先验算法对鱼类图片进行预处理,最后利用权重化特征的卷积神经网络构建出鱼类识别模型,为恶劣的海底环境下的鱼类识别奠定了基础。

3.6 分类方法对比

基于机器视觉技术的鱼类识别系统,可用的分类方法很多,针对不同的鱼类及环境要求,会有不同的识别效果和优缺点。特征值识别是利用提取鱼体图像的相关特征值,通过特征值比较判断,实现鱼类识别,该算法计算简单,有很高的实用性,对于不同生长期的鱼类,形状、颜色或纹理特征值不同,容易引起误判。提取颜色特征时由于光照或拍摄角度的变化,会造成特征值计算误差增大,影响最终的识别效果。利用相关系数识别是先计算出鱼体特征的相关系数值,通过判断实现鱼类识别,该算法简单,有很强的可操作性,识别率较高,为鱼类识别提供了新思路,但是该方法研究基础薄弱不深入,应用范围也很窄。而分级分类方法算法相对成熟许多,但运算量很大,计算复杂,也容易引起错误的累积,不过经过多年的技术迭代,错误累积的缺陷得到很大的优化。支持向量机灵活多变,应用范围广,泛化能力强,识别率也很高,整体效果很好,不足之处在于核函数的最优参数很难寻找,参数调试也很困难。神经网络具备自主学习能力,具有较好的鲁棒性,能很好的抵御外界的干扰,但很难获取大量的训练数据,随着神经网络层数增多,计算复杂度很高,训练出模型的周期很长,不适合实时识别研究,而且训练出的分类模型容易出现过拟合现象,影响识别效果和精度。

表1 分类方法对比Tab.1 Comparison of classification methods

4 问题与展望

运用机器视觉技术可以准确地对常见的鱼类进行识别,具有较强的实用价值,但仍然存在一些不足之处:

4.1 环境因素影响

(1)图像采集过程会受到各种噪声、光照环境、拍摄角度以及图像失真和像差的影响,会造成提取的颜色特征产生偏差,降低识别精度[63]。

(2)算法试验的鱼类种类有限,缺乏对其他鱼类的考虑。而且,对于不同生长期的鱼类,不同种类的鱼类,形体可能相似,会引起误判。例如600 g以下鲫鱼和鲤鱼形体较为相似,识别起来困难,会造成误判[64]。

(3)死亡时间对于部分鱼体表面颜色影响较大。例如鲫鱼,当死亡较长时间后,其鱼体表面的黑色很容易褪去,整体偏白,导致蓝色分量值偏高,容易引起误判。

(4)实时检测获取鱼体图像时,存在一些动态形变,增加了基于形状特征鱼类识别的困难[6]。

(5)海洋环境复杂,对鱼类识别方法要求比较苛刻。鱼类在大海中游动,光照变化频繁,水体环境复杂,因此在开放水域的鱼类识别是具有挑战性的。利用机器视觉技术辨别鱼类种类受环境因素限制[39],并且易受光照参数的影响[62]。

4.2 软件技术原因

(1) 数字图像处理中的失真、噪声、分割误差、重叠和遮挡会影响对鱼类图像信息的捕捉[65]。

(2) 图像分割存在技术困难,因此图像分割可能会变得不可靠或完全失败[56]。

(3) 若想获得鱼类的二维图像,需处理大量信息,对计算机的计算速度存储容量要求较高。

近年来,机器视觉技术在各个领域得到越来越多的关注。利用机器视觉技术和传统鱼类识别相结合,极大地提高了鱼类识别的准确率,克服了传统的人工操作的劳动强度大、识别率不高和容易造成鱼体伤害等缺点。鱼类识别技术是渔业科学研究的基础,技术的成熟程度会影响整个渔业科学研究结果的准确性。鱼类识别技术可以辅助海洋特定鱼类物种的分布调查统计,逐渐成为渔业资源评估中的重要手段之一。目前的海洋调查方式有航空观测、卫星观测、拖网调查、潜水调查等,但都无法详细捕捉到鱼类行为,且收集的数据量少,不能完全描述所观察到的环境状况。机器视觉技术的应用,可以获取鱼类相应的状态、位置和方向等信息,使收集的数据量增加,提高观察的鱼类环境状况判断的准确性[66]。

鱼体图像特征提取和分类识别有许多算法。在实际的操作中,对于鱼类识别系统的构建,不能仅局限于一种算法的使用。例如,对于形状、纹理和颜色特征的提取,如果使用单一的属性,描述图像的特征,不足以达到精准识别的要求。而形状、颜色和纹理特征之间的关系至关重要,特别是颜色和纹理之间[67]。但对于特征提取又不局限于形状、纹理和颜色特征,也可以利用自动远程声学实现鱼类识别[67]。对于分类方法可以多种算法组合使用,利用SVM和CNN相结合实现对鱼类识别,效果很好[61]。除本文介绍的比较常用的分类方法外,还有一些分类方法也可用于鱼类识别,如利用贝叶斯分类器来实现鱼类分类[69]等。因此,鱼类识别算法的使用不局限于一种,可以是多种组合的形式。随着机器视觉技术的发展,一些新研发的算法也会运用到鱼类识别中,使鱼类识别的鲁棒性和识别率提高。未来,基于机器视觉的鱼类识别系统,会对整个渔业养殖体系以及人们的生产生活产生深远的影响。

声明:转载文是出于传递更多信息之目的。若有标注错误或侵犯了您的合法权益,请与本网联系,我们将及时更正、删除,谢谢

站(可搜索)"养鱼第一线"微信公众号和微信视频号"养鱼第一线刘文俊视频号"!以及头条号"水花鱼@渔人刘文俊",将会定期向你推送信息

查看评论[0]文章评论