Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using new sequences #11

Open
varun19299 opened this issue Nov 5, 2022 · 4 comments
Open

Using new sequences #11

varun19299 opened this issue Nov 5, 2022 · 4 comments

Comments

@varun19299
Copy link

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?

@jhidalgocarrio
Copy link
Collaborator

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.

@varun19299
Copy link
Author

varun19299 commented Nov 8, 2022

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.

@jhidalgocarrio
Copy link
Collaborator

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?

@varun19299
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants