基于Python深度学习的鲨鱼识别分类系统

摘要:鲨鱼是海洋环境健康的指标,但受到过度捕捞和数据缺乏的挑战。传统的观察方法成本高昂且难以收集数据,特别是对于具有较大活动范围的物种。论文讨论了如何利用基于媒体的远程监测方法,结合机器学习和自动化技术,来填补鲨鱼种群评估中的信息空白。提出了一个包含53,345张鲨鱼图片的数据库,覆盖了219种鲨鱼,并开发了一个名为“Shark Detector”的软件包,利用PyQt5设计了简约的系统UI界面,使用迁移学习和卷积神经网络(CNN)来自动识别和快速分类鲨鱼种类。

关键词:数据挖掘、图像分类、机器学习、远程监测、鲨鱼识别

参考文献:Shark detection and classification with machine learning, Jenrette et al., 2022.

  1. 研究背景及意义

鲨鱼作为海洋生态系统的关键指示物种,其种群的健康状况直接反映了海洋环境的生态平衡。然而,由于鲨鱼的广泛分布和大范围的活动习性,传统的科学调查和渔业监测方法在收集鲨鱼种群数据时面临巨大挑战。这些方法不仅成本高昂,而且难以捕捉到足够的信息,特别是对于个体数量和分布情况的精确评估。

缺乏详尽的数据支持,科学家和保护工作者难以对鲨鱼种群进行有效的状态评估和趋势预测。这种情况限制了保护措施的制定和执行,导致许多鲨鱼物种的保护状况不容乐观。随着IUCN受威胁物种数量的增加,迫切需要新的监测手段来填补数据空白,提高对鲨鱼种群动态的了解。

随着计算机视觉和机器学习技术的发展,特别是卷积神经网络(CNN)在图像识别领域的突破,为鲨鱼等海洋生物的自动检测和分类提供了新的技术手段。通过训练算法识别鲨鱼的特征,可以自动化地从大量图像和视频中提取有用信息,这不仅提高了数据处理的效率,也为海洋生物多样性监测提供了新的解决方案。

社交媒体和公共科学项目的兴起为生物多样性监测提供了新的数据来源。公众拍摄的鲨鱼照片和视频,尤其是通过Instagram等平台分享的内容,构成了一个庞大的图像库。利用机器学习算法对这些数据进行挖掘和分析,可以为鲨鱼研究提供宝贵的补充信息,同时也促进了科学研究与公众参与的结合。

  1. 研究方法

  2. 数据库构建:研究团队创建了一个包含53,345张鲨鱼图片的数据库,涵盖了219种鲨鱼。这些图片主要来源于社交媒体、公民科学项目、用户提交和其他电子档案。

  3. Shark Detector开发:开发了一个名为“Shark Detector”的软件包,它集成了对象检测和图像分类模型。该软件包使用迁移学习和卷积神经网络(CNN)技术来自动识别和分类视频中和图像中的鲨鱼。

  4. 模型组成:

  • Shark Locator (SL):对象检测模型,用于在图像和视频中定位鲨鱼并绘制边界框。

  • Shark Identifier (SI):二元排序模型,用于从混合图像集中筛选出鲨鱼图像。

  • Shark Classifiers (SCs):多类模型,用于将鲨鱼图像分类到属和物种级别。

  1. 训练与验证:使用来自sharkPulse的数据和其他来源的图像训练模型。通过迁移学习,利用预训练的网络(如VGG16和DenseNet201)来提高训练效率和准确性。

  2. 数据增强:采用图像增强技术,如平移、剪切、缩放和旋转,提高模型的泛化能力。

 

 

图1 鲨鱼探测器系统由对象检测和分类软件包组成,以循序渐进的方式达到最佳效果。此外,通过检测鲨鱼主体,鲨鱼定位器可以合成鲨鱼识别器和鲨鱼分类器模型所需的剪切鲨鱼图像,作为新的训练数据补充到sharkPulse档案中。视频按照定位、识别和分类的顺序进行处理。异构数据挖掘数据集按照先识别后分类的顺序进行处理。

 

 

 

