【论文阅读】基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取

Bubble feature extraction in subcooled flow boiling using AI-based object detection and tracking techniques
基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取
期刊信息:International Journal of Heat and Mass Transfer 2024
级别:EI检索 SCI升级版工程技术2区 SCI基础版工程技术2区 IF5.2
原文链接:https://doi.org/10.1016/j.ijheatmasstransfer.2024.125188
演示视频:https://github.com/zhouzhouwen/Bubble_detection_and_tracking

气泡检测方法

本研究采用了2023年6月开发的最先进的基于CNN的YOLOv8。它表现出速度和精度的卓越平衡,从而将其建立为广泛任务的最佳选择,包括目标检测,目标跟踪,实例分割,图像分类和姿态估计。

基于YOLOv8的气泡检测算法由主干和头部两部分组成,如下图所示,主干组件作为特征提取器,用于从输入图像中提取高级特征。它从根本上使用了CSPDar - knet53特征提取器,并通过脚手架金字塔池特征(SPPF)层和额外的卷积层处理多个尺度的气泡特征图。C2f模块将这些高级特征与上下文信息相结合,从而提高了模型的气泡检测精度。header组件首先通过Concat层处理骨干生成的气泡特征映射,然后进行卷积和上行采样等操作。这些最后的结果然后被输入到Detection模块,最终输出气泡边界框、气泡类和分布焦点。头部结构针对速度和精度进行了优化。除了这些主要组件之外,YOLOv8还加入了Upsample和Concat层等辅助层,它们分别提高了特征图的分辨率,并促进了不同层特征图的组合。这些附加层共同提高了气泡检测算法的效率和有效性。
在这里插入图片描述

在YOLOv8的损失最小化过程中,Detection模块的输出与三种不同的损失相关:气泡边界框损失、气泡类损失和气泡分布焦点损失。气泡边界框损失是指真实的气泡边界框与YOLOv8预测的边界框之间的差异。模型对每个边界框进行4次预测,即中心坐标(x, y)和尺寸(宽度w,高度h)。边界框损失(boxloss)定义为:
在这里插入图片描述
预测的气泡边界框是b = (bx, by, bw, bh),实际的气泡边界框是b ’ = (b ’ x, b ’ y, b ’ w, b ’ h)。

为了解决每个边界框的类预测问题,YOLOv8利用了交叉熵损失函数。假设模型对每个类别的预测概率为p = (p1, p2,…pc),实际类别为c,则类别损失(clsloss)表示为:
在这里插入图片描述
pc是模型预测的正确类别的概率。在本研究中,类别分为两组,即气泡类别和背景类别。

为了解决类别不平衡的问题,YOLOv8 采用了焦点损失函数(dflloss),其定义为:
在这里插入图片描述
γ是一个通常设为2的超参数。焦点损失函数通过强化复杂样本的损失来缓解分类任务中的类不平衡,从而促使模型在训练时更多地关注这些样本。此外,YOLOv8提出了五个预定义模型,以满足不同范围的用例,考虑到计算效率和检测精度之间的平衡。这种灵活性使用户能够选择最适合其特定场景的方案,如表1所示。
在这里插入图片描述

以下指标通常用于衡量目标检测方法的性能。精度是衡量模型正面预测的准确度。数学上,精度计算为:
在这里插入图片描述
TP =真正例(正确识别的检测),FP =假正例(错误识别的检测)。召回:召回度量检测到的对象的数量。它量化了实际正确识别阳性的比例,定义为:
在这里插入图片描述
假反例(False Negatives, FN)表示漏检数。
Mean Average Precision (mAP@50): mAP@50以IoU (Intersection over Union)为阈值0.5(50%)计算召回值在0 ~ 1范围内的平均精度值的平均值。它提供了一个单一的度量,封装了精确度和召回率之间的权衡。IoU是用于对象检测的度量,用于量化对象检测器在特定数据集上的准确性。它测量两个边界框之间的重叠,如下图所示。
在这里插入图片描述
IoU的计算公式如下:
在这里插入图片描述
Mean Average Precision (mAP@50:95): mAP@50:95计算不同IoU阈值的平均精度,从0.5(50%)到0.95(95%),步长为0.05。它提供了一个模型在不同级别IoU上更全面的表现。mAP是一个介于0到1之间的值,mAP值越高,表示精度越高(假正例率低),召回率越高(假反例率低),这意味着模型正确识别对象,假正例或漏检较少。

气泡跟踪方法

