登山第十六梯:深度恢复——解决机器人近视问题
文章目录
一 摘要
二 资源
三 内容
一 摘要
深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而,现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整,从而成为机器人性能的瓶颈。在这项工作中,提出了 一个基于学习的立体图像对深度估计框架,可以在不同的室内场景中预测干净和准确的深度,即使在经典深度感知完全失败的半透明或镜面表面等最具挑战性的场景中也是如此。该方法的关键是,通过使用去噪扩散概率模型预测视差图,将深度估计和恢复统一为图像到图像的翻译问题。在推理时,进一步纳入了左右一致性约束作为扩散过程的分类器指导。作者的框架结合了最近先进的基于学习的方法和传统立体视觉的几何约束。对于模型训练,创建了一个大型场景级合成数据集,其中包含各种透明和镜面物体,以补偿现有的桌面数据集。经过训练的模型可以直接应用于现实世界场景,并在多个公共深度估计基准测试中实现最先进的性能。在真实环境中的进一步实验表明,准确的深度预测可以显著改善各种场景中的机器人操作。
二 资源
文章:D3RoMa: Disparity Diffusion-based Depth Sensing for Material-Agnostic Robotic Manipulation
代码:https://PKU-EPIC.github.io/D3RoMa
日期:2024
三 内容
1)摘要
深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而,现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整,从而成为机器人性能的瓶颈。在这项工作中,作者提出了 D3RoMa,这是一个基于学习的立体图像对深度估计框架,可以在不同的室内场景中预测干净和准确的深度,即使在经典深度感知完全失败的半透明或镜面表面等最具挑战性的场景中也是如此。该方法的关键是,通过使用去噪扩散概率模型预测视差图,将深度估计和恢复统一为图像到图像的翻译问题。在推理时,进一步纳入了左右一致性约束作为扩散过程的分类器指导。作者的框架结合了最近先进的基于学习的方法和传统立体视觉的几何约束。对于模型训练,创建了一个大型场景级合成数据集,其中包含各种透明和镜面物体,以补偿现有的桌面数据集。经过训练的模型可以直接应用于现实世界场景,并在多个公共深度估计基准测试中实现最先进的性能。在真实环境中的进一步实验表明,准确的深度预测可以显著改善各种场景中的机器人操作。
2)创新点
①一个基于扩散模型的立体深度估计框架,可以预测最先进的深度并恢复透明和镜面表面的噪声深度图;
②通过引导扩散将立体几何约束集成到学习范式中;
③一个新的场景级 STD 合成数据集,模拟真实的深度传感器 IR 模式和照片级真实感渲染;
④通过文章更高质量的深度图和 3D 点云,机器人操作任务得到了显著改进。
3)算法结构
在本节中,介绍了 D3RoMa,这是一个基于视差扩散的深度感知框架,用于与材料无关的机器人操作。该框架专注于提高视差图在深度估计中的准确性,特别是对于透明和镜面物体,这些物体在机器人操作任务中无处不在但具有挑战性。给定对场景的观察,该框架将深度传感器的原始视差图和左右立体图像对作为输入,输出恢复的视差图,该图将转换为恢复的深度图。
A 预定义
立体视觉和深度估计。一旦知道一对立体相机之间观察到点的视差图 x,就可以使用相机固有参数通过 d = (f · b)/x 计算这些点的深度图 d,其中 f 和 b 分别是相机焦距和立体基线。视差图 x 的估计传统上被建模为密集匹配问题,可以在图像域中求解。因此,立体深度估计可以独立于不同的相机设备进行研究。
去噪扩散概率模型。扩散模型是特殊的潜在变量模型,它反转扩散(正向)过程,该过程通过马尔可夫过程逐渐扩散原始数据 x0。
其中,方差 βt 是根据预定义策略设置的。这种马尔可夫链的一个很好的特性是,它在任何时候都具有解析形式 ,其中
,
和 ε ∼ N (0, I)。去噪(反向)过程也是一个具有学习的高斯过渡核的马尔可夫链:
其中,方差简化为 βtI,平均值被重新参数化,使时间条件降噪网络 sθ(xt, t; θ) 近似添加的噪声ε。提出通过最小化简化下列损失来训练去噪网络:
当网络训练收敛时,噪声分布的梯度也称为评分函数:
简单地说(说人话),扩散过程q就是不断的往图像上加入随机噪声,直到图像变成一个纯噪声,而逆扩散过程p就是从纯噪声图像中生成原始干净图像的去噪过程:
整个过程每个节点仅与上一个节点相关,因此这个过程被称作马尔可夫过程。
训练过程(个人理解):通过不断往正常深度的视差图样本中添加随机噪声直到得到深度异常的视差图,然后训练从深度异常视差图到正常视差图的逆扩散过程,从而获得深度恢复模型。
推理过程,即逆扩散过程。
B 基于视差扩散的深度估计
在这项工作中,作者将立体深度估计问题表述为扩散模型中的图像到图像的转换问题。一个重要的设计选择是要调节什么。该模型通常被制定为以立体图像对 Il , Ir 为条件,以进行立体深度估计。作者的实验发现,额外基于原始视差 D ̃ 的条件使网络在训练过程中收敛得更快,并在分布外场景中更稳健地泛化。原始视差可以很容易地从传统的立体匹配算法 SGM 或真实的相机传感器输出中获得。对于像 RealSense 这样的真实主动立体深度传感器,左右图像由红外 (IR) 摄像头捕获,红外投影仪投射具有特殊的阴影图案。结果,在左右图像和原始视差图 D ̃ 上进行调节,训练了一个条件扩散模型来学习视差图的分布:
其中y={Il,Ir,D}。
实证表明,这种条件去噪网络是成功的。Batzolis等人进一步证明:即使条件y没有出现在训练目标中,也可以通过相同训练目标来学习条件分数。在训练网络后,可以通过列式子来估计视差:
C 通过立体几何反向采样引导
受图像生成任务的分类指导的启发,作者建议用基于模型的几何梯度来指导视差扩散过程。引导式反向过程如上图所示。具体来说,条件评分函数受到立体匹配计算的梯度的干扰:
其中 Lsm 是相似性损失函数,它将左侧图像与扭曲的左侧图像进行比较。扭曲的左侧图像是通过对具有估计视差的右侧图像进行扭曲而获得的。s控制几何引导强度,并平衡从扩散模型中学习的梯度和从立体模型中学习的几何梯度。为了减轻立体匹配中的梯度局部性,作者在计算立体匹配的梯度时将立体图像下采样为多个不同的较低分辨率。更具体地说,有:
其中 k 是不同分辨率的图层索引,γ是平衡光度和平滑度损失的加权常数。Lssim 是结构相似性指数 (SSIM),它计算左侧图像 Il 和翘曲图像Ileft 之间的光度损失:
其中 u、v 是图像平面中的像素坐标,〈 〉 是线性采样操作。Lsmooth 是一种边缘感知平滑度损失,定义为
它通过惩罚非边缘区域中的不连续性来规范差异。这里 ∂u 表示图像平面中 u(水平)方向的偏导数。然后,按照采样过程,使用扰动梯度预测视差图 x0。最后,一旦知道了相机参数,我们就可以将视差转换为深度。
D HISS合成数据集
作者基于栖息地合成场景数据集 (HSSD)创建了合成数据集 HISS。利用 HSSD 的 168 个高质量室内场景来增加场景多样性。对于对象,总共包括来自 DREDS 和 GraspNet 的 350 多个对象模型。场景和随机选择的对象 CAD 模型在 Isaac Sim中渲染。在渲染过程中,对象材质和场景照明在模拟中专门随机化,以模拟现实世界中对象(杯子、玻璃杯、瓶子等)的透明或镜面反射物理属性。为了获得透明表面的正确深度值,采用了 two-pass 方法。首先,渲染对象材质设置为 diffuse 的场景的 RGB 图像和深度图。照明全部打开,以实现照片级真实感渲染。在第二遍中,关闭正常照明,并在场景上投射类似的阴影图案,以模拟实感 D415 红外立体图像。使用 RealSense D415 深度摄像头的内参,渲染了 10,000 多张具有模拟阴影图案的照片级逼真立体图像。实验表明,该数据集是作者方法在现实世界中具有出色的泛化性的关键推动因素。
4)实验
A 机器人领域的深度估计
DREDS:一个桌面级的深度数据集,包含镜面反射和透明对象的合成和真实标签数据。
从上表观察到,作者方法的所有变体都超过了所有基线所有指标。此外,消融结果表明,通过提供更多信息,尤其是原始差异的整合,该方法的性能可以稳步提高。
由于 DREDS 没有为 STD-CatKnown 和 STD-CatNovel 数据分割(真实数据)提供 IR 图像,因此作者训练框架的变体,该变体仅以 RGB 图像和原始差异为条件,以与 SwinDR 进行比较。如上表所示,文章方法在几乎所有指标上仍然可以优于基线。具体来说,与基线相比,文章方法可以在 MAE 上达到近 100% 的改进。文章方法在 RMSE 上性能较差可能与 DREDS 真值深度中的噪声有关,因为 RMSE 对噪声误差非常敏感。作者进一步对 STD-CatKnown 和 STD-CatNovel 数据拆分的基于几何的引导进行消融研究,以验证其在现实世界场景中基于扩散的深度估计的有效性。如商标所示,基于几何引导可以显著提高性能。
SynTODD:是另一个使用 Blender 合成透明对象的数据集。它包含 87512 个训练图像和 5263 个测试图像。
与 SimNet 和 MvTrans 的所有变体相比,我们的方法具有更好的性能。
ClearPose:是透明和半透明对象的大规模真实 RGB-D 基准测试。该数据集包含 RealSense L515 深度相机捕获的 350,000 张真实图像。作者收集了一组非常具有挑战性的场景,包括不同的背景、严重的遮挡、半透明和不透明封面中的物体、非平面表面的物体,甚至充满了液体。
文章方法 D3RoMa 在 6 种不同的测试场景中始终优于 ImplicitDepth 和 TransCG。
HISS:作者进一步评估了其自己创建的数据集在透明和镜面物体深度估计方面的有效性。并与以前最先进的方法进行比较。文中方法可以预测更好的深度,尤其是在透明瓶子上。为了确保公平的比较,作者在 HISS 上进一步微调了 400,000 个 epoch 的 RAFT-Stereo。与原始模型相比,微调后的 RAFT-Stereo 可以更好地恢复透明物体的缺失深度,但物体形状仍然不准确。还与 ASGrasp进行了比较,ASGrasp是专门为基于深度估计检测和抓取透明物体而设计的。它具有与微调的 RAFT-Stereo 类似的性能,但对象边界模糊。文章方法可以为所有 STD 对象提供最佳深度,具有更清晰的对象边界和准确的形状。
B 在一般情况下与 SOTA 立体声匹配方法的比较
作者进一步证明了文中方法在一般场景中进行立体匹配的有效性。将其与 SceneFlow上最先进的立体匹配基线进行了比较,SceneFlow是一个合成数据集,包含超过 39,000 个立体帧,分辨率为 960×540 像素。该数据集包含三个具有挑战性的场景,FlyingThings3D、Driving和Monkaa,这使其成为用于预训练的高质量数据集。作者使用 35,454 个立体对从头开始训练模型,其余部分作为测试拆分。还将数据集中的图像大小调整为 480×270,以与作者的机器人感知设置保持一致。根据前面的工作,使用最大差异值 192 对真实视差进行归一化,该值也用于裁剪测试数据。如下表所示,与现有的最先进的方法相比,文章方法获得了最好的结果。
C 机器人抓取
将模型预测得到的视差图,基于相机内参转化成深度图,再通过深度图转换成点云数据。.从左到右依次是 RGB 图像、原始深度、使用对象 CAD 模型渲染的真实深度、通过 TransCG 、ImplicitDepth 和文章方法 D3RoMa恢复的深度。
上图为实际场景的深度估计结果。每行(从左到右)显示了文章方法的 RGB 图像和视差结果、预训练的 Raft Stereo、在HSII数据集上微调的 Raft Stereo 和 ASGrasp。
作者在现实世界中设置了一个桌面抓取、铰接式物体操作和一个移动抓取环境,如下图 所示。在桌面抓取实验中,作者使用了 Franka 7-DoF 机械臂。将 STD 物体放置在有凸起和凹坑的表面上,这对于深度感应和机器人抓取来说都是具有挑战性的设置。这些物体具有非漫射表面材料,例如玻璃、瓷器、玻璃等。
作者将文中的方法与其他两个基线进行了比较。所有基线都使用相同的运动规划器 CuRobo,但深度感应不同。作者还与 ASGrasp进行了比较,后者主要是为桌面抓取 STD 对象而设计的。我们在下表中分别报告了不同对象 (STD) 的结果和总体成功,提供了三种不同移动操作场景的定量结果。虽然 ASGrasp 和 D3RoMa 都比原始传感器输出有所改进,但我们的方法以很大的幅度优于 ASGrasp。
上表为在真实环境中使用同一运动规划器移动抓取不同基线的成功率。每个单元在镜面反射、透明和漫射对象上显示成功率。
上表为不同深度源的桌面抓取成功率 (SR) 比较。S. = 镜面反射,T. = 透明,D. = 漫射。
5)结论
在这项工作中,作者提出了一种新的几何梯度引导到视差空间中的扩散模型,以预测立体图像的深度。以立体图像对和原始视差图为条件,文章中的网络在现有基准测试中实现了 SOTA 性能。纯合成数据集的差异评估和深度数据集的深度评估都证明了方法的效率。作者的主要观察结果包括数据多样性可以对现实的泛化产生重大影响,而指导有助于更具挑战性的真实场景。当前基于 3D 视觉的机器人操作管道,包括抓取和零件操作,只需通过改进深度感知就可以得到显著改进。特别是,我们发现与传统的立体方法相比,生成模型可以更好地处理具有挑战性的透明对象的深度估计。
相关文章:
登山第十六梯:深度恢复——解决机器人近视问题
文章目录 一 摘要 二 资源 三 内容 一 摘要 深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而,现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整,从而成为机器人性能的瓶颈。在这项工作中,提出了 一个基于学习的立体…...
【自动驾驶】3 激光雷达③
5 激光雷达点云检测模型 🦋🦋🦋CenterPoint是Anchor‐Free的3D物体检测器,以点云作为输入,将三维物体在Bird‐View下的中心点作为关键点,基于关键点检测的方式回归物体的尺寸、方向和速度。相比于Anchor‐…...
新手福音:有哪些比Zotero更友好的文献管理软件?
别找了,3个被夸上天的论文阅读神器,我都帮你测评好了,直接抄我作业!! Scholaread、Zotero和EndNote,这些工具在复杂的学术探索中给我点亮了一盏灯,那感觉棒极了! 虽然每个工具都不…...
消费导刊杂志社消费导刊杂志消费导刊编辑部2024年第41期目录
征稿启事 封2 轻工艺术 浅谈青瓷创作中的艺术审美 周水淼1-4 浅谈木雕艺术在红木家具创作中的应用 蒋宝良5-8 浅谈对唐卡艺术高技能人才培养的必要性 夏吾他9-12 龙泉宝剑锻造技艺 叶明13-16 传承吸纳,创造吐新——论越窑青瓷新时代的传承和创新路径 盛海尧17-20 浅析龙泉哥窑艺…...
Datawhale-AI活动2024.12.24
目录 一、番茄时钟(1)输入Prompt(2)创建 HTML 文件解析1:HTML结构解析2:计时器内容解析3:按钮区域解析4:脚本引用 (3)使用JavaScript实现时钟功能解析1&#…...
揭秘:薪酬绩效管理咨询公司收费标准
在当今这个竞争激烈的商业环境中,企业的人力资源管理变得尤为重要,尤其是薪酬绩效管理体系的构建与优化。一个合理的薪酬绩效管理制度不仅能激发员工的积极性与创造力,还能帮助企业实现战略目标,提升整体竞争力。然而,…...
适用于机器视觉应用的智能机器视觉控制平台
工控机在机器视觉系统设计中是不可或缺的核心组件,在机器视觉中发挥着至关重要的作用,其强大的计算能力、高度的稳定性和可靠性、实时性以及图像处理和识别能力,为机器视觉检测提供了有力支持。 Nuvis系列机器视觉控制平台是适用于现如今机器…...
leetcode hot100 LRU缓存
146. LRU 缓存 已解答 中等 相关标签 相关企业 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&…...
什么是DDoS攻击?如何防范DDoS攻击?
定义 DDoS(Distributed Denial of Service)攻击全称为分布式拒绝服务攻击。它是一种恶意的网络攻击手段,攻击者通过控制大量的计算机(这些计算机通常被称为“僵尸主机”或“肉鸡”),同时向目标服务器或网络…...
使用 Dash 构建交互式数据可视化应用
使用 Dash 构建交互式数据可视化应用 1. 什么是 Dash? Dash 是一个由 Plotly 开发的开源 Python 框架,用于快速构建交互式数据可视化应用。Dash 将前端(HTML、CSS 和 JavaScript)与后端(Python)无缝集成&…...
【Linux网络编程】第十五弹---传输层深度解析:端口号划分、UDP协议特性与TCP协议全面剖析(含连接管理、流量控制、拥塞控制等)
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、传输层 1.1、再谈端口号 1.1.1、端口号范围划分 1.1.2、认识知名端口号 1.1.3、两个问题 1.2、UDP …...
SQL语句整理五-StarRocks
文章目录 查看版本号:SPLIT:insert 和 update 结合 select:报错:1064 - StarRocks planner use long time 3000 ms in memo phase:字段增删改: 查看版本号: select current_version(); current…...
【GIS教程】使用GDAL实现栅格转矢量(GeoJSON、Shapefile)- 附完整代码
文章目录 一、 应用场景1、GeoJSON2、ESRI Shapefile3、GDAL 二、基本思路1、数据准备2、重投影(可选)3、创建空的矢量图层4、栅格转矢量 三、完整代码四、总结五、拓展(使用ArcGIS工具进行栅格转矢量) 一、 应用场景 TIFF格式的…...
美国加州房价数据分析02
5. 特征工程 5.1重构数据集 承接上文提到的相似度排名,去掉部分无关的特征。 train_set.corr()["median_house_value"].sort_values(ascendingFalse)为了提高模型训练后的鲁棒性,即防止过拟合,不建议删除关联度最低几项特征&#…...
[安徽省赛 2021]misc签到
给了一个图片,改成jpg格式,查看属性 发现备注 this_is_password 这可能是密码什么东西的 把图片拉到kali里面用用工具binwalk工具分离 发现了flag.txt文件 把压缩包拉到windows系统中 解压,输入密码 得到flag NSSCTF{ab32056rfanla12380a…...
LeetCode:1705. 吃苹果的最大数目(优先级队列 + 贪心 Java)
目录 1705. 吃苹果的最大数目 题目描述: 实现代码与解析: 优先级队列 贪心 原理思路: 1705. 吃苹果的最大数目 题目描述: 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天&#x…...
MX3200显微尺寸测量仪
产品简介 MX3200显微尺寸测量仪将显微成像与传统影像测量相结合,实现了微小特征的大范围测量。配置电动塔台,可自动切换到不同的倍率,探测各种精密微观二维尺寸特征。尺寸测量功能丰富,可进行各种二维尺寸点、线、圆等的测量和形…...
VR 动感单车身心调适系统的功能与作用
如今,人们面临着来自各方的压力,国家重视国民身心健康,但人们在实际生活中却缺乏有效的身心调节方式。无论是久坐的白领,还是学业繁重的学生,都存在身体亚健康和心理压力大的问题。传统健身方式枯燥、心理咨询成本高且…...
LabVIEW伸缩臂参数监控系统
LabVIEW开发伸缩臂越野叉车参数监控系统主要应用于工程机械中的越野叉车,以提高车辆的作业效率和故障诊断能力。系统通过PEAK CAN硬件接口和LabVIEW软件平台实现对叉车作业参数的实时监控和故障分析,具有良好的实用性和推广价值。 系统组成 系统主要由P…...
Spring提供了很好事务管理机制
事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制 分类 主要分为编程式事务和声明式事务两种。 编程式事务 是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: try {//TODO so…...
Selenium 和 Playwright两大框架的不同之处
自动化测试工具百花齐放,其中 Selenium 和 Playwright 是两大热门框架,谁才是你的最佳选择?面对企业项目的真实需求,它们的差异究竟在哪儿? Selenium 和 Playwright 是两种流行的自动化测试工具,它们都被用…...
【计算机视觉】轮廓检测
一、轮廓检测 在计算机视觉中,轮廓检测是另一个比较重要的任务,不单是用来检测图像或者视频帧中物体的轮廓,而且还有其他操作与轮廓检测相关。 以下代码展示了如何使用 OpenCV 进行 图像阈值处理、寻找图像轮廓 和 绘制轮廓 的完整流程&…...
【Linux】深入Linux:GCC/G++编译器实用指南
Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器 在Linux系统中,理解和掌握GCC/G编译器是开发者不可或缺的技能之一。本文将深入探讨它们的工作原理和实际运用,帮助读者更好地利用这些强…...
【未来编程:AI如何通过合成复用原则优化设计】
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言合成复用原则含义 继承复用含义UML图实现代码运行结果及分析优缺点 合成复用(我有这…...
【Rust自学】5.3. struct的方法(Method)
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.3.1. 什么是方法(Method) 方法和函数类似,也是用fn关键字进行声明,方法也有名称,也有参数ÿ…...
单片机 STM32入门
一、什么是单片机 单片机(Microcontroller Unit,MCU)是一种集成电路芯片,它将计算机的CPU、存储器(包括RAM和ROM)、输入/输出接口等集成在一个芯片上。单片机通常用于嵌入式系统,能够执行特定的…...
OneCode:开启高效编程新时代——企业定制出码手册
一、概述 OneCode 的 DSM(领域特定建模)出码模块是一个强大的工具,它支持多种建模方式,并具有强大的模型转换与集成能力,能够提升开发效率和代码质量,同时方便团队协作与知识传承,还具备方便的仿…...
学python还是学java?哪个相对来说比较容易上手?
在比较Python和Java哪个更容易上手时,可以从多个维度进行分析,包括语法简洁性、学习资源、应用领域、学习曲线等。 一、语法简洁性 Python:Python的语法简洁明了,更接近自然语言,易于理解和记忆。它使用缩进来表示代…...
C语言项目 天天酷跑(上篇)
前言 这里讲述这个天天酷跑是怎么实现的,我会在天天酷跑的下篇添加源代码,这里会讲述天天酷跑这个项目是如何实现的每一个思路,都是作者自己学习于别人的代码而创作的项目和思路,这个代码和网上有些许不一样,因为掺杂了…...
Windows 11 安装 Dify 完整指南 非docker环境
# Windows 11 安装 Dify 完整指南## 前置要求- Python 3.11 - Node.js 18 - PostgreSQL 14 - Redis for Windows - Git - Ollama (可选,用于本地模型)## 详细安装步骤### 1. 安装必要软件1. **Python 3.11**- 从 https://www.python.org/downloads/release/python-…...
MySQL变量
文章目录 MySQL变量系统变量查看系统变量设置系统变量 自定义变量用户变量局部变量 MySQL变量 MySQL变量分为系统变量和自定义变量 系统变量 系统变量有全局变量和会话变量 查看系统变量 #查看全局系统变量 show global variables; #根据条件查询全局系统变量 show global …...
Ubuntu离线安装Docker容器
前言 使用安装的工具snap安装在沙箱中,并且该沙箱之外的权限有限。docker无法从其隔离的沙箱环境访问外部文件系统。 目录 前言准备环境卸载已安装的Docker环境快照安装的Dockerapt删除Docker 安装docker-compose下载执行文件将文件移到 /usr/local/bin赋予执行权限…...
ensp 关于acl的运用和讲解
ACL(Access Control List,访问控制列表)是一种常用于网络设备(如路由器、交换机)上的安全机制,用于控制数据包的流动与访问权限。ACL 可以指定哪些数据包允许进入或离开某个网络接口,基于不同的…...
Linux(Centos 7.6)yum源配置
yum是rpm包的管理工具,可以自动安装、升级、删除软件包的功能,可以自动解决软件包之间的依赖关系,使得用户更方便软件包的管理。要使用yum必须要进行配置,个人将其分为三类,本地yum源、局域网yum源、第三方yum源&#…...
[WASAPI]音频API:从Qt MultipleMedia走到WASAPI,相似与不同
[WASAPI] 从Qt MultipleMedia 来看WASAPI 最近在学习有关Windows上的音频驱动相关的知识,在正式开始说WASAPI之前,我想先说一说Qt的Multiple Media,为什么呢?因为Qt的MultipleMedia实际上是WASAPI的一层封装,它在是线…...
什么是MVCC?
MVCC(多版本并发控制,Multi-Version Concurrency Control)是一种用于数据库管理系统中的并发控制的技术。它允许多个事务同时对同一数据进行读取和修改,而不会相互干扰,从而提高了数据库的并发性能。以下是对MVCC的详细…...
C/C++基础错题归纳
文章目录 第1天1.下面程序段的运行结果是:答案知识补充 2.当一个类A 中没有声明任何成员变量与成员函数,这时sizeof(A)的值是多少?答案知识补充 3.下面程序输出是什么?答案其他讲解 第1天 1.下面程序段的运行结果是: char C[5]{‘a’,’b’…...
Nginx 常用安全头
Web 应用中配置 HTTP 安全响应头是提升网站安全性的重要一步。合理配置 Nginx 的安全头,可以抵御常见的安全威胁(如 XSS、点击劫持、MIME 类型嗅探等),增强用户隐私保护和传输安全性。 常见的 HTTP 安全头及其作用 1. Content-Se…...
消息队列(一)消息队列的工作流程
什么是消息队列 首先,代入一个场景,我现在做一个多系统的集成,分别有系统A、B、C、D四个系统,A系统因为使用产生了业务数据,B、C、D需要使用这些数据做相关的业务处理和运算,最基本的做法就是通过接口通信…...
LeetCode 2605 从两个数字数组里生成最小数字
探寻两个数组数位关联下的最小数字问题 题目描述 给定两个只包含 1 到 9 之间数字的数组 nums1 和 nums2,并且每个数组中的元素都是互不相同的。我们需要返回最小的数字,要求这个数字满足两个数组都至少包含这个数字的某个数位。例如,若 nu…...
AI新书推荐:深度学习和大模型原理与实践(清华社)
本书简介 在这个信息爆炸、技术革新日新月异的时代,深度学习作为人工智能领域的重要分支,正引领着新一轮的技术革命。《深度学习和大模型原理与实践》一书,旨在为读者提供深度学习及其大模型技术的全面知识和实践应用的指南。 本书特色在于…...
32单片机串口数据接收、空闲IDLE中断详解
一、前提说明 一开始写单片机程序的时候不太清楚空闲中断这个东西,每次用串口接收数据,都要再开一个定时器,在定时器内进行倒计时,每次接收数据就重置计时时间,计时结束就触发中断,再判断所有接收的数据&am…...
WebRtc webrtc-streamer部署
文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 WebRtc webrtc-streamer 部署 docker run -p 8000:8000 -it mpromonet/webrt…...
shiro注入filter内存马(绕过长度限制)
shiro环境 https://github.com/yyhuni/shiroMemshell(实验环境) 这里用的 Client_memshell.java package com.example.demo;import javassist.ClassPool; import javassist.CtClass; import org.apache.shiro.crypto.AesCipherService; import org.ap…...
Springboot + vue3 实现大文件上传方案:秒传、断点续传、分片上传、前端异步上传
参考:https://juejin.cn/post/6870837414852886542#heading-9 一般计算大文件的md5都是前端来做,因为如果后端来做,那得等到上传成功后才能计算md5值,并且读取的时间也很长。 为了解决文件大传输慢的问题,前端可以通…...
渗透Vulnhub-DC-9靶机
本篇文章旨在为网络安全渗透测试行业靶机教学。通过阅读本文,读者将能够对渗透Vulnhub系列DC-6靶机有定的了解 一、信息收集阶段 DC-9靶场信息: DC-9靶场介绍: https://www.vulnhub.com/entry/dc-9,412/ DC-9靶场下载: https://download.vu…...
springboot477基于vue技术的农业设备租赁系统(论文+源码)_kaic
摘 要 使用旧方法对农业设备租赁系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在农业设备租赁系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的农…...
CentOS常见命令
CentOS(Community ENTerprise Operating System)基于Red Hat Enterprise Linux(RHEL)源代码开发,是常用的Linux发行版之一。在CentOS系统中,有许多命令用于管理和操作系统,以下是一些CentOS系统…...
oracle 设置归档日志存放路径
oracle 设置归档日志存放路径 1、创建新目录 mkdir /archive chown -R oracle:oinstall /archive 注:条件允许的话,/archive 目录应独立挂载。1、便于监控目录使用率;2、避免和其它文件混淆,便于管理。 2、设置归档日志存放路…...
机器学习1-简单神经网络
相比传统的机器学习算法,深度学习做出了哪些改进呢?其实两者在理论结构上是一致的,即:模型假设、评价函数和优化算法,其根本差别在于假设的复杂度 构建简单神经网络(未训练): # 封装…...