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

news2025/1/23 14:56:56

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.coloradmin.cn/o/1474634.html

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

相关文章

【寸铁的刷题笔记】图论、bfs、dfs

【寸铁的刷题笔记】图论、bfs、dfs 大家好 我是寸铁👊 金三银四,图论基础结合bfs、dfs是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 🌞详见如下专栏🌞 &…

2024年新提出的算法|鹦鹉优化器(Parrot optimizer):算法及其在医疗问题中的应用

本期介绍一种基于训练后鹦鹉关键行为的高效优化方法——鹦鹉优化器(Parrot Optimizer, PO)。该成果于2024年2月发表在中科院2区top SCI期刊Computers in Biology and Medicine(IF7.7) 1、简介 鹦鹉优化器(PO)是一种受训练有素的…

RocketMQ学习笔记(2)—— 集成SpringBoot

前置知识&#xff1a; RocketMQ学习笔记&#xff08;1&#xff09;—— 基础使用-CSDN博客 7.集成SpringBoot 以上所述功能均是通过RocketMQ的原生API实现的&#xff0c;除此之外SpringBoot对于一些功能进行了封装&#xff0c;使用更加方便 7.1 producer 依赖 <!-- rock…

新火种AI|微软扶持下一个OpenAI?Mistral AI新模型对标GPT-4,上线即挤爆

作者&#xff1a;一号 编辑&#xff1a;美美 OpenAI的大金主微软&#xff0c;还想缔造“下一个OpenAI”。 周一晚间&#xff0c;成立仅9个月的Mistral AI正式发布了最强力的旗舰模型Mistral Large。和此前他们所推出的一系列模型不同&#xff0c;Mistral AI本次发布的版本性…

TikTok矩阵系统的功能展示:深入解析与源代码分享!

今天我来和大家说说TikTok矩阵系统&#xff0c;在当今数字化时代&#xff0c;社交媒体平台已成为人们获取信息、交流思想和娱乐放松的重要渠道&#xff0c;其中&#xff0c;TikTok作为一款全球知名的短视频社交平台&#xff0c;凭借其独特的创意内容和强大的算法推荐系统&#…

有效防止CDN网站被溯源ip的教程

如何反溯源隐藏自己的源IP防止溯源&#xff1f; 还有些大牛会进行渗透攻击、CC攻击&#xff0c;溯源打服务器&#xff0c;各式各样的&#xff0c;防不胜防。所以很多站长套起了cdn&#xff0c;比起cdn提供的加速效果&#xff0c;更多的站长可能还是为了保护那可怜弱小的源站ip…

Docker(运维工具)—— 学习笔记

快速构建、运行、管理应用的工具 一、安装docker 参考Install Docker Engine on Ubuntu | Docker Docs 二、快速入门 1、镜像和容器 docker镜像可以做到忽略操作系统的差异&#xff0c;跨平台运行&#xff0c;忽略安装的差异 当我们利用Docker安装应用时&#xff0c;Dock…

关于机器学习梯度下降法以及牛顿法公式符号的解释

如下图&#xff0c;是公式 如上图红线画出的部分&#xff0c;就是梯度下降法的符号&#xff0c;或者说&#xff0c;是 J(theta) 损失函数的一阶导数 整个公式看起来&#xff0c;就是 theta_new theta_old - (一阶导数/二阶导数)

算法day01_ 27. 移除元素、977.有序数组的平方

推荐阅读 从零开始学数组&#xff1a;深入浅出&#xff0c;带你掌握核心要点 初探二分法 再探二分法 系统的纪录一下刷算法的过程&#xff0c;之前一直断断续续的刷题&#xff0c;半途而废&#xff0c;现在重新开始。话不多说&#xff0c;开冲&#xff01; 27.移除元素 题目 给…

Maven编译报processing instruction can not have PITarget with reserveld xml name

在java项目中&#xff0c;平时我们会执行mvn clean package命令来编译我们的java项目&#xff0c;可是博主今天执行编译时突然报了 processing instruction can not have PITarget with reserveld xml name 这个错&#xff0c;网上也说法不一&#xff0c;但是绝大绝大部分是因…

(二十)devops持续集成开发——使用jenkins的docker插件完成docker项目的流水线发布

前言 本节内容主要介绍jenkins如何集成docker插件&#xff0c;完成docker项目的流水线发布&#xff0c;在前面的章节中我们也介绍过docker项目的发布&#xff0c;可直接通过shell命令调用本地的docker服务完成docker项目的发布&#xff0c;本节内容我们使用docker插件来完成do…

LeetCode--代码详解 43.字符串相乘

43.字符串相乘 题目 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2",…

ARM系列 -- 虚拟化(四)

今天来看看虚拟中断。 在一个非虚拟化的系统中&#xff0c;操作系统可以直接访问GIC的寄存器&#xff0c;并且处理GIC的物理中断接口&#xff08;physical interrupt interface&#xff09;。 但是在一个虚拟化的系统中&#xff0c;不是这样。Guest OS并不知道它运行在虚拟系…

ETH网络中的账户

ETH网络中的账户 Externally owned accounts (EOA) - 外部账户 由用户控制&#xff0c;我们导入助记词创建的账户就属于此类账户。 Contract accounts (smart contracts) - 合约账户 合约账户由以太坊虚拟机执行的代码控制。它也被称为智能合约。合约帐户有相关的代码和数据存…

防火墙的内容安全

目录 1. 内容安全 1.1 IAE引擎 DPI---深度包检测技术 DFI---深度流检测技术 结论(优缺点)&#xff1a; 1.2 入侵防御&#xff08;检测&#xff09;(IPS) IPS的优势: 入侵检测的方法: 入侵检测的流程 签名 查看预定义签名的内容 新建自定义签名 入侵防御的检测…

uniapp android 原生插件开发-测试流程

前言 最近公司要求研究一下 uniapp 的 android 原生插件的开发&#xff0c;为以后的工作做准备。这篇文章记录一下自己的学习过程&#xff0c;也帮助一下有同样需求的同学们 : ) 一、下载安装Hbuilder X , Android studio&#xff08;相关的安装配置过程网上有很多&#xff0c;…

width:100%和width:auto有啥区别

项目中使用了with属性&#xff0c;突然好奇auto 和 100% 的区别&#xff0c;特地搜索实践总结了一下观点 一、 width属性介绍二、 代码带入三、 分析比较四、 总结 一、 width属性介绍 width 属性用于设置元素的宽度。width 默认设置内容区域的宽度&#xff0c;但如果 box-siz…

XXE 漏洞简单研究

近期在做个基础的 web 常见漏洞的 ppt&#xff0c;主要参考 OWASP TOP 10 2017RC2&#xff0c;此版本中增加了 XXE 攻击&#xff0c;所以自己简单的研究下 XXE 攻击。XXE&#xff08;XML External Entity&#xff09;XML 外部实体&#xff0c;当前端和后端通信数据采用 xml&…

2. Kubernetes 核心数据结构

1. Group、Version、Resource 核心数据结构 理解 Kubernetes 核心数据结构&#xff0c;在阅读源码时可以事半功倍并能够深刻理解 Kubernetes 核心设计。在整个 Kubernetes 体系架构中&#xff0c;资源是 Kubernetes 最重要的概念&#xff0c;可以说 Kubernetes 的生态系统都围…

28. 找出字符串中第一个匹配项的下标(力扣LeetCode)

文章目录 28. 找出字符串中第一个匹配项的下标题目描述暴力KMP算法 28. 找出字符串中第一个匹配项的下标 题目描述 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。…