AI

ROS 机器人

SigLIP 大模型部署

Posted by LXG on March 30, 2026

siglip2-so400m-patch14-384-魔塔社区

Hiwonder 幻尔科技

Yahboom 亚博智能

wheeltec 轮趣科技

ROS2

JetAuto 和 JetAuto Pro 幻尔科技

SigLIP 概念

SigLIP = Sigmoid Loss Image-Text Pretraining

SigLIP = 用“独立二分类(sigmoid)”替代“对比学习(softmax)”的 CLIP

和其他模型的关系

模型 作用
YOLO 检测(在哪)
SigLIP 识别(是什么)
SAM 分割(像素级)
Qwen-VL 推理(理解场景)

SigLIP V1 和 V2

对比项 SigLIP (v1) SigLIP2 (v2)
发布时间 ~2023 ~2025
核心论文 Sigmoid Loss SigLIP2 unified training
训练目标 纯 image-text 对齐 多任务联合训练
loss sigmoid loss sigmoid + decoder + masked + global-local
多语言能力 一般 明显增强 🌍
语义理解 更强
定位能力(localization) ❌弱 ✅明显增强
dense feature(像素级) ❌没有 ✅支持
分辨率适应 固定 384 支持多分辨率 / aspect ratio
下游适配(VLM) 一般 更适合 VLM backbone
训练规模 WebLI WebLI + 更复杂策略

siglip2 不同模型对比

模型 参数规模 patch 分辨率 token数量 精度 速度 推荐场景
base-patch16-224 86M 16 224 196 ⭐⭐ 🚀最快 轻量设备
base-patch16-512 86M 16 512 1024 ⭐⭐⭐ ❌慢 高分辨分类
so400m-patch14-224 400M 14 224 256 ⭐⭐⭐ ⚡快 平衡
so400m-patch14-384 400M 14 384 729 ⭐⭐⭐⭐ ⚠️中 推荐
so400m-patch16-256 400M 16 256 256 ⭐⭐⭐ ⚡快 工程优选
so400m-patch16-512 400M 16 512 1024 ⭐⭐⭐⭐ ❌最慢 精度优先

siglip2-so400m-patch14-384

部分 含义
so400m 模型规模
patch14 每个 patch 是 14×14
384 训练时的默认输入分辨率

本地部署

环境准备


conda create -n siglip2 python=3.10 -y

conda activate siglip2

pip install torch torchvision
pip install transformers accelerate
pip install pillow opencv-python

pip install ultralytics

pip install protobuf sentencepiece

下载模型


pip install modelscope

modelscope download --model google/siglip-so400m-patch14-384 --local_dir ./

运行命令


(siglip2) xt@3090-server:~/lixiaogang/siglip2$ python siglip2_demo.py 
Loading weights: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 888/888 [00:00<00:00, 23512.19it/s]
使用设备: cuda
模型加载耗时: 711.0 ms
总推理耗时: 473.5 ms
检测到 10 个目标:

[1] box=(262.0,360.0,455.0,712.0) YOLO目标=detected_object(0.930) | 语义=a metal shelf(0.090) | 语义耗时=46.6 ms
[2] box=(222.0,626.0,412.0,842.0) YOLO目标=detected_object(0.910) | 语义=an indoor hallway floor(0.087) | 语义耗时=46.6 ms
[3] box=(621.0,363.0,793.0,559.0) YOLO目标=detected_object(0.950) | 语义=a green locker cabinet(0.114) | 语义耗时=46.6 ms
[4] box=(876.0,344.0,922.0,548.0) YOLO目标=detected_object(0.820) | 语义=folded equipment stands(0.085) | 语义耗时=46.6 ms
[5] box=(855.0,430.0,1020.0,655.0) YOLO目标=detected_object(0.840) | 语义=folded equipment stands(0.092) | 语义耗时=46.6 ms
[6] box=(811.0,683.0,1024.0,1024.0) YOLO目标=detected_object(0.900) | 语义=a cardboard box(0.109) | 语义耗时=46.6 ms
[7] box=(0.0,176.0,560.0,820.0) YOLO目标=detected_object(0.880) | 语义=a metal shelf(0.068) | 语义耗时=46.6 ms
[8] box=(206.0,562.0,1024.0,1024.0) YOLO目标=detected_object(0.860) | 语义=an indoor hallway floor(0.089) | 语义耗时=46.6 ms
[9] box=(392.0,162.0,744.0,312.0) YOLO目标=detected_object(0.810) | 语义=an indoor hallway floor(0.064) | 语义耗时=46.6 ms
[10] box=(848.0,620.0,1024.0,982.0) YOLO目标=detected_object(0.790) | 语义=a cardboard box(0.097) | 语义耗时=46.6 ms

