当前位置: 首页 > news >正文

精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】

Focaler-IoU: 更聚焦的交并比损失

Focaler-IoU: More Focused Intersection over Union Loss

  • Focaler-IoU: 更聚焦的交并比损失
  • I. 引言
  • II. 相关工作
  • III. 方法
  • IV. 实验
  • V. 结论

在这里插入图片描述

原文地址:官方论文地址
代码地址:官方代码地址

摘要——边界框回归在目标检测领域中起着至关重要的作用,目标检测的定位精度在很大程度上依赖于边界框回归的损失函数。 现有研究通过利用边界框之间的几何关系来提升回归性能,但忽略了困难样本与易样本分布对边界框回归的影响。在本文中,我们分析了困难样本与易样本分布对回归结果的影响,并提出了Focaler-IoU,该方法通过聚焦不同的回归样本,能够在不同的检测任务中提高检测器的性能。最后,我们在不同检测任务中使用现有的先进检测器和回归方法进行了对比实验,结果表明,采用本文提出的方法可以进一步提升检测性能。代码已开源,地址为:https://github.com/malagoutou/Focaler-IoU。
关键词——目标检测,损失函数,边界框回归

I. 引言

目标检测是计算机视觉的基础任务之一,旨在定位和识别图像中的目标。根据是否生成Anchor(锚框),目标检测方法可以分为基于Anchor的方法和无Anchor的方法。基于Anchor的算法包括Faster R-CNN、YOLO(You Only Look Once)系列、SSD(Single Shot MultiBox Detector)和RetinaNet。无Anchor的检测算法包括CornerNet、CenterNet和FCOS(Fully Convolutional One Stage Object Detection)。在这些检测器中,边界框回归的损失函数作为定位分支的重要组成部分,起着不可替代的作用。

A. 边界框回归损失
随着计算机视觉的发展,目标检测任务受到了越来越多研究者的关注。为了评估各种算法在检测任务中的性能,需要引入一个合适的评估指标。在IoU(Intersection over Union)提出之前,早期的边界框回归问题采用ln范数损失作为评估指标。然而,由于ln范数损失对异常值非常敏感,这导致异常值对损失的影响较大,从而在模型中存在异常值时性能会变得不稳定

为更好地解决上述问题,提出了一种更合适的评估指标:IoU(Intersection over Union)。在基于IoU的评估标准下,大多数目标检测任务的检测精度得到了进一步提升,但IoU损失本身也存在一些缺点。例如,当GT(Ground Truth)框与Anchor框之间没有重叠时,其梯度会消失,无法准确表征两个边界框之间的位置关系。

为弥补这一不足,GIoU提出使用包含GT框和Anchor框的最小外接框来计算损失,从而提升检测性能。在CIoU和DIoU中,为了弥补GIoU收敛速度慢的缺点,CIoU通过进一步考虑GT框与Anchor框之间的宽高比来加速收敛,而DIoU则通过对两个边界框中心点之间的距离进行归一化来加速收敛。EIoU在CIoU的基础上进一步考虑了形状损失,通过最小化GT框和Anchor框宽度与高度的差异来加速收敛,而SIoU进一步考虑了连接两个边界框中心的线的角度,并根据该角度重新定义了距离损失和形状损失,将其作为新的损失项添加到损失函数中。SIoU在当前基于IoU的损失函数中实现了最好的检测效果。

B. Focal Loss
在边界回归过程中,训练样本不平衡问题依然存在。根据是否包含目标类别,训练样本可以分为正样本和负样本。一些传统的解决方法是在训练过程中对困难样本进行采样和重新加权,但这种方法的效果并不显著。

Focal Loss提出,容易识别的负样本占总损失的主要部分,并主导了梯度。通过调整正样本和负样本的权重,Focal Loss提高了模型识别稀有目标类别的能力,使模型更多地关注难以分类的正样本,同时降低相对容易分类的负样本的权重。在Libra R-CNN中,提出了一个简单而有效的平衡学习框架,使用Balanced L1损失在目标层面上将训练样本分为异常值和正常值。异常值被视为困难样本,与正常值相比会产生更大的梯度,这对训练过程有害。因此,Libra R-CNN通过梯度回归促进正常值,并裁剪由异常值产生的过大梯度,以实现更好的分类效果。

在EIoU中,训练样本被分为高质量样本(anchors)和低质量样本(异常值),并基于L1损失提出了FocalL1损失,以增加高质量样本对训练过程的梯度贡献。同时,将EIoU损失作为一个变量添加到FocalL1损失中,使模型能够更加关注高质量样本,从而进一步提升检测效果。

本文的主要贡献如下:

  • 我们分析了困难样本和易样本分布对边界框回归的影响,并在现有边界框回归方法的基础上,提出了Focaler-IoU,通过线性区间映射来聚焦不同的回归样本。
  • 我们使用先进的一阶段检测器进行了实验,验证了我们的方法可以有效提高检测性能,并弥补现有方法的不足。

II. 相关工作

近年来,随着检测器的发展,边界回归损失得到了快速发展。最初,IoU被提出用于评估边界回归状态,随后在IoU的基础上,陆续提出了新的约束条件,如GIoU、DIoU、CIoU、EIoU和SIoU等。

A. IoU指标
IoU(Intersection over Union)是最流行的目标检测评价标准,其定义如下:
IoU = ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ \text{IoU} = \frac{|B \cap B_{gt}|}{|B \cup B_{gt}|} IoU=BBgtBBgt
其中, B B B B g t B_{gt} Bgt 分别表示预测框和GT(Ground Truth)框。

B. GIoU指标
为了解决在边界框回归中,由于GT框和Anchor框之间没有重叠导致IoU损失出现梯度消失的问题,提出了GIoU(广义交并比)。其定义如下:
GIoU = IoU − ∣ C − B ∩ B g t ∣ ∣ C ∣ \text{GIoU} = \text{IoU} - \frac{|C - B \cap B_{gt}|}{|C|} GIoU=IoUCCBBgt
其中, C C C表示包含GT框和Anchor框的最小外接框。

C. DIoU指标
与GIoU相比,DIoU(距离交并比)引入了边界框之间的距离约束,通过在IoU的基础上添加中心点归一化距离损失项,使回归结果更加准确。其定义如下:
DIoU = IoU − ρ 2 ( b , b g t ) c 2 \text{DIoU} = \text{IoU} - \frac{\rho^2(b, b_{gt})}{c^2} DIoU=IoUc2ρ2(b,bgt)
其中, b b b b g t b_{gt} bgt分别表示Anchor框和GT框的中心点, ρ ( ⋅ ) \rho(·) ρ()表示欧几里得距离, c c c b b b b g t b_{gt} bgt之间最小外接框的对角线距离。
CIoU进一步通过在DIoU的基础上添加新的形状损失项,考虑了GT框和Anchor框之间的形状相似性,以减少Anchor框和GT框之间的长宽比差异。其定义如下:
CIoU = IoU − ρ 2 ( b , b g t ) c 2 − α v \text{CIoU} = \text{IoU} - \frac{\rho^2(b, b_{gt})}{c^2} - \alpha v CIoU=IoUc2ρ2(b,bgt)αv
其中,
α = v ( 1 − IoU ) + v \alpha = v \left( 1 - \text{IoU} \right) + v α=v(1IoU)+v
v = 4 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) 2 v = \frac{4}{\pi^2} \left( \arctan \frac{w_{gt}}{h_{gt}} - \arctan \frac{w}{h} \right)^2 v=π24(arctanhgtwgtarctanhw)2
其中, w g t w_{gt} wgt h g t h_{gt} hgt 分别表示GT框的宽度和高度, w w w h h h 分别表示Anchor框的宽度和高度。
D. EIoU度量
EIoU在CIoU的基础上重新定义了形状损失,并通过直接减少GT框和Anchor框之间的长宽差异来进一步提高检测精度。其定义如下:
EIoU = IoU − ρ 2 ( b , b g t ) c 2 − ρ 2 ( w , w g t ) ( w c ) 2 − ρ 2 ( h , h g t ) ( h c ) 2 \text{EIoU} = \text{IoU} - \frac{\rho^2(b, b_{gt})}{c^2} - \frac{\rho^2(w, w_{gt})}{(w_c)^2} - \frac{\rho^2(h, h_{gt})}{(h_c)^2} EIoU=IoUc2ρ2(b,bgt)(wc)2ρ2(w,wgt)(hc)2ρ2(h,hgt)
其中,( w_c ) 和 ( h_c ) 是覆盖GT框和Anchor框的最小外接框的宽度和高度。

E. SIoU度量
在前期研究的基础上,SIoU进一步考虑了边界框之间角度对边界框回归的影响,其目标是通过减小Anchor框和GT框之间的角度(即水平或垂直方向)来加速收敛过程。其定义如下:
SIoU = IoU − Δ + Ω 2 \text{SIoU} = \text{IoU} - \frac{\Delta + \Omega}{2} SIoU=IoU2Δ+Ω
其中,
Λ = sin ⁡ ( 2 sin ⁡ − 1 ( min ⁡ ( ∣ x g t c − x c ∣ , ∣ y g t c − y c ∣ ) ) ) \Lambda = \sin \left( 2 \sin^{-1} \left( \min \left( |x_{gt}^c - x_c|, |y_{gt}^c - y_c| \right) \right) \right) Λ=sin(2sin1(min(xgtcxc,ygtcyc)))
( ( x g t c − x c ) 2 + ( y g t c − y c ) 2 + ϵ ) \left( (x_{gt}^c - x_c)^2 + (y_{gt}^c - y_c)^2 + \epsilon \right) ((xgtcxc)2+(ygtcyc)2+ϵ)
Δ = ∑ t = w , h ( 1 − e − γ ρ t ) , γ = 2 − Λ \Delta = \sum_{t=w,h} \left( 1 - e^{-\gamma \rho_t} \right), \quad \gamma = 2 - \Lambda Δ=t=w,h(1eγρt),γ=2Λ
ρ x = ( x c − x g t c w c ) 2 , ρ y = ( y c − y g t c h c ) 2 \rho_x = \left( \frac{x_c - x_{gt}^c}{w_c} \right)^2, \quad \rho_y = \left( \frac{y_c - y_{gt}^c}{h_c} \right)^2 ρx=(wcxcxgtc)2,ρy=(hcycygtc)2
Ω = ∑ t = w , h ( 1 − e − ω t ) θ , θ = 4 \Omega = \sum_{t=w,h} \left( 1 - e^{-\omega_t} \right) \theta, \quad \theta = 4 Ω=t=w,h(1eωt)θ,θ=4
ω w = ∣ w − w g t ∣ max ⁡ ( w , w g t ) , ω h = ∣ h − h g t ∣ max ⁡ ( h , h g t ) \omega_w = \frac{|w - w_{gt}|}{\max(w, w_{gt})}, \quad \omega_h = \frac{|h - h_{gt}|}{\max(h, h_{gt})} ωw=max(w,wgt)wwgt,ωh=max(h,hgt)hhgt

III. 方法

A. 分析
在各种目标检测任务中,样本不平衡问题普遍存在,可以根据物体检测的难易程度将样本分为“困难样本”和“简单样本”。从目标尺度分析的角度来看,一般的检测目标可以视为简单样本,而极小的目标由于定位困难,可以视为困难样本。对于以简单样本为主的检测任务,在边框回归过程中专注于简单样本有助于提高检测性能。相反,对于困难样本比例较高的检测任务,需要专注于困难样本的边框回归。

B. Focaler-IoU
为了能够专注于不同的回归样本,并改进检测任务,我们使用线性区间映射方法来重构IoU损失,从而改善边界回归。其重构公式如下:

IoU focaler = { 0 , IoU < d IoU − d u − d , d ≪ IoU ≪ u 1 , IoU > u \text{IoU}_{\text{focaler}} = \begin{cases} 0, & \text{IoU} < d \\ \frac{\text{IoU} - d}{u - d}, & d \ll \text{IoU} \ll u \\ 1, & \text{IoU} > u \end{cases} IoUfocaler= 0,udIoUd,1,IoU<ddIoUuIoU>u

其中, IoU focaler \text{IoU}_{\text{focaler}} IoUfocaler 是重构后的 Focaler-IoU, d , u ∈ [ 0 , 1 ] d, u \in [0, 1] d,u[0,1]。通过调整 d d d u u u 的值,可以使 IoU focaler \text{IoU}_{\text{focaler}} IoUfocaler 专注于不同的回归样本。其损失定义为:

L Focaler-IoU = 1 − IoU focaler L_{\text{Focaler-IoU}} = 1 - \text{IoU}_{\text{focaler}} LFocaler-IoU=1IoUfocaler
将Focaler-IoU损失应用于现有的基于IoU的边框回归损失函数,得出以下损失函数:

L Focaler-GIoU = L GIoU + IoU − IoU focaler L_{\text{Focaler-GIoU}} = L_{\text{GIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-GIoU=LGIoU+IoUIoUfocaler

L Focaler-DIoU = L DIoU + IoU − IoU focaler L_{\text{Focaler-DIoU}} = L_{\text{DIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-DIoU=LDIoU+IoUIoUfocaler

L Focaler-CIoU = L CIoU + IoU − IoU focaler L_{\text{Focaler-CIoU}} = L_{\text{CIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-CIoU=LCIoU+IoUIoUfocaler

L Focaler-EIoU = L EIoU + IoU − IoU focaler L_{\text{Focaler-EIoU}} = L_{\text{EIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-EIoU=LEIoU+IoUIoUfocaler

L Focaler-SIoU = L SIoU + IoU − IoU focaler L_{\text{Focaler-SIoU}} = L_{\text{SIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-SIoU=LSIoU+IoUIoUfocaler

IV. 实验

A. PASCAL VOC 上的 YOLOv8
PASCAL VOC 数据集是目标检测领域最受欢迎的数据集之一,在本文中我们使用 VOC 2007 和 VOC 2012 的训练集和验证集,共计 16551 张图片,测试集选用 VOC 2007,共 4952 张图片。在本实验中,我们选择了最新的单阶段检测器 YOLOv8s 和 YOLOv7-tiny 进行 VOC 数据集上的对比实验,SIoU 被选为实验中的对比方法。实验结果如表 I 所示。

表 I:SIoU 和 Focaler-SIoU 在 YOLOv8 上的性能对比
在这里插入图片描述

B. YOLOv5 上的 AI-TOD 实验
AI-TOD 是一个遥感图像数据集,与一般数据集不同的是,它包含大量小型目标,且目标的平均尺寸仅为 12.8 像素。在此实验中,选择 YOLOv5s 作为检测器,比较方法为 SIoU。实验结果如表 II 所示:

表 II:SIoU 和 Focaler-SIoU 在 YOLOv5 上的性能
在这里插入图片描述

V. 结论

本文分析了难易样本分布对目标检测的影响。当难样本占主导时,需要重点关注难样本,以提高检测性能。而当简单样本的比例较大时,情况则相反。接下来,我们提出了Focaler-IoU方法,通过线性区间映射重构原始的IoU损失,以实现聚焦于难易样本的目标。最后,通过对比实验证明,所提出的方法能够有效地提升检测性能。

相关文章:

精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】

Focaler-IoU: 更聚焦的交并比损失 Focaler-IoU: More Focused Intersection over Union Loss Focaler-IoU: 更聚焦的交并比损失I. 引言II. 相关工作III. 方法IV. 实验V. 结论 原文地址&#xff1a;官方论文地址 代码地址&#xff1a;官方代码地址 摘要——边界框回归在目标检…...

Android-目前最稳定和高效的UI适配方案

谈到适配&#xff0c;首先需要介绍几个基本单位&#xff1a; 1、密度无关像素&#xff08;dp&#xff09;&#xff1a; 含义&#xff1a;density-independent pixel&#xff0c;叫dp或dip&#xff0c;与终端上的实际物理像素点无关 单位&#xff1a;dp&#xff0c;可以保证在…...

Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统基础系列(四)

文章目录 概要1 Realsense相机驱动安装Method1: 使用Intel服务器预编译包Method2: 使用ROS服务器预编译包Method3: 使用SDK源代码方法对比总结 2 Realsense-ROS通讯配置与使用2.1 Realsense-ROS包安装2.2 ROS节点启动 小结Reference 概要 本文首先阐述了Realsense相机驱动安装…...

docker安装Nginx UI

开源地址&#xff1a;nginx-ui/README-zh_CN.md at dev 0xJacky/nginx-ui GitHub docker run -dit \ --namenginx-ui \ --restartalways \ -e TZAsia/Shanghai \ -v /Users/xiaoping/docker/appdata/nginx:/etc/nginx \ -v /Users/xiaoping/docker/appdata/nginx-ui:/etc/ng…...

【AI】【RAG】使用WebUI部署RAG:数据优化与设置技巧详解

RAG(Retrieval-Augmented Generation)是一种通过知识库构建的高效问答系统。然而,在使用WebUI部署和优化RAG时,数据源管理和参数设置直接决定了系统的回答质量。本文将结合具体问题和优化方法,为您详细解读如何最大化RAG的性能和准确性。 数据源相关问题及解决方案 在实际…...

如何在vue中渲染markdown内容?

文章目录 引言什么是 markdown-it&#xff1f;安装 markdown-it基本用法样式失效&#xff1f;解决方法 高级配置语法高亮 效果展示 引言 在现代 Web 开发中&#xff0c;Markdown 作为一种轻量级的标记语言&#xff0c;广泛用于文档编写、内容管理以及富文本编辑器中。markdown…...

nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)

一、安装nvm 1. 下载nvm nvm-windows官网地址https://github.com/coreybutler/nvm-windows/releases ​ 如果打不开也可以到这里下载 2.双击 nvm-setup.exe 开始安装 ​ 3.选择nvm安装路径&#xff0c;路径名称不要有空格&#xff0c;然后点击next 4.node.js安装…...

机器学习-归一化

文章目录 一. 归一化二. 归一化的常见方法1. 最小-最大归一化 (Min-Max Normalization)2. Z-Score 归一化&#xff08;标准化&#xff09;3. MaxAbs 归一化 三. 归一化的选择四. 为什么要进行归一化1. 消除量纲差异2. 提高模型训练速度3. 增强模型的稳定性4. 保证正则化项的有效…...

一次完整的tcpdump -XX输出报文详解

报文&#xff1a; 03:32:51.745623 IP (tos 0x0, ttl 64, id 65006, offset 0, flags [DF], proto TCP (6), length 94) 10.229.43.200.6471 > 10.229.43.200.55674: Flags [P.], cksum 0x6daa (incorrect -> 0x2e06), seq 1:43, ack 42, win 3635, options [nop,nop…...

【STM32-学习笔记-9-】SPI通信

文章目录 SPI通信Ⅰ、SPI通信概述1、SPI技术规格2、SPI应用 3、硬件电路移位示意图 Ⅱ、SPI时序基本单元①、起始条件②、终止条件③、交换一个字节&#xff08;模式0&#xff09;④、交换一个字节&#xff08;模式1&#xff09;⑤、交换一个字节&#xff08;模式2&#xff09;…...

kalilinux - 目录扫描之dirsearch

情景导入 先简单介绍一下dirsearch有啥用。 假如你现在访问一个网站&#xff0c;例如https://www.example.com/ 它是一个电商平台或者其他功能性质的平台。 站在开发者的角度上思考&#xff0c;我们只指导https://www.example.com/ 但不知道它下面有什么文件&#xff0c;文…...

(12)springMVC文件的上传

SpringMVC文件上传 首先是快速搭建一个springMVC项目 新建项目mvn依赖导入添加webMoudle添加Tomcat运行环境.在配置tomcat时ApplicationContext置为"/"配置Artfact的lib配置WEB-INF配置文件&#xff08;记得添加乱码过滤&#xff09;配置springmvc-servlet文件&…...

[Mac + Icarus Verilog + gtkwave] Mac运行Verilog及查看波形图

目录 1. MAC安装环境 1. 1 Icarus Verilog 编译 1. 2 gtkwave 查看波形 2. 安装遇到的问题 2. 1 macOS cannot verify that this app is free from malware 2. 2 gtkwave-bin is not compatible with macOS 14 or later 3. 运行示例 3. 1 源代码 3. 2 编译Verilog 3. 3 生成.v…...

yt-dlp脚本下载音频可选设置代理

import yt_dlp# 配置:是否使用代理 use_proxy = True # 设置为 False 可关闭代理# 代理地址 proxy_url = socks5://127.0.0.1:1089URLS = [https://www.bilibili.com/video/BV1WTktYcEcQ/?spm_id_from=333.1007.tianma.6-2-20.click&vd_source=dcb58f8fe1faf749f438620b…...

【向量数据库 Milvus】linux 源码安装 Milvus 2.5.3

在 Linux 系统&#xff08;如 ai 5.10.134-16.2.an8.x86_64&#xff09;上通过源码安装 Milvus 2.5.3 的步骤如下。该指南适用于 x86_64 架构的系统。 1. 环境准备 确保系统满足以下要求&#xff1a; 操作系统: Linux&#xff08;x86_64 架构&#xff09;Go: 1.21 或更高版本…...

初学stm32 --- CAN

目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过…...

linux手动安装mysql5.7

一、下载mysql5.7 1、可以去官方网站下载mysql-5.7.24-linux-glibc2.12-x86_64.tar压缩包&#xff1a; https://downloads.mysql.com/archives/community/ 2、在线下载&#xff0c;使用wget命令&#xff0c;直接从官网下载到linux服务器上 wget https://downloads.mysql.co…...

【Java】LinkedHashMap (LRU)淘汰缓存的使用

文章目录 **1. initialCapacity&#xff08;初始容量&#xff09;****2. loadFactor&#xff08;加载因子&#xff09;****3. accessOrder&#xff08;访问顺序&#xff09;****完整参数解释示例****示例验证** LinkedHashMap 在 Java 中可维护元素插入或访问顺序&#xff0c;并…...

JAVA实现五子棋小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 黑棋胜利界面1.3 白棋胜利界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/145161039 JA…...

基于Java的百度AOI数据解析与转换的实现方法

目录 前言 一、AOI数据结构简介 1、官网的实例接口 2、响应参数介绍 二、Java对AOI数据的解析 1、数据解析流程图 2、数据解析实现 3、AOI数据解析成果 三、总结 前言 在当今信息化社会&#xff0c;地理信息数据在城市规划、交通管理、商业选址等领域扮演着越来越重要的…...

细说STM32F407单片机窗口看门狗WWDG的原理及使用方法

目录 一、窗口看门狗的工作原理 1、递减计数器 2、窗口值和比较器 3、看门狗的启动 4、提前唤醒中断 二、窗口看门狗的HAL驱动程序 1、窗口看门狗初始化 2.窗口看门狗刷新 3.EWI中断及其处理 三、不开启EWI的WWDG示例 1、示例功能 2、项目设置 &#xff08;1&…...

【.net core】【sqlsugar】时间查询示例

1、时间包含查询示例 //model.TimeInterval为时间区间参数&#xff0c;参数格式为2024-01-01~2025-01-01 //query为当前查询的语句内容 //为当前查询语句增加创建时间模糊搜索查询条件 query query.Where(a > ((DateTime)a.F_CreatorTime).ToString("yyyy-MM-dd HH:m…...

基于Oracle与PyQt6的电子病历多模态大模型图形化查询系统编程构建

一、引言 1.1 研究背景阐述 在当今数字化时代,医疗行业正经历着深刻的变革,数字化转型的需求日益迫切。电子病历(EMR)作为医疗信息化的核心,其管理的高效性和数据利用的深度对于提升医疗服务质量、优化临床决策以及推动医学研究具有至关重要的意义。传统的电子病历管理系…...

STM32 HAL库函数入门指南:从原理到实践

1 STM32 HAL库概述 STM32 HAL(Hardware Abstraction Layer)库是ST公司专门为STM32系列微控制器开发的一套硬件抽象层函数库。它的核心设计理念是在应用层与硬件层之间建立一个抽象层&#xff0c;这个抽象层屏蔽了底层硬件的具体实现细节&#xff0c;为开发者提供了一套统一的、…...

Harmony面试模版

1. 自我介绍 看表达能力、沟通能力 面试记录&#xff1a; 2. 进一步挖掘 2.1. 现状 目前是在职还是离职&#xff0c;如果离职&#xff0c;从上一家公司离职的原因 2.2. 项目经验 如果自我介绍工作项目经验讲的不够清楚&#xff0c;可以根据简历上的信息再进一步了解 面试记…...

数据结构知识点

【1】栈&#xff08;stack&#xff09; C 标准库提供了 std::stack 模板类&#xff0c;用于实现栈的功能。std::stack 是基于其他容器&#xff08;如 std::vector、std::deque 或 std::list&#xff09;实现的适配器类。 std::stack 可以使用不同的底层容器来实现&#xff0c…...

RPC 简介

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种通过网络请求执行远程服务器上的代码的技术&#xff0c;使得开发者可以调用远程系统中的函数&#xff0c;就像调用本地函数一样。它隐藏了底层网络通信的细节&#xff0c;简化了分布式系统的开…...

qBittorent访问webui时提示unauthorized解决方法

现象描述 QNAP使用Container Station运行容器&#xff0c;使用Docker封装qBittorrent时&#xff0c;访问IP:PORT的方式后无法访问到webui&#xff0c;而是提示unauthorized&#xff0c;如图&#xff1a; 原因分析 此时通常是由于设备IP与qBittorrent的ip地址不在同一个网段导致…...

Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)

本文介绍在Windows电脑中&#xff0c;下载、部署NVM&#xff08;node.js version management&#xff09;环境&#xff0c;并基于其安装不同版本的Node.js的方法。 在之前的文章Windows系统下载、部署Node.js与npm环境的方法&#xff08;https://blog.csdn.net/zhebushibiaoshi…...

【大数据】机器学习 -----关于data.csv数据集分析案例

打开表 import pandas as pd df2 pd.read_csv("data.csv",encoding"gbk") df2.head()查看数据属性&#xff08;列标题&#xff0c;表形状&#xff0c;类型&#xff0c;行标题&#xff0c;值&#xff09; print("列标题:",df2.columns)Data…...

使用Newtonsoft.Json插件,打包至Windows平台显示不支持

在unity中使用Newtonsoft.Json插件&#xff0c;打包至Windows遇到的问题 string json JsonConvert.SerializeObject(msg); 打包windows平台&#xff0c;显示该平台不支持 出现问题的原因 JsonConvert.SerializeObject 使用了反射来动态遍历对象的属性和字段。这可能在某些平台…...

树莓派5--系统问题汇总

前言&#xff1a; 该文章是我在使用树莓派5时所遇到的问题以及解决方案&#xff0c;希望对遇到相同问题的能够有所帮助。我的树莓派系统版本为&#xff1a;Pi-OS-ROS_2024_09_29 注意&#xff1a;如果没有什么需求千万不要更新树莓派中任何软件或者系统&#xff0c;除非你真的…...

Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250116

逐笔成交逐笔委托下载 链接: https://pan.baidu.com/s/11nYhOf5TL9haZdXcYTxmHQ?pwdfwg8 提取码: fwg8 -------------------- Level2逐笔成交逐笔委托数据分享下载 利用Level2的逐笔交易和委托数据&#xff0c;这种以毫秒为单位的详细信息能揭露众多关键信息&#xff0c;如庄…...

小白:react antd 搭建框架关于 RangePicker DatePicker 时间组件使用记录 2

文章目录 一、 关于 RangePicker 组件返回的moment 方法示例 一、 关于 RangePicker 组件返回的moment 方法示例 moment方法中日后开发有用的方法如下&#xff1a; form.getFieldsValue().date[0].weeksInWeekYear(),form.getFieldsValue().date[0].zoneName(), form.getFiel…...

windows远程桌面连接限定ip

1&#xff0c;Windows防火墙->高级设置->远程桌面 - 用户模式(TCP-In)->作用域->远程IP地址 2&#xff0c;启用规则...

强化学习-蒙特卡洛方法

强化学习-数学理论 强化学习-基本概念强化学习-贝尔曼公式强化学习-贝尔曼最优公式强化学习-值迭代与策略迭代强化学习-蒙特卡洛方法 文章目录 强化学习-数学理论一、蒙特卡洛方法理论(Monte Carlo, MC)二、MC Basic2.1 算法拆解2.2 MC Basic算法 三、MC Exploring Starts3.1 …...

Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)

我是一个计算机专业研0的学生卡蒙Camel&#x1f42b;&#x1f42b;&#x1f42b;&#xff08;刚保研&#xff09; 记录每天学习过程&#xff08;主要学习Java、python、人工智能&#xff09;&#xff0c;总结知识点&#xff08;内容来自&#xff1a;自我总结网上借鉴&#xff0…...

浅谈云计算08 | 基本云架构

浅谈基本云架构 一、负载分布架构二、资源池架构三、动态可扩展架构四、弹性资源容量架构五、服务负载均衡架构六、云爆发架构七、弹性磁盘供给架构八、冗余存储架构 在当今数字化时代&#xff0c;云计算已成为企业发展的核心驱动力&#xff0c;而其背后的一系列关键架构则是支…...

element select 绑定一个对象{}

背景&#xff1a; select组件的使用&#xff0c;适用广泛的基础单选 v-model 的值为当前被选中的 el-option 的 value 属性值。但是我们这里想绑定一个对象&#xff0c;一个el-option对应的对象。 <el-select v-model"state.form.modelA" …...

MySQL SQL优化技巧与原理

前言 随着业务数据量的不断增加&#xff0c;MySQL查询语句的执行效率对程序的运行效率影响逐渐增大。因此&#xff0c;进行SQL优化变得至关重要。本文将结合SQL的执行语句顺序和各种SQL场景&#xff0c;介绍一些常见的MySQL SQL优化技巧及其背后的原理。 一、MySQL SQL执行语…...

SSL:WRONG_VERSION_NUMBER 或者 net::ERR_SSL_PROTOCAL_ERROR

记录一次SSL部署成功后&#xff0c;接口请求依然报SSL错误的问题。 首先排除SSL证据链不足&#xff0c;系统时间不正确&#xff0c;TLS配置不正确等问题。 浏览器直接访问可以打开网站&#xff0c;但是postman等接口访问就一直报SSL异常&#xff1a; 类似参考资料中的这种异…...

51单片机——DS18B20温度传感器

由于DS18B20数字温度传感器是单总线接口&#xff0c;所以需要使用51单片机的一个IO口模拟单总线时序与DS18B20通信&#xff0c;将检测的环境温度读取出来 1、DS18B20模块电路 传感器接口的单总线管脚接至单片机P3.7IO口上 2、DS18B20介绍 2.1 DS18B20外观实物图 管脚1为GN…...

单细胞组学大模型(8)--- scGenePT,scGPT和GenePT的结合,实验数据和文本数据的交融模型

–https://doi.org/10.1101/2024.10.23.619972 研究团队和单位 Theofanis Karaletsos–Head Of AI - Science at Chan Zuckerberg Initiative &#xff08;Chan Zuckerberg Initiative是扎克伯格和他妻子Chan成立的科研&教育机构&#xff09; 研究简介 研究背景&…...

详解如何自定义 Android Dex VMP 保护壳

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 前言 Android Dex VMP&#xff08;Virtual Machine Protection&#xff0c;虚拟机保护&#xff09;壳是一种常见的应用保护技术&#xff0c;主要用于保护 And…...

PHP中的魔术函数

PHP 魔术函数是在某些情况下会自动调用的特殊函数&#xff0c;它们以双下划线 __ 开头&#xff0c;以下是对常见 PHP 魔术函数的详细介绍&#xff1a; ### 构造函数和析构函数 - **__construct()**&#xff1a; - 这是一个构造函数&#xff0c;在创建类的新对象时会自动调…...

excel 判断某个单元格的日期,如果超过3天,则在另一个单元格显示超过三天的公式

excel 判断某个单元格的日期&#xff0c;如果超过3天&#xff0c;则在另一个单元格显示超过三天的公式&#xff0c;公式如下&#xff1a; IF(DATEDIF(C627,TODAY(),"d")<4,"3天以内","超过三天") IF(D627"超过3天","文件赶紧…...

TCP 序列和确认号说明 | seq 和 ack 号计算方法

注&#xff1a;本文为 “TCP 序列” 相关文章合辑。 英文引文机翻未校。 TCP Sequence and Acknowledgement Numbers Explained TCP 序列和确认编号说明 TCP Sequence (seq) and Acknowledgement (ack) numbers help enable ordered reliable data transfer for TCP streams…...

【Linux】Mysql部署步骤

一、JDK安装配置 在home目录下执行命令&#xff1a;mkdir Jdk 1.将JDK 上传至该文件夹&#xff0c;有些终端工具可以直接上传文件&#xff0c;比如&#xff1a;MobaXterm 可以看到安装包已经上传上来了 2.直接安装 命令&#xff1a;rpm -ivh jdk-8u311-linux-x64.rpm 3.安装成…...

【算法】枚举

枚举 普通枚举1.铺地毯2.回文日期3.扫雷 二进制枚举1.子集2.费解的开关3.Even Parity 顾名思义&#xff0c;就是把所有情况全都罗列出来&#xff0c;然后找出符合题目要求的那一个。因此&#xff0c;枚举是一种纯暴力的算法。一般情况下&#xff0c;枚举策略都是会超时的。此时…...

【C++】构造函数与析构函数

写在前面 构造函数与析构函数都是属于类的默认成员函数&#xff01; 默认成员函数是程序猿不显示声明定义&#xff0c;编译器会中生成。 构造函数和析构函数的知识需要建立在有初步类与对象的基础之上的&#xff0c;关于类与对象不才在前面笔记中有详细的介绍&#xff1a;点我…...