Deep Learning-Based Object Pose Estimation:A Comprehensive Survey

news2024/11/23 12:23:26

论文:https://arxiv.org/pdf/2405.07801v3

项目:https://github.com/CNJianLiu/Awesome-Object-Pose-Estimation

年份:2024

方向:姿态估计

1. 目标姿态估计定义

估计图像中目标相对于相机的姿态, 目标姿态估计是增强现实、机器人操作、手-对象交互等领域的关键技术。根据应用程序的需要,对象姿态被估计到不同的自由度(自由度DoF)。

(1)3DoF:只包括3D旋转的3自由度DoF,即绕着x,y,z旋转;

(2)6DoF:3D旋转,另外再加3D平移,即沿着x,y,z轴方向平移;

(3)9DoF:旋转、平移,其中包括估计对象的3D大小,即物体的三维大小(宽度、高度和深度)。这种估计方式用于需要知道物体完整几何信息的应用。

2. 算法分类

2.1 按照训练数据的特点分类

训练的数据集标注形式分为:实例级、类别级和不可见对象方法。

如下所示,实例级别训练的是平放的红色电转,只可以推理出同是红色电转的姿态(特定的实例);类别级推理出同一个类别姿态,训练的是红色瓶子,但也可以推理出白色瓶子姿态;未见级可以推理出从未见过的类别目标姿态,训练的是红色电转,却可以推理黄色鸭子姿态。

再往下细分,如下。

3. 多种输入数据模式

包括RGB图像,深度图,RGBD图像。

4. 数据集

4.1 实例级数据

数据集名称
描述资源备注
Linemod Dataset (LM)15个RGBD序列,包含带标注的RGBD图像,地面真实6自由度对象姿态,对象CAD模型,二维边界框,和二进制掩码
Linemod Occlusion Dataset (LM-O)
旨在评估在遮挡场景下的性能。该数据集由1214张来自8个严重遮挡对象的基本序列的RGBD图像组成。
IC-MI / IC-BIN Dataset
IC-MI由6个对象组成:2个无纹理模型和4个有纹理的家居用品模型。IC-BIN数据集是专门针对机器人垃圾桶挑选场景中的杂乱和遮挡带来的挑战。
RU-APC Dataset
旨在解决仓库挑选目标任务中的挑战,并为评估和改进机器人的感知能力提供丰富的数据。该数据集包括10,368张标注深度和RGB图像,覆盖24种类型的物体,以不同的姿势放置在仓库货架上的不同盒子内,以模拟不同的实验条件。
YCB-Video Dataset (YCB-V)
包括分布在92个RGBD视频中的21个对象,每个视频包含来自YCB对象数据集的3到9个对象(总计50个对象)。它包括133,827帧,分辨率为640×480,使它非常适合物体姿态估计和跟踪任务。
T-LESS Dataset
一个RGBD数据集设计的无纹理对象在工业设置中常见的数据集。它包括30个电子物体,没有明显的纹理或可区分的颜色属性。此外,它还包括不同分辨率的图像。在训练集中,图像主要以黑色背景为特征,而测试集显示了不同的背景,不同的光照条件和遮挡。T-LESS是具有挑战性,因为在物体上缺乏纹理和复杂的环境设置。
ITODD Dataset
包括28个真实世界的工业物体,分布在超过800个场景,大约3500张图像。该数据集利用两个工业3D传感器和三个高分辨率灰度摄像机,实现对场景的多角度观察,为工业对象分析和评估提供全面和详细的数据。
TYO-L / TUD-L Dataset
重点关注不同的照明条件。具体来说,TYO-L提供了在8种光照条件下对3个物体的观测。设计这些场景是为了评估姿态估计算法对光照变化的鲁棒性。与TYO-L不同,TUD-L的数据收集方法涉及到固定相机和手动移动物体,提供了一个更真实的物体的物理运动的表示。
HB Dataset
覆盖了带有遮挡和照明条件变化的各种场景。它包括33个物品,包括17个玩具,8个家庭物品,和8个与行业相关的物品,分布在13个不同的场景中。
HOPE Dataset
是专门为家居物品设计的,包含28个玩具杂货店的物品。希望图像数据集包括来自10个家庭/办公室环境中的50个场景的对象。每个场景包括多达5种照明变化,如背光和斜定向照明,与阴影投射效果。此外,希望-视频数据集包括10个视频序列,总计2038帧,每个场景显示5到20个物体。
YCBInEOAT Dataset
是为机器人操作中基于RGBD的物体姿态跟踪而设计的。它包含了一个双臂机器人操纵YCB对象的以自我为中心的RGBD视频。有三种类型的操作:单选择放置,臂内操作和臂间放置。这个数据集包含了跨越7449帧的地面真实姿态的注释,包括在9个视频中描述的5个不同的对象。
ClearPose Dataset
是为透明物体设计的,它在日常生活中广泛流行,由于其模糊的纹理特征和不可靠的深度信息,给视觉感知和感知系统带来了重大挑战。它包含超过35万张真实世界的RGBD图像和跨63个家庭对象的500万个实例注释。
MP6D Dataset
是一个RGBD数据集的目标姿态估计设计的金属部件,具有20个无纹理的金属组件。它包括20100张真实图像和不同场景的物体姿态标签以及50K合成图像,包括杂乱和遮挡的场景。

