woven-planet / l5kit

L5Kit - https://woven.toyota
https://woven-planet.github.io/l5kit
859 stars 277 forks source link

Is there any way getting the lane connectivity and driving directions from the semantic map? #65

Closed la1290 closed 4 years ago

la1290 commented 4 years ago

Hi, I've loaded the semantic map using l5kit.data.load_semantic_map method and got a dictionary with the following keys: lat, lon, lanes, lanes_bounds, crosswalks, crosswalks_bounds. Is there any way getting the lane connectivity and driving directions from the semantic map? Thank you!

pch9520 commented 4 years ago

Hi, @lucabergamini , I feel confused too, as paper says, you provide these property in semantic_map:

Lane boundaries
Lane connectivity
Driving directions
Road class
Speed limits
Lane restrictions
Crosswalks
Traffic lights
Traffic signs
Restrictions
Speed bumps

but the map_dict_keys only have lat, lon, lanes, lanes_bounds, crosswalks, crosswalks_bounds. I look into lanes[0], I get this result:

((array([163.97, 170.6 , 171.31, 178.23, 182.71, 186.76, 190.18, 196.  ,
       203.68, 203.89, 204.4 , 209.88, 211.99, 213.47, 213.68, 213.85,
       214.73, 218.41, 232.03, 239.29]), 
array([549.12, 544.92, 544.46, 540.07, 537.24, 534.67, 532.5 , 528.8 ,
       523.93, 523.8 , 523.47, 519.99, 518.66, 517.72, 517.58, 517.48,
       516.92, 514.59, 505.94, 501.33]), 
array([-20.78, -20.74, -20.72, -20.69, -20.65, -20.65, -20.62, -20.61,
       -20.55, -20.53, -20.54, -20.5 , -20.51, -20.49, -20.48, -20.49,
       -20.48, -20.48, -20.32, -20.27])), 
(array([163.13, 166.81, 168.63, 169.69, 173.08, 174.14, 175.45, 182.22,
       186.93, 190.76, 196.35, 199.5 , 201.31, 203.87, 209.  , 212.1 ,
       212.52, 213.12, 214.13, 217.95, 219.43, 227.98, 231.81, 233.53,
       234.23, 234.92, 236.11, 236.52, 237.62, 238.4 ]), 
array([547.89, 545.59, 544.45, 543.79, 541.67, 541.01, 540.19, 535.95,
       532.93, 530.48, 526.89, 524.86, 523.7 , 522.06, 518.76, 516.83,
       516.57, 516.2 , 515.56, 513.18, 512.25, 506.82, 504.38, 503.27,
       502.8 , 502.32, 501.51, 501.22, 500.47, 499.93]), 
array([-20.79, -20.78, -20.75, -20.76, -20.73, -20.74, -20.72, -20.69,
       -20.68, -20.64, -20.63, -20.58, -20.58, -20.55, -20.51, -20.5 ,
       -20.53, -20.54, -20.49, -20.46, -20.43, -20.35, -20.35, -20.3 ,
       -20.29, -20.31, -20.28, -20.29, -20.28, -20.24])))

What's the meaning of each array ? I'm looking forward to your reply ! Thank you!

lucabergamini commented 4 years ago

Hi @la1290 @pch9520, thanks for the feedback!

Is there any way getting the lane connectivity and driving directions from the semantic map?

Not yet from our API, but that information is in our semantic map proto, so it will be exported in the future.

I feel confused too, as paper says, you provide these property in semantic_map

All those features are in the map proto and we're working hard to provide API user will be able to include in their projects to use those features

What's the meaning of each array ?

please take a look here for the exact syntax of the arrays. lanes elements have the following shape:

- left-boundary tuple
    - X coords np.array
    - Y coords np.array
    - Z coords np.array
- right-boundary tuple
    - X coords np.array
    - Y coords np.array
    - Z coords np.array

We're planning to expand the semantic rasterisation and API with tons of features in the upcoming months

pch9520 commented 4 years ago

Ok, thank you very much ! I think these information is very important for trajectory prediction project !

PrasadNR commented 4 years ago
Lane boundaries
Lane connectivity
Driving directions
Road class
Speed limits
Lane restrictions
Crosswalks
Traffic lights
Traffic signs
Restrictions
Speed bumps

I am looking into these too. Can you please let me know how I can get these information? Basically, we plan not to use images at all. But, rely on low dimensional road geometry information and semantic map information. I was looking into https://github.com/lyft/l5kit/blob/20ab033c01610d711c3d36e1963ecec86e8b85b6/l5kit/l5kit/data/proto/road_network.proto . But, I really do not know how I can correlate scenes with this.

Also, how is l5kit.data.load_semantic_map different from l5kit.data.map.load_semantic_map? I am not able to use either.