【目的】鱼类识别对渔业资源的开发利用有着重要的意义。针对海底环境恶劣、拍摄环境亮度低、场景模糊的实际情况导致海底观测视频品质差,视频中的鱼类识别难的问题以及现有鱼类识别方法存在的鱼类标注数据集过少导致训练的深度模型准确度不高的问题。

【方法】本文提出了一种基于百度EasyDL定制化图像识别平台的海底鱼类识别方法。首先使用伽马校正法和暗通道先验算法对图片数据进行预处理,提高图片亮度和清晰度,接着利用百度EasyDL定制化图像识别平台构建初鱼类识别模型,再使用数据增强等方法对模型进行调优,提高模型识别能力。

【结果】实验结果表明,与其他识别方法相比,该方法可以有效提高鱼类识别的准确率。

1  引言

鱼类不但有一定的食用价值,而且还有很高的药用价值,所以世界各国对鱼类资源的开发和利用都非常重视,在对鱼类资源开发过程中,必须对鱼类进行识别,了解其分布情况,但鱼的种类繁多,形状大小相似,识别起来较为困难。因此研究鱼类识别的方法,对我国渔业资源的开发利用具有重要的学术价值和经济价值,对于鱼类的分布情况,传统的研究方法以出海捕捞为主,使用延绳钓探捕、拖网探捕等常用捕捞技术。这种传统调研方式固然有效,但是对于相关科研人员来说,由于调研过程周期长,耗费资源太多,而且结果存在一定的延迟性,大大影响研究人员研究成果的质量。还有基于声呐系统的方法,对鱼体回波信号进行处理分析,从声学信号中提取适于分类的特征进行识别,但是由于声呐系统会对鱼类造成一定的伤害,所以也不能频繁实施,针对上述问题,国家于“十二五”期间提出将全面推动国家海底观测平台的建设,其中就包括通过部署水下摄像器材来实时监控关键海洋生物的重要务,这样就可以通过分析观测视频来代替出海调研,而且保证了获得数据的实时性,能够极大地提高科研人员的研究效率。

传统的机器学习方法用于鱼类识别的实现过程为:获取鱼图像、提取特征、构建分类器,将特征向量输入分类器以实现种类识别。如:Phenoix等人[1]采用贝叶斯和高斯核混合模型对鱼类特征进行分层分类的方法来实现鱼的分类识别;杜伟东等人[2]提出了一种提取多方位声散射数据的小波包系数奇异值、时域质心及离散余弦变换系数特征,并进行特征融合,最后用支持向量机分类的鱼识别方法;虽然这些方法都可以实现鱼类识别,但是这些方法这类方法已不适用于当前的视频或图片数据,并且方法严重依赖于人工选择特征,而人工选择特征往往只能选择表层特征,很难挖掘出有鉴别力的特征。

和传统机器学习方法相比,近年来崛起的深度学习方法以数据为驱动,能够从大量数据中通过卷积等操作自动学习特征表示,很好的解决了人工选择特征的问题。Abdelouahid等人[3]和顾郑平等人[4]都提出了采用深度网络模型进行鱼类识别的方法,虽然这些方法在识别性能上都取得了引人瞩目的效果,但是依然存在以下问题:模型识别性能的提高需要大量的鱼类标注数据集用于学习训练,而标注数据工作费时且昂贵,故在实际应用中难以满足。

为此,针对以问题,本文提出了一种基于百度EasyDL定制化图像识别平台的海底鱼类识别方法。利用百度EasyDL定制化图像识别平台解决目标数据集训练数据过小和数据分布差异问题,而且通过引入伽马校正法和暗通道先验算法对数据进行预处理,使数据特征具有更好的辨别能力,同时使用数据增强方法对模型进行调优,使得训练得到的模型的泛化性更强。

2  相关工作

2.1 海洋鱼类识别系统

图 1 海底观测平台

海底观测平台的系统结构如图1所示,位于海面以下的水下接驳器统一接收来自各个传感器的采集数据,包括水下摄像器材采集的视频数据,然后将数据传输至位于陆地上的岸基站。岸基站接收并缓存所有来自海底的数据,按约定的协议和规则转发给大数据中心。大数据中心由多个子系统构成,负责对不同类型数据的转化、存储、处理、分析,其中包括本文将要研究的海洋鱼类识别系统,负责对海底观测视频的处理分析。本文采用开源计算机视觉工具软件OpenCV来读取视频数据,将视频分解为图片帧,同时使用背景差分算法过滤无用帧后,针对每一帧进行预处理和识别分析。

