siglip2-so400m-patch14-384-魔塔社区
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可跑 | ❌ 基本不行 |
| 能力 | 检测 + 分类 | 场景理解 |
| 是否全识别 | ❌ | ✅(接近) |
| 是否可落地 | ✅ | ❌ |
无人车的三种技术路线
- 传统模块化(工业主流)
- 深度学习感知增强(当前主流升级版)
- 端到端 / 多模态大模型(前沿探索)
传统模块化路线
感知 → 定位 → 规划 → 控制
传感器:
激光雷达 + 摄像头 + IMU + GPS
感知:
规则 + 传统算法(早期)
定位:
SLAM + 高精地图
规划:
A* / Dijkstra / MPC
控制:
PID / MPC
本质: 工程系统优先,而不是AI优先
深度学习 + 模块化(当前主流)
传统框架 + 深度学习感知
感知(AI):
YOLO / BEV / Transformer
定位:
SLAM + GNSS
规划:
AI + 规则融合
控制:
PID / MPC
端到端 / 多模态大模型路线(前沿)
- 输入:图像 / 语言
- 输出:控制
AI 感知
在“深度学习 + 模块化无人车”里,AI 感知层是最核心的一层,但它不是一个模型,而是一组“任务分解后的模型集合”。
- 目标检测(Object Detection)
- 语义分割(Segmentation)
- 实例分割(Instance Segmentation)
- 深度估计(Depth Estimation)
- 多模态语义理解(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拷贝开销 |
| 功耗 | ✅ 低 | ❌ 高(易降频) |
| 成本 | ✅ 低(几十~几百) | ❌ 高(几千~上万) |
| 开发难度 | 偏底层(驱动 + 性能优化) | 偏工程(环境 + 加速) |
| 适合阶段 | 量产 / 成本敏感 | 算法验证 / 高性能版本 |
0
次点赞