eds-buildconf icon indicating copy to clipboard operation
eds-buildconf copied to clipboard

Using new sequences

Open varun19299 opened this issue 3 years ago • 4 comments

How can I convert a new sequence---calibrated image list and event stream, say in DSEC's data format---to the pocolog format used here?

varun19299 avatar Nov 05 '22 13:11 varun19299

Hi @varun19299

You could use this repository to convert DSEC format to pocolog. It is a rock component (similar to a ros node) since, unfortunately, you still need C++ to write data in the pocolog format. You need a rock installation (as for EDS). The component depends on the HDF5 library. You can have a look here at the dependencies.

Is your idea to run EDS with the DSEC dataset? EDS requires aligned events and frames, and DSEC does not. DSEC has separated cameras for the events and the frames. You could align/warp the events with frames using depth information (such as the LiDAR).

I hope it helps.

jhidalgocarrio avatar Nov 08 '22 14:11 jhidalgocarrio

You could use this repository to convert DSEC format to pocolog. It is a rock component (similar to a ros node) since, unfortunately, you still need C++ to write data in the pocolog format. You need a rock installation (as for EDS). The component depends on the HDF5 library. You can have a look here at the dependencies.

Thank you! Are there any instructions on how to run this?

Is your idea to run EDS with the DSEC dataset? EDS requires aligned events and frames, and DSEC does not. DSEC has separated cameras for the events and the frames. You could align/warp the events with frames using depth information (such as the LiDAR).

No, not really; I wanted to run EDS on the these two setups:

  1. A blender simulation where I can output aligned RGB frames and events (obtained using v2e). I also have access to camera calibration parameters.
  2. We have an aligned setup with a Prophesse Gen 4.1 (which outputs a RAW file) and a RGB camera, and I wanted to run EDS on this.

What would be the recommended way to get EDS running for these two cases? I felt matching DSEC's hdf5 format was more straightforward than directly converting to pocolog, but that is a little roundabout.

varun19299 avatar Nov 08 '22 14:11 varun19299

Thank you! Are there any instructions on how to run this?

There is a running script in the scripts folder. I will document a bit more about the process in the following weeks.

What would be the recommended way to get EDS running for these two cases? I felt matching DSEC's hdf5 format was more straightforward than directly converting to pocolog, but that is a little roundabout.

I think is a good approach. There is no perfect datatype for all cases.

  • The reason why DSEC and EDS datasets are released in hfd5 is because of data compression.
  • The reason of pocolog is because RPG Beamsplitter driver for data recording (optitrack + cameras and imu) is implemented in rock since I experienced data loss and desynchronization using ros. Therefore, I ended up implementing EDS in rock.

An alternative is to port EDS to the ros ecosystem. It should be straightforward. ESD library is a standard C++ library, rock-types are also stand-alone C++. The only part to "manually" export to ros is the EDS task, which should be implemented (copy & paste code) into a ros node. Are you experienced with ROS?

jhidalgocarrio avatar Nov 11 '22 10:11 jhidalgocarrio

Sorry for missing this, it seems like I don't have my notifications on.

An alternative is to port EDS to the ros ecosystem. It should be straightforward. ESD library is a standard C++ library, rock-types are also stand-alone C++. The only part to "manually" export to ros is the EDS task, which should be implemented (copy & paste code) into a ros node. Are you experienced with ROS?

I'm a novice at ROS, but could give this a shot. As a digression: would it be feasible adding python bindings to the C++ library? Perhaps this will make it easier to use different formats and make the code accessible.

varun19299 avatar Nov 21 '22 16:11 varun19299