2.2  数据预处理

由于海底图像对各种噪声和干扰是比较敏感的,在不同光照条件下,悬浮物等都对最终成像和识别有很大的影响。而且从图像的形成过程考虑,图像采集是将一个三维目标映射成为一幅二维图像,不可避免会有信息的丢失,所以本质上图像就具有一种模糊性。另一方面由于海水的能见度低, 透明度只有空气的千分之一,使得采集到的图像信噪比较低、纹理模糊。再次由于海洋中各种悬浮物的存在, 也会对光波(也就是电磁波)产生散射和吸收作用 ,导致采集到的海底图像产生严重的灰白效应。再加上海流的影响以及摄像机镜头的抖动等因素, 造成图像部分失真现象等因素都会影响最终识别的效果。

下面是几幅比较典型的海底鱼类图像,我们可以看到,采集的图像的对比度都较低,图像较为模糊:

    

图1 海底鱼类图像图

因此,本文先使用提高亮度、提高清晰度对数据进行预处理的方法,尽可能消除亮度低和模糊带来的影响。对于提高亮度的方法,本文选择伽马校正法[5],使用指数函数调整每个灰度单元,计算公式如下:

       (1)

亮度的变化由参数γ来控制:当γ<1时,pi,j[k]的值会变小,亮度会提高。反之,则pi,j[k]的值会变大,亮度会降低。

对于提高清晰度的方法,通过参考基于暗通道先验算法去雾的研究[6]。该研究认为雾天拍摄图片的模糊是由空气中的杂质对光的散射造成的。而海底拍摄图片的模糊也恰好是由水中的杂质对光的散射造成的,于是可以将其适用于海底拍摄图片,所以在该研究的基础上,针对海底环境的特点作了改进,对每个灰度单元进行优化,计算公式如下:

(2)

综合上述提高亮度和清晰度的过程,预处理的步骤如下:

图3所示展示预处理方法对图片品质的提升效果:

a原始图                                     b预处理后图片

图2 预处理效果对比图

从图3中可以看出,本文提出的预处理方法可以比较有效地提高图片的亮度以及清晰度。但是面对品质极差的图片,预处理方法也显露出了局限性,无法将其品质提高到鱼类各项关键特征都清晰的程度。

2.3  模型构建及训练

本文以台湾电力公司、台湾海洋研究所和垦丁国家公园在2010年10月1日至2013年9月30日期间,在台湾南湾海峡、兰屿岛和胡比湖的水下观景台收集的鱼类图像数据集合--Fish4Knowledge(F4K)数据集[7]作为实验数据。该数据集包括23类鱼种,共27370张鱼的图像,数据集如图4所示。

图3 Fish4Knowledge(F4K)数据集

将实验数据上传至百度EasyDL数据中心,如图4所示,采用百度EasyDL定制化图像识别平台构建鱼类图像识别模型,由于鱼类形状大小相似,品种差异小,可辨识性较小,故选择AutoDL Transfer算法进行模型训练,AutoDL Transfer模型是百度研发的AutoDL技术之一,结合模型网络结构搜索、迁移学习技术、并针对用户数据进行自动优化的模型,与通用算法相比,虽然训练时间较长,但更适用于细分类场景。如图5所示。

图4 数据上传

图5 模型构建

2.3  预处理有效性实验

为了证明本文所提预处理方法的有效性,本文在F4K数据集上做了原始的数据和基于预处理的方法的数据模型性能对比实验,实验在参数相同的条件下,使用百度EasyDL定制化图像识别平台对数据进行训练,评估对比结果如表1所示:

表2性能对比

表1的结果显示,在鱼类识别上本文所提的预处理方法比使用原始数据有更好的识别性能,准确率及召回率等各项指标都要远远好于使用原始数据训练的模型。

2.4  模型进一步调优