4.2 类别级

在这一部分中,我们将类别级的数据集划分为刚性的和关节对象数据集,以进行详细说明。

4.2.1 刚性对象数据集

数据集名称
描述资源备注
CAMERA25 Dataset
包含了横跨6个对象类别的1085个实例:碗,瓶子,罐子,相机,杯子,和笔记本电脑。值得注意的是,CAMERA25中的对象CAD模型来自于合成的形状网数据集。该数据集中的每个图像都包含多个实例,并伴有分割掩码和9个自由度姿态标签。
REAL275 Dataset
是一个包含18个视频和大约8K个RGBD图像的真实数据集。数据集被分为三个子集:一个训练集(7个视频)、一个验证集(5个视频)和一个测试集(6个视频)。它包括跨6个类别的42个对象实例,与CAMERA25数据集中的实例一致。REAL275是一个著名的现实世界数据集,广泛用于类别级物体姿态估计。
kPAM Dataset
是专门为机器人应用程序量身定制的,强调了关键点的使用。值得注意的是,它采用了一种涉及三维重建的方法,然后对这些重建进行手动关键点标注。kPAM总共有117个训练序列和245个测试序列,它为训练和评估与机器人感知和操作相关的算法提供了大量的数据收集。
TOD Dataset
由15个透明对象组成,分为6个类,每个类都有相关的3D关键点标注。它包含了大量的48K立体声和RGBD图像,捕捉透明和不透明的深度变化。TOD数据集的主要焦点是透明的3D对象应用程序,为在涉及透明度的具有挑战性的场景中的对象检测和姿态估计等任务提供必要的资源。
Objectron Dataset
包含15K标注视频剪辑超过400万标签图像属于瓶子,书籍,自行车,相机,椅子,麦片盒,杯子,笔记本电脑,和鞋子。该数据集来自横跨5大洲的10个国家,确保了不同的地理代表性。由于其内容广泛,对于评价基于rgb的类别级对象姿态估计和跟踪方法具有很高的优势。
Wild6D Dataset
是一个大量的真实世界的数据集,用于评估自我监督的类别级对象姿态估计方法。它专门为486个不同背景的测试视频提供标注,展示了横跨5个类别的162个对象。
PhoCaL Dataset
结合了RGBD和RGBP(极化)模式。它由60个精心制作的3D模型组成,代表家庭对象,包括对称、透明和反射项目。PhoCaL关注于24个序列中的8个特定对象类别,故意引入诸如遮挡和杂波等挑战
HouseCat6D Dataset
是一个为多模态类别级对象姿态估计和抓取任务而设计的综合数据集。该数据集包括广泛的家庭对象类别,具有194个高质量的3D模型。它包括不同光度复杂度的对象,如透明和反射项目,并跨越41个具有不同视点的场景。该数据集是专门针对目标姿态估计中的挑战而设计的,包括遮挡和标记的缺失,使其适合于在现实条件下评估算法。

4.2.2 关节对象数据集

