<commit_before>syntax = "proto2";

package apollo.prediction;

import "modules/prediction/proto/lane_graph.proto";
import "modules/common/proto/geometry.proto";
import "modules/perception/proto/perception_obstacle.proto";

message Lane {
  // Features of all possible current lanes
  repeated LaneFeature current_lane_feature = 1;

  // Features of the most possible current lane
  optional LaneFeature lane_feature = 2;

  // Features of all nearby lanes
  repeated LaneFeature nearby_lane_feature = 3;

  // Lane graph
  optional LaneGraph lane_graph = 4;

  // For modeling
  optional double label_update_time_delta = 26;
}

message LaneFeature {
  optional string lane_id = 1;
  optional uint32 lane_turn_type = 2;
  optional double lane_s = 3;
  optional double lane_l = 4;
  optional double angle_diff = 5;
  optional double dist_to_left_boundary = 6;
  optional double dist_to_right_boundary = 7;
  optional double lane_heading = 8;
}

// Junction MLP model feature values
message JunctionMLPFeature {
  optional string exit_lane_id = 1;
  repeated double feature_value = 2; // feature values for MLP
  optional int32 label = 3;  // label 1: exit through the lane, 0: otherwise
}

message JunctionFeature {
  optional string junction_id = 1;
  optional LaneFeature enter_lane = 2;
  repeated LaneFeature exit_lane = 3;
  repeated JunctionMLPFeature junction_mlp_feature = 4;  // for MLP
}

message ObstaclePriority {
  enum Priority {<commit_msg>Prediction: add pred exit lane to feature.proto<commit_after>syntax = "proto2";

package apollo.prediction;

import "modules/prediction/proto/lane_graph.proto";
import "modules/common/proto/geometry.proto";
import "modules/perception/proto/perception_obstacle.proto";

message Lane {
  // Features of all possible current lanes
  repeated LaneFeature current_lane_feature = 1;

  // Features of the most possible current lane
  optional LaneFeature lane_feature = 2;

  // Features of all nearby lanes
  repeated LaneFeature nearby_lane_feature = 3;

  // Lane graph
  optional LaneGraph lane_graph = 4;

  // For modeling
  optional double label_update_time_delta = 26;
}

message LaneFeature {
  optional string lane_id = 1;
  optional uint32 lane_turn_type = 2;
  optional double lane_s = 3;
  optional double lane_l = 4;
  optional double angle_diff = 5;
  optional double dist_to_left_boundary = 6;
  optional double dist_to_right_boundary = 7;
  optional double lane_heading = 8;
}

// Junction MLP model feature values
message JunctionMLPFeature {
  optional string exit_lane_id = 1;
  repeated double feature_value = 2; // feature values for MLP
  optional int32 label = 3;  // label 1: exit through the lane, 0: otherwise
}

message JunctionFeature {
  optional string junction_id = 1;
  optional LaneFeature enter_lane = 2;
  repeated LaneFeature exit_lane = 3;
  repeated LaneFeature pred_exit_lane = 5;  // correspond exit lane one by one
  repeated JunctionMLPFeature junction_mlp_feature = 4;  // for MLP
}

message ObstaclePriority {
  enum Priority {
{'fraction_non_alphanumeric': 0.06889698575687314, 'fraction_numerical': 0.01888042398145081, 'mean_word_length': 4.197934595524957, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4111500', 'n_tokens_mistral': 955, 'n_tokens_neox': 888, 'n_words': 302}