为了更好的提高模型识别的准确率,本文采用数据增强的方法对数据进行扩充,增加数据的规模,提高模型的泛化性能。以前,若想对训练数据进行数据增强的操作,需要手动调整图片来对模型训练样本进行扩展,例如旋转、移动、缩放、翻转图片等方式,过程如图6所示。

图6 数据增强处理

如今,EasyDL的图像分类模型训练中,可以通过平台提供的调参功能来自动执行上述增强操作,优化数据丰富度,开发者再也不用手工重复处理原始数据啦!

表3 数据增强后数据集大小

表4 数据增强后性能对比

2.5  模型对比实验

为了进一步证明本文模型的优势,将本文模型与其他模型,包括目前流行的深度网络模型VGGnet16、VGGnet19以及文献[3]中的PreCNN-SVM鱼类识别方法和文献[4]中Alex-FT-SVM鱼类识别方法,在F4K数据集上进行性能评估和比较,实验对比结果如表2所示。

表5不同方法的鱼类识别性能比较

表2的各种方法对比结果来看,本文的方法相对于其他方法识别准确率有较大提升,获得了99.6%的鱼类识别精度。本方法充分利用百度EasyDL定制化图像识别平台优势,可以很好地解决鱼类识别任务训练数据不足的问题,同时通过引入伽马校正法和暗通道先验算法对数据进行预处理,使数据特征具有更好的辨别能力,使用数据增强方法对模型进行调优,进一步提高了模型识别的准确率。

3 结束语

海底观测环境亮度低、场景模糊,导致采集的视频品质差,直接识别视频中的海洋鱼类效果不好。本文提出了预处理方法提高图片品质、百度EasyDL定制化图像识别等方法,实现对较差品质图片的准确识别。针对亮度低和场景模糊的问题,在预处理时首先使用伽马校正法提高了图片的亮度,然后参考基于暗通道先验算法的去雾研究针对海底环境的特点作了改进,提高了图片的清晰度。由于目前还没有大量标记数据,本文使用百度EasyDL定制化图像识别及AutoDL Transfer算法,解决了训练数据少导致模型效果差的问题。从实验结果可以看出,本文所提方法可以以高达99.6%的准确率识别海底鱼类的图片,验证了方法的有效性。然而,本文的方法还存在不足,其中的关键在于海底环境的特殊性,提高图片品质的预处理方法还没有完全结合海底环境的特点,提高图片品质的能力有限。下一步的研究工作将是深入分析、挖掘海底环境的特点,提出针对性更强的、更有效的预处理方法。

参考文献:

[1]Huang, Phoenix X., Bastiaan J. Boom, and Robert B. Fisher. "Hierarchical classification with reject option for live fish recognition." Machine Vision and Applications 2015,26(1): 89-102.

[2]杜伟东, 李海森, 魏玉阔, 等. 基于 SVM 的多方位声散射数据协作融合鱼分类与识别[J]. 农业机械学报, 2015,61(3):39-43.

[3]Tamou A B, Benzinou A, Nasreddine K, et al. Underwater Live Fish Recognition by Deep Learning[C]//International Conference on Image and Signal Processing. Springer, Cham, 2018,171(6): 275-283.

[4]顾郑平,朱敏.基于深度学习的鱼类分类算法研究[J].计算机应用与软件,2018,35(1):200-205.

[5]蒋明敏.基于FPGA的LCD伽马校正研究[D].南京,南京林业大学,2016:25-27.(JIANG M M.Research on LCD Gamma Correction Based on FPGA[D].Nanjing,NanjingForestryUniversity,2016:25-28.)