数据集名称
描述资源备注
BMVC Dataset包括4个关节的物体:笔记本电脑,橱柜,橱柜,和玩具火车。每个物体都被建模为一个由组件和相互连接的头部组成的运动链。关节被限制为一个旋转自由度和一个平移自由度。该数据集提供了CAD模型和附带的文本文件,详细介绍了每个对象的底层运动链结构的拓扑结构。
RBO Dataset
包含14个在人类环境中常见的关节物体,有358个交互序列,在不同的实验条件下,总共有67分钟的手动操作,包括交互类型、照明、视点和背景设置的变化。
HOI4D Dataset
是推进类别层次的人-物交互作用研究的关键。它包括240万RGBD的以自我为中心的视频帧,描述了超过9个参与者和800个对象实例之间的交互。这些实例被分为16个类别,包括7个刚性物体和9个关节物体。
ReArtMix / ReArtVal Datasets
旨在解决具有未知运动学结构的部分水平多关节物体姿态估计的挑战。ReArtMix数据集包含了超过10万张针对不同背景场景渲染的RGBD图像。ReArtVal数据集由6个真实世界的桌面场景组成,其中包括超过6,000个RGBD帧。
ContactArt Dataset
是使用远程操作系统在模拟环境中操作关节对象而生成。该系统利用智能手机和笔记本电脑来精确地标注姿势和联系信息。这个数据集包含5种普遍的关节对象类别:笔记本电脑、抽屉、保险箱、微波炉和垃圾桶,总共有80个实例。所有的对象模型都来源于PartNet数据集,从而促进了可伸缩性。

4.3 未见级

数据集名称
描述资源备注
MOPED Dataset是一个具有11个家庭目标的model-free姿态估计数据集。它包括包含对象的所有视图的参考图像和测试图像。测试序列中的每个对象都被描述在五个不同的环境中,每个对象大约有300个测试图像。
GenMOP Dataset
包括10个对象,范围从平面对象到结构对象。对于每个物体,都有从不同的背景和照明情况中收集到的两个视频序列。每个视频序列由大约200张图像组成。
OnePose Dataset
包括超过450个真实世界的150个物体的视频序列。这些序列在各种背景条件下被收集,并捕获物体的所有角度。每个环境的平均持续时间为30秒。数据集被随机划分为训练集和验证集。
OnePose-LowTexture Dataset
作为OnePose数据集的测试集引入,主要以纹理对象为特征。该数据集包括40个低纹理的家庭对象。对于每个对象,都有两个视频序列:一个作为参考视频,另一个用于测试。每个视频的拍摄分辨率为1920×1440,每秒30帧(FPS),持续时间约为30秒。

5. 实例级方法

处理的是实例级的标注的数据,可以分为4种方法:基于对应关系的方法、基于模板、基于投票、基于回归方法。

5.1 基于对应关系

建立输入数据和所提供的对象CAD模型之间的对应关系。

一般是先使用dnn提取关键点,再将这些点和CAD模型上的点对应,再利用透视点算法(PnP)或者最小二乘法确定对象姿态。

稀疏关键点:

稠密关键点:

5.2 基于模板 

从一组带有标注对象姿态的模板中识别出最相似的模板。通过利用图像中的全局信息,基于模板的方法可以有效地解决无纹理对象所带来的挑战。

通常,基于模板的方法利用了图像中的全局信息,使它们能够有效地处理无纹理的对象。然而,实现高姿态估计精度可能导致模板增加内存使用和计算复杂度的快速上升。此外,当面对被遮挡的物体时,它们也可能表现出较差的表现。

(1)当输入是一个RGB图像时,模板包括从对象CAD模型中提取的二维投影,并包含姿态的标注。这个过程将目标位姿估计转换为图像检索。

(2)当输入数据是点云时,将直接回归模板对象CAD模型(规范姿态)和观测点云之间的相对姿态的方法分类为基于模板的方法。这是因为这些方法可以被解释为寻找将观测到的点云与模板对齐的最佳相对姿态。

RGB图像:

点云数据:

5.3 基于投票 

基于投票的方法通过像素级或点级投票方案来确定对象的姿态,可分为间接投票和直接投票两大类。

总的来说,基于间接投票的方法为实例级的对象姿态估计提供了一个很好的解决方案。然而,姿态估计的准确性在很大程度上依赖于关键点的质量,这可能导致较低的鲁棒性。

总的来说,基于投票的方法在姿态估计任务中表现出了优越的性能。然而,投票过程是耗时的,并增加了计算复杂度。

输入数据是RGB图像或者深度图,间接投票:

输入数据是RGB图像和者深度图,直接投票:

5.4 基于回归

基于回归的方法旨在直接从学习到的特征中获得物体的姿态。它们可以分为两种主要类型:几何导向回归和直接回归。

(1)几何学引导的回归方法利用来自RGBD图像的几何信息(如物体3D结构特征或2D-3D几何约束)来帮助物体姿态估计。几何引导的回归方法通常需要额外的处理步骤来提取和处理几何信息,这增加了计算成本和复杂性

(2)接回归方法利用RGBD图像信息,直接回归对象姿态。直接回归方法的目的是直接从RGBD图像中恢复对象姿态,而无需额外的变换步骤,从而降低复杂性

几何导向回归:

直接回归

直接回归方法是最简单、高效,且最直接的目标姿态估计方法。

总体而言,直接回归方法简化了对象姿态估计过程,进一步提高了实例级方法的性能。然而,实例级的方法只能估计训练数据中的特定对象实例,将它们泛化到不可见的对象。此外,大多数实例级的方法都需要精确的对象CAD模型,这是一个挑战,特别是对于具有复杂形状和纹理的对象。

6. 类别级

对类别级方法的研究获得的关注度更高,因为它们可以推广到既定类别内的未见对象。作者将类别级方法划分为基于形状先验的方法,形状先验不限的方法。

6.1 形状先验

基于形状先验的方法首先利用离线模式下的类内可见物体的CAD模型来学习神经网络,推导出形状先验,然后将它们作为三维几何先验信息来指导类内不可见的物体姿态估计。在这一部分中,我们将基于形状的方法再细分为两类。

6.1.1 NOCS形状对齐

第一类是归一化对象坐标空间(NOCS)形状对齐方法。他们首先预测NOCS的形状/地图,然后使用离线姿态求解方法将目标点云与预测的NOCS形状/地图对齐,以获得目标姿态。

一般来说,虽然这些NOCS形状对齐方法可以恢复对象的姿态,但对齐过程是不可微的,不能集成到学习过程中。因此,预测NOCS形状/图的误差对位姿估计的精度有显著影响。 

6.1.2 位姿回归

另一类是位姿回归方法。它们直接从特征层次回归物体姿态。

不同于NOCS形状对齐过程的不可微性质,基于直接回归的位姿方法来实现端到端训练,整个过程是可微的。 

6.2 无形状先验方法

无形状先验的方法不依赖于使用形状先验,因此具有更好的泛化能力。这些方法可分为三大类:深度导向几何感知、RGBD引导的语义和几何融合、和其他方法。

6.2.1 深度导向几何感知

一般来说,这些方法可以充分提取与姿态相关的几何特征。然而,语义信息的缺失限制了它们更好的性能。适当的语义信息和几何信息的融合可以显著提高姿态估计的鲁棒性。

6.2.2 RGBD引导的语义和几何融合

总的来说,这些RGBD引导的语义和几何融合方法取得了优越的性能。但是,如果输入的深度图像存在误差,则姿态估计的精度就会显著降低。因此,在处理错误或缺失的深度图像时,确保姿态估计的鲁棒性是至关重要的。

总体而言,这些无形状先验方法规避了对形状先验的依赖,进一步提高了类别级对象姿态估计方法的泛化能力。然而,这些方法仅限于在类内看不见的对象中进行泛化。对于不同类别的对象,需要收集训练数据,而模型需要进行再训练,这仍然是一个很大的限制。

7. 未见级

此类方法可以细分为:基于CAD模型、基于手动参考视图的方法。

7.1 基于CAD模型

基于CAD模型的方法在估计一个未见物体的姿态的过程中,会利用目标CAD模型作为我们的先验知识。这些方法可以进一步分为基于特征匹配的方法和基于模板匹配的方法。

7.1.1 基于特征匹配

基于特征匹配的方法重点设计CAD模型与查询图像之间特征匹配的网络,建立2D-3D或3D-3D对应关系,采用PnP算法或最小二乘法求解姿态。

综上所述,基于特征匹配的方法旨在提取一般的与对象不可知的特征,并通过对这些特征进行匹配来实现较强的对应关系。然而,这些方法不仅需要鲁棒的特征匹配模型,而且还需要定制设计来增强对象特征的表示,这是一个巨大的挑战。 

7.1.2 基于模板匹配

利用CAD模型中的渲染模板进行检索。初始姿态是基于最相似的模板,需要进一步细化以获得更精确的姿态。

综上所述,基于模板匹配的方法充分利用了大量模板的优势,具有较高精度和强泛化性。尽管如此,它们在时间消耗、对遮挡的敏感性以及复杂的背景和照明变化所带来的挑战方面都有局限性。

无论是上述基于特征匹配的方法还是基于模板匹配的方法,它们都需要一个目标对象的CAD模型来提供先验信息。在实践中,精确的CAD模型往往需要专门的硬件来构建,这在一定程度上限制了这些方法的实际应用。

7.2 基于手动参考视图

