aharley / simple_bev

A Simple Baseline for BEV Perception
MIT License
483 stars 75 forks source link

why "xyz_cam0 = utils.geom.apply_4x4(cams_T_velo[:,0], xyz_velo0)"? #37

Open yu-Mas opened 1 year ago

yu-Mas commented 1 year ago

Thanks for your great work. When i read the code, i meet a question in the line 145 of "train_nuscenes.py". xyz_cam0 = utils.geom.apply_4x4(cams_T_velo[:,0], xyz_velo0) "cams_T_velo[:,0]" means the "camera0 to world" and "xyz_velo0" means the points in the world coordinate.

It seems that followed code is right. xyz_cam0 = utils.geom.apply_4x4(velo_T_cams[:,0], xyz_velo0)

Except your reply. Thanks.

yu-Mas commented 1 year ago

And there is another question: intrinsics mean camera coordinate to image pixel coordinate,but variable "pix_Tcams" seems represent from image pixel coordinate to camera coordinate.It confuses me for some time. pix_T_cams_ = utils.geom.merge_intrinsics(*utils.geom.split_intrinsics(intrins_)).to(device) Thanks for your reply.

aharley commented 1 year ago

Thanks for asking. It looks like you may be interpreting the notation incorrectly. If you have a look at the "Geometry conventions" stated in the readme, these variables and matmuls should make more sense.

yu-Mas commented 1 year ago

  您好,邮件已收到,我会尽快处理,谢谢。

wcyjerry commented 8 months ago

Hi, I also find this hard to understanding, lrtlist_cam = utils.geom.apply_4x4_to_lrt(cam_Tvelo[0:1].repeat(N, 1, 1), lrtlist).unsqueeze(0), and ChatGPT 4.0 seems fail to explain this neither. as lrtlist is already under self-car coordinates, shouldn't use velo_T_cam,why cam_T_velo

wcyjerry commented 8 months ago

@yu-Mas Have you figured this out?

yu-Mas commented 8 months ago

  您好,邮件已收到,我会尽快处理,谢谢。