[6]HE K, SUN J, TANG X. Single image haze removal using dark channel prior[J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 33(12): 2341-2353.

[7]B J, Huang P X, He J, etal. Supporting ground-truth annotation of image datasets using clustering[C]//ICPR. 2012,21(1): 1542-1545.

作者:范伟亚

基于百度EasyDL定制化图像识别平台的海洋鱼类识别方法的更多相关文章

  1. 初探机器学习之使用百度EasyDL定制化模型

    一.Why 定制化模型 一般来说,各大云服务厂商只会提供一些最常见通用的AI服务,针对具体场景的AI应用则需要在云服务厂商提供的服务之上进行定制.例如,通常的图像识别只能做到分析照片的主题内容,而我的 ...

  2. 基于Centos6.x定制化安装步骤

    1.获取安装界面代码      挂载image/install.img:mount image/install.img /mnt/5 -o loop      复制挂载后的代码至self_intall ...

  3. 如何使用百度EasyDL进行情感分析

    使用百度EasyDL定制化训练和服务平台有一段时间了,越来越能体会到EasyDL的易用性.在此之前我也接触过不少的深度学习平台,如类脑平台.Google的GCP深度学习平台.AWS深度学习平台,但我觉 ...

  4. eggjs的参数校验模块egg-validate的使用和进一步定制化升级

    简单讲一下这个egg-validate egg-validate是基于parameter的. 安装 npm install --save egg-validate 启用 // config/plugi ...

  5. Linux定制化RPM包

    定制化RPM包 1.Linux安装软件方法 1- rpm/yum安装 简单.速度快,但是不能定制安装 RPM RedHat Package Manager(RPM软件包管理器) 2- 二进制安装 解压 ...

  6. 网易云基于 Kubernetes 的深度定制化实践

    本文由  网易云发布. 2017 年,Kubernetes 超越 Mesos 和 Docker Swarm成为最受欢迎的容器编排技术.网易云从 2015 下半年开始向 Kubernetes 社区贡献代 ...

  7. PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…

    PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...

  8. 基于 SOA 的组件化业务基础平台

    业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台.软件基础架构平台之间的交互与管理问题”.操作系统平台解决了“应用软件系统与硬件之间的交互与管理问题” ...

  9. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

随机推荐

  1. win10中使用sqlserver2008r2 SQL Server 配置管理器

    原文:win10中使用sqlserver2008r2 SQL Server 配置管理器 使用 Windows10 访问 SQL Server 配置管理器 因为 SQL Server 配置管理器是 Mi ...

  2. LIBCMTD.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用

    这个问题是没找到程序入口 在网上查这个问题,一般都是说两条: (若是win32程序) 一是在项目属性\CC++\预处理器\预处理器定义\里添加 _WINDOWS 一是在项目属性\链接\系统 里选择 窗 ...

  3. Android零基础入门第25节:最简单最常用的LinearLayout线性布局

    原文:Android零基础入门第25节:最简单最常用的LinearLayout线性布局 良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认 ...

  4. Android零基础入门第19节:Button使用详解

    原文:Android零基础入门第19节:Button使用详解 Button(按钮)是Android开发中使用非常频繁的组件,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击按钮时,按钮 ...

  5. eclipse 插件编写(四)

    前言 前面几篇文章讲了下如果编写简单的eclipse插件,如创建插件项目.编写右键弹出菜单等功能,接下来主要写一下如何生成代码的功能,这一片的功能跟插件本身的编写关联不太大,主要处理插件之后的业务内容 ...

  6. MVC4升级MVC5导致原项目出错的解决方法

    原文:MVC4升级MVC5导致原项目出错的解决方法 出现安全透明方法"WebMatrix.WebData.PreApplicationStartCode.Start()"尝试访问安 ...

  7. 分享基于.NET动态编译&Newtonsoft.Json封装实现JSON转换器(JsonConverter)原理及JSON操作技巧

    看文章标题就知道,本文的主题就是关于JSON,JSON转换器(JsonConverter)具有将C#定义的类源代码直接转换成对应的JSON字符串,以及将JSON字符串转换成对应的C#定义的类源代码,而 ...

  8. ASP.NET Core 下自定义模型绑定,去除字符串类型前后的空格

    效果图: 01 02 直接贴代码了: NoTrim public class NoTrimAttribute : Attribute { } 我们自定义的模型绑定提供程序 /// <summar ...

  9. Using 3D engines with Qt(可以整合到Qt里,不影响)

    A number of popular 3D engines can be integrated with Qt: Contents [hide]  1 Ogre 2 Irrlicht 3 OpenS ...

  10. Zookeeper 部署Zookeeper仲裁模式集群

    部署Zookeeper仲裁模式集群 本例在一台服务器上部署3个zk服务:z1.z2.z3. 1.下载Zookeeper https://zookeeper.apache.org/ 2.解压缩 .tar ...