需要为目标对象提供一些手动标记的参考视图。与基于CAD模型的方法类似,这些方法也被分为两种类型:基于特征匹配和基于模板匹配的方法。

7.2.1 基于特征匹配

主要是建立RGBD查询图像与RGBD参考图像之间的3D-3D对应,或建立查询图像与参考视图重建的稀疏点云之间的2D-3D对应。然后,根据不同的对应关系来求解对象的姿态。

一般来说,由于缺乏来自CAD模型的先验几何信息,基于人工参考视图的特征匹配方法往往需要特殊的设计来提取看不见的物体的几何特征。参考视图的数量也在一定程度上限制了这种方法的实际应用。 

7.2.2 基于模板匹配

基于模板匹配的方法主要采用检索和细化的策略。有两种类型:

(1)一种使用参考视图重建3D对象表示,基于此3D表示呈现多个模板,并使用相似性网络将查询图像与初始姿态的每个模板进行比较。然后使用一个精炼器来细化这个初始姿态,以提高精度;

(2)另一种直接使用参考视图作为模板,需要大量的视图进行检索,并更依赖于细化器来提高准确性。

总之,类似于使用CAD模型的基于模板匹配的方法,基于手动参考视图的方法也依赖于大量的模板。此外,由于有限的参考视图,这些方法需要生成新的模板或使用额外的策略来优化通过模板匹配获得的初始姿态。 

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

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

相关文章

【网络安全】服务基础第二阶段——第五节:Linux系统管理基础----Linux常见应用服务(Apache、数据库)

在Linux系统中,有许多常见的应用服务,它们用于执行各种任务,如网页托管、数据库管理、文件传输等。 Apache HTTP Server:用于托管网站和Web应用程序的Web服务器。Nginx:高性能的Web服务器和反向代理服务器&#xff0c…

11Python的Pandas:可视化

Pandas本身并没有直接的可视化功能,但它与其他Python库(如Matplotlib和Seaborn)无缝集成,允许你快速创建各种图表和可视化。这里是一些使用Pandas数据进行可视化的常见方法: 1. 使用Matplotlib Pandas中的plot()方法…

YoloV10改进策略:BackBone改进|注意力改进|HCANet全局与局部的注意力模块CAFM|二次创新|即插即用

摘要 在CAFM模型的基础上进行二次创新,我成功地开发了一个性能显著提升的改进版模型。这一创新不仅优化了特征提取和融合的方式,还极大地提高了模型的泛化能力和准确性。为了验证其有效性,我们将这一改进应用于流行的目标检测算法YoloV10,并取得了显著的精度提升。这一改进…

【笔记】二维DP

文章目录 例题lanqiao1536数字三角形题目描述输入描述输出描述解题思路选取状态1代码1选取状态2代码2 lanqiao 389摆花题目描述输入描述解题思路输出描述代码 lanqiao3711选数异或题目描述输入描述输出描述解题思路 lanqiao3348可构造的序列总数 二维DP和普通DP本质相同&#x…

ios 用JXCategoryView 库实现tab滑动切换viewController

先Pod导入安装 pod JXCategoryView.m文件 // // OrderViewController.m // scxhgh2 // // Created by xmkjsoft on 2024/9/9. //#import "OrderViewController.h" #import "NavigationBarUtils.h" #import <JXCategoryView/JXCategoryView.h>#im…

《深度学习》深度学习 框架、动态展示即推导

目录 一、深度学习 1、什么是深度学习 2、特点 3、神经网络构造 1&#xff09;单层神经元 • 推导 • 示例 2&#xff09;多层神经网络 3&#xff09;小结 4、感知器 神经网络的本质 5、多层感知器 6、动态图像示例 1&#xff09;一个神经元 相当于下列状态&…

Redis入门 - C#|.NET Core封装Nuget包

经过前面章节的学习&#xff0c;可以说大家已经算Redis开发入门了。已经可以去到项目上磨砺了。 但是今天我还想和大家分享一章&#xff1a;封装自己的Redis C#库&#xff0c;然后打包成Nuget包。 首先要说明的是&#xff1a;不是要自己开发一个Redis客户端库&#xff0c;而是…

【Linux】Linux常见指令以及权限理解(下)

【Linux】Linux常见指令以及权限理解&#xff08;下&#xff09; &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;Linux&#x1f34a; &#x1f33c;文章目录&#x1f33c; 3. Linux下基本指令 3.9 mv 指令&#xff08;重点&#xff0…

借助ChatGPT撰写学术论文的10条规则

