- 2025-04-03
-
发表了主题帖:
《具身智能机器人系统》阅读笔记 vol.3 机器人感知!
《具身智能机器人系统》阅读笔记 vol.3
最近忙疯啦!忙里偷闲来继续把这本书看完。
第四章-自主机器人的感知系统
物体检测
手工提取特征时代: 精心设计HOG特征+SVM预测
深度学习时代:
使用了提议框Proposal的两阶段方法:Fast RCNN和Faster RCNN。先粗找出可能存在的物体,然后再精调边框。
无提议的一阶段算法,Yolo,SSD,FCOS等,更快,但是精度不如前者。
语义分割
将图像划分为具有不同语义类别的区域。每个像素点都会给定一个标签。可想而知其计算量比物体检测更大。
传统语义分割:被视为图像标记问题。使用条件随机场方法CRF,其使用受限玻尔兹曼机RBM,来对标签节点进行分类。CRF现在更多作为一种后处理方法,通过建模像素标签之间的依赖关系(例如邻近像素更可能属于同一类别),来优化这些预测结果。
将CNN的最后一层换成1x1卷积,就能够输出语义分割。
语义分割必须能够使用多尺度图像特征和上下文推理。因此很多工作都采用了多尺度池化,例如PSPNet,多尺度池化提取特征后,再upscale到同一个大小,concat起来,最后做卷积得到分割结果。
立体视觉&深度估计
双相机就能获得立体信息,一种方式可以直接基于像素或者使用更直观的特征(边缘、角点)来匹配像差;另一种方式可以使用卷积神经网络,每个像素处的视差向量可以视为一个分类问题。Content-CNN使用一组共享权重来处理左右图像,然后将他们的输出在内积层中合并,得到分类概率输出。
光流
两张图像之间的像素强度的运动。
两个问题:
与视差图像相比,光流的两张图片不是同时拍摄的。外观恒常性不一定存在。
光圈问题。意思是,比如假设有一条直线边缘在图像中移动。如果我们只观察一个小的局部区域(比如一个像素或小窗口),我们只能看到边缘在垂直于自身方向上的移动,而无法判断它是否沿着边缘本身滑动。
FlowNet: 直接把两帧图像扔进去卷积,网络自己学怎么算出每个像素的移动方向和距离,简单粗暴,像个“端到端”的黑盒,输入图像,输出光流图。
SpyNet: 灵感来自传统方法,用图像金字塔(从粗到细分解图像),一层一层估计运动。先算大范围的粗略移动,再逐步细化。也是用神经网络,但结构更像“分步走”。
MonoDepth:其实不是光流算法,是深度估计算法,作者在这里讲到主要是为了介绍非监督学习算法。不像传统立体匹配算法那样需要精确的视差标注,他是让网络自己去“猜”深度和视差,只通过图像一致性来监督。
鸟瞰视角感知 BEV
这个概念我之前从没听过,可能是自动驾驶用的比较多?作者这里写的特别多,看起来应该是作者很熟悉的领域。
它将透视图转化为鸟瞰图,并执行3D检测、地图分割、运动预测等任务。将多种传感器信息转换到统一的鸟瞰视角空间,就是从头顶上看下去的2D图上进行信息表征。用于下游各种感知任务。
分为三类,
1. 基于激光雷达
从点云输入。又分为Post BEV和Pre BEV。
前者先将点云转化为BEV空间,再进行2D特征提取,如MV3D。
后者先从点云中提取特征,然后高度轴被压缩最终形成BEV的2D张量特征。 如VoxelNet, SECOND, PV-RCNN, SA-SSd等。
2. 基于相机
以视觉为中心。视觉天然缺少了距离信息,因此其中隐含了深度估计的要求。
也分为两种,2D-3D, 3D-2D。
前者从2D特征中重建深度信息,提升信息到3D空间。可以预测深度信息后转为点云,输入给处理3D数据的模型。
后者利用3D-2D投影,应3D信息对2D特征进行编码。现在多基于Transformer架构,常为稀疏查询、密集查询和混合查询。其中稀疏查询以DETR为代表,只对感兴趣的物体计算其3D空间坐标,更适合于找东西。而密集查询则是为每一个查询都预先预设好了3D空间中的位置,更适合构建全局表征。
3. 基于融合。
从多个传感器输入融合。分为多模态融合和时间融合
多模态融合在3D空间或基于查询进行融合。
时间融合则是为了消除物体遮挡的影响。通过空间对齐、交叉注意力机制来补充缺失的表征。
笔者评价:
这一章看的时间比前面任何一章节都长,确实涨姿势了,不戳,后面继续。
- 2025-03-30
-
发表了主题帖:
《具身智能机器人系统》阅读笔记 Vol.2
本帖最后由 SHAN_JH 于 2025-3-30 12:32 编辑
上一篇笔记是本书第一部分,具身智能的背景知识,感觉作者是随便水了一下,被我狠狠吐槽了。
而这一个部分是具身智能系统基础模块,包含了计算系统、感知系统、定位系统、规划与控制系统几个部分。这里应该是作者的老本行,希望能有干货!
第三章:机器人计算系统
这里讲到的机器人是自主机器人,是在没有外界人为的信息输入和控制的情况下能够自主完成任务的机器人。作为对比的是传统的非自主的需要预编程的机器人。
本章以自动驾驶系统为例介绍基本任务和软硬件系统。是的,自动驾驶就是初级形态的具身智能。
自主机器人和环境的交互模型
机器人被给定一个task,然后机器人从环境中通过传感器获取信息,随后进行决策和执行,从而影响环境。然后在从新一个时刻的环境中获取信息,如此往复。
机器人计算系统的组成
传感模块:摄像头、毫米波雷达、激光雷达、惯性传感器、卫星定位传感器。
感知模块:物体识别、场景分割、目标追踪。
定位模块:确定机器人在场景中的位置,以便于自主移动。
规划模块:分为上层行为规划(任务分解)和下层路径规划(生成执行轨迹)。
控制模块:驱动机器人精确地按照规划出的路径运动,同时实时反馈机器人状态。
嵌入式计算平台:作为机器人多个模块的运算核心,要求他低延时(算的快),高吞吐率(数据带宽大),低功耗(省电)。深度学习大模型对计算平台要求高。
自动驾驶为例
自动驾驶原来从2004年就开始了,当时世界第一届自动驾驶汽车挑战赛,最好的汽车也只开了12KM,全程240KM。Waymo公司是无人驾驶车辆的先行者,而辅助驾驶越越来越多。
但是书中提到特斯拉的FSD的时候说是正在开发,而今天甚至国内都已经能用到FSD了。所以这个内容可能有点过时。(然而此书出版于24年11月。)
自动驾驶的传感器,主要是摄像头、毫米波雷达、激光雷达。摄像头在光线不足的时候性能会下降;激光雷达能提供高精三维点云,但容易受到雨雾影响;毫米波不太受天气影响但分辨率比较低。
自动驾驶的感知主要是2D检测与分割、3D物体检测和融合感知(各类传感器互补,得到一个对物体的统一表征)。近年来更多的深度学习方法被用于传感器融合。
自动驾驶的定位,主要通过GPS定位+惯性传感器进行位置估计。还有高精地图的方案,先收集高精地图,在运行的时候去做匹配从而定位。还有多传感器融合定位方案。
自动驾驶的规划,传统通常使用状态机。比如说根据感知去做场景分类(泊车vs行车,行车再分为高速和城区,再细分为跟车、超车、变道等等),听着就很Labor-intensive。确定行为之后,再结合感知系统提供的障碍物数据,生成平滑可行的路径。这里就会用到到路径规划算法(例如RRT)和轨迹优化/路径平滑算法 。
自动驾驶的控制,需求尽可能准确执行轨迹并避免抖动和不稳定。常用的算法包括经典的PID和MPC(模型预测控制)。注意这里的MPC里面的模型,不是指神经网络模型,而是说车辆的车辆动力学模型。MPC是一种基于优化理论的控制算法,通过数学模型预测未来状态,并优化控制输入,具有较好的稳定性和可解释性。也有基于深度学习和强化学习的控制器,但是由于计算量和延时问题用的不多。
具身智能与自动驾驶2.0
自动驾驶1.0的系统基于人工设计的功能规范和规则,可快速实现demo和有限场景落地,但通用性和泛化性是很大的问题。
而随着Transformer架构带来的各种模型智能的跃升,数据驱动的端到端自动驾驶,也就是自动驾驶2.0时代揭幕而来。
2021年特斯拉AI Day上首次演示端到端,用一个大模型整合多个感知小模型,用深度强化学习代替基于规则的规划控制。使用数据驱动代替人工规则,并利用仿真场景获得大量罕见场景的数据参与训练。
当然大模型的能力不止于此,真正的具身智能机器人的篇章也正在开启。早期工作例如Google的RT-1和RT-2。
具身智能的软件栈
通常有两种组织形式,端到端架构和模块化架构。
端到端架构:使用大模型来学习环境感知、决策运动的全流程,直接输出控制指令。也就是VLA模型(Vision-Language-Action Model)。参数量大,运行成本高,速度慢等问题。
2. 模块化架构:基于传统机器人架构+大模型赋能。一方面大模型提升了通用性,同时也保留了传统的定位、规划、控制,保证精度和实时性。但模块化设计难免引入人为规则与经验,降低通用性上限。瓶颈在于通用大模型与专用模块的覆盖范围的平衡与接口的划分。
具身智能的硬件: 大算力、高实时、低功耗、高并发(同时处理多传感器数据,并处理多个计算任务)
具身智能的数据
主要有互联网的图文视频数据、从实物机器人采集的数据、从虚拟环境中合成的数据。
图文数据主要用于预训练多模态大模型,而同时也有工作在尝试使用互联网视频数据学习机器人动作模型。
从实物机器人采集数据,主要是遥操作,但是成本太高了,也很慢。
虚拟数据生成起来容易,但是仿真环境难免与现实有别,有Sim2Real的gap。现在往往使用真实数据和虚拟合成数据混合训练,并利用Sim2Real的多种技巧来提高虚拟数据训练的有效性。
笔者评价:
这一章还是有干货的,讲的挺清楚,好评。期待后续阅读。
- 2025-03-04
-
发表了主题帖:
《具身智能机器人系统》阅读笔记 vol. 1 - 具身智能背景知识
作者的写作目标是:
1. 让读者了解一个完整的机器人计算系统的全部组件。
2. 展示具身智能赋能之下,机器人的新的发展方向。
如其名,是一本非常偏系统的书。这也正是我所欠缺的一部分知识。
希望能够在我的阅读笔记中体现出这两个目标来。
第一章
开篇部分讲解了一些具身智能的产业现状。
国外有Figure AI、1X Technology、波士顿动力、软银、谷歌、Deepmind、特斯拉。
国内只讲了国防科大的“先行者”,北理工的“汇童”。。一家公司都没有。
感觉对国内完全不自信,外国公司讲的多吹得多,国内公司根本没有提及。包括宇树都没有提到。
总是在说和国际领先团队的差距正在缩小。但是我感觉比如宇树和云深处等公司的机器人运动控制,难道不是世界最领先的嘛,为什么还是说差距缩小呢,我觉得我们才是世界领先。
具身智能机器人系统问题与挑战
应用场景多样性大,通用性意味着需要适配很大范围的任务,综合难度高。
供应链成本问题,产业尚未规模化。应当先找到大规模应用场景落地。
系统集成难度大,对大脑、小脑、肢体的有效结合而非孤立的技术点。(其实现在已经是综合的在研究)
数据瓶颈,数据采集成本高,各家缺乏数据共享,数据异质性问题。(不过现在已经有很多工作在解决这个问题了)
伦理规范,如何保护个人隐私,bias问题等等。
第二章:具身智能的历史和未来
历史
1987年,“智能行为应当从实际的物理互动中产生。” ----- Rodney Brooks
1999年, Understanding Intelligence (by Rolf Pfeifer et. al) 提出智能应当是整个身体结构和功能的综合体现,强调身体对智能的根本性影响。
2005, Embodiment Hypothesis,强调环境与身体的互动对于认知和智能的作用。
传统技术方向
1. 基于行为的人工智能:感知输入直接触发行为
2. 受神经生物学启发的人工智能:机器人的情感研究
3. 认知发展机器人学:认知发展的动态系统理论
认知是即时的事件,每一次思考都是独特的,依赖世界和系统内部的状态。
认知嵌入物理世界中而不是单独存在。
认知是非静态系统,行为和内部过程都随着与物理世界的互动而变化。
多模态感知,认知的发展收到多种感官系统的影响。
探索与社会互动对认知发展很重要。
感觉非常接近现在的具身的理念了,它挑战了传统认知发展理论中对于概念和常态认知机制的依赖。
4. 进化机器人学:使用进化算法(也就是组合、突变+自然选择)来探索机器人构型
5. 物理体现与互动: 强调物理形态及其在物理环境中的互动在认知过程中的作用。
思考不独立于身体存在,而是受到身体的严格限制,同时也可为身体所用。重点强调身体和认知过程的不可分割的联系。
大模型时代的具身智能技术
LLM带来了复杂语言理解、个性化交互、多模态交互。
常见的大模型都能为具身智能所用,包括了视觉基础模型(ResNet,SigLIP等,作为视觉编码器用);生成模型(GAN, VAE, Diffusion)正在被探索通过预测下一帧图像/生成数据集等方法帮助具身智能;LLM大语言模型, VLM视觉语言模型, MLLM多模态大模型等结合视觉语言理解能力,天然能够被用于提高机器人对环境的综合理解能力。其实VLM还更加能够被用于Planning等,不只是理解。
仿真平台对具身智能发展很重要,用于无风险大规模测试与训练。但是Sim2Real Gap问题仍需解决。
笔者评价:
从前两章看来,本书作者可能还是对机器人本身了解更多,对于基于AI的具身智能理解欠缺,众多文段可能是网上一搜,找到关键词给Chatgpt填充成文。当然这样的工作还是有意义的,聚合了信息,只是说没有那么优秀,缺失了行业的insight和许多关键内容。
笔者已经在上文中对书中内容做了一些要点补充。
举个例子,关于具身智能的仿真平台,作者冠以“具身智能设计自动化”的标题,而内容中主要讲解了仿真平台的好处。问题有三:第一,讲到了促进Sim to real的转移却没有讲到非常关键的Sim to real Gap问题。第二,作者只举例了一个Habitat的仿真平台,虽然是FAIR(Facebook人工智能研究院)推出的,但感觉是一个很小众的平台。我觉得,你多多少少,Gazebo, Mujoco, CoppeliaSim, Isaac Sim得提一提吧,但是都没有。以及第三,文段AI味道很浓。就像是把Habitat的arxiv上的PDF扔进ChatGPT然后总结了几段。
暂时不对后文的AI相关报任何期望,大概是因为作者并不是这个方向的,所以不太熟,也正常。只希望后面能在作者专业的领域,也就是机器人系统上看到作者独到而完整的见解。
- 2025-02-20
-
回复了主题帖:
读书入围名单: 《具身智能机器人系统》
个人信息无误,确认可以完成阅读分享计划