DAVIS 346 事件相机上手测试

事件相机简介

        事件相机,简单来说就是只有当镜头中像素亮度变化才会触发信号的相机,而传统相机是固定帧率采集图像。

图1、事件相机运行效果

        说得大白话一点就是,只有运动才看得见,不动就是一片黑色。这样的好处其实也很明显,就是响应快、低功耗,特别是在做动态物体捕捉的时候,有着先天的优势。

         知乎上有很多科普事件相机的文章,大家感兴趣的可以去搜一下。

事件相机的使用

         这次我们测试的是Davis 346 Color,这是Invitation公司出最新款的产品,这次到货之后看起来还像那么回事了,那个红色的就是相机本体:

图2、Davis 346 Color所有部件

#Ubuntu下的dv-gui使用#

        官方提供了Windows,Ubuntu,MacOS等多平台的支持,这里我们使用的是Ubuntu 16.04的环境。下面是安装过程:

1、添加PPA存储库以获取程序及依赖项,打开一个终端,运行下面的命令。

  • sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  • sudo add-apt-repository ppa:lkoppel/opencv
  • sudo add-apt-repository ppa:janisozaur/cmake-update
  • sudo add-apt-repository ppa:inivation-ppa/inivation-xenia

2、更新软件包索引

  • sudo apt-get update

3、安装dv-gui

  • sudo apt-get install dv-gui

4、(可选)如果打算自己做开发,可以安装开发包

  • sudo apt-get install dv-runtime-dev

5、连接好事件相机,运行dv-gui

  • dv-gui
图3、D346运行界面

#ROS下的使用#

      ROS下我们使用的是rpg_dvs_ros包,下面是它的安装与使用过程:

1、安装依赖项,打开一个终端,运行下面的命令。

  • sudo apt-get install libusb-1.0-0-dev
  • sudo apt-get install ros-kinetic-camera-info-manager
  • sudo apt-get install ros-kinetic-image-view

2、安装编译工具

  • sudo apt-get install python-catkin-tools

3、创建工作区 

  • mkdir -p ~/catkin_ws/src
  • cd catkin_ws
  • catkin config --init --mkdirs --extend /opt/ros/kinetic--merge-devel --cmake-args -DCMAKE_BUILD_TYPE=Release

4、克隆存储库

  • cd ~/catkin_ws/src
  • git clone https://github.com/catkin/catkin_simple.git #该软件包用于构建DVS/DAVIS驱动程序
  • git clone https://github.com/uzh-rpg/rpg_dvs_ros.git

5、编译

  • cd ~/catkin_ws
  • catkin build dvs_ros_driver #如果使用的是DVS
  • catkin build davis_ros_driver #如果使用的是DAVIS
  • catkin build dvs_renderer #编译渲染器
  • catkin build dvs_calibration dvs_calibration_gui #编译校准工具

或者可以运行

  • $ catkin build

一键编译所有软件包。

6、添加串口udev规则

  • cd ~/catkin_ws/src/rpg_dvs_ros/libcaer_catkin #进入libcaer_catkin文件夹
  • sudo ./install.sh #运行安装脚本

7、连接好事件相机,运行

  • source ~/catkin_ws/devel/setup.bashroslaunch dvs_renderer dvs_mono.launch #如果使用的是DVSroslaunch dvs_renderer davis_mono.launch #如果使用的是DAVIS
图4、运行实例

#基于事件的角点检测#

         该算法基于的论文《FastEvent-based Corner Detection》,其实现了基于事件的快速角点检测。代码地址,下面是运行过程:

1、安装依赖项,打开一个终端,运行下面的命令。

  • sudo apt-get install libeigen3-dev

2、克隆存储库 

  • cd ~/catkin_ws/srcgit clonehttps://github.com/uzh-rpg/rpg_corner_events.git

3、修改
      由于我们使用的是DAVIS346,其像素为346 x 260,故要修改distinct_queue.h,,fast_detector.h 和 harris_detector.h 中的**sensor_width_ ** 和 sensor_height_,如下

  • static const int sensor_width_ = 346;
  • static const int sensor_height_ = 260;

4、编译

  • cd~/catkin_ws/src/rpg_corner_events/corner_event_detector
  • catkin build --this

5、运行

  • source ~/catkin_ws/devel/setup.bash
  • roslaunch corner_event_detector davis_live.launch
图5、D346运行界面

后记

        现在国内做事件相机研究的人还不多,大家可以多关注一下,可以和机器人碰撞出很多新的应用。如果想买的话,欢迎给我们充值~

        事件相机资源整理:https://github.com/uzh-rpg/event-based_vision_resources
        事件相机开发文档:https://inivation.gitlab.io/dv/dv-docs/docs/getting-started.html

        谢谢大家!

更多最新文章,欢迎关注我们的微信公众号!