在撰写学术论文时,利用ChatGPT等人工智能工具可以显著提高写作效率和质量。以下是结合ChatGPT功能,为构建学术论文提出的10条规则,包括详细的专业说明和格式化的GPT提示词。 规则1:明确论文目标与核心问题 专业说明:确定研究的核心问题和目标是撰写论文的第一步。这有助…

如何通过可视化大屏,助力智慧城市的“城市微脑”建设?

在智慧城市的宏伟蓝图中&#xff0c;常常面临着一个关键挑战&#xff1a;如何确保这些理念和技术能够真正地惠及城市的每一个角落&#xff0c;每一个产业&#xff0c;以及每一位市民。问题的核心在于城市的具体应用场景&#xff0c;无论是横向的社区、园区、镇街、学校、酒店、…

PCB绘制

01-2-PCB的通孔、盲孔、埋孔_哔哩哔哩_bilibili 通孔&#xff1a;起点和终点肯定是最后一层和第一层 盲孔&#xff1a;起点永远是第一层&#xff08;或最后一层&#xff09;&#xff0c;终点肯定不是最后一层&#xff08;或第一层&#xff09; 埋空&#xff1a;起点和终点肯…

建筑物检测系统源码分享

建筑物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

Python | Leetcode Python题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; class Solution:def readBinaryWatch(self, turnedOn: int) -> List[str]:ans list()for i in range(1024):h, m i >> 6, i & 0x3f # 用位运算取出高 4 位和低 6 位if h < 12 and m < 60 and bin(i).count("1&…

C# USB通信技术(通过LibUsbDotNet库)

文章目录 1.下载LibusbDotNet库2.引入命名空间3. 实例化USB设备4.发送数据5.关闭连接 1.下载LibusbDotNet库 右击项目选择管理NuGet程序包在弹出的界面中搜索LibusbDotNet&#xff0c;然后下载安装。 2.引入命名空间 using LibUsbDotNet; using LibUsbDotNet.Main;3. 实例化…

细数H.264 H.265 H.266区别

H.264、H.265&#xff08;HEVC&#xff09;和H.266&#xff08;VVC&#xff09;是三种不同的视频编码标准&#xff0c;它们在压缩效率、图像质量、支持的分辨率以及技术特性等方面存在显著差异。以下是对这三种编码标准的详细比较&#xff1a; 概述 H.264&#xff1a;也称为AV…

TCP全连接队列和tcpdump抓包

全连接队列 listen第二个参数 服务器在调用listen的时候&#xff0c;listen的第二个参数 1&#xff0c;就是TCP全连接队列的长度。 当客户端的连接进入established 状态后&#xff0c;如果服务器没有调用accept将连接取走&#xff0c;那么该连接就会待在TCP全连接队列中&a…

Edge浏览器设置夜间模式/深色模式

问题背景 普通白色背景感觉有点刺眼&#xff0c;想改成深色背景&#xff0c;但是默认的设置里面只能修改边框的颜色&#xff1a; 这里虽然设置界面和边框变成了黑色的&#xff0c;但是实际上打开网页还是白色的。 全局配置 在Edge浏览器打开edge://flags/&#xff0c;然后搜索D…

海垦集团养殖场分布式光伏发电项目中的案例分享

1客户需求 海南农垦集团&#xff0c;原海南省农垦总公司&#xff0c;是中央直属三大垦区之一。集团在海南有多个养殖场&#xff0c;包括红华养猪场、红华肉牛繁育场等&#xff0c;计划在这些养殖场的屋顶安装分布式光伏系统&#xff0c;用于自发自用和余电上网。红华养猪场和红…

基于ESP32S3的链接大语言模型对话模块

本实物模块从实物外观、模块组成、API申请及功能说明四部分来介绍这款基于ESP32S3的大语言模型对话模块。 1、实物外观 2、模块介绍 本硬件平台主要由三个模块组成&#xff0c;包括MAX9814录音模块、MAX98357音频功放模块和ESP32S3模块。如下图所示。 MAX9814录音模块&#…

mac 如何开启指定端口供外部访问?

前言 需要 mac 上开放指定端口&#xff0c;指定 ip 访问 解决 在 macOS 上开放一个端口&#xff0c;并指定只能特定的 IP 访问&#xff0c;可以使用 macOS 内置的 pfctl(Packet Filter)工具来实现。 1、 编辑 pf 配置文件&#xff1a; 打开 /etc/pf.conf 文件进行编辑。 可以使…