shimetapi RGB+EVS视觉融合相机:开源高性能事件视觉算法库

简介

HVAlgo 是ShiMetaPi 专为事件相机(Event Camera)设计的高性能算法库,提供了多种先进的事件去噪、计算机视觉和图像恢复算法。该库基于ShiMetaPi Hybird Vision SDK 构建,支持实时事件流处理,适用于机器人视觉、自动驾驶、高速运动分析等应用场景。

ShiMetaPi Hybrid Vision SDK 由 hybrid_vision_toolkit 和 hybrid_vision_algo 两个独立的SDK组成,分别实现视觉融合相机的接口控制和算法处理。

项目框图

shimetapi_Hybrid_vision_algo (算法层 SDK)

  • 定位: 这是 SDK 的核心算法处理层,位于架构的中间层(黄色部分)。

  • 核心功能: 专注于处理来自事件相机的原始数据流,执行高级的计算机视觉算法,以提升数据质量、提取有用信息或进行三维理解。

  • 包含的模块:

    • 降噪 (Denoise): 去除事件流中的噪声,提高信号质量。

    • 插值 (Interpolation): 用于在事件之间生成中间数据点,或与标准帧图像进行时空对齐/融合。

    • 修复 (Restoration): 用于处理数据缺失或异常。

    • 计算机视觉/三维视觉 (CV/CV3D): 包含实现事件相机特定或融合应用的算法,如目标检测、跟踪、三维重建、姿态估计等。

    • 样本与数据 (Samples/data): 提供示例代码、模型或必要的数据集。

    • 外部依赖 (external): 通过集成第三方库给用户提供更多设备的选择,例如:shimetapi Hybrid vision toolkit`,OpenEb(通过命令安装)等 。

  • 作用: 它为上层应用 (APP) 提供了经过处理、增强或理解的事件数据信息。应用开发者主要调用这一层的接口来实现事件相机的高级功能(如播放、录制、分析)。

shimetapi_Hybrid_vision_toolkit (HAL层工具包)

  • 定位: 这是 SDK 的 硬件抽象层 (HAL) 和基础工具层 ,位于算法层之下(深蓝色部分)。

  • 核心功能: 提供与硬件交互和数据流基础操作的功能。它负责从物理接口读取原始数据,进行初步处理(如编解码),并将数据传递给上层算法层,同时也接收上层指令控制硬件。

  • 包含的关键模块/功能:

    • 读取 (Read): 从硬件接口(如 USB)获取原始事件数据流。

    • 写入 (Write): 用于将处理后的数据或控制指令发送回硬件(如果支持)。

    • 设置 (Setting): 配置相机参数(如分辨率、灵敏度等)。

    • 解码器 (Decoder): 如果事件数据以特定格式编码传输,负责将其解码为可处理的格式。

    • 编码器 (Encoder): 用于将处理后的数据或录制的流编码为特定格式。

  • 作用: 它抽象了底层硬件的细节,为上层算法(shimetapi_Hybrid_vision_algo) 提供了一个统一的、相对硬件无关的接口来访问和控制事件相机数据流。它处理底层的通信协议、数据搬运和基础格式转换。

总结两者的关系与协作:

  1. shimetapi_Hybrid_vision_toolkit (工具包/HAL层):

    • 直接与硬件和底层系统SDK 打交道。

    • 负责获取原始数据 (Read),进行基础格式转换 (Decoder),控制硬件(Setting),并输出数据(WriteEncoder)等。

    • 向上层 (algo 层) 提供 标准化的数据访问接口 。

  2. shimetapi_Hybrid_vision_algo (算法层):

    • 构建在 toolkit 层之上。

    • 接收来自 toolkit 层的 标准化事件数据流 。

    • 利用其包含的高级算法模块 (DenoiseInterpolationCV/CV3D 等) 对数据进行 处理、增强、分析和理解 。

    • 将处理后的、更有价值的信息提供给最上层的应用程序 (APP)使用(如显示 UIPlayer 播放、Recorder 录制、Analyzer 分析)。

    • 兼容不同厂商接口(目前支持ShiMetaPi HV Toolkit和Openeb)。

主要特性

  • 🚀 高性能: 优化的 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 updatesudo apt install cmake build-essential libeigen3-dev#安装HV Toolkits# 拉取子仓库git submodule update --init# 进入子仓库目录cd external/shimetapi_hybrid_vision_toolkit/sudo ./install_libs.sh# 安装 Openebcurl -L https://propheseeai.jfrog.io/artifactory/api/security/keypair/prophesee-gpg/public >/tmp/propheseeai.jfrog.op.ascsudo cp /tmp/propheseeai.jfrog.op.asc /etc/apt/trusted.gpg.dsudo add-apt-repository 'https://propheseeai.jfrog.io/artifactory/openeb-debian/'sudo apt updatesudo apt -y install metavision-openeb
可选: PyTorch 支持
下载 LibTorchwget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.7.1%2Bcpu.zipunzip libtorch-cxx11-abi-shared-with-deps-2.7.1+cpu.zipexport 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.编译选项

使用方法

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_toolkitmkdir build && cd buildcmake ..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/               # 外部依赖

开源地址链接

[github]

https://github.com/ShiMetaPi/shimetapi_hybrid_vision_algo

https://github.com/ShiMetaPi/shimetapi_hybrid_vision_toolkit

[gitee]

https://gitee.com/ShiMetaPi_0/shimetapi_hybrid_vision_algo

https://gitee.com/ShiMetaPi_0/shimetapi_hybrid_vision_toolkit

ShiMetaPi

开源硬件网站:https://www.shimetapi.cn 

在线技术文档:https://forum.shimetapi.cn/wiki/zh 

在线技术社区:https://forum.shimetapi.cn 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值