A question about prune_3d_lane_by_visibility
Aguin opened this issue · comments
Hi @zihanding819 ,
I notice that gt_lanes = [prune_3d_lane_by_visibility(np.array(gt_lane), np.array(gt_visibility[k])) for k, gt_lane enumerate(gt_lanes)]
is removed in v1.1 and gt_visibility
is not used in bench
, does this mean we should not use the visibility
labels in OpenLane?
Hi @Aguin ,
In fact, in v1.1 visibility is still taken into account when calculating cost and error, instead of removing all invisible points in gt at the beginning. When calculating the cost, we divide it into 3 categories by the visibility relationship between pred and gt. And when calculating x_erorr / z_error, only points that are visible in both pred and gt are considered.
@zihanding819 thanks for your reply, gt_visibility_mat
is generated by min_y
and max_y
here https://github.com/OpenPerceptionX/OpenLane/blob/main/eval/LANE_evaluation/lane3d/eval_3D_lane.py#L121, note that invisible points are kept when calculating min_y
and max_y
.
It is indeed necessary to prune invisible gt points before evaluation and we have fixed this in the new version.