06感知与传感器
机器人怎么看和摸:相机、深度、IMU、力和触觉,以及点云、标定、SLAM。 · 307 条
- 6.1感知总览与相机成像27
- 6.2深度相机与激光雷达40
- 6.3本体感知与力觉14
- 6.4触觉感知30
- 6.5标定与时空对齐13
- 6.6检测、分割与跟踪35
- 6.7从图像恢复三维34
- 6.8点云处理与三维表示24
- 6.9物体位姿、抓取与可供性17
- 6.10人体、手部与人机交互14
- 6.11状态估计与SLAM36
- 6.12地图、语义与空间智能23
6.1感知总览与相机成像
感知分本体与外部两类;先学最常用的 RGB 相机:装在哪、怎么成像、有哪些参数。
- 本体感知Proprioception机器人对自身关节位置、速度、受力和姿态的感知,不看外部环境。
- 外部感知Exteroception机器人用相机、激光雷达等传感器获取自身以外环境信息的感知。
- 多模态感知Multimodal Perception同时用视觉、触觉、力觉、声音等多种感官信息来理解环境。
- 计算机视觉Computer Vision让计算机从图像和视频中提取有用信息、理解场景的学科。
- 机器视觉(工业视觉)Machine Vision (Industrial Vision)用相机和软件在产线上自动检测、测量、识别,并引导机器人。
- RGB相机RGB Camera输出彩色图像的普通相机,每个像素记录红、绿、蓝三个亮度值。
- 腕部相机Wrist Camera装在机械臂手腕或夹爪上、跟着手一起移动的相机,专看手边近景。
- 第三视角相机Third-Person (Static) Camera固定在机器人身体之外、从旁边看整个工作区的相机。
- 头部相机Head Camera装在机器人头部或机身顶部、提供接近人眼第一人称视角的相机。
- 手掌相机Palm Camera装在机器人手掌上的相机,抓取时近距离看清手和物体。
- 遮挡Occlusion目标被别的物体或机器人自己挡住,传感器看不全。
- 多视角Multi-View用多台相机或多个角度同时观察同一个场景。
- 针孔相机模型Pinhole Camera Model把相机看成一个理想小孔,三维点沿直线穿过小孔投到成像平面上的数学模型。
- 相机坐标系Camera Coordinate Frame以相机光心为原点、光轴为 z 轴的三维坐标系,描述物体相对相机的位置。
- 相机内参Camera Intrinsics描述相机自身成像方式的参数,决定三维点落在图像哪个像素上。
- 相机外参Camera Extrinsics描述相机在空间中放在哪、朝向哪的旋转加平移参数。
- 投影与反投影Projection / Back-Projection投影把三维点算到图像像素上,反投影用像素加深度算回三维点。
- 镜头畸变Lens Distortion真实镜头成像偏离理想针孔模型,把直线拍弯的现象。
- 视场角Field of View相机或传感器一次能看到的角度范围,常按水平、垂直、对角给出。
- 鱼眼相机Fisheye Camera装超广角鱼眼镜头的相机,视场常达 180° 左右,画面边缘明显弯曲。
- CMOS 图像传感器CMOS Image Sensor相机里把光变成数字图像的芯片,每个像素自带放大电路,是当今相机的主流。
- ISP(图像信号处理器)Image Signal Processor把图像传感器输出的原始数据加工成正常彩色图像的处理单元。
- 全局快门 / 卷帘快门Global Shutter / Rolling Shutter相机同时曝光全部像素,还是一行一行依次曝光的两种方式
- MIPI CSI-2 相机接口MIPI Camera Serial Interface 2图像传感器和处理器之间传图像数据的高速串行接口标准。
- GMSL 相机接口Gigabit Multimedia Serial Link用一根同轴线给相机供电并高速传图的车规级串行链路
- 事件相机Event Camera (Dynamic Vision Sensor)每个像素只在亮度变化时独立输出「事件」、不拍整帧图像的相机。
- 热成像相机(红外热像仪)Thermal (Infrared) Camera拍的不是可见光,而是物体发出的红外热辐射,能看出温度分布。
6.2深度相机与激光雷达
在相机成像的基础上加入距离:双目、结构光、ToF 深度相机和激光雷达。
- 3D视觉3D Vision让机器从图像或传感器数据中获得物体和场景三维几何信息的技术总称。
- 深度图Depth Map每个像素存的不是颜色,而是该点离相机有多远的图像。
- 点云Point Cloud由大量三维坐标点组成、用来表示物体或场景形状的数据。
- 深度相机Depth Camera (RGB-D Camera)除了彩色图像,还能给出每个像素到相机距离的相机。
- 双目相机Stereo Camera两个并排的相机同时拍照,靠左右图像的差异算出每个点的距离。
- 视差Disparity同一个点在左右两张图里的横向位置差,物体越近视差越大。
- 基线Stereo Baseline双目相机两个镜头光心之间的距离,决定能测多远、测多准。
- 立体匹配Stereo Matching在左右两张图里找同一点的对应位置,算出视差再换成深度。
- 主动双目Active Stereo (IR-Projected Stereo)双目相机加一个红外投射器打出散斑纹理,帮左右图像匹配算出深度。
- RealSense 深度相机(D435i / D405)RealSense Depth Camera (D435i / D405)原英特尔旗下的双目深度相机系列,机器人研究和产品里很常用。
- 奥比中光 Gemini 330 系列Orbbec Gemini 330 Series (Gemini 335 / 335L / 336)奥比中光的双目立体深度相机系列,室内外都能用,常装在机器人上。
- ZED 双目相机Stereolabs ZED Stereo Camera (ZED 2i / ZED X)法国 Stereolabs 出的被动双目深度相机系列,常见于移动机器人和数据采集。
- Luxonis OAK-D 相机Luxonis OAK-D / OAK 4 (DepthAI)Luxonis 出的自带 AI 芯片的双目深度相机,神经网络可直接在相机里跑。
- 结构光Structured Light向物体投射已知图案,根据图案的变形算出深度的测距方法。
- 散斑结构光Speckle Structured Light向场景投射随机红外光斑,靠光斑变形或匹配来算深度。
- 激光三角测量(线激光轮廓扫描)Laser Triangulation / Line-Laser Profiler激光打点或打线,相机从侧面看光斑位置,按三角几何算出距离和轮廓。
- 飞行时间法Time of Flight测量光从发出到被物体反射回来所用的时间,换算成距离。
- 直接飞行时间Direct Time of Flight发出光脉冲并直接计时回波,用往返时间算距离的深度测量方式。
- 间接飞行时间Indirect Time of Flight发射调制光、通过测回波相位差来算距离的深度测量方式。
- Azure Kinect 深度相机Microsoft Azure Kinect DK微软推出的开发者版 RGB-D 相机,集成深度、彩色、麦克风阵列和 IMU。
- 奥比中光 Femto BoltOrbbec Femto Bolt (iToF RGB-D Camera)奥比中光的间接飞行时间 RGB-D 相机,可接替微软 Azure Kinect。
- VCSEL(垂直腔面发射激光器)Vertical-Cavity Surface-Emitting Laser垂直于芯片表面出光的半导体激光器,是深度相机和激光雷达的常用光源。
- SPAD(单光子雪崩二极管)Single-Photon Avalanche Diode灵敏到能探测单个光子的光电器件,dToF 激光雷达和测距芯片的核心。
- 速腾聚创 AC1 主动相机RoboSense AC1 Active Camera速腾聚创把深度传感、彩色相机和 IMU 集成在一起的机器人视觉传感器
- 深度空洞Depth Holes (Missing Depth)深度相机测不出距离的像素,在深度图上通常记为 0。
- 飞点Flying Pixels深度图在物体边缘处出现、悬在前景和背景之间的错误深度点。
- 激光雷达LiDAR (Light Detection and Ranging)发射激光并测回波时间来测距,扫出周围三维点云的传感器。
- 2D激光雷达2D LiDAR (Single-Line Laser Scanner)旋转扫描一个水平面,测出四周各方向障碍物距离的激光测距仪。
- 激光雷达线数LiDAR Channels (Beams)多线激光雷达竖直方向上激光通道的数量,决定点云上下方向的疏密。
- 固态激光雷达Solid-State LiDAR没有整体旋转部件、靠电子或微小机构扫描的激光雷达。
- FMCW 激光雷达(调频连续波激光雷达)Frequency-Modulated Continuous-Wave LiDAR连续发射调频激光,每个点同时测出距离和速度的激光雷达
- 览沃 Mid-360Livox Mid-360览沃科技的小型 360° 混合固态激光雷达,自带 IMU,常用于移动机器人。
- 禾赛 JT128Hesai JT128禾赛科技面向机器人的 128 线小体积、超广视场 3D 激光雷达。
- 速腾聚创 AiryRoboSense Airy速腾聚创面向机器人的半球视场数字激光雷达,360°×90° 一颗覆盖
- 宇树 4D 激光雷达 L1 / L2Unitree 4D LiDAR L1 / L2宇树自研的低价半球视场激光雷达,每个点带三维坐标加灰度。
- 毫米波雷达Millimeter-Wave Radar发射毫米级波长电磁波,测目标距离、速度和方位的雷达。
- 超声波传感器Ultrasonic Sensor发出超声波、听回声来测距的低成本近距离传感器。
- 接近觉传感器Proximity Sensor不用接触,就能感知附近有没有物体、离得多近的传感器。
- 安全激光扫描仪 / 安全光幕Safety Laser Scanner / Safety Light Curtain经过安全认证的人员闯入检测设备,有人进入危险区就让机器停下
- 纯视觉方案Vision-Only Approach只靠摄像头感知环境,不用激光雷达、毫米波雷达等测距传感器。
6.3本体感知与力觉
从感知外界转向感知自身:编码器与 IMU 测运动,力/力矩传感器测受力和接触。
- 编码器Rotary Encoder装在电机或关节上、把转轴角度转换成电信号的位置传感器。
- 惯性测量单元Inertial Measurement Unit用加速度计和陀螺仪测量物体加速度和转动快慢的传感器。
- 姿态解算(AHRS 航姿参考系统)Attitude Estimation / Attitude and Heading Reference System融合陀螺仪、加速度计(和磁力计)数据,实时算出横滚、俯仰、偏航角。
- 互补滤波Complementary Filter陀螺仪管短期、加速度计管长期,按比例混合两者来估计姿态角的简单滤波方法。
- 传感器漂移(零漂)Sensor Drift (Zero Drift / Bias Drift)传感器在输入不变时,读数仍随时间或温度缓慢偏移的现象
- Allan 方差(IMU 噪声标定)Allan Variance看传感器噪声随平均时长怎么变的统计方法,常用来标定 IMU 噪声参数。
- 六维力传感器Six-Axis Force/Torque Sensor同时测三个方向的力和绕三根轴的力矩,常装在机械臂手腕上。
- 关节力矩传感器Joint Torque Sensor装在机器人关节里、直接测量该关节实际输出扭矩的传感器。
- 应变片Strain Gauge贴在金属上、受力变形时电阻跟着变的小元件,力传感器的基本单元。
- 维间耦合Crosstalk (Inter-axis Coupling) of Multi-axis Force Sensors多维力传感器只受一个方向的力,其他方向的读数也跟着变的现象。
- 无传感器力估计Sensorless Force Estimation不装力传感器,用电机电流和动力学模型推算机器人受到的外力
- 接触检测Contact Detection判断机器人是否、何时、在哪里碰到了物体或环境。
- 足底力传感器Foot Force Sensor装在足式机器人脚底或脚踝,测脚和地面之间接触力的传感器
- 接触估计Contact Estimation (Touchdown Detection)判断足式机器人每只脚此刻是踩在地上,还是悬在空中。
6.4触觉感知
比力传感器更细的「摸」:触觉阵列、电子皮肤、视触觉传感器及触觉数据的用法。
- 触觉传感器Tactile Sensor让机器人感知接触的传感器,测压力分布、接触位置、剪切力和滑动。
- 电子皮肤Electronic Skin贴在机器人表面、柔软可弯的大面积触觉传感层,模仿人的皮肤。
- 触觉阵列Tactile Array把很多个小触觉感应单元排成网格,测出接触面上各处的压力分布。
- 触觉单元(触元)Taxel (Tactile Pixel)触觉阵列里最小的感应单元,相当于触觉版的「像素」。
- 压阻式触觉传感Piezoresistive Tactile Sensing靠材料受压后电阻变化来测压力,便宜、易做成大面积阵列。
- 电容式触觉传感Capacitive Tactile Sensing按压改变电极间距或介电层,用测到的电容变化推算接触力的触觉传感方式。
- 压电式触觉传感Piezoelectric Tactile Sensing利用材料受力产生电荷的压电效应,感知接触和振动。
- 磁性触觉传感Magnetic Tactile Sensing在软胶里掺磁性颗粒,用磁力计测变形引起的磁场变化来感知接触。
- 磁性触觉皮肤:软皮里掺磁粉,下方磁力计读磁场变化来感知接触。
- uSkinuSkin (XELA Robotics)XELA 的磁性触觉皮肤,每个触点能同时测压力和剪切力。
- 帕西尼 PX-6AX 多维触觉传感器PaXini PX-6AX Multi-dimensional Tactile Sensor帕西尼感知的多维触觉传感器,能输出分布力、合力和力矩。
- BioTacBioTac (SynTouch biomimetic fingertip tactile sensor)SynTouch 公司的仿人指尖触觉传感器,可感知接触力、微振动和温度。
- 视触觉传感器Vision-Based Tactile Sensor用内置相机拍软胶表面的形变,把触觉转成图像的触觉传感器。
- 光度立体Photometric Stereo相机不动、从多个方向打光拍照,由明暗反推表面朝向和形状。
- 用相机拍弹性胶体形变来测触觉的视触觉传感器,也是同名公司。
- GelSight 公司的商用小型视触觉传感器,插 USB 即可用
- DIGIT 视触觉传感器DIGITMeta 开源的低成本指尖大小视触觉传感器,用相机拍凝胶变形来感知接触。
- Meta 发布的指尖形多模态触觉传感器,能感知力、振动、温度等。
- MIT 做的细长手指形视触觉传感器,能装在夹爪上抓东西
- 清华许华哲团队等开源的小型视触觉传感器,能测接触形状和六维力。
- 戴盟 DM-Tac 视触觉传感器Daimon DM-Tac Visuotactile Sensor戴盟机器人的视触觉传感器系列,靠内置相机拍接触面形变来感知力。
- 英国布里斯托机器人实验室做的仿生光学触觉指尖,用相机看内部标记针的移动。
- 标记点跟踪Marker Tracking (Tactile Markers)在视触觉传感器的软胶上印点阵,跟踪点的位移来估计剪切力和滑移。
- 滑移检测Slip Detection判断手里抓着的物体是不是正在滑动,好及时加力或调整。
- 外部接触感知Extrinsic Contact Sensing推断手中物体与外部环境在哪里、以什么方式接触的感知任务。
- 触觉图像Tactile Image把触觉传感器的读数排成二维图像,方便直接用视觉模型处理。
- SparshSparsh: Self-supervised Touch Representations for Vision-based Tactile Sensing (Meta)Meta 发布的视触觉通用表征模型,用自监督在大量触觉图像上预训练。
- AnyTouchAnyTouch: Learning Unified Static-Dynamic Representation across Multiple Visuo-tactile Sensors人大胡迪团队等提出的跨多种视触觉传感器的统一触觉表征模型,兼顾静态和动态。
- 接触式麦克风(音频触觉)Contact Microphone (Audio as Tactile Signal)贴在夹爪或物体上拾取接触振动的麦克风,被当作廉价的触觉传感器。
- 视触觉融合Visuo-Tactile Fusion把相机看到的和触觉传感器摸到的信息合起来使用
6.5标定与时空对齐
传感器都认识了,再把它们对齐:相机与手眼标定、多传感器外参和时间同步。
- 相机标定Camera Calibration求出相机内参、畸变系数和外参,让像素和三维坐标能互相换算。
- 标定板Calibration Board (Checkerboard / ChArUco)印有已知尺寸图案的平板,给相机标定提供精确的参考点。
- 重投影误差Reprojection Error把估计的三维点按相机参数投回图像,与实际观测像素之间的距离。
- 印出来贴上的黑白方块码,相机看到就能算出它的编号和 6D 位姿。
- ArUco码ArUco Marker黑边包着黑白方格编码的方形标签,相机识别它就能算出自己相对标签的位姿。
- PnP(透视n点)Perspective-n-Point已知若干三维点和它们在图像中的位置,反求相机位姿。
- 手眼标定Hand-Eye Calibration求出相机和机械臂之间那个固定坐标变换的标定过程。
- 眼在手上Eye-in-Hand把相机固定在机械臂末端、随手一起运动的安装方式。
- 眼在手外Eye-to-Hand相机固定在机器人外部、不随机械臂运动的安装方式,及对应的手眼标定。
- 深度与彩色对齐Depth-to-Color Alignment (Depth Registration)把深度图重投影到彩色相机的视角,让两张图的像素一一对应。
- 相机-IMU联合标定Camera-IMU Calibration求出相机与 IMU 之间的相对位姿和时间偏移,让两路数据能对齐融合。
- 相机-激光雷达联合标定Camera-LiDAR Extrinsic Calibration求出激光雷达与相机之间的旋转和平移,让点云能准确投影到图像上。
- 多传感器时间同步Multi-Sensor Time Synchronization (Hardware Trigger / Timestamp Alignment)让不同传感器的数据按同一时刻对齐,不把不同时间采到的数据拼在一起。
6.6检测、分割与跟踪
从这里进入视觉算法:在图像里框出、抠出、跟踪物体,并能用文字指定目标。
- 目标检测Object Detection在图像里找出物体是什么、在哪里,并用方框标出来的任务。
- 检测框(边界框)Bounding Box (Detection)目标检测中框住物体的矩形,用几个坐标标出物体在图里的位置。
- YOLOYou Only Look Once整张图只过一遍网络就框出所有物体的实时目标检测模型系列。
- 交并比Intersection over Union两个区域的重叠面积除以合并面积,衡量预测框或掩码准不准。
- 非极大值抑制Non-Maximum Suppression从一堆重叠的检测框里只留下分数最高那个的后处理步骤。
- DETRDEtection TRansformer用 Transformer 把目标检测直接当作「集合预测」来做的端到端检测器。
- 精确率 / 召回率Precision / Recall (F1)精确率看报出来的有多少是对的,召回率看该找的找回了多少。
- 平均精度均值mean Average Precision目标检测和分割最常用的精度指标:各类别平均精度(AP)再取平均。
- 语义分割Semantic Segmentation给图像里每个像素标上类别,如「桌子」「杯子」「地面」。
- 实例分割Instance Segmentation把图中每个物体逐像素抠出来,同类的几个物体也要分开。
- 全景分割Panoptic Segmentation给每个像素标类别,同时把每个物体个体区分开的分割任务。
- 掩码Mask与图像同尺寸的逐像素标记图,标出哪些像素属于某个物体。
- 何恺明等 2017 年提出的实例分割模型,同时输出检测框和每个物体的掩码。
- 分割一切模型Segment Anything ModelMeta 2023 年发布的可提示分割基础模型,给个点或框就能分割出对应物体。
- 关键点检测Keypoint Detection在图像里定位几个事先约定含义的点,如手腕、杯把手或箱子角。
- 目标跟踪Object Tracking在连续视频帧里持续找到同一个物体,并给它保持同一个编号。
- 视频目标分割Video Object Segmentation在视频的每一帧里持续抠出指定物体的像素掩码。
- SAM 2(视频分割一切)SAM 2: Segment Anything in Images and VideosMeta 的图像与视频通用分割模型,点一下目标就能在整段视频里持续分割跟踪。
- 光流Optical Flow相邻两帧图像之间,每个像素往哪个方向移动了多少。
- RAFT 光流RAFT: Recurrent All-Pairs Field Transforms for Optical Flow经典光流网络:算全部像素间的相关性,再用循环单元反复迭代细化光流。
- 场景流Scene Flow场景中每个 3D 点在相邻两帧之间的三维运动向量
- 任意点跟踪Tracking Any Point给视频里任意一个点,输出它在之后每一帧的位置和是否被遮挡。
- TAPIRTAPIR: Tracking Any Point with per-frame Initialization and temporal RefinementDeepMind 的任意点跟踪模型:先逐帧找候选匹配,再沿时间精修轨迹。
- CoTrackerCoTracker: It is Better to Track TogetherMeta 开源的视频点跟踪模型,能联合跟踪大量像素点,包括被遮挡的点。
- 3D 点跟踪3D Point Tracking在视频里持续追踪任意像素点,给出它在三维空间中的运动轨迹。
- 开放词汇检测Open-Vocabulary Object Detection用文字说出要找什么,检测器就能框出来,不限于训练时的固定类别。
- Grounding DINOGrounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection输入图片和一段文字,就能框出文字所指物体的开放词汇目标检测模型。
- OWL-ViT / OWLv2OWL-ViT / OWLv2 (Open-World Localization Vision Transformer)谷歌提出的开放词汇目标检测模型,可用文字或示例图查找物体。
- YOLO-WorldYOLO-World: Real-Time Open-Vocabulary Object Detection输入文字类别名就能实时检测对应物体的开放词汇检测器
- DINO-X(开放世界检测)DINO-X: A Unified Vision Model for Open-World Object Detection and Understanding (IDEA)IDEA 研究院的开放世界检测模型,可按文字、示例或无提示框出物体。
- 开放词汇分割Open-Vocabulary Segmentation用任意文字描述类别,模型就能把对应的像素分割出来。
- Grounded-SAMGrounded SAM: Assembling Open-World Models for Diverse Visual Tasks用一句文字就能把图里对应物体框出来并精细分割的开源流水线
- SAM 3(可提示概念分割)SAM 3: Segment Anything with Concepts (Promptable Concept Segmentation)Meta 第三代分割模型,给一个名词短语或示例图,就能分割出所有同类物体。
- 视觉定位(Grounding)Visual Grounding根据一句话描述,在图像里找出它所指物体的位置。
- 指代表达分割Referring Expression Segmentation根据一句描述某个物体的话,在图中把那个物体精确抠出来。
6.7从图像恢复三维
不靠深度传感器,只用普通图像估深度、做多视图几何,再到网络一步出三维。
- 深度估计Depth Estimation推断图像里每个像素离相机有多远,输出一张深度图。
- 单目深度估计Monocular Depth Estimation只用一张普通彩色图像,预测每个像素离相机有多远。
- 度量深度 / 相对深度Metric Depth / Relative Depth度量深度以米给出真实距离;相对深度只给远近关系,差一个未知缩放和偏移。
- Depth AnythingDepth Anything (V1 / V2)港大与 TikTok 推出的单目深度估计基础模型,一张照片就能出深度图。
- Depth ProDepth Pro: Sharp Monocular Metric Depth in Less Than a Second (Apple)苹果开源的单目度量深度模型,一张图输出以米为单位的清晰深度图。
- Metric3DMetric3D: Towards Zero-shot Metric 3D Prediction from a Single Image从单张图片估计米制深度的模型,靠标准相机空间变换消除不同相机的尺度歧义。
- MoGeMoGe (Monocular Geometry Estimation)微软研究院的单图 3D 几何估计模型,输出每个像素的 3D 点。
- FoundationStereoFoundationStereo: Zero-Shot Stereo Matching英伟达的双目立体匹配基础模型,换场景不用微调也能出深度
- 把低成本激光雷达的稀疏深度当「提示」,让深度大模型输出 4K 米制深度。
- 深度补全Depth Completion把深度图里缺失或稀疏的像素补齐,得到完整、稠密的深度。
- 蚂蚁灵波 LingBot-DepthLingBot-Depth (Masked Depth Modeling for Spatial Perception)蚂蚁灵波开源的深度补全模型,用彩色图修补深度相机的空洞和噪声。
- CDM 相机深度模型Camera Depth Models字节 Seed 提出的深度修复模型,把深度相机的噪声深度修成接近仿真的精确深度。
- 透明/反光物体感知Transparent & Reflective Object Perception让机器人看清玻璃杯、金属件这类深度相机「看不准」的物体。
- 透明/反光物体感知(数据集基准)Transparent & Reflective Object Perception Datasets and Benchmarks专为玻璃、金属等深度相机难测物体收集的深度与分割数据集
- 特征点Feature Points (SIFT / ORB)图像中角点、斑点等容易被重复找到的点,外加一个描述其周围外观的向量。
- 特征匹配Feature Matching在两张图像之间找出对应同一个物理点的特征点配对。
- SuperPoint / LightGlueSuperPoint / SuperGlue / LightGlue (Learned Feature Matching)一组用神经网络做特征点检测和跨图匹配的模型,替代 SIFT 等手工方法。
- 稠密对应Dense Correspondence (Semantic Correspondence)为一张图里的每个像素,找到它在另一张图里对应的位置。
- 随机采样一致性Random Sample Consensus反复随机抽少量数据拟合模型,留下最多数据支持的那个,以剔除异常值。
- 对极几何Epipolar Geometry两台相机看同一场景时,对应点必须落在特定直线上的几何关系。
- 单应性矩阵Homography描述同一平面在两张图像之间像素对应关系的 3×3 矩阵。
- 三角化Triangulation已知两台相机的位置和同一点在两张图上的像,反算出该点的三维坐标。
- 光束法平差Bundle Adjustment同时微调所有相机位姿和三维点坐标,让重投影误差最小的优化步骤。
- 运动恢复结构Structure from Motion从一堆不同角度拍的照片里,同时算出相机位姿和场景三维点。
- 多视图立体Multi-View Stereo用多张已知位姿的照片恢复场景稠密三维结构的方法。
- 前馈式三维重建Feed-Forward 3D Reconstruction一次网络前向计算就从图像直接输出相机参数、深度和点云的三维重建方法。
- 点图Pointmap和图像同尺寸的数组,每个像素存的是一个 3D 坐标而不是颜色。
- DUSt3RDUSt3R: Geometric 3D Vision Made Easy无需相机参数,直接从两张图回归逐像素三维点图的前馈式重建模型。
- MASt3RMASt3R: Grounding Image Matching in 3DNaver 在 DUSt3R 上加匹配头的模型,同时输出三维点图和稠密匹配特征。
- VGGTVGGT: Visual Geometry Grounded Transformer一次前向就从多张图算出相机参数、深度和点云的三维视觉模型
- π³(Pi3)π³: Permutation-Equivariant Visual Geometry Learning不设参考视角、不受输入顺序影响的前馈式三维重建模型
- CUT3RCUT3R: Continuous 3D Perception Model with Persistent State带持续记忆状态的 3D 重建模型,逐帧读图、在线更新整个场景。
- MapAnythingMapAnything: Universal Feed-Forward Metric 3D ReconstructionMeta 与 CMU 的通用前馈三维重建模型,直接输出带真实尺度的场景结构。
- Depth Anything 3Depth Anything 3: Recovering the Visual Space from Any Views字节 Seed 的几何模型,从任意张图恢复深度和相机位姿,位姿可给可不给。
6.8点云处理与三维表示
拿到三维数据后:点云的降采样、配准与网络,再到网格、NeRF、高斯泼溅等表示。
- 体素Voxel三维空间里的小立方格,相当于立体版的像素。
- 点云滤波与降采样(体素降采样 / 离群点去除)Point Cloud Filtering & Voxel Downsampling给原始点云裁掉无关区域、去掉噪点、减少点数的预处理步骤。
- 最远点采样Farthest Point Sampling每次挑离已选点最远的点,把点云均匀降到固定点数的下采样方法。
- 法向量估计Surface Normal Estimation算出物体表面每一点朝哪个方向,也就是垂直于表面的那根向量。
- FPFH 点云特征Fast Point Feature Histograms用邻域内法向量几何关系的统计直方图,描述每个点局部形状的手工特征。
- 点云配准Point Cloud Registration求一个旋转加平移,把两份点云对齐到同一个坐标系里。
- 迭代最近点Iterative Closest Point反复找最近点对、求旋转和平移,把两片点云对齐的经典配准算法。
- NDT 配准(正态分布变换)Normal Distributions Transform把点云划成格子、每格用正态分布描述,再据此对齐两帧点云。
- 倒角距离Chamfer Distance两组点云互相找最近点并把距离平均,用来衡量两个形状有多接近。
- PointNetPointNet / PointNet++直接处理无序点云做分类和分割的开创性网络,PointNet++ 是其分层升级版。
- Point Transformer V3Point Transformer V3: Simpler, Faster, Stronger处理点云的 Transformer 骨干网络,靠「序列化」变得更快、看得更广。
- 点云分割Point Cloud Segmentation给点云里的每个点打标签,分出它属于哪类物体或哪一个物体。
- 3D目标检测3D Object Detection在三维空间里找出物体,给出类别和带朝向的立体框。
- 点云补全 / 形状补全Point Cloud Completion / Shape Completion输入残缺的点云,推测并补出物体被遮挡或没扫到的部分。
- 网格(三角网格)Triangle Mesh用顶点和三角形面片拼出物体表面的三维表示方式。
- 截断符号距离函数Truncated Signed Distance Function在体素网格里存到最近表面的带符号距离,用来融合多帧深度图重建三维。
- 隐式表示 / 显式表示Implicit vs. Explicit 3D Representation3D 场景是直接存几何元素,还是存成一个可按坐标查询的函数。
- 神经辐射场Neural Radiance Fields用神经网络记住场景里每个点的颜色和密度,能渲染出任意新视角的图像。
- 3D高斯泼溅3D Gaussian Splatting用大量带颜色的三维高斯椭球表示场景,可实时渲染任意新视角。
- 新视角合成Novel View Synthesis根据已有几张照片,生成场景在没拍过的视角下的样子。
- 4D重建4D Reconstruction (Dynamic Scene Reconstruction)重建会动的三维场景:三维几何加上它随时间的变化。
- 单图生成3DSingle-Image 3D Reconstruction (Image-to-3D)只给一张照片,让模型补全出物体完整的三维形状和纹理。
- 混元3D(Hunyuan3D)Hunyuan3D (Tencent image-to-3D asset generation, 2.0 / 2.1 / 2.5)腾讯开源的图生 3D 资产模型系列,能从图片生成带贴图的 3D 网格。
- SAM 3DSAM 3D (SAM 3D Objects / SAM 3D Body)Meta 开源的单张图片 3D 重建模型,分物体版和人体版
6.9物体位姿、抓取与可供性
把前面的三维感知用于操作:估计物体 6D 位姿、检测抓取、找可供性和铰接结构。
- 6D位姿估计6D Object Pose Estimation从图像中算出物体相对相机的三维位置和三维朝向,共六个自由度。
- FoundationPoseFoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects英伟达的通用 6D 位姿模型,新物体不用再训练就能估计和跟踪位姿。
- MegaPoseMegaPose: 6D Pose Estimation of Novel Objects via Render & Compare只要物体的 CAD 模型、不用重新训练,就能估计新物体 6D 位姿的方法。
- SAM-6DSAM-6D: Segment Anything Model Meets Zero-Shot 6D Object Pose Estimation借助 SAM 分割,对没见过的物体零样本估计 6D 位姿的方法
- 位姿跟踪Pose Tracking在连续视频帧里持续估计物体的 3D 位置和朝向。
- 类别级位姿估计Category-Level Pose Estimation不需要具体物体的 CAD 模型,对某一类里没见过的物体估计 6D 位姿和尺寸。
- NOCS 归一化物体坐标空间Normalized Object Coordinate Space给同类物体定一个统一的标准坐标系,用来估计没见过物体的位姿和尺寸。
- ADD / ADD-S 位姿误差指标Average Distance of Model Points (ADD / ADD-S)把物体模型分别按真值和预测位姿摆好,算点的平均距离,用来评 6D 位姿估计。
- BOP 位姿估计基准BOP: Benchmark for 6D Object Pose Estimation捷克理工大学维护的 6D 物体位姿估计公开基准和年度挑战赛。
- 3D 视觉引导3D Vision-Guided Robotics用 3D 相机识别工件的位置和姿态,引导工业机器人去抓取或加工。
- 抓取位姿检测Grasp Pose Detection从图像或点云直接算出夹爪该放在哪、朝哪个方向去抓的感知任务。
- AnyGraspAnyGrasp: Robust and Efficient Grasp Perception in Spatial and Temporal Domains上海交大提出的通用抓取检测模型,从点云直接给出大量可用抓取位姿。
- Contact-GraspNetContact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes英伟达的抓取网络,从深度点云直接生成杂乱场景中的 6 自由度抓取。
- GraspGenGraspGen: A Diffusion-based Framework for 6-DOF Grasping with On-Generator Training英伟达用扩散模型生成 6 自由度抓取位姿、再打分筛选的框架
- 语义关键点Semantic Keypoints用物体上几个有含义的点(如杯把、壶嘴)来表示物体,方便规划操作
- 可供性检测Affordance Detection / Affordance Grounding从图像或点云里找出物体哪里能握、能按、能倒,并标到具体区域上。
- 铰接结构估计Articulation Estimation从观测中推断物体有哪些部件、靠什么关节相连、绕哪根轴动、现在开了多少。
6.10人体、手部与人机交互
感知对象从物体换成人:人体与手的姿态、三维网格,以及手势、视线和语音。
- 人体姿态估计Human Pose Estimation从图像或视频里找出人的各个关节位置,连成一副骨架。
- 手部姿态估计Hand Pose Estimation从图像或传感器数据估计人手各关节位置和手指弯曲姿态的任务。
- MediaPipe(手部/人体关键点)Google MediaPipe (Hand Landmarker / Pose Landmarker)谷歌开源的端侧视觉工具,能从普通摄像头画面实时提取手和人体关键点。
- 无标记动捕Markerless Motion Capture不在身上贴标记点,直接从普通视频里恢复人体三维动作。
- SMPL 人体模型Skinned Multi-Person Linear Model用少量形状和姿态参数生成三维人体网格的参数化人体模型。
- 人体网格恢复Human Mesh Recovery从图像或视频估计人体完整 3D 网格(姿态加体型)的任务。
- GVHMRGVHMR: World-Grounded Human Motion Recovery via Gravity-View Coordinates从单目视频恢复人在世界坐标系里 3D 动作的方法。
- HaMeRHaMeR (Hand Mesh Recovery)从单张 RGB 图像重建 3D 手部网格的 Transformer 模型。
- WiLoRWiLoR: End-to-end 3D Hand Localization and Reconstruction in-the-wild从图像中快速找出多只手,并重建成三维手部网格
- 手物交互Hand-Object Interaction研究人手怎样接触、抓握和操作物体,包括估计手和物体的三维姿态与接触。
- 手势识别Gesture Recognition让机器从图像或传感器信号里认出人做的手势并理解其含义
- 眼动追踪 / 注视估计Eye Tracking / Gaze Estimation测量人眼转动,并估计这个人此刻正在看哪里。
- 麦克风阵列Microphone Array多个麦克风按固定几何排布协同工作,用来定向拾音、判断声音从哪来。
- 语音识别Automatic Speech Recognition把人说的话自动转成文字,是机器人听懂口头指令的第一步。
6.11状态估计与SLAM
回答「我在哪」:从各类里程计和多传感器融合,到 SLAM 与已知地图里的定位。
- 状态估计State Estimation用带噪声的传感器读数,推算机器人此刻的位置、姿态和速度。
- 多传感器融合Multi-Sensor Fusion把相机、激光雷达、IMU 等多个传感器的数据合起来,得到更准更稳的估计。
- 轮式里程计Wheel Odometry数轮子转了多少,推算机器人走了多远、转了多少角度。
- 腿式里程计Leg Odometry (Proprioceptive Odometry)靠关节编码器、IMU 和触地判断,推算足式机器人走了多远、朝哪走。
- 学习型状态估计器Learned State Estimator (Concurrent Estimator Network)用神经网络从关节和 IMU 数据估出机身速度等量,常与运控策略一起训练。
- 视觉里程计Visual Odometry比较相邻帧图像,逐帧推算相机走了多远、转了多少。
- 同步定位与建图Simultaneous Localization and Mapping机器人在陌生环境里一边画地图、一边算出自己在地图上的位置。
- SLAM 前端 / 后端SLAM Front-end / Back-endSLAM 系统的两段分工:前端处理传感器数据估运动,后端全局优化纠误差。
- 回环检测Loop Closure Detection让机器人认出自己回到了到过的地方,用来消除 SLAM 的累积漂移。
- 视觉位置识别Visual Place Recognition看一张图,判断这是哪个地方、之前是否来过
- 重定位Relocalization机器人跟丢或重启后,在已有地图里重新确定自己在哪、朝哪。
- 视觉SLAMVisual SLAM只靠相机,边估计自己在哪、边把周围环境建成地图。
- 萨拉戈萨大学开源的经典视觉 SLAM 系统,支持单目、双目、RGB-D 和 IMU。
- 激光SLAMLiDAR SLAM用激光雷达扫描的点云,一边给机器人定位,一边建环境地图。
- LOAM 系列激光里程计LOAM (LiDAR Odometry and Mapping) / LeGO-LOAM把激光 SLAM 拆成高频里程计和低频建图的经典方法,及其轻量化变体。
- 占据栅格地图Occupancy Grid Map把环境切成小格子,每格记录被障碍物占着的概率。
- 粒子滤波Particle Filter用一大群带权重的随机样本近似状态分布的递推估计方法。
- AMCL 自适应蒙特卡洛定位Adaptive Monte Carlo Localization在已知地图上用粒子滤波和激光扫描估计机器人位置的 ROS 定位模块。
- GNSS / RTK 定位GNSS / Real-Time Kinematic Positioning用卫星导航加基准站差分校正,在户外做到厘米级定位
- UWB 定位(超宽带)Ultra-Wideband Positioning用极短的无线电脉冲测信号飞行时间,在室内做厘米级测距定位。
- 紧耦合 / 松耦合融合Tightly-coupled vs. Loosely-coupled Fusion多传感器融合的两种方式:融合原始测量,还是各算各的结果再合并。
- 误差状态卡尔曼滤波Error-State Kalman Filter不直接估计状态本身,而是估计「名义值与真值之差」的卡尔曼滤波写法。
- 无迹卡尔曼滤波Unscented Kalman Filter用一小组采样点代替求导,来处理非线性系统的卡尔曼滤波。
- 不变扩展卡尔曼滤波Invariant Extended Kalman Filter在李群上定义误差的扩展卡尔曼滤波,收敛更稳,常用于足式机器人状态估计。
- 因子图优化Factor Graph Optimization把各种测量约束画成「变量-因子」图,再用最小二乘求最可能状态的方法。
- IMU 预积分IMU Preintegration把两帧之间的大量 IMU 读数预先积成一条相对运动约束的技术。
- 视觉惯性里程计Visual-Inertial Odometry融合相机和IMU,连续推算设备自身的运动轨迹
- VINS-Mono / VINS-FusionVINS-Mono / VINS-Fusion (Visual-Inertial Navigation System)港科大开源的视觉惯性定位系统,用相机加IMU实时估计位姿
- 激光惯性里程计LiDAR-Inertial Odometry把激光雷达点云和 IMU 读数融合,实时估计机器人位姿并建点云地图。
- FAST-LIO / FAST-LIO2FAST-LIO2: Fast Direct LiDAR-inertial Odometry港大 MARS 实验室开源的激光雷达加 IMU 里程计,快,适配多种雷达。
- LIO-SAMLIO-SAM (LiDAR Inertial Odometry via Smoothing and Mapping)基于因子图优化的紧耦合激光惯性里程计与建图开源系统。
- RTAB-MapRTAB-Map (Real-Time Appearance-Based Mapping)开源的图优化 SLAM 库,支持 RGB-D、双目和激光雷达建图定位
- DROID-SLAMDROID-SLAM: Deep Visual SLAM普林斯顿提出的深度学习视觉 SLAM,循环迭代估计相机位姿和稠密深度。
- MASt3R-SLAMMASt3R-SLAM: Real-Time Dense SLAM with 3D Reconstruction Priors以 MASt3R 为先验的实时单目稠密 SLAM,普通视频不标定也能建图定位。
- 高斯泼溅 SLAMGaussian Splatting SLAM (e.g. SplaTAM / MonoGS)用 3D 高斯泼溅当地图,边定位边建出能逼真渲染的场景
- ATE / RPE(绝对 / 相对轨迹误差)Absolute Trajectory Error / Relative Pose Error衡量 SLAM 或里程计估计的轨迹和真值差多少的两个标准指标。
6.12地图、语义与空间智能
在定位之上理解整个场景:几何与语义地图、场景图,到大模型的空间推理与主动感知。
- 场景理解Scene Understanding从图像、深度或点云中弄清环境里有什么、在哪里、彼此是什么关系。
- 八叉树地图Octree Map (OctoMap)用八叉树分层存储的三维概率占据地图,常用于机器人避障和规划。
- nvbloxNVIDIA nvblox (GPU TSDF/ESDF Mapping)英伟达开源的 GPU 加速三维建图库,实时生成用于避障的距离场地图。
- 占用网络Occupancy Network用神经网络判断三维空间里每个位置是否被物体占据。
- 鸟瞰图Bird's-Eye View从正上方往下看的二维栅格表示,把多个传感器的信息统一铺到地面平面上。
- 高程图Elevation Map把地面划成网格、每格记一个高度值的 2.5D 地形图,常用于足式机器人。
- 高度扫描Height Scan在机器人周围按固定图案采样地面高度,作为运控策略的地形输入。
- 可通行性估计Traversability Estimation判断前方地形哪里能走、哪里不能走、走起来代价多大。
- 拓扑地图Topological Map (Topological Graph)用「地点节点+连通边」表示环境的地图,只记哪里能到哪里,不记精确坐标。
- 语义地图Semantic Map在几何地图上标注「这里是什么」,能按物体或自然语言查询的地图
- 语义SLAMSemantic SLAM在定位建图的同时识别物体类别,输出带语义标签的地图
- 3D场景图3D Scene Graph用分层的图把三维场景里的楼层、房间、物体和它们的关系组织起来。
- ConceptGraphsConceptGraphs: Open-Vocabulary 3D Scene Graphs for Perception and Planning把多视角图像融合成开放词汇的 3D 物体场景图,供大模型推理和机器人规划使用。
- 蒸馏特征场Distilled Feature Fields把 CLIP、DINO 等 2D 模型的特征蒸馏进 3D 场景,让每个空间点带语义。
- LERFLanguage Embedded Radiance Fields把 CLIP 语言特征嵌进 NeRF,能用自然语言在三维场景里找东西。
- 3D视觉定位3D Visual Grounding根据一句话的描述,在三维场景里找到它指的那个物体。
- 视觉问答Visual Question Answering给一张图和一个自然语言问题,让模型用文字作答。
- 指向(点预测)Pointing (2D Point Prediction)视觉语言模型按文字指令,直接输出图像上目标位置的像素坐标。
- 视觉提示Visual Prompting (e.g. Set-of-Mark)在图上画框、标编号,让多模态大模型按标记回答
- VSI-Bench 空间智能基准VSI-Bench (Thinking in Space: Visual-Spatial Intelligence Benchmark)用室内视频考多模态大模型空间理解能力的评测基准
- 主动感知Active Perception机器人为了看清、摸清目标,主动移动传感器或身体去获取信息。
- 下一最佳视角Next-Best-View (NBV) Planning根据已看到的内容,决定传感器下一步去哪个位置观察最划算。
- 交互式感知Interactive Perception机器人主动推、拨、拉物体,借动作引起的变化来看懂环境。