图2 SL物体探测模型根据鲨鱼出现的置信度绘制方框。(a) 检测到一条短鳍鲭鲨幼鱼,并对单张自动裁剪图像进行处理,去除饵罐和蓝鳍金枪鱼等无关物体。(b) 检测到多个胭脂鱼物种,并从单张图像中裁剪出两张图像。

 

 

 

图3 由SI识别的图像以及随后由SC进行的分类。(a) 通过对水下照片、有前景和背景噪声的图像、难以辨认鲨鱼特征的图像以及8个不同物种进行分类,SI和SC正确识别了各种鲨鱼图像。(b) SI错误分类的常见对象,如鲸目动物(以及其他海洋和陆地动物)、空旷的前景、难以辨认的物体和假鲨鱼。(c) 由于部分特征被掩盖,SI会错过鲨鱼的出现。

  1. 结果分析

  2. 分类能力:Shark Detector能够对47种鲨鱼进行分类。

  3. 准确性测试:

  • 在处理诱饵远程摄像机镜头和YouTube视频时,Shark Detector在定位鲨鱼方面的准确率达到了89%。

  • 在将定位到的鲨鱼分类到物种层面时,准确率为69%。

  1. Instagram数据集:在Instagram上收集的异构数据集中,Shark Identifier以91%的准确率筛选出鲨鱼图像,并将这些图像分类到物种层面的准确率达到了70%。

  2. 性能评估:研究评估了Shark Detector在不同数据生成方法中的性能,包括在sharkPulse数据集中的定位、在线视频的处理,以及Instagram数据的挖掘。

  3. 软件性能:Shark Detector在没有人工交互的情况下处理了所有数据生成方法,展示了其自动化处理的能力。

  4. 模型改进:研究指出,随着向训练数据集添加更多图像,软件流水线的预测准确性会提高,这表明模型性能有进一步优化的空间。

通过这些方法和结果,本研究展示了Shark Detector作为一个强大的工具,能够自动化地从各种媒体来源中识别和分类鲨鱼,为鲨鱼保护和生态研究提供了新的技术支持。简而言之,图4概述了通过不同模型和参数测量的SD系统在鲨鱼图像分类方面的性能,包括不同类别的准确性、训练数据集大小的影响以及模型的可靠性。

 

 

 

图4 Shark Detector(SD)系统组件的性能测量结果。(a) 对13个鲨鱼属类的分类准确性(GSC)进行了测量,发现随着训练数据集大小的增加,其准确性可以用一个双参数渐近模型来拟合,渐近曲线表示每个类别在模型中可能达到的最大召回率。(b) 测量了7个物种类别和两个包含数据较少的Carcharhinus sp.和Sphyrna sp.的类别(SSCg)的分类准确性。(c) 展示了12个GSC类别的训练数据集大小阈值分布,排除了Prionace属,因为它的召回率从未达到50%,曲线表示正态分布的密度。(d) 展示了9个SSCg类别的训练数据集大小阈值分布,这些类别的属包含超过两个物种。(e) 展示了所有SD组件的性能,包括SSCg模型的标准误差区间。(f) 展示了所有18个SSCg模型的准确性分布。

  1. PyQt5可视化软件

本节详细介绍如何以上述CNN网络为主干,实现对鲨鱼种类的检测识别,且利用PyQt5设计了简约的系统UI界面。在界面中,您可以选择自己的视频文件、图片文件进行检测。此外,您还可以更换自己训练的主干模型,进行自己数据的检测。该系统界面优美,检测精度高,功能强大。它具备多目标实时检测,同时可以自由选择感兴趣的检测目标。本文提供了完整的Python程序代码和使用教程,适合新入门的朋友参考,包括用户登录界面(注册登录和修改密码),管理员主界面(用户账户信息、查看历史资源和鲨鱼种类百科),普通用户界面(上传历史记录、鲨鱼图像识别和鲨鱼种类百科),以及鲨鱼识别界面(图片和视频)。

 

 

 

 

 

 

 

 

 

 

 

