Skip to content

Lane segment data for subset B #129

Description

@anhtr-nguyn

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 ?

Activity

  1. sephyli commented on Dec 9, 2024

    @sephyli

    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.

  2. anhtr-nguyn commented on Apr 28, 2025

    @anhtr-nguyn
    Author

    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 much

    If not, could you please explain in detail about how to obtain the area label (pedestrian), the class of right line and left line ?

  3. sephyli commented on Apr 28, 2025

    @sephyli

    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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions