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

How can I annotate the frames one by one without poses? #81

Open
Vonct opened this issue Mar 25, 2024 · 2 comments
Open

How can I annotate the frames one by one without poses? #81

Vonct opened this issue Mar 25, 2024 · 2 comments

Comments

@Vonct
Copy link

Vonct commented Mar 25, 2024

Hi, thanks for your amazing tool.

I'm currently annotating some KITTI dataset that don't have poses, while my own dataset also don't have poses. So how can i annotating them one frame by one frame?

Besides, I'm a bit little confused about the parameters in settings.cfg . My current understanding about it is that, the tool would read all the point cloud files in folder velodyne anyhow. But in one tile (the size is determined by tile size), it would just load max scans in the determined size, even there are 2000 frames in one tile's range. And since we have poses, which are the key, we can concatenate the frames in one tile. So that we can annotate the points that detected in several frames (overlapped) in just one time.

Don't know if my understanding about your tools is correct. And for those did not loaded, how can I know which frames are they? Since I noticed that, the tool would automatically generate all the .label files in the folder labels

In addition, when I try to test the tool on SemanticKITTI(sequence 3). In the beginning it was great. But when I click for a while something happened. It really confuses me.
0325_3
(this was when I open the corresponding folder)

0325_4
(this was when I click the next frame button >, there are no more points...)

@Vonct Vonct changed the title How can i label the frames one by one without poses? How can I annotate the frames one by one without poses? Mar 25, 2024
@jbehley
Copy link
Owner

jbehley commented Mar 25, 2024

There are multiple questions:

  1. Scans with poses: The KITTI dataset has poses, but we are even using poses from our own SLAM pipeline (SuMa). The individual scans, like each .bin file is loaded, and aggregated on the fly (no need to aggregate them before). Don't press "show single scan" if you have scan poses. If you need poses for your scans, then try kiss icp, see https://github.com/PRBonn/kiss-icp, which should provide you with poses. The whole labeling of point clouds makes from my perspective sense when you are not just labeling single point clouds; the aggregated point clouds will provide you with a way to consistently label multiple point clouds.
  2. Regarding the Tiles: Based on the trajectory, we split it into tiles, which cover 100 by 100 meters. These tiles are shown with some boundary overlap. The size of the tiles can be modified in the configuration file. The number of scans determines how much space is allocated for storing the points of the point clouds, i.e., with "number of scans" of 2000, you will have space on the GPU for 2000*150k points in a shown tile. If this isn't sufficient, you can increase it but might run into issues with the GPU memory.
  3. Effect of Tiles: The effect you describe is as expected as you reach the boundary of the tile. then you can switch to the next tile (selectable in the "A,..., Z" part in the upper left. As I said before; we always show the tiles with some overlap, such that you can continue to label the point clouds in the next tile.
  4. Labels: For each .bin is a corresponding .label with the same name generated. The order of the labels is the same as the points in the point clouds. If you really want to aggregate multiple scans, then simply remember how many points are in each scan, then you can easily get the labels for each individual scan, e.g., if you have scans with 1500, 2403, and 2400 points, then labels [0-1499], [1500-3902], and [3903-6302] are the ranges from the aggregated labels that correspond to the scan-wise labels.
  5. If you really need to label single scans, you don't need poses (use simply the identity, i.e., 1 0 0 0 0 1 0 0 0 0 1 0 in the poses txt.

In summary: If you don't really need to annotate individual scans, then don't do it. Use some LiDAR SLAM method (e.g., kiss-icp, SuMa, etc.) to estimate poses for your scans.

@Vonct
Copy link
Author

Vonct commented Mar 26, 2024

Thanks for your reply. I've got the poses using kiss-icp. But I still have some questions.

  1. About max_scan, when I set a small number, and the tile size is so big that it cloud not load all the points. In such case how can I know which points would be loaded? Or just part of the scans in the tile would be loaded?
  2. About the label, I find that it's hard to do the work, while the point cloud is extremely dense. Specially when I zoom in. Like:
    screenshot3
    When I zoom in, it looks more chaotic.
    screenshot4
  3. About SemanticKITTI, when I try on sequence 3. The point cloud is a chaos. How could this happen?
    screenshot
  4. Since the reason I mentioned on question2. I want to label the points one scan by one. But is putting part of scans to another folder the only way? For example, I have 1700 .bin files. But if I want to label singly. I need to write the poses.txt which each line filled with 1 0 0 0 0 1 0 0 0 0 1 0 (1700 lines). But my GPU could not afford that. So now that I could not determine which scans can be loaded in one tile, I need to put part of scans to another folder. Is it the best way?
  5. What's the unit of the brush size? inch or cm?

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