04 Hybrid Vision algo
主要特性
- 🚀 高性能: 优化的 C++17 实现,支持实时事件流处理
- 🧠 多种去噪算法: 包含传统和深度学习方法
- 🔧 易于集成: 提供 CMake 配置和 pkg-config 支持
- 📦 模块化设计: 清晰的模块划分,便于扩展和维护
- 🎯 实用示例: 丰富的示例代码和文档
算法模块
去噪算法 (Denoise)
双窗口滤波器 (Double Window Filter)
- 使用两个循环缓冲区对事件进行分类
- 适用于低噪声环境的实时处理
事件流滤波器 (Event Flow Filter)
- 基于事件流密度和流速特征的噪声抑制
- 适用于运动场景的去噪
Khodamoradi 去噪器
- 基于时空邻域的经典去噪算法
- 平衡性能和效果的通用解决方案
递归事件去噪器 (Reclusive Event Denoiser)
- 递归式事件处理算法
- 适用于复杂噪声环境
时间表面去噪器 (Time Surface Denoiser)
- 基于时间表面的去噪方法
- 保持事件时序特性
Yang 噪声滤波器
- Yang 等人提出的噪声滤波算法
- 高效的实时处理能力
多层感知机滤波器 (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_TORCH | OFF | 启用 PyTorch 支持 |
BUILD_SAMPLES | OFF | 编译示例程序 |
BUILD_TESTING | OFF | 编译测试程序 |
CMAKE_BUILD_TYPE | Release | 编译类型 (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 可能会有变化。建议在生产环境使用前进行充分测试。