图5 基于深度学习的鲨鱼识别分类系统演示界面

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漫话机器学习系列】168.最大最小值缩放(Min-Max Scaling)

在机器学习和数据预处理中,特征缩放(Feature Scaling) 是一个至关重要的步骤,它可以使模型更稳定,提高训练速度,并优化收敛效果。最大最小值缩放(Min-Max Scaling) 是其中最常见的方…

开源测试用例管理平台

不可错过的10个开源测试用例管理平台: PingCode、TestLink、Kiwi TCMS、Squash TM、FitNesse、Tuleap、Robot Framework、SpecFlow、TestMaster、Nitrate。 开源测试用例管理工具提供了一种透明、灵活的解决方案,使团队能够在不受限的情况下适应具体的测…

鸿蒙阔折叠Pura X外屏开发适配

首先看下鸿蒙中断点分类 内外屏开合规则 Pura X开合连续规则: 外屏切换到内屏,界面可以直接接续。内屏(锁屏或非锁屏状态)切换到外屏,默认都显示为锁屏的亮屏状态。用户解锁后:对于应用已适配外屏的情况下,应用界面可以接续到外屏。折叠外屏显示展开内屏显示折叠状态…

DRM_CLIENT_CAP_UNIVERSAL_PLANES和DRM_CLIENT_CAP_ATOMIC

drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); 这两行代码用于启用 Linux DRM(Direct Rendering Manager)客户端的两个关键特性,具体作用如下: 1. drmSetClientCap…

敏捷开发10:精益软件开发和看板kanban开发方法的区别是什么

简介 精益生产起源于丰田生产系统,核心是消除浪费,而看板最初是由丰田用于物料管理的信号卡片,后来被引入软件开发。 Kanban 后来引入到敏捷开发中,强调持续交付和流程可视化。 精益软件开发原则是基于精益生产的原则&#xff0…

用matlab探索卷积神经网络(Convolutional Neural Networks)-3

5.GoogLeNet中的Filters 这里我们探索GoogLeNet中的Filters,首先你需要安装GoogLeNet.在Matlab的APPS里找到Deep Network Designer,然后找到GoogLeNet,安装后的网络是没有右下角的黄色感叹号的,没有安装的神经网络都有黄色感叹号。 一个层&a…

Verilog中X态的危险:仿真漏掉的bug

由于Verilog中X态的微妙语义,RTL仿真可能PASS,而网表仿真却会fail。 目前进行的网表仿真越来越少,这个问题尤其严重,主要是网表仿真比RTL仿真慢得多,因此对整个回归测试而言成本效益不高。 上面的例子中,用Verilog RTL中的case语句描述了一个简单的AND函数,它被综合成AN…

PyTorch中知识蒸馏浅讲

知识蒸馏 在 PyTorch 中,使用 teacher_model.eval() 和冻结教师模型参数是知识蒸馏(Knowledge Distillation)中的关键步骤。 ​1. teacher_model.eval() 的作用 目的: 将教师模型切换到评估模式,影响某些特定层(如 Dropout、BatchNorm)的行为。 ​具体影响: ​Dropo…

Odoo/OpenERP 和 psql 命令行的快速参考总结

Odoo/OpenERP 和 psql 命令行的快速参考总结 psql 命令行选项 选项意义-a从脚本中响应所有输入-A取消表数据输出的对齐模式-c <查询>仅运行一个简单的查询&#xff0c;然后退出-d <数据库名>指定连接的数据库名&#xff08;默认为当前登录用户名&#xff09;-e回显…

ChatGPT 迎来 4o模型:更强大的图像生成能力与潜在风险

OpenAI 对 ChatGPT 进行重大升级&#xff0c;图像生成功能即将迎来新的 4o 模型&#xff0c;并取代原本的 DALLE。此次更新不仅提升了图像生成质量&#xff0c;还增强了对话内容和上传文件的融合能力&#xff0c;使 AI 生成的图像更加智能化和精准化。 4o 模型带来的革新 Ope…

Python 实现的运筹优化系统代码详解(整数规划问题)

一、引言 在数学建模的广袤领域里&#xff0c;整数规划问题占据着极为重要的地位。它广泛应用于工业生产、资源分配、项目管理等诸多实际场景&#xff0c;旨在寻求在一系列约束条件下&#xff0c;使目标函数达到最优&#xff08;最大或最小&#xff09;且决策变量取整数值的解决…

Visual Studio Code配置自动规范代码格式

目录 前言1. 插件安装2. 配置个性化设置2.1 在左下角点击设置按钮 &#xff0c;点击命令面板&#xff08;或者也可以之间按快捷键CtrlShiftP&#xff09;2.2 在弹出的搜索框输入 settings.json&#xff0c;打开首选项&#xff1a;打开工作区设置&#xff1b;2.3 在settings.jso…

【分布式】Hystrix 的核心概念与工作原理​

熔断机制​ Hystrix 的熔断机制就像是电路中的保险丝。当某个服务的失败请求达到一定比例&#xff08;例如 50%&#xff09;或者在一定时间内&#xff08;如 20 秒&#xff09;失败请求数量超过一定阈值&#xff08;如 20 个&#xff09;时&#xff0c;熔断开关就会打开。此时…

TypeScript 中 await 的详解

TypeScript 中 await 的详解 1. 基本概念2. 语法要求3. 工作原理4. 与 Promise 的比较5. 实践中的注意事项总结 本文详细介绍了 TypeScript 中 await 的工作原理、语法要求、与 Promise 的关系以及实践中需要注意的问题&#xff0c;同时针对代码示例进行了优化和补充说明。 1.…

ThreadLocal 深度解析

一、引言 在多线程编程的复杂世界中&#xff0c;数据共享与隔离是一个核心且具有挑战性的问题。ThreadLocal 作为 Java 并发包中的重要工具&#xff0c;为我们提供了一种独特的线程局部变量管理方式&#xff0c;使得每个线程都能拥有自己独立的变量副本&#xff0c;避免了多线…

VMware安装Ubuntu实战分享

在日常开发和学习过程中&#xff0c;很多人都会选择在VMware虚拟机上安装Ubuntu&#xff0c;以便进行Linux环境的体验和开发调试。本文将详细分享在VMware Workstation上安装Ubuntu的全过程&#xff0c;并结合个人经验&#xff0c;提供一些实用的小技巧&#xff0c;帮助大家顺利…

阻止上传可执行程序

点击工具中的文件服务器资源管理器 、然后点击文件屏蔽管理中的文件屏蔽&#xff0c;然后导入目标文件选择要限制的属性即可

微服务面试题:配置中心

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

系统思考反馈

最近交付的都是一些持续性的项目&#xff0c;越来越感觉到&#xff0c;系统思考和第五项修炼不只是简单的一门课程&#xff0c;它们能真正融入到我们的日常工作和业务中&#xff0c;帮助我们用更清晰的思维方式解决复杂问题&#xff0c;推动团队协作&#xff0c;激发创新。 特…

MMD 转 STL,拓宽 3D 模型应用边界:方法与门道

在 3D 建模与打印领域&#xff0c;不同格式文件间的转换是常见需求。MMD&#xff08;MikuMikuDance&#xff09;模型文件格式常用于动漫角色的舞蹈创作等&#xff0c;而 STL&#xff08;Stereolithography&#xff09;格式则广泛应用于 3D 打印与计算机辅助设计&#xff08;CAD…