GroundingDINO1.5突破开放式物体检测界限:介绍与应用
《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!
《------往期经典推荐------》
一、AI应用软件开发实战专栏【链接】
| 项目名称 | 项目名称 |
|---|---|
| 1.【人脸识别与管理系统开发】 | 2.【车牌识别与自动收费管理系统开发】 |
| 3.【手势识别系统开发】 | 4.【人脸面部活体检测系统开发】 |
| 5.【图片风格快速迁移软件开发】 | 6.【人脸表表情识别系统】 |
| 7.【YOLOv8多目标识别与自动标注软件开发】 | 8.【基于YOLOv8深度学习的行人跌倒检测系统】 |
| 9.【基于YOLOv8深度学习的PCB板缺陷检测系统】 | 10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统】 |
| 11.【基于YOLOv8深度学习的安全帽目标检测系统】 | 12.【基于YOLOv8深度学习的120种犬类检测与识别系统】 |
| 13.【基于YOLOv8深度学习的路面坑洞检测系统】 | 14.【基于YOLOv8深度学习的火焰烟雾检测系统】 |
| 15.【基于YOLOv8深度学习的钢材表面缺陷检测系统】 | 16.【基于YOLOv8深度学习的舰船目标分类检测系统】 |
| 17.【基于YOLOv8深度学习的西红柿成熟度检测系统】 | 18.【基于YOLOv8深度学习的血细胞检测与计数系统】 |
| 19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统】 | 20.【基于YOLOv8深度学习的水稻害虫检测与识别系统】 |
| 21.【基于YOLOv8深度学习的高精度车辆行人检测与计数系统】 | 22.【基于YOLOv8深度学习的路面标志线检测与识别系统】 |
| 23.【基于YOLOv8深度学习的智能小麦害虫检测识别系统】 | 24.【基于YOLOv8深度学习的智能玉米害虫检测识别系统】 |
| 25.【基于YOLOv8深度学习的200种鸟类智能检测与识别系统】 | 26.【基于YOLOv8深度学习的45种交通标志智能检测与识别系统】 |
| 27.【基于YOLOv8深度学习的人脸面部表情识别系统】 | 28.【基于YOLOv8深度学习的苹果叶片病害智能诊断系统】 |
| 29.【基于YOLOv8深度学习的智能肺炎诊断系统】 | 30.【基于YOLOv8深度学习的葡萄簇目标检测系统】 |
| 31.【基于YOLOv8深度学习的100种中草药智能识别系统】 | 32.【基于YOLOv8深度学习的102种花卉智能识别系统】 |
| 33.【基于YOLOv8深度学习的100种蝴蝶智能识别系统】 | 34.【基于YOLOv8深度学习的水稻叶片病害智能诊断系统】 |
| 35.【基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统】 | 36.【基于YOLOv8深度学习的智能草莓病害检测与分割系统】 |
| 37.【基于YOLOv8深度学习的复杂场景下船舶目标检测系统】 | 38.【基于YOLOv8深度学习的农作物幼苗与杂草检测系统】 |
| 39.【基于YOLOv8深度学习的智能道路裂缝检测与分析系统】 | 40.【基于YOLOv8深度学习的葡萄病害智能诊断与防治系统】 |
| 41.【基于YOLOv8深度学习的遥感地理空间物体检测系统】 | 42.【基于YOLOv8深度学习的无人机视角地面物体检测系统】 |
| 43.【基于YOLOv8深度学习的木薯病害智能诊断与防治系统】 | 44.【基于YOLOv8深度学习的野外火焰烟雾检测系统】 |
| 45.【基于YOLOv8深度学习的脑肿瘤智能检测系统】 | 46.【基于YOLOv8深度学习的玉米叶片病害智能诊断与防治系统】 |
| 47.【基于YOLOv8深度学习的橙子病害智能诊断与防治系统】 | 48.【车辆检测追踪与流量计数系统】 |
| 49.【行人检测追踪与双向流量计数系统】 | 50.【基于YOLOv8深度学习的反光衣检测与预警系统】 |
| 51.【危险区域人员闯入检测与报警系统】 | 52.【高压输电线绝缘子缺陷智能检测系统】 |
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
引言

