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

global_translate_noise in CenterForm is different from that in CenterPoint. #11

Open
JingweiZhang12 opened this issue Nov 21, 2022 · 4 comments

Comments

@JingweiZhang12
Copy link

JingweiZhang12 commented Nov 21, 2022

Interesting work!
The translation of data aug in CenterForm is 0.5,
https://github.com/TuSimple/centerformer/blob/master/configs/waymo/voxelnet/waymo_centerformer.py#L132, while the translation in CenterPoint is 0. Also, I noticed that you used the np.random.uniform rather than np.random.normal like rotation and scale parameters. Could you explain the motivation of these modification and performance influence about them?

@edwardzhou130
Copy link
Collaborator

  1. In the newer version of Centerpoint, the global translation augmentation is also used: https://github.com/tianweiy/CenterPoint/blob/c4b4e0fc97ec6d42d6a31f559816d3305abdf750/configs/waymo/voxelnet/waymo_centerpoint_voxelnet_three_sweeps_20e_iou_pred.py#L116
  2. I used np.random.uniform based on other published papers and haven't tried np.random.normal. I don't think this will cause a big difference, but it could be worthwhile to try.

@Liaoqing-up
Copy link

some sonfused...
Do these data augmenting strategies ensure consistency between sequential frames? How exactly is the copy-paste strategy designed between sequential frames?

@edwardzhou130
Copy link
Collaborator

some sonfused... Do these data augmenting strategies ensure consistency between sequential frames? How exactly is the copy-paste strategy designed between sequential frames?

The pasted object will be added to all frames in the same way (same location and augmentation noises etc.). I just assume it is a static object in the scene.

if res["type"] in ["WaymoDataset_multi_frame"]:
for idx, pre_points in enumerate(previous_frame):
pre_points = np.concatenate([sampled_points, pre_points], axis=0)
points_num.append(pre_points.shape[0])
points = np.concatenate([points, pre_points], axis=0)
points_timeframe.append(time_frame[idx+1])

@Liaoqing-up
Copy link

some sonfused... Do these data augmenting strategies ensure consistency between sequential frames? How exactly is the copy-paste strategy designed between sequential frames?

The pasted object will be added to all frames in the same way (same location and augmentation noises etc.). I just assume it is a static object in the scene.

if res["type"] in ["WaymoDataset_multi_frame"]:
for idx, pre_points in enumerate(previous_frame):
pre_points = np.concatenate([sampled_points, pre_points], axis=0)
points_num.append(pre_points.shape[0])
points = np.concatenate([points, pre_points], axis=0)
points_timeframe.append(time_frame[idx+1])

I see, but if the network has velocity prediction branch, the static object assumption may confused the network, or maybe you have already set the velocity of the paste objects in gt_target to 0? By the way, why not use the velocity of the obejct label to figure out where the obejct is in the history frame and paste on it? Is it worth a try?

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

3 participants