基于百度EasyDL定制化图像识别平台的海洋鱼类识别方法
【目的】鱼类识别对渔业资源的开发利用有着重要的意义。针对海底环境恶劣、拍摄环境亮度低、场景模糊的实际情况导致海底观测视频品质差,视频中的鱼类识别难的问题以及现有鱼类识别方法存在的鱼类标注数据集过少导致训练的深度模型准确度不高的问题。
【方法】本文提出了一种基于百度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定制化图像识别平台的海洋鱼类识别方法的更多相关文章
- 初探机器学习之使用百度EasyDL定制化模型
一.Why 定制化模型 一般来说,各大云服务厂商只会提供一些最常见通用的AI服务,针对具体场景的AI应用则需要在云服务厂商提供的服务之上进行定制.例如,通常的图像识别只能做到分析照片的主题内容,而我的 ...
- 基于Centos6.x定制化安装步骤
1.获取安装界面代码 挂载image/install.img:mount image/install.img /mnt/5 -o loop 复制挂载后的代码至self_intall ...
- 如何使用百度EasyDL进行情感分析
使用百度EasyDL定制化训练和服务平台有一段时间了,越来越能体会到EasyDL的易用性.在此之前我也接触过不少的深度学习平台,如类脑平台.Google的GCP深度学习平台.AWS深度学习平台,但我觉 ...
- eggjs的参数校验模块egg-validate的使用和进一步定制化升级
简单讲一下这个egg-validate egg-validate是基于parameter的. 安装 npm install --save egg-validate 启用 // config/plugi ...
- Linux定制化RPM包
定制化RPM包 1.Linux安装软件方法 1- rpm/yum安装 简单.速度快,但是不能定制安装 RPM RedHat Package Manager(RPM软件包管理器) 2- 二进制安装 解压 ...
- 网易云基于 Kubernetes 的深度定制化实践
本文由 网易云发布. 2017 年,Kubernetes 超越 Mesos 和 Docker Swarm成为最受欢迎的容器编排技术.网易云从 2015 下半年开始向 Kubernetes 社区贡献代 ...
- PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…
PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...
- 基于 SOA 的组件化业务基础平台
业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台.软件基础架构平台之间的交互与管理问题”.操作系统平台解决了“应用软件系统与硬件之间的交互与管理问题” ...
- 基于百度AI开放平台的人脸识别及语音合成
基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...
随机推荐
- Mono.Cecil - 0.6
原文:Mono.Cecil - 0.6 项目地址:Mono.Cecil 项目描述:In simple English, with Cecil, you can load existing manage ...
- PHP 的异步并行 C 扩展 Swoole
PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列, ...
- 转一个git的命令
Git远程操作详解 Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git rem ...
- 关于客户端javascript的理解及事件浅析
1,核心JavaScript和客服端JavaScript都有一个单线程执行模型.脚本和事件处理程序在同一时间只能执行一个,没有并发性.这样保持了js编程的简单性. 2,document的定义:一些呈现 ...
- python常用点小记
记录一下,经常用到的一些python小工具 1.验证一个字符串是否为url regex = re.compile( r'^(?:http|ftp)s?://' # http:// or https:/ ...
- 教你做一个牛逼的DBA(在大数据下)
一.基本概念 大数据量下,搞mysql,以下概念需要先达成一致 1)单库,不多说了,就是一个库 2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表 3)复制(replication ...
- Java 转PPT为图片、PDF、SVG、XPS、ODP以及PPT和PPTX互转
同一文档,在不同的文档查看器或者编译环境中,需要对该文档进行相应的格式转换.下面的内容中,将介绍通过Java编程来实现PPT文档格式转换的方法. 使用工具: Spire.Presentation fo ...
- 从零开始的Wordpress个人博客搭建
0x00前言 在博客园写了有一年的博客了,也想换换新口味,wordpress的众多的主题和个性化设置非常符合我的喜好,所以捣鼓了一天也算是把它搭好了. 直接在服务器上搭建wordpress还需要配置m ...
- mpvue 小程序加载不了图片 Error: Failed to load local image resource /images/xx.png the server responded with a status of 404 (HTTP/1.1 404 Not Found)
mpvue开发小程序时候,要添加静态本地图片 <img src="../../images/bg.png" alt=""> 会报错: VM14878 ...
- 节能减排到底如何----google earth engine 告诉你!!
(First,再次严谨说明,本人成果未经允许,切勿发表到相关学术期刊,如果有技术交流,qq1044625113,顺便打个广告,兼职GEE开发,欢迎联系!) 终于过了严寒的冬天,2017年的冬天中国南方 ...