本文回顾了论文“Grounding DINO 1.5: Advance the ‘Edge’ of Open-Set Object Detection”中介绍的进展。我们将探讨所引入的方法,对开放集目标检测的影响,以及这项研究提出的潜在应用和未来方向。
近年来,零样本目标检测已成为计算机视觉进步的基石。创建多功能且高效的探测器一直是构建实际应用的重要焦点。IDEA Research 推出的 Grounding DINO 1.5 标志着该领域的重大飞跃,尤其是在开放式物体检测方面。
什么是GroundingDINO?
基于DINO的开放式检测器Grounding DINO不仅实现了最先进的物体检测性能,还通过Grounding预训练实现了多级文本信息的集成。与 GLIP 或接地语言图像预训练相比,GroundingDINO 具有多项优势。首先,其基于Transformer的架构,类似于语言模型,便于处理图像和语言数据。
GroundingDINO框架

上图所示的框架是GroundingDINO 1.5 系列的整体框架。该框架保留了 Grounding DINO 的双编码器-单解码器结构。此外,该框架将其扩展到 Pro 和 Edge 型号的 Grounding DINO 1.5。
GroundingDINO 结合了 DINO 和 GLIP 的概念。DINO 是一种基于 Transformer 的方法,在对象检测方面表现出色,具有端到端优化功能,无需手动制作模块,如非最大抑制或 NMS。相反,GLIP 专注于短语基础,将文本中的单词或短语与图像或视频中的视觉元素联系起来。
GroundingDINO 的架构包括一个图像主干、一个文本主干、一个用于图像-文本融合的功能增强器、一个语言引导的查询选择模块和一个用于优化对象框的跨模态解码器。最初,它提取图像和文本特征,融合它们,从图像特征中选择查询,并在解码器中使用这些查询来预测对象框和相应的短语。
Grounding DINO 1.5 新功能
Grounding DINO 1.5 建立在其前身 Grounding DINO 奠定的基础之上,后者通过整合语言信息并将任务构建为短语接地来重新定义对象检测。这种创新方法利用了对不同数据集的大规模预训练,以及对来自大量图像-文本对的伪标记数据的自我训练。其结果是一个在开放世界场景中表现出色的模型,因为它具有强大的架构和语义丰富性。
GroundingDINO 1.5 进一步扩展了这些功能,引入了两种专用型号:Grounding DINO 1.5 Pro 和Grounding DINO 1.5 Edge。Pro 模型通过显着扩展模型的容量和数据集大小、整合 ViT-L 等高级架构并生成超过 2000 万张带注释的图像来增强检测性能。相比之下,边缘模型针对边缘设备进行了优化,强调计算效率,同时通过高级图像特征保持高检测质量。
实验结果强调了 Grounding DINO 1.5 的有效性,Pro 型号设定了新的性能标准,而 Edge 型号展示了令人印象深刻的速度和准确性,使其非常适合边缘计算应用。本文深入探讨了 Grounding DINO 1.5 带来的进步,探讨了其在开放式物体检测动态环境中的方法、影响和潜在的未来方向,从而突出了其在实际场景中的实际应用。
Grounding DINO 1.5 在 Grounding-20M 上进行了预训练,Grounding-20M 是一个包含来自公共来源的超过 2000 万张接地图像的数据集。在训练过程中,确保了具有完善的注释管道和后处理规则的高质量注释。
性能分析
下图显示了该模型识别 COCO 和 LVIS 等数据集中对象的能力,这些数据集包含许多类别。这表明 Grounding DINO 1.5 Pro 的性能明显优于以前的版本。与之前的特定型号相比,GroundingDINO 1.5 Pro显示出显着的改进。

该模型使用 ODinW(野外目标检测)基准测试在各种实际场景中进行了测试,其中包括涵盖不同应用的 35 个数据集。与之前版本的 Grounding DINO 相比,Grounding DINO 1.5 Pro 的性能有了显着提高。

COCO 和 LVIS 上GroundingDINO1.5 Edge 的零拍摄结果使用 A100 GPU 以每秒帧数 (FPS) 为单位进行测量,以 PyTorch 速度/TensorRT FP32 速度报告。还提供 NVIDIA Orin NX 上的 FPS。GroundingDINO 1.5 Edge 实现了卓越的性能,也超越了所有其他最先进的算法(OmDet-Turbo-T 30.3 AP、YOLO-Worldv2-L 32.9 AP、YOLO-Worldv2-M 30.0 AP、YOLO-Worldv2-S 22.7 AP)。

