logo资料库

基于改进YOLO和迁移学习的水下鱼类目标实时检测.pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
第 32 卷摇 第3 期 2019 年3 月 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 模式识别与人工智能 Pattern Recognition and Artificial Intelligence 摇 摇 摇 摇 摇 摇 摇 基于改进 YOLO 和迁移学习的 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 Vol.32摇 No.3 Mar. 摇 2019 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 摇 李宜兵1摇 水下鱼类目标实时检测 李庆忠1摇 摇 牛摇 炯1 摘摇 要摇 为了实现非限制环境中水下机器人基于视频图像的水下鱼类目标快速检测,提出基于改进 YOLO 和迁移 学习的水下鱼类目标实时检测算法. 针对 YOLO 网络的不足,设计适合水下机器人嵌入式系统计算能力的精简 YOLO 网络(Underwater鄄YOLO). 利用迁移学习方法训练 Underwater鄄YOLO 网络,克服海底鱼类已知样本集有限的 限制. 利用基于限制对比度自适应直方图均衡化的水下图像增强预处理算法,克服水下图像的降质问题. 利用基于 帧间图像结构相似度的选择性网络前向计算策略,提高视频帧检测速率. 实验表明,文中算法能实现在非限制环境 下海底鱼类目标的实时检测. 相比 YOLO,文中算法对海底鱼类小目标和重叠目标具有更好的检测性能. 关键词摇 卷积神经网络, 深度学习, 鱼类目标检测, 单级式目标检测算法(YOLO), 迁移学习 引用格式摇 李庆忠,李宜兵,牛 炯. 基于改进 YOLO 和迁移学习的水下鱼类目标实时检测. 模式识别与人工智能, DOI摇 10.16451/j. cnki. issn1003鄄6059.201903001摇 摇 中图法分类号摇 TP 181 2019, 32(3): 193-203. 摇 摇 摇 摇 Real鄄Time Detection of Underwater Fish Based on Improved YOLO and Transfer Learning LI Qingzhong1, LI Yibing1, NIU Jiong1 To fast detect underwater ABSTRACT 摇 fish in unrestricted underwater environment based on underwater video collected by underwater robots, a real鄄time detection algorithm for underwater fish based on improved you only look once(YOLO) and transfer learning is proposed. Firstly, an underwater鄄YOLO for the embedding computer system of underwater robots is designed to overcome the shortcomings of traditional YOLO. Then, transfer learning strategy is employed to train the underwater鄄YOLO network and alleviate the limitation of known underwater fish samples. A preprocessing algorithm based on contrast limited adaptive histogram equalization is proposed to overcome the problem of underwater image degradation. Finally, a video frame selection method for foreground computation of underwater鄄YOLO based on structure similarity between inter鄄frames is proposed to increase the detection frame rate. The experimental results show that the proposed algorithm achieves the goal of real鄄time detection of underwater fish in unconstrained underwater environment. Compared with the traditional YOLO,the proposed underwater鄄YOLO generates better detection performance in complex scenes with small fish and overlapped fishes. Key Words摇 Convolutional Neural Network, Deep Learning, Fish Target Detection, You Only Look Once(YOLO), Transfer Learning 收稿日期:2018-11-14;录用日期:2019-03-13 Manuscript received November 14, 2018; accepted March 13, 2019 国家重点研发计划项目(No.2017YFC1405202)、国家自然科 学基金项目(No.61132005)、海洋公益性行业科研专项(No. 201605002) Supported by National Key R&D Plan of China(No.2017YFC14 本文责任编委 叶东毅 05202), National Natural Science Foundation of China(No. 61132005), National Marine Technology Program for Public Welfare of China (No.201605002) Recommended by Associate Editor YE Dongyi 1. 中国海洋大学 工程学院摇 青岛 266100 1. College of Engineering, Ocean University of China, Qingdao 266100 基《模式识别与人工智能》电子版
491 模式识别与人工智能(PR&AI)摇 摇 摇 第32 卷 Citation摇 LI Q Z, LI Y B, NIU J. Real鄄Time Detection of Underwater Fish Based on Improved YOLO and Transfer Learning. Pattern Recognition and Artificial Intelligence, 2019, 32(3): 193- 203. 是研究海底非限制环境下基于视频图像的鱼类目标 摇 摇 深海探测与作业技术是海洋技术研究的重要领 域之一. 水下机器人(有缆水下机器人(Remote Ope鄄 rated Vehicles, ROVs)/ 无 缆 水 下 机 器 人(Autono鄄 mous Underwater Vehicles, AUVs) 是目前最先进的 深海探测与作业装备. 要实现深海探测与作业,水下 机器人必须能快速识别理解海底环境,并对感兴趣 的目标进行准确识别与定位[1-4]. 因此,利用装有水 下摄像机的 AUVs 对水下感兴趣目标进行实时搜 寻、监测具有重要研究价值和应用前景. 本文目标就 的快速检测算法,为海底鱼类等生物资源的监测、保 护及可持续开发提供技术支持. 在地面非限制环境下,感兴趣目标的检测算法 发展迅速,在检测精度和实时性方面已接近实用性. 其主 要 原 因 是 基 于 深 度 卷 积 神 经 网 络 (Deep Convolutional Neural Network, DCNN)的目标检测算 法可有效克服非限制环境目标检测的困难和瓶颈. 其主流方法可分为如下两类. 1) 基 于 区 域 卷 积 神 经 网 络(Region Convolu鄄 tional Neural Network, R鄄CNN)深度学习的目标检测 方法. Girshick 等[5] 提出 R鄄CNN,由于 R鄄CNN 在所 有候选区域中重复进行特征提取,影响目标检测的 效率,所以快速区域神经网络(Fast R鄄CNN)[6] 采用 直接在特征图像上产生候选区域的方式,避免反复 进行特征提取,提高目标检测效率. 超快区域神经网 络(Faster R鄄CNN)[7] 直接使用候选区域生成网络 (Region Proposal Network, RPN)产生召回率更高的 候选区域,平均准确率更高,处理速度更快. 2)基于单级式目标检测算法(You Only Look Once, YOLO)深度学习目标检测算法. 为了克服 R鄄 CNN 的 目 标 检 测 算 法 实 时 性 差 的 问 题,Redmon 等[8] 提出 YOLO,摒弃候选区域生成的中间步骤,将 目标区域预测和目标类别预测整合在单个 DCNN 模型中. 在 YOLO 基础上 Redmon 等[9] 提出 YOLOv2 (YOLO Version 2, YOLOv2),采用诸多改进策略,提 高平 均 准 确 率 和 运 行 速 度. 在 YOLO 基 础 上, Redmon 等[10] 又提出 YOLOv3 算法(YOLO Version 3, YOLOv3),在特征提取阶段,采用浅层次特征和 深层次特征的融合,提取更具鉴别性的深层特征. 对 于 Microsoft COCO 数据集[11],准确率与 SSD 算法 (Single Shot MultiBox De鄄tector, SSD)[12] 相当,处理 融合技术估计背景图像并实现鱼类前景区域的分 速度为 SSD 的3 倍. 虽然地面目标的实时检测算法已较完善,但在 水下非限制环境中,水下感兴趣目标的实时检测仍 面临许多挑战,其主要原因是水下介质、水下光照条 件、水下海底环境等都要比地面机器人面临的环境 复杂. 对于基于水下视觉的鱼类目标检测,目前代表 性的研究方法主要分为如下3 类. 1)基于水下图像底层特征的鱼类目标检测算 法. Hsiao 等[13] 提出真实水下非限制环境中鱼类目 标的检测识别算法,通过提取水下图像的各种底层 特征,并利用稀疏表达技术设计分类器进行鱼类目 标的 辨 识, 识 别 率 可 达 81. 8%, 但 实 时 性 较 差. Cutter 等[14] 利用 Haar鄄like 特征和多个级联分类器 实现海底非限制环境下岩石鱼类目标的检测,检测 率可达89%,但对于鱼类非正常姿态、背景复杂、光 照条件恶劣、噪声过大、分辨率较低等非限制环境的 检测结果并不理想,误检率较高. 2)基于 R鄄CNN 深度学习的鱼类目标检测算法. Seese 等[15] 提出鱼类目标检测分类算法,首先利用 割,然后对于分割的鱼类前景区域,再利用 DCNN 自动提取特征与分类. Li 等[16] 改进Faster R鄄CNN 的 结构,提出适合水下鱼类目标检测的轻型 R鄄CNN, 虽然 检 测 率 可 达 89. 95%, 但 实 时 性 仍 欠 佳, 仅 为11 帧/ 秒. 3)基于 YOLO 深度学习的鱼类目标检测算法. Sung 等[17] 把一般地面目标实时检测的 YOLO 网络 结构模型移植到水下鱼类目标的检测,利用特定的 水下视频作为训练、测试数据集,取得较好的分类精 度和实时性,但缺乏考虑水下机器人的实际硬件限 制和水下光照环境的复杂多变性. 通过上述分析可知,目前对水下非限制环境中 题.1)由于光在水体介质中存在严重的衰减和散射 效应,造成水下图像质量下降,为水下鱼类目标的特 征学习、识别理解造成严重障碍. 2) 由于海底鱼类 目标大多具有未知性,鱼类目标在自动识别学习时, 已知标签的样本数量非常有限,传统的训练学习方 法不再适用.3)水下机器人研制采用嵌入式计算机 系统,相比一般台式计算机,硬件运算能力具有较大 的限制性. 因此,基于 YOLO 等深度学习的地面目标 基于视觉的鱼类目标的检测主要存在如下三方面问 《模式识别与人工智能》电子版
591 摇 李庆忠摇 等:基于改进 YOLO 和迁移学习的水下鱼类目标实时检测 息的编码方式如图2 所示. 图2 为输出矩阵第 1、2 维度取 1 时,第 3 维度 的编码信息,即一个图像块的编码信息. 目标检测结 果以边界框选中目标的方式呈现,其中, x、y 为边界 框中心点相对于网格左上方的偏移量,w、h 为边界 框的宽度和高度. C 为边界框内包含目标的置信度, 编码结果给出两个边界框的预测值,根据置信度 C 选择合理的边界框. P(c) 为被检测目标属于某一类 别的概率,为目标检测结果确定类别. 摇 摇 摇 第3 期 实时检测算法不再适合水下机器人的嵌入式系统. 为了克服上述问题,本文提出基于改进 YOLO 和迁移学习的水下鱼类目标实时检测算法. 针对 YOLO 网络结构进行改进,提出适合水下机器人嵌 入式系统的精简 YOLO 结构(Underwater鄄YOLO),可 以胜任水下鱼类目标的实时检测要求. 针对网络训 练时样本不足的问题,采用迁移学习的方法训练 Underwater鄄YOLO 网络. 针对水下海底图像散射模 糊、对比度较低、光照不均问题,提出基于限制对比 度自适应直方图均衡化(Contrast Limited Adaptive Histogram Equalization, CLAHE) 的水下图像增强预 处 理 算 法. 此 外, 提 出 基 于 图 像 结 构 相 似 度 (Structural Similarity, SSIM)的视频帧选择性网络前 向计算策略,有效提高检测速率. 1摇 YOLO 实时目标检测算法 YOLO 目标检测算法将目标检测问题转化为一 个回归问题,仅使用一个深度卷积神经网络模型进 行目标检测,能以较高的准确率实现快速目标检测 与识别. YOLO 的网络结构如图 1 所示. 由图 1 可知, YOLO 网络结构主要包括两部分.1) 特征提取. 利用 一个具有20 个卷积层的基础网络提取输入图像的 特征,可从大小为448伊448伊3 的彩色图像中提取14 伊14伊1 024 维特征.2)回归预测. 使用随机初始化权 值的4 层卷积进一步运算特征,产生维度为 7伊7伊1 024 维包含特征,然后使用4 096个尺寸为 7伊7 的卷 积核将特征矩阵进行二维卷积操作,产生 4 096伊1 维全连接特征,通过全连接层产生 539伊1 维输出特 征,将输出特征重排为7伊7伊11 维,作为回归的输出 矩阵. 图1摇 YOLO 网络结构 Fig.1摇 Network structure of YOLO 回归输出矩阵包含目标边界框的尺寸和坐标、 边界框内包含目标的概 率及目标所 属 类 别. 这些信 图2摇 YOLO 输出矩阵信息编码 Fig.2摇 Coding mode of output matrix information of YOLO 将训练样本的标注信息处理成为输出矩阵的编 码顺序,可以建立理想输出与实际输出的损失函数. losscoord =移72 i =0移2 j =01obj [ ( 移72 i =0移2 j =01obj [ ( 坐标预测的损失函数如下: )i 2 xi - x卒 )i )i ]2 )i hi - h卒 (+ (+ wi - w卒 yi - y卒 2 ij ij + ]2 . (1) ]2 . ij 预测网格框包含目标时的损失函数: )i Ci - C卒 预测网格框不包含目标时的目标函数: )i Ci - C卒 lossobj =移72 i =0移2 j =01obj [ ( lossnoobj =移72 i =0移2 j =01noobj [ ( 预测目标类别的损失函数: lossclass =移72 [ i 移c沂 i =01obj ij class pi(c) - p卒 i(c 综合部分的损失函数求得总损失函数: loss = 姿coord·losscoord + lossobj + 姿noobj·lossnoobj + lossclass. 以损失函数作为卷积神经网络的优化准则,利 用随机梯度下降法进行优化,即可完成 YOLO 网络 的训练. ]2 . ]) 2. ᐭ8220ᔁO4ᔁO448+448+3ᱯ?5ᱯM▣ᱯM▣14+14+10247+7+102440965397+7+118ʧ8⚜YOLO7+7+11x,y,w,hx,y,w,hCCPc()《模式识别与人工智能》电子版
模式识别与人工智能(PR&AI)摇 摇 摇 第32 卷 积层,每个卷积层框图中的数据分别表示卷积核数 量、卷积核尺寸、卷积步长( 省略者默认步长为 1). Underwater鄄YOLO 的特征提取部分仅使用 7 层卷 积,并以步长为2 的卷积运算进行下采样,如此设计 检测时的运算量. 而在回归预测部分,本文舍弃全连 接网络结构,整个网络使用全卷积神经网络(Fully Convolutional Network, FCN) 的结构, 克服在回归 弊端[18]. 的目的是为了减少水下机器人嵌入式系统进行目标 过程中将空间特征转化为二维特征丢失空间信息的 691 2摇 基于改进 YOLO 的水下鱼类目 标检测算法 YOLO 目标检测算法不能直接应用于水下图像 鱼类目标的检测,主要原因体现在如下3 方面. 1)在结构上,YOLO 网络结构过于复杂,前向推 理计算时需要较高的计算能力. 而水下机器人搭载 的嵌入式处理系统计算能力有限,所以无法在嵌入 式系统上运行 YOLO. 此外,由于 YOLO 仅在单一尺 度下进行目标检测,难以检测位置重叠、体态较小的 鱼类目标. 2)海底鱼类样本相对匮乏,已知标签的样本数 量非常有限,传统训练方法无法有效充分训练泛化 性能较高的深度神经网络,必须根据水下图像的特 点提出能使用小样本充分训练网络的方法. 3)由于海底视频图像呈现对比度较低、纹理细 节模糊及光照不均匀等现象,所以 YOLO 无法适应 海底观测视频图像. 为了克服上述问题,本文提出基于改进 YOLO 和迁移学习的鱼类目标实时检测算法,算法总体框 架如图3 所示. 图4摇 Underwater鄄YOLO 的网络结构 Fig.4摇 Network structure of Underwater鄄YOLO 为了实现水下鱼类小目标的检测,在回归预测 部分采用特征拼接实现多尺度预测方式. 对于深层 特征,由于下采样使特征尺寸减小,导致越深层次的 特征尺寸越小,因此深层特征中小目标的信息会因 为下采样而丢失. 为了解决仅使用深层特征进行目 标检测导致微小目标被忽略的缺陷,采用多尺度的 检测方式,即联合浅层特征和深层特征,提高小目标 的检测率. 图像特征在 Underwater鄄YOLO 网络结构 中的传递流程如图5 所示,该过程可直观理解为多 尺度回归. 图中每个子框中的数据分别表示为( 特 征宽度,特征高度,特征通道数). 从图5 可看出, 输入图像在 Underwater鄄YOLO 的特征提取部分逐层提炼,形成尺寸小、维数大的深 层抽象特征. 深层特征在回归预测部分继续进行卷 积操作,最终产生粗尺度预测矩阵. 由于特征提取部 分伴随下采样,一些特征的细节信息丢失. 在预测回 归阶段,将深层特征进行上采样,使之与浅层特征尺 寸匹配,然后拼接不同层的尺寸,生成融合特征. 使 图3摇 本文算法总体框架 Fig.3摇 Framework of the proposed method. 本文算法主要包括如下4 个模块:Underwater鄄 YOLO 网络结构设计、Underwater鄄YOLO 网络的迁 移学习、基于 CLAHE 的水下图像增强预处理、基于 SSIM 的视频帧选择性前向推理计算. 下面具体介绍 各模块的实现过程. 2. 1摇 Underwater鄄YOLO 网络结构设计 为了既能适合水下机器人的嵌入式系统的计算 能力,又能实现对水下鱼类小目标、重叠目标的准确 检测,本文设计适合水下机器人进行鱼类目标检测 的网络结构(Underwater鄄YOLO),如图4 所示. 由图 4 可知,Underwater鄄YOLO 主要包括特征 提取和预测回归两部分. 特征提取部分包括 7 个卷 ImageNetᦪɼ`᪀ᑖᑖ᪗ɞMO᪗ɞDʧY⚣ 82`CLAHE⚜ᜐᳮUnderwaterYOLO9ḄY⚣⌱>SSIMψʡɍ(ᦪɼ᡽ɍ)CLAHEUnderwaterYOLOconv,16,3 3+conv,32,3 3,2+conv,256,3 3,2+conv,64,3 3,2+conv,128,3 3,2+ᱯ?5conv,512,3 3,2+conv,1024,3 3+conv,512,3 3+8⚜conv,256,3 3+conv,128,3 3+conv,12,3 3+conv,128,3 3+conv,256,3 3+conv,12,3 3+[᪵ᱯ>?+《模式识别与人工智能》电子版
摇 摇 李庆忠摇 等:基于改进 YOLO 和迁移学习的水下鱼类目标实时检测 摇 摇 第3 期 用融合特征继续进行回归预测,最终产生细尺度预 测矩阵. 791 2 个预测矩阵的第3 维长度一致,编码相同的信 息. tx、ty 为边界框偏离图像子块左上顶点的位置信 息,tw、th 为确定边界框宽度和高度的参数. 上述4 个 参数可解决边界框在图像中的定位问题. C 为边界 框中是否包含目标的置信度,P(C) 为边界框内目 标的类别判断,判断目标属于鱼类的概率. 上述所有 参数可使用一个锚点进行描述,通过引入锚点,增加 目标检测的预设候选区域,有利于解决重叠目标的 漏检问题. 图像中图像块、锚点与边界框分布及尺寸 关系如图7 所示. 图5摇 Underwater鄄YOLO 的特征流程图 个网格内包含鱼类目标的置信度及边界框的坐标 Fig.5摇 Feature flow chart of underwater鄄YOLO Underwater鄄YOLO 的输入为3 个通道的彩色图 像,通过Underwater鄄YOLO 网络后产生13 伊 13 伊 12 和26 伊26 伊12 两个尺度的预测矩阵. 其中13 伊13 伊 12 的预测矩阵编码将图像划分为13 伊13 个网格,每 值. 而26 伊 26 伊 12 的预测矩阵编码将图像划分为 26 伊26 个网格,每个网格内包含鱼类目标的置信度 和边界框的坐标信息. 对于重叠目标的检测问题,YOLO 在图像的每 个子块中最多只能检测到一个目标,若在一个子块 中同时出现多个目标, 会造成重叠目标的漏检. 为 此, 对 输 出 的 预 测 结 果 矩 阵 进 行 重 新 编 码. 借 鉴 Faster R鄄CNN 中锚点的思想,为一个图像子块设置 多个锚点,每个锚点可编码目标的边界框的坐标值、 存在目标的置信度及类别. 由于锚点被初始化为不 同尺寸,发生重叠的目标可以被不同的锚点捕获. 预 测矩阵中信息的编码方式如图6 所示. Fig.6摇 Encoding mode of prediction matrix information of 图6摇 Underwater鄄YOLO 预测矩阵编码方式 Underwater鄄YOLO Fig.7摇 Positional relationship between anchor box and 图7摇 锚点框与边界框的位置关系 bounding box 图7 中 cx、cy 为图像子块对于图像左上角的偏 移量,滓(tx)、滓(ty) 为边界框中心点相对于图像子 块的偏移量按照图像子块的尺寸归一化的结果,pw、 ph 为锚点框的宽度和高度,(x,y) 为边界框的中心 点坐标,w、h 为边界框的宽度和高度. 由 x、y、w、h 可 确定边界框在图中的位置,可通过预测矩阵中的偏 移参数计算求得: x = 滓(tx) + Cx, y = 滓(ty) + Cy, w = pwexp(tw), h = phexp(th). 锚点框的初始尺寸与指数函数相乘求得边界框 的尺寸,当为锚点指定不同的初始尺寸时会获得不 同尺寸的边界框. 因此,可通过设置多个不同尺寸的 锚点框的方式改善目标检测的图像子块中检测多个 目标的效果. 通过使用多尺度预测与多锚点的编码方式,一 幅图像能产生更多的待检测区域,在该网络结构中 共产生 (13 伊 13 + 26 伊 26) 伊 2 = 5 070 个 检测区域,包含4 种不同尺寸的锚点框. 通过这一改 进能极大增加小目标检测的召回率,并且能检测重 叠的目标. 8⚜ᱯ?5(416,416,3)ᐭ82(416,416,16)ᱯ(208,208,32)ᱯ(104,104,64)ᱯ(52,52,128)ᱯ(26,26,256)ᱯ(13,13,1024)ᱯ(13,13,512)ᱯ(26,26,384)ᱯ>?(26,26,128)[᪵(13,13,128)ᱯ(13,13,12)⚜M▣1(26,26,12)⚜M▣2UnderwaterYOLOηF1ηF226+26+1213+13+12t,t,t,txywhCPc()CPc()t,t,t,txywhCyCx()ty(tx)phpwwh()x,y《模式识别与人工智能》电子版
模式识别与人工智能(PR&AI)摇 891 2. 2摇 Underwater鄄YOLO 的迁移学习 为了训练 Underwater鄄YOLO, 通过采集水下鱼 类图像,以人工标注的方式建立水下鱼类目标检测 数据集. 数据集共有1 500 幅 ROV 在海底环境下的 实拍图像,其中 500 幅图像挑选自 labeled fishes in the wild 数据集[14],1 000 幅图像来源于实拍水下视 频中的关键帧. 将图像数据集样本分为训练集和验 证集两部分,训练集共有1 000 个样本,验证集共有 500 个样本. 由于已标注的水下鱼类检测数据较少,直接用 于训练Underwater鄄YOLO 难以获得具有泛化性的训 练结果,特别是特征提取部分的卷积层需要充分训 练,才能从图像提取出具有鉴别性的特征. 为此,本 文采用 迁 移 学 习[19] 的 方 法 训 练 卷 积 神 经 网 络, Yosinski 等[20] 论证在迁移学习中特征迁移的有效 性. 在迁移学习中,将本文标注的1 000 幅水下图像 样本集作为目标域,将 ImageNet 分类数据集[21] 作 为源域,使用微调(Finetune) 的方式迁移学习通过 分类网络训练的模型. 本文的迁移学习分为两部分:分类网络训练;将 分类网络的知识迁移到检测模型,在此基础上进行 Underwater鄄YOLO 的训练. 对于分类网络部分,首先根据 Underwater鄄YOLO 网络 结 构 建 立 分 类 网 络 结 构. 如 图 8 所 示, 以 Underwater鄄YOLO 特征提取部分的卷积层为基础, 通过添加一层卷积核数量为1 000 的13 伊 13 的卷积 层,将特征矩阵转化为 1 000 伊 1 维特征向量,然后 再加一层 softmax 层将特征向量转化为概率输出. 摇 摇 第32 卷 练. 网 络 训 练 超 参 数 选 择 如 下: 批 次 大 小(Batch Size) 为64,输入图像高度为 416,输入图像宽度为 416,动量为0.9,权值衰减为0.000 1,最大迭代次数 为100 000. 学习率调整策略如下:第 1 ~ 10 000 次 迭代设置为0.1,第10 000 ~ 80 000 次迭代设置为 0.01,第80 000 ~ 100 000 次迭代设置为 0.001,微 调,由此减小权值在极小值附近的震荡. 训练完分类网络后,可将分类网络训练的知识 迁移到 Underwater鄄YOLO 特征提取部分,迁移过程 如图8 所示. 使用 ImageNet 数据集训练完分类网络后,卷积 核的权值经过充分训练,能提取泛化特征,这些卷积 核就可作为分类网络学习到的知识. 将这些知识转 移到 Underwater鄄YOLO 的特征提取部分,设置特征 提取部分的学习率为 0,锁定特征提取部分的卷积 核. 回归预测部分的卷积核通过随机初始化的方式 赋值,然后使用水下图像样本集训练回归预测部分 的卷积核. 由于水下图像训练集数量较少,本文提出结合 限制对比度自适应直方图均衡化(CLAHE)[21] 的迁 移学习训练方法. 在训练回归检测网络阶段,同时使 用数据扩增的手段,使小样本训练集发挥最大效果. 采用的数据扩增手段包括:1)随机旋转图像. 将原始 图像随机旋转 - 15毅 ~ 15毅.2) 调整曝光度和饱和 度. 将图像从 RGB 颜色空间转化到 HSV 空间,对曝 光度和饱和度随机调整至原先的 1/1.5 ~ 1.5 倍. 3)随机调整亮度分量, 使亮度增加或减少原先的 - 0.1 ~ 0.1 倍.4) 随机调节限制对比度自适应直 方图均衡化的裁剪阈值,获得不同直方图分布规律 的训练样本,提升训练结果的泛化性. 此外,由于锚点框的尺寸也会影响目标检测的 效果,若能为锚点框初始化合理的尺寸,则能有效提 高目标检测的指标. 本文使用聚类方法,以训练样本 中已标注的边界框的尺寸为参考,确定锚点框的尺 寸. 选择 k 个聚类中心,以边界框和聚类尺寸的 IOU 指标确定距离函数: d(bbox,kmeans) = 1 - IOU(bbox,kmeans). 以该距离函数作为优化准则进行聚类,针对水 下鱼类目标检测数据集,获得与训练样本中边界框 重合率最大的锚点尺寸. 按照聚类结果初始化锚点 尺寸,提高预测边界框与实际目标的重合率. 2. 3摇 基于 CLAHE 的水下图像增强预处理 对于水下图像,由于光线的严重衰减,图像整体 对比度较低,噪声较大,存在光照不均匀的现象. 为 此,本文采用限制对比度直方图均衡化(CLAHE) 图8摇 Underwater鄄YOLO 的知识迁移过程 Fig.8摇 Knowledge transferring of Underwater鄄YOLO 建立分类网络后,使用 ImageNet 数据集进行训 conv,16,3 3+conv,32,3 3,2+conv,64,3 3,2+conv,128,3 3,2+conv,256,3 3,2+conv,512,3 3,2+conv,1024,3 3+conv,1000,1313+softmaxconv,256,3 3+conv,128,3 3+conv,12,3 3+[᪵ᱯ>?+MOconv,16,3 3+conv,32,3 3,2+conv,64,3 3,2+conv,128,3 3,2+conv,256,3 3,2+conv,512,3 3,2+conv,1024,3 3+conv,256,3 3+conv,128,3 3+conv,12,3 3+conv,512,3 3+ᱯ?58⚜《模式识别与人工智能》电子版
摇 摇 李庆忠摇 等:基于改进 YOLO 和迁移学习的水下鱼类目标实时检测 摇 摇 限制对比度自适应直方图均衡化图像增强预处 第3 期 方法进行水下图像的增强处理. 理算法步骤如下. 算法 摇 CLAHE 色空间. n 的子块,每个子块相互连续,互不重叠. step 1摇 将输入图像从RGB 空间转换到HSV 颜 step 2摇 将亮度分量V 图像划分为k 个大小为m 伊 step 3摇 计算子区域中每个灰度级可以平均分 配到的像素个数 Nave = NCR-xNCR-y Ngray , NCL = Nclip·Nave, 其中,Ngray 为子区域中灰度级的数量,NCR-x 为子区 域 x 轴方向的像素数,NCR-y 为 y 轴方向的像素数. 限 制每个灰度级包含的像素数不超过平均值 Nave 的 Nclip 倍,则实际剪切极限值 其中,Nclip 为截取限制系数,含义是限制子区域每个 灰度级包含的像素数不超过平均像素数的 Nclip 倍. step 4摇 对每个子块,按照裁剪极限值 NCL 剪切 灰度直方图,多余的像素数量重新分配到各个灰度 级中,设已被剪切的像素总数为 Nsum_clip,可得每个灰 度级均分的剪切像素数 Nadd, Nadd = Nsum_clip Ngray , 重新分配的过程如下: H(i) = { H(i) > NCL NCL + Nadd H(i) + Nadd H(i) 臆 N CL 其中 H(i) 为原始区域中第 i 个灰度级的像素数. 为 Nsum_clip 臆 Ngray,被分配像素步长值 step 5摇 重复step 3 的分配过程,剩余的像素数 S = Ngray Nsum_clip, 平均分配到每个灰度级. step 6摇 对每个子块剪切后的灰度直方图进行 直方图均衡化. step 7摇 使用双线性插值的方法去除图像分块 处理后产生的块状效应. step 8摇 将增强预处理后的 V 分量图像,和原先 的 H、S 分量一起转换到RGB 颜色空间,得到增强后 水下图像. 2. 4摇 基于结构相似度的视频帧选择性前向推理 计算 在利用水下机器人视觉系统进行水下鱼类目标 检测时,若利用 Underwater鄄YOLO 网络对视频的每 991 帧都进行前向计算检测,由于帧速一般为30 帧 / 秒, 则水下机器人的嵌入式系统的计算能力难以承受. 考虑到视频相邻帧间存在大量信息冗余,本文提出 基于帧间图像结构相似度(SSIM) 的视频帧选择方 法,即只对关键帧进行 Underwater鄄YOLO 网络的前 向检测计算,相似的多余帧不需要重复进行前向检 测计算. SSIM 为一种基于结构信息衡量图像相似程度 的评价准则. 结构相似度将图像的相似度建模为亮 度(l)、对比度(c) 和结构(s) 的组合指标. 令 x、y 表 示相邻的帧间图像,两者之间的亮度相似指标使用 均值(滋 x,滋 y) 进行估计,对比度相似指标使用标准 差(滓 x,滓 y) 进行估计, 结构相似指标使用协方差 (滓 xy) 进行估计. SSIM 可使用上述3 个指标的组合,定义如下: SSIM(x,y) = [l(x,y)] 琢 [c(x,y)] 茁 [s(x,y)] 酌, 其中 l(x,y) = 2滋 x 滋 y + C1 滋 x2 + 滋 y2 + C1 , c(x,y) = 2滓 x滓 y + C2 滓 x2 + 滓 y2 + C2 , s(x,y) = 滓 xy + C3 滓 x滓 y + C3 , 琢 逸0,茁 逸0,酌 逸0,分别用于调节亮度、对比度、结 构相似度的权重. 当取 琢 = 茁 = 姿 =1,C3 = C2 /2,可得 SSIM(x,y) = (2滋 x 滋 y + C1)(2滓 x滓 y + C2) (滋 x2 + 滋 y2 + C1)(滓 x2 + 滓 y2 + C2). 通过计算视频相邻帧之间的结构相似度,可判 断视频内容的变化幅度,当画面几乎不发生变化时, 相邻帧保持较高的结构相似度,即 SSIM(x,y) 抑1, 此时视频内容基本固定,不需要进行深度学习的前 向推理. 当画面变化累积到一定程度,视频帧的结构 相似度变小,此时需要进行深度学习前向推理,更新 目标检测的结果. 视频帧选择性前向推理计算过程如图9 所示. 图9摇 视频帧选择性前向推理计算过程 Fig.9摇 Forward inference computation based on key frame selection UnderwaterYOLOBAʧBAʧ382L LSSIMᑨA5ὃȌCLAHECLAHE《模式识别与人工智能》电子版
002 模式识别与人工智能(PR&AI)摇 以视频的第一帧图像进行卷积神经网络的前向 运算并作为参考帧,与视频的下一帧进行对比,计算 两帧之间的结构相似度. 设定结构相似度阈值,若两 帧结构相似度大于阈值,不进行前向推理,直接输出 图像并附加前一帧的检测结果. 若两帧的结构相似 度小于等于规定的阈值,对当前帧进行 Underwater鄄 YOLO 网络的前向推理,并将当前帧赋值为新的参 考帧. 3摇 实验及结果分析 验证选择性前向推理方法在实时鱼类检测过程中的 限制对比度自适应直方图均衡化的迁移学习方法及 为了验证 Underwater鄄YOLO 网络的有效性及基 于 Underwater鄄YOLO 网络进行水下鱼类目标检测的 可行性,将 YOLO 网络和 Underwater鄄YOLO 应用于 水下鱼类检测. 实验采用的数据集为手工标注的 ROV 实拍 水 下图像. 服务器的配置参数如下:intel i5CPU、64 GB 内存、GTX1080ti GPU(11 GB 显存)、 Ubuntu16.4 操作系统. 实验主要分为3 部分:1)测试 Underwater鄄YOLO 与 YOLO 基础网络进行鱼类目标检测的性能,验证 Underwater鄄YOLO 网络结构的有效性. 2) 使用结合 锚点维度聚类的方法训练深度神经网络,讨论本文 提出的训练策略的有效性.3) 使用本文提出的基于 SSIM 的选择性前向推理的方法进行视频目标检测, 有效性. 3. 1摇 Underwater鄄YOLO 检测结果 本部分实验旨在验证 Underwater鄄YOLO 网络结 构的有效性,因此在训练阶段仅采用迁移学习加数 据扩 增 的 策 略 以 相 同 的 超 参 数 训 练 YOLO、 YOLOv2、YOLOv3 及 Underwater鄄YOLO 网络. 将 500 回归. 当神经网络预测的目标边界框与手工标注的 边界框交并化(Intersection Over Union, IOU)大于等 于0.5 时,认为成功检测目标;否则,目标漏检. 选择 准确率(P)、召回率(R)、平均交并比(Mean Inter鄄 section over Union, mIOU)、每秒检测帧数(Frames per Second, FPS)作为评价准则. 1 所示. 文献[14] 为基于 Haar鄄like 特征的 Adaboost 水 下图像鱼类检测方法,使用相似的鱼类检测数据集, 检测准确率为66%,对于复杂的水下环境有较差的 幅测试图像输入训练好的网络进行鱼类目标的位置 各种目标检测算法在水下目标检测的性能如表 摇 摇 第32 卷 鲁棒性,因此使用传统方式的鱼类检测准确率受到 限制. 相比Adaboost 目标检测方法,基于YOLO 的目 标检测算法具有较好的性能指标. 使用最基本的 YOLO 网络结构,目标检测的准确率比 Adaboost 目 标检测方法提高 10%. 而本文建立的 Underwater鄄 YOLO 在准确率和召回率上都高于 YOLO 基础网 络,与 YOLOv2 相当. 由于 YOLOv3 具有深层的网络 结构,使用多种改进策略,目标检测的准确率和召回 率偏高. 但 Underwater鄄YOLO 仅使用 7 层卷积神经 网络进行特征提取,大幅降低目标检测的运算量,检 测速 度 可 达 122 帧/ 秒, 远 高 于 YOLO、YOLOv2、 YOLOv3. 表 1摇 水下目标检测实验结果 方法 Table 1摇 Experimental results of underwater object detection / 帧/ 秒 - 32 41 40 122 准确率/% 召回率/% - 66 76 62 83 74 92 79 73 89 Adaboost YOLO YOLOv2 YOLOv3 平均 交并比 检测速度 - 0.62 0.71 0. 78 0. 66 Underwater鄄YOLO 使用基本的 YOLO 网络和 Underwater鄄YOLO 进 行水下图像测试,典型结果对比如图10 所示. 摇 摇 摇 摇 摇 (a)YOLO摇 摇 摇 摇 (b)Underwater鄄YOLO 图10摇 2 种网络结构检测结果对比 Fig.10摇 Comparison of detection results of 2 networks 图10(a)为 YOLO 网络使用迁移学习的策略进 行训练后检测鱼类的结果,(b) 为 Underwater鄄YOLO 网络经过相同的训 练过程后的检 测 结 果. 对比两者 可以看出,使用 YOLO 网络结构进行鱼类目标检测 时,仅能检测较明显的目标,漏检体态较小、光线较 暗处的目标. 而使用 Underwater鄄YOLO 网络进行目 标检测时,能够检测一些不明显的鱼类,大幅提升目 标检测的召回率. 实验结果表明,在水下鱼类检测中,Underwater鄄 《模式识别与人工智能》电子版
分享到:
收藏