基于YOLOv3模型的金枪鱼鱼群特征识别初步研究
2021-11-03王鲁民金卫国王国来常卫东
马 硕,张 禹,王鲁民,张 勋,金卫国,王国来,常卫东
(1 中国水产科学研究院东海水产研究所,上海 200090;2 上海开创远洋渔业有限公司,上海 200082)
金枪鱼围网渔业是综合技术集成度最高的大洋性渔业之一[1-2]。单船年产量达上万吨,产值可达上亿元人民币,当前中国批复的金枪鱼围网船共计30艘左右[3],主要在中西太平洋作业,在远洋渔业中占有重要地位。
长期以来,金枪鱼围网渔业的鱼群搜索一直是船队作业成本的最大支出之一,该阶段需耗费大量时间、人力及燃油成本[4]。近年来,中西太平洋渔业管理组织针对金枪鱼资源现状,对围网船实施更加严格的管理方法[5-9],进一步增加了入渔成本,寻求高效的鱼群搜索方法迫在眉睫。与此同时,基于图像和视频的智能识别、智能辅助分析技术发展迅速,在提高效率、降低人力成本等方面有独特优势,应用场景越来越广[10 -14]。据悉,金枪鱼围网渔业鱼群搜索方法主要依靠人工瞭望、雷达探测和直升机搜索等方式寻找鱼群[15]。人工瞭望距离受限、人数多、效率低;直升机搜索成本高,而且安全性差。因此借助基于图像和视频的智能识别、智能辅助分析技术,采用无人机机载摄像设备开展鱼群搜索是一可行的选择[16-19]。
视觉是人类接触世界最直接的方式,从图像中提取到特征信息是十分重要的[20]。Harris等[21]提出了Harris角点检测算法来提取图像特征,开启了图像识别的研究领域。Krizhevsky等[22]在ImageNet[23]大规模视觉识别挑战竞赛上通过深层次卷积神经网络取得了当时最佳的性能表现,由此开启了计算机视觉领域的深度学习时代。具体到目标检测领域,从2013年R-CNN模型[24]开始,深度学习方法取得了迅猛发展,目前,深度学习方法已经成为目标检测领域的主流解决方案[25]。
本研究利用无人机平台搭载图像识别技术来代替传统的鱼群搜索方法,可帮助渔船更快更高效地寻找鱼群。为验证方法的可行性,基于YOLOv3算法建立识别模型,进行金枪鱼鱼群特征的识别研究。
1 材料与方法
1.1 影像素材来源
本研究所用的视频数据是上海开创远洋渔业有限公司围网渔船在中西太平洋海域,拍摄的金枪鱼鱼群画面,通过存储设备将采集的数据存储到硬盘中,共42 G金枪鱼特征视频资料,作为本次的研究对象。
1.2 模型方法
本研究使用的是开源计算机视觉工具Tegu,它是基于Python语言,在主流开源框架Keras与TensorFlow的基础上,针对计算机视觉相关的应用场景对上述开源框架进行了进一步的封装,进一步降低了使用难度。该工具提供了一系列主流的计算机视觉相关模型的实现,本研究使用它提供的YOLOv3模型。
YOLO的全称是You Only Look Once,即该模型是一个One-Stage模型[26],它将R-CNN中的两个阶段合并为一个,只对图像进行一次浏览就可以识别出图中的物体类别和位置[27-28]。相比R-CNN,YOLO不再通过两阶段运算筛选出候选区,而是使用预定义的候选区,将目标图片切分为7×7=49个网格(Grid),在此基础上允许每一个网格预测出2个边框(Bounding box,即包含某对象的矩形框),模型在这些事先划定的候选区内找出真正的对象[29]。
图1展示了YOLO模型的模型结构——该模型包括24个卷积层,接受大小为448×448的输入图像,若实际图像的大小不满足这一尺寸,则应当缩放至该尺寸。模型的输出是一个7×7×30大小的张量。由于YOLO将图像切分为7×7大小的方格,因此这一张量可以被认为是针对每一个方格,都输出一个30维的向量。这一向量包括以下信息:
图1 YOLO模型结构Fig.1 YOLO model structure
(1)针对20个对象的分类概率
如上文所属,目标检测问题首先是一个分类问题——机器学习模型对于分类问题的输出,通常是一个维度等于类别数的向量。向量的每一维度都代表一个对应的类别,该维度的值表示当前给定输入对于该类别的评分。对于整个向量的所有维度,使用Softmax函数可以将所有评分转化为加和为1的概率值:
YOLO支持最多20种类别,因此分类向量长度为20,概率最大的分类即为预测的类别。
(2)边框位置
每一个方格内需要给出2个边框,每一个边框需要用一个4维向量[x,y,w,h]表示——其中(x,y)为边框中心点的坐标,(w,h)为边框的宽和高[30]。
(3)边框的置信度
置信度越高,说明模型越可以确保输出结果正确,计算公式如下:
本研究使用的YOLOv3模型是YOLO系列目标检测中的第3代,它使用多个logistic分类器代替Softmax可进行多标签分类,满足研究的应用条件。相对于其他的目标检测方法,它可以将一个单神经网络应用于整张图像,该网络将图像划分为不同的区域,进而预测每一块区域的边界框和概率,这些边界框会通过预测的概率加权,在获得了所有的预测方框之后,模型将使用非极大值抑制技术,将预测方框组合成最终的预测结果。若两个方框的预测分类相同,且IOU大于某一阈值(例如0.5),则将两个方框合并为一个,将置信度较小的方框删除。最终的输出结果如图2所示,识别出的目标用红色方框标出。
图2 识别效果Fig.2 Recognition effect
1.3 数据预处理
数据预处理包括视频分割、图像筛选、图像裁剪和特征标注4个步骤。首先将得到的金枪鱼特征视频进行切割,处理为逐帧的图像,然后对图像进行筛选,只选择具有清晰的金枪鱼鱼群特征图像,剔除无特征图像,此外,YOLOv3模型输入图像需为矩形,本研究传入数据时选择像素为416×416的图像,保证训练效果。
1.4 环境搭载
本研究使用开源的计算机视觉工具Tegu,该工具提供了一系列主流的计算机视觉相关模型,YOLOv3模型就是其中的一种。本模型训练选择在一台Linux服务器上,使用一块GeForce GTX1080显卡来完成。模型训练完成之后,使用训练好的模型文件即可在支持神经网络推断功能的无人机机载计算机、或配置了支持CUDA的英伟达显卡的Windows PC上完成识别任务。
1.5 识别准确率评估方法
选取数据集外的金枪鱼鱼群特征视频进行模拟识别测试、并记录正确识别和误识别的时间长度,计算正确识别在整个识别时间的比重,作为模拟识别的准确率,并分析该模型识别金枪鱼鱼群的可行性。
2 识别模型分析与结果
2.1 数据集构建
在金枪鱼围网捕捞过程中,搜索鱼群是第一步。搜索方法主要是船员们站在高处通过望远镜瞭望寻找金枪鱼鱼群,少数大型围网捕捞渔船配备载人直升机巡航搜索海面金枪鱼鱼群特征,包括流木、海鸟、跳跃群跃出海面而产生的浪花、浮水鱼群因摄食海表生物而产生的白沫等。依据海面上鱼群产生的浪花特征可以判断出鱼群的种类,尤其是浮水鱼群的移动方向,为浮水鱼群的捕捞提供重要依据。而这些金枪鱼群产生的行为特征统称为金枪鱼鱼群特征。根据这些特点将特征视频按照3 s的间隔进行切片,得到10 000多张特征图片,将切片所得图片进行筛选,筛选出来的图片作为训练集数据,该数据集主要的鱼群特征为浮水群特征,如图3。
图3 数据集图片示例Fig.3 Example of dataset pictures
具体筛选的标准如下:1)数据集中图像所展示的特征必须清晰可见,区别于其他浪花;2)数据集中图像均为实际环境拍摄,去除人为因素的影响;3)数据集中图像质量高,为后续的数据集构建提供基础。
2.2 模型训练
采集到的金枪鱼鱼群标注图像共663张(图4),因特征数据有限,文中仅针对浮水群特征进行研究。具体是使用Tegu提供的预训练模型文件,即使用迁移学习方法[31-32],首先在公开的ImageNet大规模数据集上进行预训练,然后冻结大部分模型参数,使用采集到的标注图像进行微调训练来达到有效识别金枪鱼渔情的目的。
图4 标注图像Fig.4 Labelling images
模型训练是深度学习与迁移学习训练的核心部分。其主要任务是在开源计算机视觉工具Tegu框架下,使用从ImageNet训练完成后迁移过来的深度网络模型,提高模型训练的效率。为了检测模型训练效果,使用交叉验证方法,将20%的数据划为验证集,剩余的数据作为训练集。每训练一轮(Epoch)之后,在验证集上进行验证。初始设置为连续训练20轮,观察验证集精度,训练17轮之后验证集精度不再提高,故不再增加训练轮数,将模型参数保存到本地文件中。
图5展示了验证集损失随训练轮数变化的曲线。该值表示估量模型的预测值和真实值的不一致程度,该值可以用于衡量模型在验证集上的总体误差大小。
图5 验证集损失曲线Fig.5 Validation Loss Curve
2.3 结果
本试验使用两段视频流进行测试,具体测试方法是分别从训练集和验证集筛选一段视频进行模拟识别,其中训练集时长为172 s,误识别时长为0 s,验证集时长为226 s,误识别时长为71 s。从模拟识别的结果来看,训练集的视频内容,识别准确率100%,说明在训练过程中,数据集的特征被完全识别,20轮训练已经将模型识别精度达到最高。对验证集的识别准确率为68.6%,表明该模型对研究特征的识别准确率为68.6%。在传统的渔情预报中,预报模型大多都是渔场预报[33-36],该模型直接识别金枪鱼鱼群,可以使预报更加精细化,具有实际的应用意义。但从识别过程来看,误识别发生的主要原因是数据集中的特征图像不全面,浮水群产生的浪花在不同天气、不同时间段的光照、不同角度都会影响其视觉特征,因此需要足够的特征图像来补充数据集。
3 讨论
3.1 识别准确率的探讨
经查阅文献,大多渔情预报精度在70%左右[37],本研究模型识别准确率68.6%,具有实际的应用价值。虽然本研究的识别精度略低,但当前诸多渔情预报模型大多根据海域的环境因子和空间因子建立的,运用卫星遥感技术获取海洋环境数据,将渔场和海洋环境关系结合,分析金枪鱼的适宜环境用于快速寻找作业渔场[34-37],捕捞船依然需要在偌大的渔场寻找鱼群,主要用于大尺度海域内预报,本模型可在支持神经网络推断功能的无人机机载计算机上完成识别任务,渔船可携带无人机和地面站设备出海,然后放飞无人机执行搜索任务,无人机通过自己的摄像头和机载计算机进行目标检测,是针对具体鱼群的预报,更加精准化。
3.2 其他影响因素分析
由于在实际的预报中,天气、光照等影响因素对金枪鱼鱼群的可视特征影响较大,因此为了减少单一使用某种因子在特征提取时,对预测结果产生影响,在特征采集时要对影响因子进行兼顾,尽可能全地采集不同天气和光照下的金枪鱼鱼群特征。此外,特征采集的方式也是特征识别的关键,本研究在测试中出现将渔船造成的浪花误识别为金枪鱼白沫特征,是因为本次研究的特征数据是以船的视角进行拍摄,角度过于倾斜,导致拍摄的白沫特征与浪花特征差异不明显,针对类似情况,对以后该研究的特征采集应结合应用场景,以无人机视角进行采集,调整采集鱼群特征的角度,使鱼群特征尽可能全方位展现在图像中,使特征图像占采集图像的1/3。
本研究的金枪鱼鱼群特征类型单一、特征数据库不够充分也是识别准确率的影响因素之一。实际上金枪鱼鱼群特征包括流木、海鸟、跳跃群跃出海面而产生的浪花、浮水群因摄食海表生物而产生的白沫、鱼群聚集使海面颜色加深等,而这些特征的采集需要长期的积累,经过不断采集数据特征进行补充训练。在后续的研究中,需每种特征累计至1 000张清晰图片,保留少部分作为验证集,其余部分进行补充训练,以进一步提高模型识别的精度和特征类型。
3.3 智能识别技术应用拓展
基于YOLOv3模型的金枪鱼鱼群特征识别技术需要借助无人机平台才能完成渔情搜索,随着无人机技术的快速发展,运用无人机平台进行目标识别成为未来的一个应用方向。今后还需要研究如何与无人机结合,形成一套金枪鱼渔情搜索系统。从识别效果来看,模型自动框选识别目标,具体应用中,对于目标识别的提示亦可使用其他方法,如信号警示灯、识别报警等,这对于渔业方面其他需求,亦可探索应用,目前深水网箱养殖发展迅速,在大型网箱中均有实时监控系统[38],但对网箱内养殖鱼类状态的智能识别,如鱼类死亡或非正常状态的智能识别报警、网箱状态的智能识别与报警等[39-41],今后可开展深入研究。
4 结论
基于YOLOv3模型的识别准确率为68.6%,通过综合分析认为可以实现对金枪鱼鱼群特征的识别,为精细化渔情预报提供了一种全新思路。根据分析结果,需在海上获取更多金枪鱼鱼群影像,扩充数据集,进行补充训练,进一步提高识别准确率,为在金枪鱼围网渔船海上实时识别金枪鱼鱼群的实际应用提供技术支撑。
□