GroundingDINO1.5 Pro 与GroundingDINO 1.5 Edge
GroundingDINO1.5 Pro
Grounding DINO 1.5 Pro 建立在 Grounding DINO 的核心架构之上,但通过更大的 Vision Transformer (ViT-L) 主干增强了模型架构。ViT-L 模型以其在各种任务中的卓越性能而闻名,基于 transformer 的设计有助于优化训练和推理。
Grounding DINO 1.5 Pro 采用的关键方法之一是用于特征提取的深度早期融合策略。这意味着在进入解码阶段之前,在特征提取过程中使用交叉注意力机制将语言和图像特征尽早组合在一起。这种早期整合可以更彻底地融合来自两种模式的信息。
在他们的研究中,该团队比较了早期核聚变与后期核聚变策略。在早期融合中,语言和图像特征在过程的早期被集成,从而实现更高的检测召回率和更准确的边界框预测。但是,这种方法有时会导致模型产生幻觉,这意味着它会预测图像中不存在的对象。
另一方面,后期融合将语言和图像特征分开,直到损失计算阶段,它们被整合。这种方法通常对幻觉更有力,但往往会导致较低的检测回忆,因为当视觉和语言特征仅在最后组合时,它们变得更具挑战性。
为了最大限度地发挥早期融合的优势,同时最大限度地减少其缺点,Grounding DINO 1.5 Pro 保留了早期融合设计,但采用了更全面的训练采样策略。这种策略增加了训练期间负样本(没有感兴趣对象的图像)的比例。通过这样做,该模型可以更好地区分相关和不相关的信息,从而减少幻觉,同时保持高检测召回率和准确性。
总之,Grounding DINO 1.5 Pro 通过将早期融合与改进的训练方法相结合,平衡了早期融合架构的优势和劣势,从而增强了其预测能力和鲁棒性。
GroundingDINO1.5 Edge
GroundingDINO 是检测图像中物体的强大模型,但它需要大量的计算能力。这使得在资源有限的小型设备(如汽车、医疗设备或智能手机中的设备)上使用具有挑战性。这些设备需要快速有效地实时处理图像。
在边缘设备上部署GroundingDINO对于许多应用(例如自动驾驶、医学图像处理和计算摄影)来说是非常理想的。
然而,开放式检测模型通常需要大量的计算资源,而边缘设备缺乏这些资源。最初的GroundingDINO模型使用多尺度图像特征和计算密集型特征增强器。虽然这提高了训练速度和性能,但对于边缘设备上的实时应用程序来说是不切实际的。
为了应对这一挑战,研究人员提出了一种用于边缘设备的高效功能增强器。他们的方法侧重于仅使用高级图像特征(P5 级别)进行跨模态融合,因为较低级别的特征缺乏语义信息并增加计算成本。这种方法大大减少了处理的令牌数量,从而减少了计算负载。
为了更好地集成在边缘设备上,该模型将可变形的自注意力替换为普通的自注意力,并引入了跨尺度特征融合模块来集成较低级别的图像特征(P3 和 P4 级别)。这种设计平衡了功能增强的需求和计算效率的需求。
在 Grounding DINO 1.5 Edge 中,原来的特征增强器被这种新的高效增强器所取代,而 EfficientViT-L1 被用作快速多尺度特征提取的图像骨干。当部署在 NVIDIA Orin NX 平台上时,此优化模型的推理速度超过 10 FPS,输入大小为 640 × 640。这使得它适用于边缘设备上的实时应用程序,从而平衡性能和效率。
Origin Feature Enhancer 和 New Efficient Feature Enhancer 之间的比较:

NVIDIA Orin NX 上的 Grounding DINO 1.5 Edge 可视化功能显示在屏幕左上角的 FPS 和提示。右上角显示了录制场景的摄像机视图。

GroundingDINO目标检测演示
首先,我们将克隆存储库:
!git clone https://github.com/IDEA-Research/Grounding-DINO-1.5-API.git
接下来,我们将安装所需的软件包:
!pip install -v -e .
运行以下代码以生成链接:
!python gradio_app.py --token ad6dbcxxxxxxxxxx