多目标跟踪(MOT)算法是一种复杂的方法,可以在一个场景中同时跟踪多个目标。该技术包括检测每一帧内的对象,为每个对象分配唯一的ID,并在连续的帧中维持该ID,以构建随时间变化的对象轨迹。本研究将MOT算法与YOLOv8相结合,实现了在每个视频帧中检测到单个气泡后的跟踪。图6给出了气泡跟踪方法的一般流程。目前的气泡跟踪方法分为以下四个过程(图6):
图6
步骤1:气泡特征提取及位置预测。基于YOLOv8检测到冷凝气泡后,在后续帧中对每个气泡的轨迹进行投影。这就是调用卡尔曼滤波器的地方。卡尔曼滤波器根据当前状态估计冷凝气泡的未来状态。凝结泡的状态包括位置、速度和加速度。卡尔曼滤波器内的预测步长可以用数学形式表示为:
在这里插入图片描述
式中,
^xt为时刻t的预测状态,
Ft+1为时刻t到t+1的状态转移模型,
xt为时刻t的前一状态,
Bt+1为时刻t到t+1的控制输入模型,
ut+1为时刻t到t+1的控制向量,
t为时刻t的预测协方差,
^Pt为时刻t的前一协方差,
Ft+1是状态转移模型从时间t到时间t+1的转置,
Qt+1是时间t到时间t+1的过程噪声。

步骤2:级联匹配。级联匹配是一种机制,通过匈牙利算法,检测与基于跟踪的外观特征和外观相似性相匹配,这种方法建立了凝结气泡的短轨迹,从最近的检测开始,并向后追溯时间。

步骤3:IoU匹配。利用IoU匹配构造匈牙利算法的代价矩阵,便于跟踪的最优分配,生成关联结果。

步骤4:动作状态更新。基于卡尔曼滤波和运动预测模型对冷凝气泡轨迹的运动状态进行刷新。此外,对不相关的检测结果进行初始化,形成新的气泡轨迹。卡尔曼滤波器的更新方程如下:
在这里插入图片描述
式中,
Kt+1为t+1时刻的卡尔曼增益,
Ht+1为t - t+1时刻的观测模型,
Rt+1为t - t+1时刻的观测噪声协方差,
zt+1为t+1时刻的实际观测值,
I为单位矩阵。
冷凝气泡的轨迹如图6所示。

气泡检测结果

在这里插入图片描述
在这里插入图片描述

不同MOT算法的跟踪结果。在这里插入图片描述

结论与后续工作

在本研究中,提出了一种利用目标检测和跟踪技术提取鲁棒冷凝气泡特征的新方法——针对过冷流沸腾的分析。提出的人工智能模型在每个气泡的整个生命周期内有效地捕获时间和空间信息。有效地提取了过冷沸腾流中的关键热压参数,包括展弦比、Sauter平均直径、离开直径、生长时间和气泡寿命,并将其与经验相关性进行了比较。

此外,该模型能够量化过冷沸腾流中现有经验关联的近似偏差和波动幅度,这些关联大多是在稳定和充分发展的条件下发展起来的。对比结果显示了令人满意的一致性水平,进一步增强了我们提出的人工智能模型的有效性。该数据集将是开源的,使热水力领域的其他研究人员能够进行相关研究。

然而,值得注意的是,虽然目前的模型在提取热液参数方面表现出足够的性能,但用于训练和验证的当前数据集仅包含四组较低长/宽比的实验数据,以及25,000个注释的气泡数据点。因此,我们模型的通用性需要进一步改进。为了解决这一限制,我们正在获取具有更长的长/宽比的完整开发视频及其相应的综合数据集。这些新的数据集将用于训练一个更广义的气泡检测和跟踪模型。此外,我们正在进行的工作旨在提取和验证与视频长度密切相关的关键热水力参数,如空隙率、界面面积浓度、成核位点密度和Nu数。

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

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

相关文章

SpringCloud-Gateway解决跨域问题

Spring Cloud Gateway是一个基于Spring Framework的微服务网关,用于构建可扩展的分布式系统。在处理跨域问题时,可以通过配置网关来实现跨域资源共享(CORS)。要解决跨域问题,首先需要在网关的配置文件中添加相关的跨域…

SNMP简介

定义 简单网络管理协议SNMP(Simple Network Management Protocol)是广泛应用于TCP/IP网络的网络管理标准协议。SNMP提供了一种通过运行网络管理软件的中心计算机(即网络管理工作站)来管理设备的方法。SNMP的特点如下:…

Python爬虫获取淘宝商品详情页数据|实现自动化采集商品信息

要实现自动化采集淘宝商品详情页数据,可以使用Python的第三方库如requests和BeautifulSoup。以下是一个简单的示例: Taobao.item_get-获得淘宝商品详情数据接口返回值说明 1.请求方式:HTTP POST ;复制Taobaoapi2014获取APISDK文件。 2.请求…

如何让网页APP化 渐进式Web应用(PWA)

前言 大家上网应该发现有的网页说可以安装对应应用,结果这个应用好像就是个web,不像是应用,因为这里采用了PWA相关技术。 PWA,全称为渐进式Web应用(Progressive Web Apps),是一种可以提供类似…

pytest如何在类的方法之间共享变量?

在pytest中,setup_class是一个特殊的方法,它用于在类级别的测试开始之前设置一些初始化的状态。这个方法会在类中的任何测试方法执行之前只运行一次。 当你在setup_class中使用self来修改类属性时,你实际上是在修改类的一个实例属性。在Pyth…

