Repository navigation
Lane segment data for subset B #129
Description
Activity
We mentioned that "This benchmark includes only centerline and lane graph annotations. To address this, we produced the pseudo-label of lane segments by assigning a standardized lane width to the lane centerlines".
You can easily obtain the label by transform the points in Frenet coordinates to Cartesian coordinates, with the centerline label in subset B as the reference path.Hi @sephyli,
According to your openreview reply, in case you keep the script to generate the pseudo-label, could you upload it ? Thank you very muchIf not, could you please explain in detail about how to obtain the area label (pedestrian), the class of right line and left line ?
For subset-B, we only generate pseudo-label of lane segment and evaluate the centerline performance. I found the script, but it can not run directly. You may put it in the dataset, and you may can run it smoothly. I do not guarantee anything for the script.
def gen_pseudo_laneseg(self, index): olv2_ann_info = self.data_infos[index]['annotation'] lane_segments = [] for lane in olv2_ann_info['lane_centerline']: centerline = fix_pts_interpolate(lane['points'], 50) whole_direction = centerline[-1] - centerline[0] whole_direction = (whole_direction / np.linalg.norm(whole_direction)) whole_orthogonal_direction = np.cross(whole_direction, np.array([0, 0, 1])) if np.dot(whole_orthogonal_direction, np.array([0, 1, 0])) < 0: whole_orthogonal_direction = -whole_orthogonal_direction whole_orthogonal_direction = whole_orthogonal_direction / np.linalg.norm(whole_orthogonal_direction) left_boundary = [] right_boundary = [] for i in range(len(centerline)-1): direction = centerline[i+1] - centerline[i] direction = (direction / np.linalg.norm(direction)) orthogonal_direction = np.cross(direction, np.array([0, 0, 1])) # if np.dot(orthogonal_direction, np.array([0, 1, 0])) < 0: if np.dot(orthogonal_direction, whole_orthogonal_direction) < 0: orthogonal_direction = -orthogonal_direction orthogonal_direction = orthogonal_direction / np.linalg.norm(orthogonal_direction) left_boundary.append(centerline[i] + orthogonal_direction * 2) right_boundary.append(centerline[i] - orthogonal_direction * 2) if i == len(centerline)-1: left_boundary.append(centerline[i+1] + orthogonal_direction * 2) right_boundary.append(centerline[i+1] - orthogonal_direction * 2) left_boundary = np.array(left_boundary) right_boundary = np.array(right_boundary) lane_segments.append(dict( centerline=centerline, left_laneline=left_boundary, right_laneline=right_boundary, left_laneline_type=0, right_laneline_type=0,)) pseudo_laneseg_info = dict( lane_segment=lane_segments, area=[], topology_lsls=olv2_ann_info['topology_lclc'], ) return pseudo_laneseg_info
Dear Authors,
As in LaneSegNet openreview, I have noticed that you have the pre-processed version for lane segment of subset B. Could you release it ?