BIT-MJY / CVTNet

[TII 2023] A Cross-View Transformer Network for LiDAR-Based Place Recognition in Autonomous Driving Environments.
MIT License
102 stars 9 forks source link

Quesions about ri_bev_generation #8

Closed where2go947 closed 6 months ago

where2go947 commented 6 months ago

Hello, thanks for your great work and open source contributions!

I'd like to try CVTNet on the KITTI dataset. And config.yaml is required to be modified properly. However, I encountered some confusion, could you give me some help?

https://github.com/BIT-MJY/CVTNet/blob/23c5b288fa2afad584e0718eaab1c97954bee6f7/config/config.yml#L7-L23

  1. How to calculate the fov of LiDAR? It seems to be not mentioned in the NCLT dataset article. According to my understanding, it could be calculated as follows:
    
    def calc_velo_fov(velo_xyz, ind):
    hori_dist = np.linalg.norm(velo_xyz[ind, :2])
    vertical = velo_xyz[ind, 2]
    fov_deg = np.degrees(np.arctan(vertical / hori_dist))
    return fov_deg

z_max_ind = np.argmax(velo_xyz[:, 2]) fov_up = calc_velo_fov(velo_xyz, z_max_ind) z_min_ind = np.argmin(velo_xyz[:, 2]) fov_down = calc_velo_fov(velo_xyz, z_min_ind) print("fov_up: ", fov_up) print("fov_down: ", fov_down)

fov_up: 19.87

fov_down: -1.59


But the result is quite different from yours. Is there anything wrong?

2. Are there any factors or restrictions to take into consideration when designing `proj_H, proj_W`? 

3. `range_th, height_th ` could be decided according to the histogram of range and height. Make sure the main parts are included, is that ok?

Could you share your calculation process or main ideas on them?

Looking forward, thanks!
BIT-MJY commented 6 months ago

Thanks for your interest in our work.

  1. We follow the parameters from pole-based localization. Your z_max_ind cannot be regarded as the laser point belonging to the uppermost LiDAR beam, and vice versa.
  2. No. You can design your size or follow previous works for easier comparison.
  3. It's fine.
where2go947 commented 6 months ago

Thanks for your quick reply.

  1. But the fov based on my z_max_ind should be larger than "true fov", because true fov may require a region with a more stable point number. And it seems that pole-based localization uses the same fov parameters both for KITTI and NCLT dataset, setting fov with default value: fov_up=30.67, fov_down=-10.67. Maybe this range is roughly proper.
ynma-hanvo commented 4 months ago

hi, i found fov_down use negative value , is it really needed, as the code always use abs of it.