YOLO 模型

YOLO 模型通常无法识别出图片中的“所有”物体

YOLO 是监督学习模型,只能识别它“学过”的类别。

YOLO + SigLIP2 也无法“识别出无人车摄像头中的所有物体”

维度 YOLO + SigLIP Qwen3-VL
延迟 20~50ms 500ms~几秒
算力 RK3588可跑 ❌ 基本不行
能力 检测 + 分类 场景理解
是否全识别 ✅(接近)
是否可落地

无人车的三种技术路线

  1. 传统模块化(工业主流)
  2. 深度学习感知增强(当前主流升级版)
  3. 端到端 / 多模态大模型(前沿探索)

传统模块化路线

感知 → 定位 → 规划 → 控制


传感器:
  激光雷达 + 摄像头 + IMU + GPS

感知:
  规则 + 传统算法(早期)

定位:
  SLAM + 高精地图

规划:
  A* / Dijkstra / MPC

控制:
  PID / MPC


本质: 工程系统优先,而不是AI优先

深度学习 + 模块化(当前主流)

传统框架 + 深度学习感知


感知(AI):
  YOLO / BEV / Transformer

定位:
  SLAM + GNSS

规划:
  AI + 规则融合

控制:
  PID / MPC

端到端 / 多模态大模型路线(前沿)

  • 输入:图像 / 语言
  • 输出:控制

AI 感知

在“深度学习 + 模块化无人车”里,AI 感知层是最核心的一层,但它不是一个模型,而是一组“任务分解后的模型集合”。

  1. 目标检测(Object Detection)
  2. 语义分割(Segmentation)
  3. 实例分割(Instance Segmentation)
  4. 深度估计(Depth Estimation)
  5. 多模态语义理解(Vision-Language)

目标检测

识别:人,车,障碍物,交通标志

模型 特点 使用场景
YOLOv5 稳定成熟 工业落地最多
YOLOv8 更快更准 新项目主流
YOLO11 更强泛化 最新趋势
RT-DETR Transformer检测 高精度场景

语义分割

把图像变成:可通行区域 / 非通行区域

模型 特点
DeepLabV3+ 经典稳定
SegFormer 当前主流
HRNet 高精度
BiSeNetV2 轻量实时

实例分割

不仅知道“这是人”,还知道:每一个人的轮廓

模型 特点
Mask R-CNN 经典
YOLACT 实时
YOLOv8-seg 工业常用
Mask2Former 新SOTA

深度估计(无人车非常关键)

估计:👉 距离(3D信息)

模型 特点
MiDaS 通用最强
Depth Anything 新一代SOTA
MonoDepth2 轻量
StereoNet 双目专用

多模态语义理解

理解:

“前面有快递箱吗?” “能不能通过?” “这个区域是否安全?”

模型 特点
CLIP 图文匹配
SigLIP CLIP升级版
BLIP-2 图文问答
Qwen2/3-VL 强推理
LLaVA 开源多模态

RGB-D 相机

RGB-D 相机(Red-Green-Blue-Depth Camera)是一种能够同时捕捉场景的彩色图像(RGB)和深度信息(Depth)的传感器。

RGB-D 相机通常由一个 RGB 摄像头、一个深度传感器以及一个红外发射器(视技术方案而定)组成。内部算法会将彩色图像与深度图像进行空间对齐(Registration),从而输出带有 RGB 信息的 3D 点云。

能力 是否具备
目标检测(RGB)
距离获取(Depth)
3D障碍建模
SLAM输入 ✔(直接可用)

对比激光雷达

能力 RGB-D LiDAR
成本 ✔低 ❌高
近距离 ✔强 ✔强
远距离 ❌弱 ✔强
户外 ❌弱 ✔强
点云质量 ❌不稳定 ✔稳定
SLAM 中等

无人车硬件方案的高度相似

激光雷达 (Lidar) —— 负责“保命”与“定位”

  • 作用:提供极高精度的 2D/3D 距离信息(厘米级)。
  • 不可替代性:它不受光照影响(全黑也能跑),计算量极小。它是 SLAM(即时定位与建图)的基石。没有它,车子在复杂环境下极易“迷路”或撞墙。

3D 相机 (RGB-D) —— 负责“理解”与“精细避障”

  • 作用:既有彩色画面,又有深度信息。
  • 不可替代性:雷达只能看到“前方有东西”,而 3D 相机能通过 边缘 AI 告诉你“前方是一个玻璃杯”或“地上一根细电缆”。它是实现语义识别(Semantic AI)的关键。

