Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Depth Fusion GPU — 深度相机 + AI 深度估计 实时融合系统

系统架构

硬件深度 × AI深度 = 完美深度图

将结构光/ToF深度相机的绝对度量精度,与 Depth Anything V2 单目深度估计的无空洞平滑特性相融合, 实现既有毫米级绝对距离、又无空洞且平滑的高质量深度图输出。

✨ 项目特点

  • 🔗 硬件+AI融合:Gemini 335Le 提供绝对深度,Depth Anything V2 填充空洞并平滑噪声
  • 🚀 远程GPU加速:深度图推理卸载到 GPU 服务器(4090/3090等),通过局域网 WebSocket 通信
  • ⚡ 低延迟:有线网络 ~20ms,WiFi ~100ms 往返延迟
  • 📊 实时可视化:Web端三画面 Dashboard(RGB + 深度图 + 高程图)
  • 🤖 机器人就绪:输出绝对度量深度图 + 自适应高程图,可直接用于 RL 策略的 height_scan 观测

📐 系统架构

┌─────────────────────┐         WebSocket          ┌──────────────────────┐
│   Orange Pi 5 Max   │ ◄──────────────────────►   │   GPU 服务器 (4090)   │
│                     │    RGB JPEG (~45KB)  ──►   │                      │
│  Gemini 335Le 相机   │                            │  Depth Anything V2   │
│  ├─ RGB 640×480     │   ◄──  深度图 zlib (~150KB)  │  PyTorch CUDA 推理    │
│  ├─ Depth 640×480   │         + 可视化 JPEG       │                      │
│  └─ IMU 200Hz       │                            │  ~15ms/帧 (4090)     │
│                     │                            └──────────────────────┘
│  深度融合模块         │
│  ├─ 尺度对齐 (LSQ)   │
│  ├─ 空洞填充         │
│  └─ 加权混合         │
│                     │
│  自适应高程图         │
│  ├─ 自动地面估计     │
│  ├─ 自动覆盖范围     │
│  └─ 障碍物检测       │
│                     │
│  Web Dashboard      │
│  └─ FastAPI+WS      │
└─────────────────────┘

🔧 硬件需求

组件 型号 用途
深度相机 Orbbec Gemini 335Le RGB + 结构光深度 + IMU
边缘计算 Orange Pi 5 Max (RK3588) 数据采集、融合、Web服务
GPU服务器 任意 NVIDIA GPU (推荐 3060+) Depth Anything V2 推理
网络 局域网(推荐有线千兆) 图像传输

💡 也支持其他深度相机(RealSense、Azure Kinect等),只需修改相机驱动部分。

📦 项目结构

depth-fusion-gpu/
├── server/                     # GPU 服务器端(4090主机上运行)
│   ├── da_v2_server.py         # DA V2 WebSocket 推理服务
│   └── requirements.txt
│
├── client/                     # 边缘端(Orange Pi上运行)
│   ├── depth_fusion_remote.py  # 远程 GPU 深度融合模块
│   ├── height_map_adaptive.py  # 自适应高程图生成器
│   ├── vision_server.py        # Web可视化 Dashboard
│   └── requirements.txt
│
├── docs/
│   ├── architecture.png        # 架构图
│   └── setup_guide.md          # 详细部署指南
│
├── README.md
└── LICENSE

🚀 快速开始

1. GPU 服务器端(4090主机)

# 克隆仓库
git clone https://github.com/YOUR_USERNAME/depth-fusion-gpu.git
cd depth-fusion-gpu

# 创建conda环境
conda create -n da_server python=3.10 -y
conda activate da_server

# 安装依赖
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
pip install -r server/requirements.txt

# 下载 Depth Anything V2 模型代码和权重
git clone https://github.com/DepthAnything/Depth-Anything-V2.git
wget https://huggingface.co/depth-anything/Depth-Anything-V2-Small/resolve/main/depth_anything_v2_vits.pth

# 启动推理服务
python server/da_v2_server.py --encoder vits
# 想要更高质量: --encoder vitb 或 --encoder vitl

2. 边缘端(Orange Pi)

# 安装依赖
pip install websocket-client opencv-python fastapi uvicorn pyorbbecsdk

# 修改 GPU 服务器 IP(编辑 client/vision_server.py 中的 server_url)
# 默认: ws://192.168.5.43:9999

# 启动
cd client
python vision_server.py
# 浏览器打开 http://<OrangePi_IP>:8888

🧠 融合算法原理

为什么需要融合?

硬件深度 (Gemini) AI深度 (DA V2)
精度 ✅ 绝对度量 (mm级) ❌ 仅相对深度
完整性 ❌ 有空洞(黑色/反光/透明物体) ✅ 每个像素都有值
平滑度 ❌ 噪声大,竖条纹 ✅ 平滑连续
速度 ✅ 实时 30fps ⚠️ 需要GPU

融合步骤

  1. 尺度对齐:用 Gemini 有效像素对 DA V2 做最小二乘拟合

    Gemini_depth ≈ scale × DA_depth + shift
    
  2. 加权混合:Gemini 有效区域做 α:β 混合(默认 60:40)

    fused[valid] = α × Gemini + (1-α) × DA_aligned
    
  3. 空洞填充:Gemini 无效区域直接用对齐后的 DA V2

    fused[invalid] = DA_aligned[invalid]
    
  4. 边界平滑:双边滤波消除融合边界

⚙️ 配置参数

服务器端

参数 默认值 说明
--encoder vits 模型大小:vits(最快25M) / vitb(平衡97M) / vitl(最精335M)
--port 9999 WebSocket 端口

客户端

参数 默认值 说明
server_url ws://192.168.5.43:9999 GPU服务器地址
blend_alpha 0.4 Gemini权重(0=全用DA, 1=全用Gemini)
resolution 0.04 高程图网格分辨率(m)
obstacle_thresh 0.05 障碍物高度阈值(m)

📊 性能指标

在 RTX 4090 + Orange Pi 5 Max + WiFi 环境下测试:

指标 数值
DA V2 推理延迟 (vits) ~15ms
网络往返 (WiFi) ~100ms
网络往返 (有线) ~3ms
端到端延迟 (WiFi) ~110ms
端到端延迟 (有线) ~20ms
深度图有效像素提升 +30~50%
Dashboard 帧率 ~10 FPS (WiFi) / ~30 FPS (有线)

🔄 对比:CPU本地 vs 远程GPU

方案 推理延迟 深度图质量
纯Gemini(无AI) 0ms 有空洞,噪声大
CPU本地 DA V2 (Orange Pi) 1336ms 好,但更新太慢
远程GPU DA V2 (4090+WiFi) ~110ms 好,接近实时
远程GPU DA V2 (4090+有线) ~20ms 好,完全实时

🎯 适用场景

  • 足式机器人:为 RL 策略提供高质量 height_scan 观测
  • 移动机器人:实时障碍物检测与地形感知
  • 3D重建:高质量深度图用于点云/Mesh重建
  • AR/VR:实时深度感知

📄 致谢

📝 License

MIT License - 详见 LICENSE

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages