首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • CF-NRS1

    • 简介

      • 01-产品介绍
      • 02-相关概念
      • 03-MultiVision Studio 介绍
    • 开发

      • 01-ShiMetaPi Hybrid vision SDK 介绍
      • 02-Hybrid_vision_toolkit
      • 03-Hybrid_vision_toolkit API (C++)
      • 04 Hybrid Vision algo
      • 05 Hybrid vision algo API
    • 资源

      • 01-SDK下载
  • CF-CRA2

    • 简介

      • CF-NRS2 简介

04 Hybrid Vision algo

主要特性

  • 🚀 高性能: 优化的 C++17 实现,支持实时事件流处理
  • 🧠 多种去噪算法: 包含传统和深度学习方法
  • 🔧 易于集成: 提供 CMake 配置和 pkg-config 支持
  • 📦 模块化设计: 清晰的模块划分,便于扩展和维护
  • 🎯 实用示例: 丰富的示例代码和文档

算法模块

去噪算法 (Denoise)

  1. 双窗口滤波器 (Double Window Filter)

    • 使用两个循环缓冲区对事件进行分类
    • 适用于低噪声环境的实时处理
  2. 事件流滤波器 (Event Flow Filter)

    • 基于事件流密度和流速特征的噪声抑制
    • 适用于运动场景的去噪
  3. Khodamoradi 去噪器

    • 基于时空邻域的经典去噪算法
    • 平衡性能和效果的通用解决方案
  4. 递归事件去噪器 (Reclusive Event Denoiser)

    • 递归式事件处理算法
    • 适用于复杂噪声环境
  5. 时间表面去噪器 (Time Surface Denoiser)

    • 基于时间表面的去噪方法
    • 保持事件时序特性
  6. Yang 噪声滤波器

    • Yang 等人提出的噪声滤波算法
    • 高效的实时处理能力
  7. 多层感知机滤波器 (MLP Filter) (可选)

    • 基于深度学习的智能去噪
    • 需要 PyTorch 支持
    • 适用于复杂场景的高精度去噪

计算机视觉 (CV)

  • 基础图像处理算法
  • 特征提取和匹配

三维视觉 (CV3D)

  • 立体视觉算法
  • 深度估计
  • 三维重建

图像恢复 (Restoration)

  • 图像增强算法
  • 去模糊和超分辨率

系统要求

必需依赖

  • Ubuntu == 22.04
  • CMake >= 3.16
  • C++17 兼容编译器
  • Openeb SDK
  • Eigen3

可选依赖

  • PyTorch (用于 MLP 滤波器)
  • CUDA (GPU 加速支持)

安装指南

1.安装依赖

Ubuntu/Debian

# 安装基础依赖
sudo apt update
sudo apt install cmake build-essential libeigen3-dev

#安装HV Toolkits
# 拉取子仓库
git submodule update --init
# 进入子仓库目录
cd external/shimetapi_hybrid_vision_toolkit/
sudo ./install_libs.sh

# 安装 Openeb
curl -L https://propheseeai.jfrog.io/artifactory/api/security/keypair/prophesee-gpg/public >/tmp/propheseeai.jfrog.op.asc
sudo cp /tmp/propheseeai.jfrog.op.asc /etc/apt/trusted.gpg.d
sudo add-apt-repository 'https://propheseeai.jfrog.io/artifactory/openeb-debian/'
sudo apt update
sudo apt -y install metavision-openeb

可选: PyTorch 支持

# 下载 LibTorch
wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.7.1%2Bcpu.zip
unzip libtorch-cxx11-abi-shared-with-deps-2.7.1+cpu.zip
export CMAKE_PREFIX_PATH=/path/to/libtorch:$CMAKE_PREFIX_PATH

2.编译安装

mkdir build && cd build

# 基础编译
cmake ..
make -j$(nproc)

# 启用 PyTorch 支持(可选)
cmake -DENABLE_TORCH=ON ..
make -j$(nproc)

# 安装到系统
sudo make install

3.编译选项

选项默认值说明
ENABLE_TORCHOFF启用 PyTorch 支持
BUILD_SAMPLESOFF编译示例程序
BUILD_TESTINGOFF编译测试程序
CMAKE_BUILD_TYPERelease编译类型 (Debug/Release)

使用方法

CMake 集成

find_package(HVAlgo REQUIRED)

add_executable(my_app main.cpp)
target_link_libraries(my_app HVAlgo::hv_algo)

pkg-config 集成

# 编译
g++ -o my_app main.cpp `pkg-config --cflags --libs hv_algo`

基础使用示例

#include <denoise/double_window_filter.h>
#include <metavision/sdk/base/events/event_cd.h>

int main() {
    // 创建双窗口滤波器
    Shimeta::Algorithm::Denoise::DoubleWindowFilter filter(36, 9, 1);
  
    // 处理事件
    Metavision::EventCD event;
    bool is_signal = filter.evaluate(event);
  
    if (is_signal) {
        // 处理有效事件
    }
  
    return 0;
}

示例程序

项目提供了丰富的示例程序,展示各种算法的使用方法:

# 编译示例
cd samples/with_hv_toolkit
mkdir build && cd build
cmake ..
make
# 运行示例
./dwf_denoising ../../../data/events.raw

程序运行截图 替代文本

可用示例

  • dwf_denoising: 双窗口滤波器去噪示例
  • event_flow_denoising: 事件流滤波器示例
  • khodamoradi_denoising: Khodamoradi 去噪器示例
  • mlpf_denoising: MLP 滤波器示例 (需要 PyTorch)
  • re_denoising: 递归事件去噪器示例
  • ts_denoising: 时间表面去噪器示例
  • y_denoising: Yang 滤波器示例

项目结构

hv_algo/
├── include/                 # 头文件
│   ├── denoise/            # 去噪算法
│   ├── cv/                 # 计算机视觉
│   ├── cv3d/               # 三维视觉
│   └── restoration/        # 图像恢复
├── src/                    # 源代码
├── samples/                # 示例程序
│   ├── with_metavision/    # Openeb SDK 示例
│   └── with_hv_toolkit/    # HV Toolkit 示例
├── cmake/                  # CMake 配置文件
├── data/                   # 测试数据
├── models/                 # 预训练模型
└── external/               # 外部依赖

致谢

  • Openeb SDK - 事件相机开发框架
  • Eigen - 线性代数库
  • PyTorch - 深度学习框架

联系方式

开源硬件网站: https://www.shimetapi.cn (国内) https://www.shimetapi.com (海外) 在线技术文档:https://forum.shimetapi.cn/wiki/zh/ 在线技术社区:https://forum.shimetapi.cn

注意: 本项目仍在积极开发中,API 可能会有变化。建议在生产环境使用前进行充分测试。

在 GitHub 上编辑此页
上次更新:
贡献者: szm, zsl, lml
Prev
03-Hybrid_vision_toolkit API (C++)
Next
05 Hybrid vision algo API