ROS (操作系统) —— 负责“通讯”与“标准化”

  • 作用:相当于 Android 框架。
  • 不可替代性:它把复杂的底层驱动包装成统一的接口。如果没有 ROS,你换个雷达就要重写整套代码;有了 ROS,你只需要改一个配置文件。

既然方案一样,那“大厂”和“小厂”的区别在哪?

传感器融合 (Sensor Fusion)

  • 入门级:雷达跑雷达的,相机跑相机的。如果雷达说前面没东西,相机说前面有东西,系统就“懵了”。
  • 工程级:通过 扩展卡尔曼滤波 (EKF) 或 因子图优化,将雷达、相机、IMU(惯性单元)和电机编码器的数据完美融合。即使雷达在玻璃墙前失效,系统也能靠视觉和惯性导航撑过去。

边缘 AI 的吞吐量 (Throughput)

  • 入门级:直接跑原生的 YOLO 模型,帧率只有 5-10 帧,小车稍微开快点就反应不过来。
  • 工程级:做 TensorRT 算子融合、半精度 (FP16/INT8) 量化。在同样的 Orin Nano 硬件上,能跑到 30-60 帧,响应速度快 5 倍。

导航算法的“丝滑度”

  • 入门级:遇到障碍物会猛地停下,然后原地转圈寻路。
  • 工程级:动态路径规划(Local Planner)。它能预判障碍物的移动轨迹,像老司机一样丝滑地绕行。

ROS 主机 选择

维度 NVIDIA Jetson (Orin 系列) AMD Ryzen (8000/9000 系列) Intel Core Ultra (Meteor Lake+)
核心定位 行业标准 / AI 性能王者 高性能开发 / 极致性价比 稳健商用 / 视觉加速生态
主要优点 1. AI 生态无敌:CUDA/TensorRT 算子支持最全。
2. 能效比极高:适合电池驱动,算力功耗比顶级。
3. 接口丰富
1. 编译极速:x86 多核优势,编译 ROS 2 节省大量时间。
2. 开发门槛低:标准 Ubuntu 环境,无架构兼容性坑。
3. 图形渲染强
1. 驱动最成熟:工业级传感器兼容性最好,系统极稳。
2. OpenVINO 加速:针对视觉推理有极佳的量化调优工具。
3. 异构计算
核心缺点 1. 价格昂贵:硬件单价及授权成本高。
2. 环境折腾:非标准 Ubuntu,驱动安装复杂。
3. 编译较慢
1. AI 算子受限:部分前沿代码需手动从 CUDA 移植。
2. 功耗较高:发热量大,对小车散热和续航有要求。
3. 接口匮乏
1. 价格较高:旗舰型号成本不低。
2. AI 灵活性:特定深度学习算子的加速不如 CUDA 直观。
3. 体积略大
架构类型 ARM64 (L4T / 定制 Linux) x86_64 (标准 Ubuntu) x86_64 (标准 Ubuntu)
算力引擎 CUDA / TensorRT / NVDLA ROCm / Zen 架构 CPU / Radeon GPU OpenVINO / Intel Arc GPU / NPU
推荐人群 大厂量产、算法专家、具身智能开发者 个人开发者、科研原型、追求开发效率者 室内配送厂商、工业集成、追求稳定交付者

ARM 和 Nvidia的ROS部署难题

维度 ARM 平台(RK / 树莓派 / RV1103) NVIDIA 平台(Jetson Orin / Xavier)
核心矛盾 算力不够 生态复杂
CPU / GPU CPU为主,GPU/NPU弱 GPU强(CUDA生态)
ROS运行状态 勉强跑,多节点容易卡 流畅运行,多节点没问题
实时性 ❌ 抖动明显(调度不稳) ✅ 相对稳定
算法部署 需要极致轻量化(YOLOn / tiny) 可跑大模型(YOLOv8 / SAM / VLM)
AI推理难点 跑不动 / 帧率低 TensorRT / CUDA 适配复杂
模型部署链路 简单(ONNX / NPU) 复杂(PyTorch → ONNX → TensorRT)
驱动适配 ❌ 非常痛苦(V4L2 / 传感器) ✅ 官方支持较多
系统问题 内存小 / swap卡死 CUDA版本冲突 / 依赖地狱
数据流问题 CPU瓶颈 CPU↔GPU拷贝开销
功耗 ✅ 低 ❌ 高(易降频)
成本 ✅ 低(几十~几百) ❌ 高(几千~上万)
开发难度 偏底层(驱动 + 性能优化) 偏工程(环境 + 加速)
适合阶段 量产 / 成本敏感 算法验证 / 高性能版本