开源现场总线协议栈(ethercat、ethernet/ip、opc ua、profinet、canopen、modbus)

ecat主站及其相关: 1.soem:GitHub - OpenEtherCATsociety/SOEM: Simple Open Source EtherCAT MasterSimple Open Source EtherCAT Master. Contribute to OpenEtherCATsociety/SOEM development by creating an account on GitHub.https://github.com/…

Rust升级慢,使用国内镜像进行加速

背景 rustup 是 Rust 官方的跨平台 Rust 安装工具,国内用户使用rustup update的时候,网速非常慢,可以使用国内的阿里云镜像源来进行加速 0x01 配置方法 1. Linux与Mac OS用户配置环境变量 修改~/.bash_profile文件添加如下内容&#xff1…

科技论文编写思路

科技论文编写思路 1.基本框架2.课题可行性评估1.研究目标和意义2.研究方法和技术3.可行性和可操作性4.风险和不确定性5.经济性和资源投入6.成果预期和评估 3.写作思路4.利用AI读论文5.实验流程 1.基本框架 IntroductionRelated worksMethodExperiment and analysisDiscussionC…

【Git教程】(五)分支 —— 并行式开发,分支相关操作(创建、切换、删除)~

Git教程 分支 1️⃣ 并行式开发2️⃣ 修复旧版本中的 bug3️⃣ 分支4️⃣ 当前活跃分支5️⃣ 重置分支指针6️⃣ 删除分支7️⃣ 清理提交对象🌾 总结 对于版本提交为什么不能依次进行,以便形成一条直线型的提交历史记录,我们认为有 以下两个…

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法!现在后端开发项目中,为了节省时间,使用swagger插件,可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如:http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…

深度学习基础(一)神经网络基本原理

之前的章节我们初步介绍了机器学习相关基础知识,目录如下: 机器学习基础(一)理解机器学习的本质-CSDN博客 机器学习基础(二)监督与非监督学习-CSDN博客 机器学习基础(四)非监督学…

Netty入门指南:从零开始的异步网络通信

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Netty入门指南:从零开始的异步网络通信 前言Netty简介由来:发展历程:异步、事件驱动的编程模型: 核心组件解析通信协议高性能特性异步编程范式性能优化与…

探索AI视频模型的无限可能:OpenAI的Sora引领创新浪潮

文章目录 📑前言一、技术解析二、应用场景三、未来展望四、伦理与创意五、用户体验与互动🌤️总结 📑前言 随着人工智能技术的蓬勃发展,AI视频模型正逐渐成为科技领域的新宠。在这个变革的浪潮中,OpenAI推出的首个AI视…

ESP8266智能家居(1)——开发环境的搭建

1.前期介绍 本次打算使用esp8266的开发板——NodeMCU,进行物联网相关项目的学习。开发环境使用Arduino软件。 NodeMCU实物图为: 开发环境截图为: 2.软件下载 我使用的arduino版本为1.8.5,其安装包如下: 【免费】ar…

自动驾驶框架:自动驾驶汽车定位-感知-规划-决策-控制概述,按照我的架构图理解:决策决定的是速度,规划决定的是路径(架构理解推荐)

1.按照我的架构图理解:决策决定的是速度,规划决定的是路径 参考链接:【自动驾驶】运动规划丨速度规划丨自动驾驶速度规划及状态协调方法 2.下面是参考别人的理解: 自动驾驶汽车定位-感知-规划-决策-控制概述 规划-决策-控制知…

Lua速成(2)

一、流程控制 Lua 编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为 true 时执行指定程序代码,在条件为 false 时执行其他指定代码。 控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,true和非nil为真。 …

ChatGPT学习第三周

📖 学习目标 ChatGPT在各行各业的应用 探索ChatGPT在不同领域(如教育、客户服务等)的实际应用案例。 ChatGPT的局限性和挑战 讨论ChatGPT面临的挑战,包括偏见、误解及其限制。 ✍️ 学习活动 学习资料 《人工智能通用大模型(…

【Java EE初阶二十七】深入了解cookie

1. 简单了解cookie Cookie是http请求里header 中的一个属性,浏览器持久化存储数据的一种机制,网页无法访问主机的文件系统,要想存储数据就得通过其他的方式; 且cookie中保存的数据也是键值对的形式,最终还是要把这个键…

vite是什么

vite 是什么 vite —— 一个由 vue 作者尤雨溪开发的 web 开发工具 Vite由两个主要部分组成 dev server:利用浏览器的ESM能力来提供源文件,具有丰富的内置功能并具有高效的HMR生产构建:生产环境利用Rollup来构建代码,提供指令用…

【Ubuntu】通过网线连接两台电脑以实现局域网连接的方法

有时我们需要将多台计算机连接在一起,以便实现数据共享、资源访问等功能。本文将介绍如何通过网线连接两台运行Ubuntu操作系统的电脑,以便它们能够直接通信,从而实现局域网连接。 1. 准备工作 在开始之前,请准备好: …