摘要
鱼类的种类识别与目标检测,对于水产养殖管理,鱼类资源保护,鱼类规模和种类分析有着重要研究意义及价值。在鱼类加工领域,需要对不同种类的鱼进行快速分类,但人工分拣效率低、时间长,容易造成鱼类因脱离水源过久出现伤亡损失,实现较高精度的鱼类识别有利于节省人工成本,推动鱼类加工的自动化和智能化。对水产养殖的鱼类进行目标检测,可以评估鱼类的数量,探究鱼类的规模和生活习性,促进鱼类资源的管理。随着计算机视觉技术的快速发展,深度学习技术在鱼类的识别与检测中具有很高的研究价值,本文研究利用基于深度学习的目标检测方法进行鱼类的种类识别与目标检测。本文的主要研究工作如下: (1)本文制作了鱼类识别数据集和鱼类检测数据集。选用鲈鱼(bass)、鲭鱼(mackerel)、鲻鱼(mullet)、鳟鱼(trout)四种鱼类作为识别对象,再利用Python爬虫技术扩充鱼类数据集,增加数据集的背景多样性。此外,对于鱼类检测数据集,通过采集鱼类图像视频,按每隔10帧对视频进行图像截取,保存的图像作为鱼类检测数据集,最后使用LabelImg工具对两种数据集进行标注,制作成VOC格式的数据集。 (2)针对YOLOv4模型参数量较大,推理速度较慢的问题,提出一种改进YOLOv4的轻量化鱼类识别方法。该算法采用轻量级的Mobilenet-v3网络代替原先的主要特征提取网络,将原网络中的标准卷积块全部替换为深度可分离的卷积块,再引入CBAM注意机制在预测部分,增强对鱼类重要特征的识别率,并加载预先训练的权重进行训练,使模型参数得到一个好的初始化。实验结果表明,在VOC数据集上设计的改进YOLOv4的鱼类识别模型mAP值为95.93%,实时检测的FPS约为46帧/秒,与初始的YOLOv4算法相比,参数量降低了81.8%,满足鱼类准确识别的要求。 (3)针对目标检测算法在检测鱼类小目标效果不佳,容易出现漏检的问题,提出一种改进YOLOv5的鱼类检测方法。该算法是在YOLOv5s的基础上,采用k-means++优化聚类先验框替代原算法中的先验框,以提高对小目标鱼类的识别能力,引入Soft-NMS策略调整预测框,加强对遮挡鱼类目标的检测能力。实验结果表明,在VOC鱼类检测数据集中进行验证,改进后算法的AP值达到94.31%,满足鱼类精准检测的需求。 (4)根据以上研究和工作,本文在PyCharm开发环境下,通过PyQt5设计了鱼类识别与检测软件。测试结果表明,该软件实现了对鱼类图像的种类识别和鱼类目标的视频检测。