GroundingDINO1.5应用领域
自动驾驶汽车:
- 检测和识别道路上可能出现的已知交通标志和行人以及不熟悉的物体,确保更安全的导航。
- 识别训练数据中未预先标记的意外障碍物,例如碎片或动物。
监控和安全:
- 识别禁区内未经授权的个人或物体,即使他们以前从未见过。
- 在机场或火车站等公共场所检测废弃物体可能是潜在的安全威胁。
零售和库存管理:
- 识别和跟踪商店货架上的商品,包括可能不属于原始库存的新产品。
- 识别商店中可能表明入店行窃的异常活动或不熟悉的物品。
医疗:
- 检测医学扫描中的异常或不熟悉的模式,例如新型肿瘤或罕见病症。
- 识别患者的异常行为或动作,尤其是在长期护理或术后恢复中。
机器人:
- 通过识别和适应新物体或周围环境的变化,使机器人能够在动态和非结构化环境中运行。
- 在环境不可预测且充满陌生物体的受灾地区检测受害者或危险。
野生动物监测和保护:
- 在自然栖息地中发现和识别新的或稀有物种,以进行生物多样性研究和保护工作。
- 监测保护区是否有不熟悉的人类存在或可能表明非法偷猎活动的工具。
制造和质量控制:
- 识别生产线上产品中的缺陷或异常,包括以前未遇到的新型缺陷。
- 识别和分类各种物体,以提高制造过程的效率。
本文介绍了 Grounding DINO 1.5,旨在增强开放式物体检测。领先的型号 Grounding DINO 1.5 Pro 在 COCO 和 LVIS 零射测试中树立了新的标杆,标志着检测准确性和可靠性的重大进步。
好了,这篇文章就介绍到这里,感谢点赞关注,更多精彩内容持续更新中~
关注文末名片G-Z-H:【阿旭算法与机器学习】,可获取更多干货学习资源
相关文章:
GroundingDINO1.5突破开放式物体检测界限:介绍与应用
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
centos编译内核ko模块
1、make报错 make: * /lib/modules/4.14.0-49.el7a.aarch64/build: 没有那个文件或目录。 停止。 [rootlocalhost 4.14.0-49.el7a.aarch64]# pwd /lib/modules/4.14.0-49.el7a.aarch64 [rootlocalhost 4.14.0-49.el7a.aarch64]# ll 总用量 1744 lrwxrwxrwx. 1 root root …...
Android13 WMS窗口层级树
1,认识层级树 可以通过dumpsys activity containers 看到 WMS 层级树的结构 ACTIVITY MANAGER CONTAINERS (dumpsys activity containers) ROOT typeundefined modefullscreen override-modeundefined requested-bounds[0,0][0,0] bounds[0,0][1440,2960]#0 Displa…...
计算机毕业设计Python+LSTM+Tensorflow股票分析预测 基金分析预测 股票爬虫 大数据毕业设计 深度学习 机器学习 数据可视化 人工智能
基于TensorFlow-LSTM的股票预测系统开题报告 一、研究背景与意义 随着信息技术的飞速发展,股票市场作为现代经济活动的重要组成部分,其价格波动受到广泛关注。投资者们迫切希望通过科学的方法预测股票价格,以优化投资决策,实现利…...
仓库管理系统14--仓库设置
1、添加窗体 <UserControl x:Class"West.StoreMgr.View.StoreView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc"http://schemas.openxmlformats.…...
Python 算法交易实验73 QTV200第二步: 数据清洗并写入ClickHouse
说明 先检查一下昨天启动的worker是否正常工作,然后做一些简单的清洗,存入clickhouse。 内容 1 检查数据 from Basefuncs import * # 将一般字符串转为UCS 名称 def dt_str2ucs_blockname(some_dt_str):some_dt_str1 some_dt_str.replace(-,.).re…...
记录:有趣的C#多元运算符 ? : 表达式写法
有时候用 if //...Whatre you she wanna go else if //...do do do else //...and i know something just like this... 感觉代码太多了怎么优雅的、高端的替换? 看个高端的栗子菊: LedCOM["parity"] ledData[4] "N" ? …...
华宽通中标长沙市政务共性能力建设项目,助力智慧政务建设新飞跃
在数字化浪潮的推动下,长沙市政府正积极拥抱智慧城市建设,以科技力量提升政务服务效能。华宽通凭借其卓越的技术实力与丰富的项目经验,成功中标长沙市政务共性能力建设项目,这无疑是对华宽通在智慧城市领域实力的高度认可。 华宽…...
[面试题]计算机网络
[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…...
企业级低代码开发效率变革赋能业务增长
企业级低代码开发已经成为当今软件开发领域的一大趋势,它为企业带来了前所未有的效率变革,从而赋能业务增长。本文将围绕这一主题,深入探讨低代码开发的概念、优势以及如何在企业级应用中实现高效的低代码开发,以助力我国企业实现…...
2024最新总结:1500页金三银四面试宝典 记录35轮大厂面试(都是面试重点)
学习是你这个职业一辈子的事 手里有个 1 2 3,不要想着去怼别人的 4 5 6,因为还有你不知道的 7 8 9。保持空瓶心态从 0 开始才能学到 10 全。 毕竟也是跳槽高峰期,我还是为大家准备了这份1500页金三银四宝典,记录的都是真实大厂面…...
使用Spring Boot和Thymeleaf构建动态Web页面
使用Spring Boot和Thymeleaf构建动态Web页面 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将探讨如何利用Spring Boot和Thymeleaf构建动…...
扫盲之webSocket
介绍 webSocket 是一种协议,设计用于在客户端和服务器之间提供低延迟、全双工、和长期运行的连接。 全双工:通信的两个参与方可以同时发送和接收数据,不需要等待对方的响应或传输完成 websocket就是为了解决实时通信的问题 建立webSocke…...
一些硬件知识(十二)
1、请说明一下滤波磁珠和滤波电感的区别。 因此磁珠通常用于模数地的连接。 磁珠由导线穿过铁氧体组成,直流电阻很小,在低频时阻抗也很小,对直流信号几乎没有影响。 在高频(几十兆赫兹以上)时磁珠阻抗比较大࿰…...
Adobe Acrobat编辑器最新版下载安装 Adobe Acrobat版本齐全!
功能强大,Adobe Acrobat无疑是PDF文档处理领域的翘楚。这款软件集多种PDF文档处理功能于一身,不仅使得用户可以轻松地编辑PDF文档,更能轻松应对转换和合并等多种需求。 在编辑功能上,Adobe Acrobat的表现尤为出色。无论是添加文字…...
k8s如何使用 HPA 实现自动扩展
使用Horizontal Pod Autoscaler (HPA) 实验目标: 学习如何使用 HPA 实现自动扩展。 实验步骤: 创建一个 Deployment,并设置 CPU 或内存的资源请求。创建一个 HPA,设置扩展策略。生成负载,观察 HPA 如何自动扩展 Pod…...
Hi3861 OpenHarmony嵌入式应用入门--0.96寸液晶屏 iic驱动ssd1306
使用iic驱动ssd1306,代码来源hihope\hispark_pegasus\demo\12_ssd1306 本样例提供了一个HarmonyOS IoT硬件接口的SSD1306 OLED屏驱动库,其功能如下: 内置了128*64 bit的内存缓冲区,支持全屏刷新;优化了屏幕刷新速率,…...
代码随想录训练营第二十二天 77组合
第一题: 原题链接:77. 组合 - 力扣(LeetCode) 思路: 经典的回溯模板题: 终止条件,当中间变量用来存储单个结果的大小等于k,则将中间变量存放到结果数组中。 一个for循环横向遍历…...
Unity踩坑记录
1. 如果同时在父物体和子物体上挂载BoxCollider,那么当使用: private void OnTriggerEnter2D(Collider2D collision){if (collision.CompareTag("CardGroup")){_intersectCardGroups.Add(collision.GetComponent<CardGroup>());}} 来判…...
内容安全复习 1 - 信息内容安全概述
文章目录 信息内容安全简介网络空间信息内容安全大模型 人工智能简介 信息内容安全简介 网络空间 网络空间是融合物理域、信息域、认知域和社会域,控制实体行为的信息活动空间。 上图展示了网络空间安全的结构。可以看到将网络空间划分为了网络域和内容域两个部分。…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...
二叉树-144.二叉树的前序遍历-力扣(LeetCode)
一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…...
