692 lines
26 KiB
Protocol Buffer
692 lines
26 KiB
Protocol Buffer
|
|
syntax = "proto3";
|
|||
|
|
import "google/protobuf/any.proto";
|
|||
|
|
import "google/protobuf/timestamp.proto";
|
|||
|
|
import "geometry.proto";
|
|||
|
|
import "data_source.proto";
|
|||
|
|
import "calib_param.proto";
|
|||
|
|
import "vehicle_signal.proto";
|
|||
|
|
import "vehicle_signal_v2.proto";
|
|||
|
|
import "command_signal.proto";
|
|||
|
|
import "object_warning.proto";
|
|||
|
|
import "camera.proto";
|
|||
|
|
import "scene.proto";
|
|||
|
|
import "tsr_define.proto";
|
|||
|
|
|
|||
|
|
// VERSION
|
|||
|
|
// 0.6
|
|||
|
|
|
|||
|
|
package perception;
|
|||
|
|
|
|||
|
|
message Object {
|
|||
|
|
// 目标检测分类
|
|||
|
|
enum ObjectType {
|
|||
|
|
kNone = 0;
|
|||
|
|
kVehicle = 1; // 车辆
|
|||
|
|
kPed = 2; // 行人
|
|||
|
|
kBike = 3; // 二轮车
|
|||
|
|
kCone = 4; // 锥桶
|
|||
|
|
|
|||
|
|
kVehicleWheel = 5; // 车轮
|
|||
|
|
kVehiclePlate = 6; // 车牌
|
|||
|
|
kPedHead = 7; // 人头
|
|||
|
|
kCyclist = 8; // 骑行者
|
|||
|
|
kWarningTriangle = 9; // 三角警告牌
|
|||
|
|
kSmallTrafficSign = 10; // 小标牌
|
|||
|
|
kBigTrafficSign = 11; // 大标牌
|
|||
|
|
kTrafficLight = 12; // 交通信号灯
|
|||
|
|
kAnimals = 13; // 动物
|
|||
|
|
kVehicleLight = 14; // 车灯
|
|||
|
|
kStreetLamp = 15; // 路灯
|
|||
|
|
kRoadBarrier = 16; // 水马
|
|||
|
|
kTrafficLightBulb = 17; // 交通信号灯的灯芯
|
|||
|
|
kTrafficLightDigit = 18; // 交通信号灯的数字
|
|||
|
|
kObstacle = 19; // 障碍物
|
|||
|
|
kThreeWheeledVehicle = 20;// 三轮车
|
|||
|
|
kObjectTypeNum = 24;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum ObjectCategory {
|
|||
|
|
kCategoryNone = 0;
|
|||
|
|
|
|||
|
|
kCategoryCar = 1; // 小轿车
|
|||
|
|
kCategorySuv = 2; // SUV
|
|||
|
|
kCategoryPickup = 3; // 皮卡
|
|||
|
|
kCategoryMediumCar = 4; // 中型车
|
|||
|
|
kCategoryVan = 5; // 面包车
|
|||
|
|
kCategoryBus = 6; // 客车
|
|||
|
|
kCategoryTruck = 7; // 卡车/罐车/大型货车/工程车
|
|||
|
|
kCategorySpecialVehicle = 8; // 特种车
|
|||
|
|
kCategoryTricycle = 9; // 三轮车/三轮骑行者
|
|||
|
|
kCategoryUnknownVehicle = 10; // 未知车辆
|
|||
|
|
|
|||
|
|
kCategoryPedestrian = 30; // 行人
|
|||
|
|
kCategoryBike = 31; // 自行车/摩托车
|
|||
|
|
kCategoryCyclist = 32; // 自行车骑行者/摩托车骑行者
|
|||
|
|
|
|||
|
|
kCategoryTrafficSign = 40; // 交通标志牌
|
|||
|
|
|
|||
|
|
kCategoryVehicleWheel = 90; // 车轮
|
|||
|
|
kCategoryLicensePlate = 91; // 车牌
|
|||
|
|
kCategoryHead = 92; // 人头
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 车辆姿态分类
|
|||
|
|
enum VehiclePose {
|
|||
|
|
kInvalid = 0; // 背景
|
|||
|
|
kLeftTail = 1; // 左侧同向车
|
|||
|
|
kMidTail = 2; // 中间同向车
|
|||
|
|
kRightTail = 3; // 右侧同向车
|
|||
|
|
kLeftHead = 4; // 左侧对向车
|
|||
|
|
kMidHead = 5; // 中间对向车
|
|||
|
|
kRightHead = 6; // 右侧对向车
|
|||
|
|
kLeftSide = 7; // 朝左横向车
|
|||
|
|
kRightSide = 8; // 朝右横向车
|
|||
|
|
kLeftCutIn = 9; // 左侧切入
|
|||
|
|
kRightCutIn = 10; // 右侧切入
|
|||
|
|
kLeftCutOut = 11; // 左侧切出
|
|||
|
|
kRightCutOut = 12; // 右侧切出
|
|||
|
|
kOccluded = 13; // 车头遮挡/车尾遮挡/横向遮挡 (deprecated)
|
|||
|
|
kSide = 14; // 横向车(不知道朝左,还是朝右)
|
|||
|
|
kOccludedTail = 15; // 车尾遮挡
|
|||
|
|
kOccludedHead = 16; // 车头遮挡
|
|||
|
|
kOccludedSide = 17; // 横向遮挡
|
|||
|
|
kVehicleOtherPose = 18; // 其他(切车、横向车、遮挡车)
|
|||
|
|
kUnknownPose = 20; // unknown pose
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum OccludedType {
|
|||
|
|
kWithoutOccluded = 0; // 无遮挡
|
|||
|
|
kPartOccluded = 1; // 部分遮挡
|
|||
|
|
kLeftOccluded = 2; // 左遮挡
|
|||
|
|
kRightOccluded = 4; // 右遮挡
|
|||
|
|
kTopOccluded = 8; // 上遮挡
|
|||
|
|
kBottomOccluded = 16; // 底部遮挡
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 行人姿态分类
|
|||
|
|
enum PedPose {
|
|||
|
|
kPedInvalidPose = 0; // 背景
|
|||
|
|
kPedForward = 1; // 朝前
|
|||
|
|
kPedBackward = 4; // 朝后
|
|||
|
|
kPedLeft = 7; // 朝左
|
|||
|
|
kPedRight = 10; // 朝右
|
|||
|
|
kPedUnknownPose = 20; // 未知朝向
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum PedCls {
|
|||
|
|
kPedInvalidCls = 0; // 背景
|
|||
|
|
kPedFull = 1; // 完整行人
|
|||
|
|
kPedOccluded = 2; // 遮挡行人
|
|||
|
|
kPedCyclist = 3; // 骑车行人
|
|||
|
|
kPedAdvert = 4; // 广告行人
|
|||
|
|
kPedFakeFull = 5; // 伪装直立行人
|
|||
|
|
kPedFakeCyclist = 6; // 伪装骑行者
|
|||
|
|
kPedUnknownCls = 20; // 未知类别
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 锚点信息
|
|||
|
|
enum AnchorPtInfo {
|
|||
|
|
kVehicleHead = 0;
|
|||
|
|
kVehicleTail = 1;
|
|||
|
|
kVehicleFrontWheel = 2; // deprecated
|
|||
|
|
kVehicleRearWheel = 3; // deprecated
|
|||
|
|
kVehicleSomeWheel = 4;
|
|||
|
|
kDetectBottomCenter = 5;
|
|||
|
|
kVehicleLeftFrontWheel = 6;
|
|||
|
|
kVehicleLeftRearWheel = 7;
|
|||
|
|
kVehicleRightFrontWheel = 8;
|
|||
|
|
kVehicleRightRearWheel = 9;
|
|||
|
|
kMonocular3DFront = 21;
|
|||
|
|
kMonocular3DRear = 22;
|
|||
|
|
kMonocular3DLeft = 23;
|
|||
|
|
kMonocular3DRight = 24;
|
|||
|
|
kMonocular3DCenter = 25;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 车辆测距方式
|
|||
|
|
enum MeasureType {
|
|||
|
|
kVehicleMeasureHeadReg = 0;
|
|||
|
|
kVehicleMeasureTailReg = 1;
|
|||
|
|
kVehicleMeasureDetect = 2;
|
|||
|
|
kVehicleMeasureWheel = 3;
|
|||
|
|
kVehicleMeasurePlate = 4;
|
|||
|
|
kVehicleMeasureHeadProjection = 5;
|
|||
|
|
kVehicleMeasureTailProjection = 6;
|
|||
|
|
kVehicleMeasureHeadWidth = 7;
|
|||
|
|
kVehicleMeasureTailWidth = 8;
|
|||
|
|
kPedMeasureBox = 10; // 行人测距方式
|
|||
|
|
kPedMeasureProjection = 11;
|
|||
|
|
|
|||
|
|
// add 2024/09/20
|
|||
|
|
kVehicleMeasureLaneWidth = 9; // 基于车道宽度
|
|||
|
|
kVehicleMeasureDetHeight = 12; // 基于检测框高度
|
|||
|
|
kVehicleMeasureDetWidth = 13; // 基于检测框宽度
|
|||
|
|
kVehicleMeasureRegHeight = 14; // 基于回归框高度
|
|||
|
|
kVehicleMeasureRegWidth = 15; // 基于回归框宽度
|
|||
|
|
|
|||
|
|
kMeasureMono3D = 16; // 模型测距方式
|
|||
|
|
kMeasureBev = 17;
|
|||
|
|
kMeasureFusion = 20; // 融合测距
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 车型细分类
|
|||
|
|
enum VehicleClass {
|
|||
|
|
kNegative = 0; // 背景
|
|||
|
|
kBus = 1; // 大巴
|
|||
|
|
kCar = 2; // 小轿车,suv
|
|||
|
|
kMiniBus = 3; // 面包车
|
|||
|
|
kBucketTruck = 4; // 斗卡
|
|||
|
|
kContainerTruck = 5; // 箱卡
|
|||
|
|
kTricycle = 6; // 三轮车
|
|||
|
|
kTanker = 7; // 油罐车,晒水车(车身带有圆形,椭圆形,半圆形的罐)
|
|||
|
|
kCementTankTruck = 8; // 水泥罐车
|
|||
|
|
kPickup = 9; // 皮卡
|
|||
|
|
kSedimentTruck = 10; // 渣土车
|
|||
|
|
kIveco = 11; // 依维柯
|
|||
|
|
kSpecialCar = 12; // 异型车
|
|||
|
|
kCityAuto = 13; // 市政车
|
|||
|
|
kVehicleUnknown = 14; // 未知车辆
|
|||
|
|
kWrecker = 15; // 小型拖车,清障车
|
|||
|
|
kFlatTransporter = 16; // 大型平板拖车
|
|||
|
|
kTractorHead = 17; // 卡车车头,牵引车车头
|
|||
|
|
kSpecialFlatTransporter = 18; // 大型特种拖车(相对于大型平板拖车会多挡板)
|
|||
|
|
kCarCarrier = 19; // 轿运车
|
|||
|
|
|
|||
|
|
// 盖布车(车身上的货物全部被布盖着,同时对车辆尾部进行了遮挡)
|
|||
|
|
kTruckWithTrap = 20;
|
|||
|
|
kEngineeringVehicle = 21; // 工程车
|
|||
|
|
kSweeper = 22; // 扫地车
|
|||
|
|
kRoadServiceCar = 23; // 道路维修车
|
|||
|
|
kSanitationTruck = 24; // 环卫车
|
|||
|
|
kGarbageTruck = 25; // 垃圾车
|
|||
|
|
kFakeCar = 26; // 伪装小车
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum WheelClass {
|
|||
|
|
kWheelUnknown = 0; // 车轮方向未知
|
|||
|
|
kWheelFront = 1; // 前车轮
|
|||
|
|
kWheelRear = 2; // 后车轮
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum TrafficLightColor { // 交通灯颜色 cls
|
|||
|
|
kTLCBackground = 0; // 背景
|
|||
|
|
kTLCRed = 1; // 红灯
|
|||
|
|
kTLCGreen = 2; // 绿灯
|
|||
|
|
kTLCYellow = 3; // 黄灯
|
|||
|
|
kTLCUnknown = 8; // 未知
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum TrafficLightShape { // 交通灯形状 pose
|
|||
|
|
kTLSBackground = 0; // 背景
|
|||
|
|
kTLSUp = 1; // 上
|
|||
|
|
kTLSDown = 2; // 下
|
|||
|
|
kTLSLeft = 3; // 左
|
|||
|
|
kTLSRight = 4; // 右
|
|||
|
|
kTLSCircle = 5; // 圆
|
|||
|
|
kTLSTurnAround = 6; // 调头
|
|||
|
|
kTLSDigit = 7; // 数字
|
|||
|
|
kTLSPerson = 8; // 人
|
|||
|
|
kTLSBicycle = 9; // 自行车
|
|||
|
|
kTLSUnknown = 16; // 未知
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum VehicleLightClass { // 车灯分类
|
|||
|
|
kVLUnknown = 0;
|
|||
|
|
kVLHeadLight = 1; // 车头灯
|
|||
|
|
kVLTailLight = 2; // 车尾灯
|
|||
|
|
kVLBrakeLight = 4; // 刹车等
|
|||
|
|
kVLTurnLeftLight = 8; // 左变道灯
|
|||
|
|
kVLTurnRightLight = 16; // 右变道灯
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum VehicleLightStatus { // 车灯状态
|
|||
|
|
kVLSUnknown = 0;
|
|||
|
|
kVLSOn = 1; // 开
|
|||
|
|
kVLSOff = 2; // 关(指示灯全灭)
|
|||
|
|
kVLSFlash = 3; // 闪烁(deprecated)
|
|||
|
|
kVLSLeftTurnLightOn = 4; // 左转向灯亮
|
|||
|
|
kVLSRightTurnLightOn = 8; // 右转向灯亮
|
|||
|
|
kVLSBrakeLightOn = 16; // 刹车灯亮
|
|||
|
|
kVLSHazardLightOn = 32; // 双闪灯亮
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 工况场景判断
|
|||
|
|
enum MoveState {
|
|||
|
|
kMSUnknown = 0; // 未知
|
|||
|
|
kEgoDirectionDriving = 1; // 跟车流方向一致,向前行驶
|
|||
|
|
kEgoDirectionStopped = 2; // 跟车流方向一致, 停止
|
|||
|
|
kEgoDirectionReversing = 3; // 跟车流方向一致, 横穿
|
|||
|
|
kOnComming = 4; // 对向来车
|
|||
|
|
kCrossing = 5; // 横穿车辆
|
|||
|
|
kStationary = 6; // 静止
|
|||
|
|
kTurning = 7; // 转弯
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 目标位置状态 -> 2024/09/20
|
|||
|
|
enum PositionState {
|
|||
|
|
kPosUnknown = 0; // 未知
|
|||
|
|
kPosShortDistance = 1; // 近距离
|
|||
|
|
kPosMediumDistance = 2; // 中距离
|
|||
|
|
kPosLongDistance = 3; // 远距离
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message ImageInfo {
|
|||
|
|
perception.common.Rect2f det_rect = 1; // 检测框
|
|||
|
|
perception.common.Rect2f reg_rect = 2; // 回归框(尾部框)
|
|||
|
|
perception.common.Rect2f track_rect = 3; // 跟踪框
|
|||
|
|
perception.common.Rect2f smooth_rect = 4; // 光流跟踪框
|
|||
|
|
perception.common.Rect2f plate_rect = 5; // 车牌框
|
|||
|
|
repeated perception.common.Rect2f wheel_list = 6; // 车轮踪框
|
|||
|
|
repeated perception.common.Point2f reg_pt_list = 7; // 回归点列表
|
|||
|
|
perception.common.Rect2f bike_rect = 8; // 二轮车框
|
|||
|
|
|
|||
|
|
perception.common.Box3D box = 10; // 3dbox
|
|||
|
|
minieye.CamID camera_id = 11; // 对应那个摄像头
|
|||
|
|
|
|||
|
|
perception.common.Rect2f det_rc_refined = 15; // 经过refine(补框)后的检测框
|
|||
|
|
perception.common.Rect2f reg_rc_refined = 16; // 经过refine(补框)后的回归框
|
|||
|
|
perception.common.Rect2f det_rc_refined_vel = 17; // 经过refine(补框)后的检测框的速速
|
|||
|
|
reserved 18;
|
|||
|
|
GroundContactLines ground_contact_lines = 19; // 车辆四个面的接地线,图像侧按 (u, v, z) 组织
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message GroundContactLines {
|
|||
|
|
perception.common.Point3fList front = 1; // 前面接地线,固定 5 个点
|
|||
|
|
perception.common.Point3fList rear = 2; // 后面接地线,固定 5 个点
|
|||
|
|
perception.common.Point3fList left = 3; // 左面接地线,固定 5 个点
|
|||
|
|
perception.common.Point3fList right = 4; // 右面接地线,固定 5 个点
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum VehicleRigidAnchor {
|
|||
|
|
kVRARear = 0;
|
|||
|
|
kVRARearWheel = 1;
|
|||
|
|
kVRAHeadWheel = 2;
|
|||
|
|
kVRAHead = 3;
|
|||
|
|
kVRAMaxNum = 4;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum ObjImportanceType {
|
|||
|
|
kNormal = 0; // 普通的目标
|
|||
|
|
kCrucial = 1; // 决定性的目标,cipv, cipp
|
|||
|
|
kInterested = 2; // 关注的目标
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message VehicleRigid {
|
|||
|
|
// 长度方向,刚体量测细节
|
|||
|
|
repeated perception.common.Float meas_along_length =
|
|||
|
|
1; // kVRAMaxNum * kVRAMaxNum
|
|||
|
|
perception.common.Float w = 2; // width
|
|||
|
|
perception.common.Float h = 3; // height
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum TrackStatus {
|
|||
|
|
kTSUnknown = 0;
|
|||
|
|
kTSFirstDetectd = 1; // 第一次检测
|
|||
|
|
kTSTracking = 2; // 稳定跟踪 (只针对关键车)
|
|||
|
|
kTSPredict = 3; // 预测
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum SelectLevelStatus {
|
|||
|
|
kSLOriginDet = 0; // 原始检测
|
|||
|
|
kSLDetAfterInnerROINMS = 1; // 经过ROI内NMS后的检测
|
|||
|
|
kSLDetAfterCrossROINMS = 2; // 经过ROI间NMS后的检测
|
|||
|
|
kSLReservered = 3; // 保留字段
|
|||
|
|
kSLCandidateDet = 4; // 候选目标 (所有检测出来的目标都是候选目标)
|
|||
|
|
kSLConcerned = 5; // 需要重点关注的目标
|
|||
|
|
kSLCrucial = 6; // 决定性的目标 (cipv, cipp)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum LaneDirection { // 车道朝向
|
|||
|
|
kSameDirectionLane = 0; // 同向车道
|
|||
|
|
kOppositeDirectionLane = 1; // 对向车道
|
|||
|
|
kObjDirectionUnknown = 2; // 方向unknown
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum PropertyType {
|
|||
|
|
kPropertyVehicleRearLamp = 0;
|
|||
|
|
kPropertyInvalidity = 1;
|
|||
|
|
kPropertyOcclusion = 2;
|
|||
|
|
kPropertyLeftOccluded = 3; // 左遮挡
|
|||
|
|
kPropertyRightOccluded = 4; // 右遮挡
|
|||
|
|
kPropertyBottomOccluded = 5; // 底部遮挡
|
|||
|
|
kPropertyTopOccluded = 6; // 上部遮挡
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum PropertyInvalidity {
|
|||
|
|
kReservedInvalidity = 0;
|
|||
|
|
kVelocityInvalidity = 1;
|
|||
|
|
kPositionInvalidity = 2;
|
|||
|
|
kHeadingInvalidity = 4;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum ObstacleType {
|
|||
|
|
kObstacleBackground = 0; // 背景
|
|||
|
|
kObstacleCone = 1; // 锥桶
|
|||
|
|
kObstacleCrashBarrel = 2; // 防撞桶
|
|||
|
|
kObstacleWarningTriangle = 3; // 三角警告牌
|
|||
|
|
kObstacleCylindrical = 4; // 柱形石墩
|
|||
|
|
kObstacleSphericalstone = 5; // 球形石墩
|
|||
|
|
kObstaclePlasticpole = 6; // 塑料地桩
|
|||
|
|
kObstacleBumpingpost = 7; // 铁地桩
|
|||
|
|
kObstacleWaterbarrier = 8; // 水马
|
|||
|
|
kObstacleCarton = 9; // 纸箱子
|
|||
|
|
kObstacleTyre = 10; // 轮胎
|
|||
|
|
kObstaclePlasticpoleBumpingpost = 11; // 地桩(塑料地桩、铁地桩)
|
|||
|
|
kObstacleOther = 32; // 其它
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
enum Mode {
|
|||
|
|
kNoneMode = 0;
|
|||
|
|
kPilotMode = 1; // 行车
|
|||
|
|
kParkingMode = 2; // 泊车
|
|||
|
|
kCamera1Mono3d = 4;// camera1使用mono3d
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 法规场景具体类型
|
|||
|
|
enum SpecificSceneType {
|
|||
|
|
kSceneUnknown = 0; // 未知
|
|||
|
|
kSceneCNCAP2024SCP = 1; // SCP场景
|
|||
|
|
kSceneCNCAP2024CCFT = 2; // CCFT场景
|
|||
|
|
kSceneCNCAP2024CCRS = 3; // CCRS场景
|
|||
|
|
kSceneCNCAP2024SCPO = 4; // SCPO场景
|
|||
|
|
kSceneCNCAP2024CCRH = 5; // CCRH场景
|
|||
|
|
kSceneCNCAP2024CPLA = 6; // CPLA场景
|
|||
|
|
kSceneCNCAP2024CPLAN = 7; // CPLA_N场景
|
|||
|
|
kSceneCNCAP2024CPTALN = 8; // CPTA_LN场景
|
|||
|
|
kSceneCNCAP2024CPTALF = 9; // CPTA_LF场景
|
|||
|
|
kSceneCNCAP2024CPTARF = 10; // CPTA_RF场景
|
|||
|
|
kSceneCNCAP2024CPFAO = 11; // CPFAO场景
|
|||
|
|
kSceneCNCAP2024CPFAON = 12; // CPFAO_N场景
|
|||
|
|
kSceneCNCAP2024CPNCO = 13; // CPNCO场景
|
|||
|
|
kSceneCNCAP2024CBNAO = 14; // CBNAO场景
|
|||
|
|
kSceneCNCAP2024CSFAO = 15; // CSFAO场景
|
|||
|
|
kSceneCNCAP2024CSTALN = 16; // CSTA_LN场景
|
|||
|
|
kSceneCNCAP2024CBLA = 17; // CBLA场景
|
|||
|
|
kSceneCNCAP2024CSTARN = 18; // CSTA_RN场景
|
|||
|
|
kScene1242CPFA = 19; // 行人从左到右横穿
|
|||
|
|
kScene1242CPNA = 20; // 行人从右到左横穿
|
|||
|
|
kScene1242CPLA = 21; // 正前方静止行人
|
|||
|
|
kScene1242CCRS = 22; // 1242 CCRS场景
|
|||
|
|
kScene1242CCRM = 23; // 1242 CCRM场景
|
|||
|
|
}
|
|||
|
|
//
|
|||
|
|
//enum SFObstaclePropertyType {
|
|||
|
|
//
|
|||
|
|
// SAF_OBS_PRO_NOT_ON_ROAD = (1<<0),【根据freespace判断⽬标是否在道路边界外】
|
|||
|
|
// SAF_OBS_PRO_COVERD_BY_OTHERS = (1 << 1),//【⽬标是否被物体遮挡】
|
|||
|
|
// SAF_OBS_PRO_OBSERVE_JUMP = (1 << 2),// 【通过图像检测框判断⽬标是否跳变】
|
|||
|
|
// SAF_OBS_PRO_OBSERVE_SIDE = (1 << 3),// 【⽬标是否在图像边缘】
|
|||
|
|
//通过⻆点、检测框、速度⽐例判断横穿转直⾏,仅骑⻋⼈输出,内部使⽤
|
|||
|
|
// SAF_OBS_PRO_BT_TAP_LEVEL_1 = (1 << 4),
|
|||
|
|
// SAF_OBS_PRO_BT_TAP_LEVEL_2 = (1 << 5),
|
|||
|
|
// SAF_OBS_PRO_BT_TAP_LEVEL_3 = (1 << 6),
|
|||
|
|
// SAF_OBS_PRO_PED_ON_MOTOR = (1 << 7),//【可能是三轮⻋上⾏⼈flag,根据IOU进⾏判断】
|
|||
|
|
// SAF_OBS_PRO_PED_GROUP = 1 << 8, //【⼈群】
|
|||
|
|
// SAF_OBS_PRO_CROSSING_GHOST= 1 << 9,//【⻤探头】
|
|||
|
|
//}
|
|||
|
|
message PropertyValue {
|
|||
|
|
int32 value = 1;
|
|||
|
|
float valuef = 2;
|
|||
|
|
float confidence = 3;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message OperatingCondition {
|
|||
|
|
enum RoadSurface {
|
|||
|
|
kRoadSurfaceSmooth = 0;
|
|||
|
|
kRoadSurfaceBumpy = 1;
|
|||
|
|
}
|
|||
|
|
enum RoadGradient {
|
|||
|
|
kRoadGradientFlatGround = 0;
|
|||
|
|
kRoadGradientUphill = 1;
|
|||
|
|
kRRoadGradientDownhill = 2;
|
|||
|
|
}
|
|||
|
|
enum MotionState {
|
|||
|
|
kMotionStateNone = 0;
|
|||
|
|
kMotionStateStationary = 1;
|
|||
|
|
kMotionStateMoving = 2;
|
|||
|
|
kMotionStateTurning = 4;
|
|||
|
|
kMotionStateStraight = 8;
|
|||
|
|
}
|
|||
|
|
bool airborne = 1; // 悬空
|
|||
|
|
RoadSurface road_surface = 2; // 颠簸
|
|||
|
|
RoadGradient road_gradient = 3; // 上下坡
|
|||
|
|
uint32 motion_state = 4; // 运动状态
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message LaneAssignment {
|
|||
|
|
perception.common.Int lane_index = 1; // 车道位置(--3 -2 -1 0 1 2 3)
|
|||
|
|
LaneDirection direction = 2; // 车道朝向
|
|||
|
|
// 是否侵道 ( > 0 - 侵道, < 0 - 未侵道, 其值为侵入的多少, 单位m)
|
|||
|
|
perception.common.Float has_cut_lane = 3;
|
|||
|
|
|
|||
|
|
// 透视图下车尾侵入本车道的比例[-103, 100]
|
|||
|
|
// < 0, 侵入当前右车道线,> 0, 侵入当前左车道线, 0 - 无侵入
|
|||
|
|
// -101 -> 无车尾回归框
|
|||
|
|
// -102 -> 无匹配车道线
|
|||
|
|
// -103 -> 既无回归框也无车道线
|
|||
|
|
perception.common.Int cut_in_ratio_on_persp = 4;
|
|||
|
|
|
|||
|
|
// 关联的车道属性
|
|||
|
|
repeated perception.common.Int associated_lane_idxs = 5;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 单目3D信息
|
|||
|
|
message Monocular3D {
|
|||
|
|
// Box3D中心点的像素坐标(xc, yc)
|
|||
|
|
perception.common.Point2f ctr_pt_2d = 1;
|
|||
|
|
// 深度(z)
|
|||
|
|
perception.common.Float z = 2;
|
|||
|
|
|
|||
|
|
// Box3D(l, w, h)
|
|||
|
|
perception.common.Float l = 3;
|
|||
|
|
perception.common.Float w = 4;
|
|||
|
|
perception.common.Float h = 5;
|
|||
|
|
|
|||
|
|
// alpha(人眼看的车辆方向)
|
|||
|
|
perception.common.Float alpha = 6;
|
|||
|
|
|
|||
|
|
// 模型原始测距的锚点信息
|
|||
|
|
AnchorPtInfo anchor = 7;
|
|||
|
|
|
|||
|
|
// 模型原始输出的3D位置和朝向信息
|
|||
|
|
message Model3DPos {
|
|||
|
|
float x3d = 1;
|
|||
|
|
float y3d = 2;
|
|||
|
|
float z3d = 3;
|
|||
|
|
float heading = 4;
|
|||
|
|
}
|
|||
|
|
Model3DPos model_3d_pos = 8;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message WorldInfo {
|
|||
|
|
perception.common.XYZ vel = 1; // 速度
|
|||
|
|
perception.common.XYZ rel_vel = 2; // 相对速度
|
|||
|
|
perception.common.XYZ acc = 3; // 加速度
|
|||
|
|
perception.common.XYZ pos = 4; // 位置
|
|||
|
|
perception.common.Size3D size = 5; // 长宽高
|
|||
|
|
// 与自车的中心夹角 左边缘夹角 右边缘夹角
|
|||
|
|
perception.common.Angle3f angle = 6;
|
|||
|
|
|
|||
|
|
// 基于回归框估计的宽高
|
|||
|
|
perception.common.Size3D size_est1 = 7;
|
|||
|
|
|
|||
|
|
// 基于检测框估计的宽高
|
|||
|
|
perception.common.Size3D size_est2 = 8;
|
|||
|
|
|
|||
|
|
perception.common.Box3D box = 10; // 3dbox
|
|||
|
|
|
|||
|
|
uint32 id = 11; // 目标id
|
|||
|
|
|
|||
|
|
// 类型细分类,可能取:
|
|||
|
|
//
|
|||
|
|
// - VehicleClass
|
|||
|
|
// - PedCls
|
|||
|
|
// - TrafficLightColor
|
|||
|
|
// - tsr.SignType
|
|||
|
|
//
|
|||
|
|
perception.common.Int cls = 12;
|
|||
|
|
|
|||
|
|
// 模糊类型。
|
|||
|
|
//
|
|||
|
|
// 遮挡等情况下,模型无法判断物体具体类型,possible_cls_list
|
|||
|
|
// 表示此物体的可能类型。
|
|||
|
|
//
|
|||
|
|
// - 当此列表为空时,视作仅包含 cls.val。
|
|||
|
|
// - 当此列表仅包含 cls.val,表示结果不模糊的。
|
|||
|
|
// - 否则,cls.val 的值是无效的(一般设为某种未知类型)。
|
|||
|
|
repeated int32 possible_cls_list = 42;
|
|||
|
|
|
|||
|
|
float val = 13; // 分类值
|
|||
|
|
perception.common.Int pose = 14; // 姿态分类 : VehiclePose PedPose TrafficLightShape
|
|||
|
|
float ttc = 15; // 碰撞时间
|
|||
|
|
float headway = 16; // 时距=距离/自车速度
|
|||
|
|
int32 cipv = 17; // 前方目标是否为关键车(CIPV),关键车为1,非关键车为0
|
|||
|
|
int32 cipp = 18; // 前方目标是否为关键人(CIPP),关键人为1,非关键人为0
|
|||
|
|
perception.common.PoseAngle pose_angle =
|
|||
|
|
19; // 姿态角,单位:度,左正右负, ±180
|
|||
|
|
perception.common.Int motion_state = 20; // 运动状态,参考MoveState定义
|
|||
|
|
AnchorPtInfo anchor = 21; // 测距对应的锚点信息
|
|||
|
|
|
|||
|
|
perception.common.Point3D pos_var = 22; // pos的方差(deprecated)
|
|||
|
|
perception.common.Point3D size_var = 23; // 长宽高的方差(deprecated)
|
|||
|
|
|
|||
|
|
// (deprecated) pose_angle的方差
|
|||
|
|
perception.common.Point3D pose_angle_var = 24;
|
|||
|
|
perception.common.XYZ anchor_offset = 25; // 锚点的offset
|
|||
|
|
repeated perception.common.XY odom_trace = 26; // 历史轨迹
|
|||
|
|
|
|||
|
|
perception.common.Int pose_ori = 30; // 模型直出的pose
|
|||
|
|
perception.common.Int cls_ori = 31; // 模型直出的cls
|
|||
|
|
ObjectType hit_type = 32; // 目标检测大类别
|
|||
|
|
float confidence = 33; // 综合置信度
|
|||
|
|
MeasureType measure_type = 34; // 量测类型
|
|||
|
|
TrackStatus track_status = 35; // 跟踪状态
|
|||
|
|
LaneAssignment road_assignment = 36; // 目标所在的车道信息
|
|||
|
|
int32 life_time = 37; // 生命周期
|
|||
|
|
int32 index = 38; // 索引
|
|||
|
|
uint32 age = 39; // 目标存活周期
|
|||
|
|
|
|||
|
|
Monocular3D monocular_3d = 40; // 单目3D信息
|
|||
|
|
//障碍物(⾏⼈、骑⻋⼈)属性,包含:是否在道路边界外, 是否被遮挡等,其中pro_flag按照bitmap⽅式SFObstaclePropertyType填充:
|
|||
|
|
int32 pro_flag = 41;
|
|||
|
|
ObjectCategory object_category = 43; // 检测细分类,保留模型原始类别语义
|
|||
|
|
GroundContactLines ground_contact_lines = 44; // 车辆四个面的接地线,转换到车身坐标系后的点集
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
message FusionInfo { // fusion要用到的关联信息
|
|||
|
|
// 关联到的各个摄像头的检测框
|
|||
|
|
repeated ImageInfo associated_image_infos = 1;
|
|||
|
|
// 关联到的各个摄像头的检测框
|
|||
|
|
repeated WorldInfo associated_world_infos = 2;
|
|||
|
|
repeated float associated_conf_matrix = 3; // 关联置信度 num * num
|
|||
|
|
WorldInfo fusion_world_info = 4; // 多视fusion后的结果
|
|||
|
|
map<int32, PropertyValue> properties = 5; // <PropertyType, PropertyValue>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int32 hit_id = 1; // 目标检测ID (deprecated, 以hit_type为准)
|
|||
|
|
ObjectType hit_type = 2; // 目标检测类别enum
|
|||
|
|
string hit_type_str = 6; // 目标检测类别string
|
|||
|
|
float confidence = 3; // 检测置信度(综合)
|
|||
|
|
|
|||
|
|
int32 frame_cnt = 4; // frame count
|
|||
|
|
int32 life_time = 5; // live us
|
|||
|
|
uint64 time_creation = 7; // 障碍物被识别的时间戳(微秒)
|
|||
|
|
|
|||
|
|
ImageInfo image_info = 8; // 图像信息 (前视1v专用)
|
|||
|
|
WorldInfo world_info = 9; // 车辆坐标系下信息 (前视1v专用)
|
|||
|
|
|
|||
|
|
int32 track_status = 10; // track状态
|
|||
|
|
int32 trace_status = 11; // deprecated
|
|||
|
|
int32 select_level = 12; // 选择等级 (SelectLevelStatus)
|
|||
|
|
|
|||
|
|
uint32 id = 15; // object id
|
|||
|
|
FusionInfo fusion_info = 16; // fusion需要信息
|
|||
|
|
MeasureType measure_type = 17; // 量测类型
|
|||
|
|
|
|||
|
|
uint64 timestamp = 18; // 当前时刻 timestamp (微秒)
|
|||
|
|
uint64 frame_id = 19; // 当前帧 frame id
|
|||
|
|
|
|||
|
|
perception.common.Int lane_assignment = 21; // 目标所在车道信息(deprecated)
|
|||
|
|
// 是否侵道 ( > 0 - 侵道, < 0 - 未侵道, 其值为侵入的多少, 单位m)(deprecated)
|
|||
|
|
perception.common.Float has_cut_lane = 22;
|
|||
|
|
|
|||
|
|
VehicleRigid veh_rigid = 23; // 车辆刚体信息
|
|||
|
|
|
|||
|
|
perception.common.FloatArray features = 24; // 特征向量
|
|||
|
|
|
|||
|
|
LaneAssignment road_assignment = 25; // 目标所在车道信息
|
|||
|
|
uint32 occluded_mask = 26; // 值域范围(0 | OccludedType[i])
|
|||
|
|
google.protobuf.Timestamp timestamp_ts = 27; // 管理面时间
|
|||
|
|
google.protobuf.Timestamp tick_ts = 28; // 数据面时间
|
|||
|
|
// 遮挡率可以使用该map表示
|
|||
|
|
map<int32, PropertyValue> properties = 29; // <PropertyType, PropertyValue>
|
|||
|
|
OperatingCondition operating_condition = 30; // 工况
|
|||
|
|
SpecificSceneType specific_scene = 31; // 法规场景具体类型
|
|||
|
|
uint32 age = 32; // 目标存活周期
|
|||
|
|
ObjectCategory object_category = 33; // 检测细分类,保留模型原始类别语义
|
|||
|
|
|
|||
|
|
repeated Object key_components = 60; // 组件信息
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// topic : "ObjectPerceptionObjectList"
|
|||
|
|
message ObjectList {
|
|||
|
|
repeated Object list = 1; // object list
|
|||
|
|
|
|||
|
|
string version = 3; // 版本号
|
|||
|
|
|
|||
|
|
uint64 frame_id = 4; // 帧IDs
|
|||
|
|
uint64 timestamp = 5; // utc时戳, us
|
|||
|
|
|
|||
|
|
perception.object.Warning warning = 6; // 告警
|
|||
|
|
repeated perception.common.Rect2f roi_list = 7; // 检测ROI列表
|
|||
|
|
|
|||
|
|
uint64 tick = 9; // tick时戳, us
|
|||
|
|
uint64 start_time_us = 10; // 算法流程开始时间
|
|||
|
|
uint64 end_time_us = 11; // 算法流程结束时间
|
|||
|
|
repeated uint64 profiling_time = 12; // 模块耗时列表
|
|||
|
|
repeated Scene scene = 13; // 场景分类(deprecated)
|
|||
|
|
SceneList scene_list = 14; // 场景分类
|
|||
|
|
|
|||
|
|
minieye.DataSource data_source = 15; // 描述数据源 字节数: 4
|
|||
|
|
minieye.CalibParam calib_param = 16; // 标定参数
|
|||
|
|
minieye.VehicleSignal vehicle_signal = 17; // 车身信号
|
|||
|
|
minieye.CameraParam camera_param = 18; // 相机内外参数(多v融合结果不适用)
|
|||
|
|
minieye.CamID cam_id = 19; // 摄像头id(cam_id.id(), 等同instance_id)
|
|||
|
|
uint32 cam_prj_id = 20; // 用于进行投影变换的id
|
|||
|
|
minieye.CommandSignal command_signal = 21; // 触发式信号
|
|||
|
|
google.protobuf.Timestamp timestamp_ts = 22; // 管理面时间
|
|||
|
|
google.protobuf.Timestamp tick_ts = 23; // 数据面时间
|
|||
|
|
|
|||
|
|
minieye.VehicleSignalHighFreq vehicle_signal_high_freq = 24; // 车身高频信号
|
|||
|
|
minieye.VehicleSignalLowFreq vehicle_signal_low_freq = 25; // 车身低频信号
|
|||
|
|
uint32 mode = 26; // 模式
|
|||
|
|
repeated uint32 frame_ids = 27; // [前短焦,后,前长焦,往左前看,往左后看,往右前看,往右后看] 不存在的补0
|
|||
|
|
uint64 roadmarking_frame_id = 28; // 匹配路面感知的frame_id
|
|||
|
|
uint64 roadmarking_tick_ms = 29; // 匹配路面感知的tick(毫秒)
|
|||
|
|
google.protobuf.Any debug_details = 30; // debug信息
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// topic : "ObjectPerceptionVisionObjects"
|
|||
|
|
message VisionObjects {
|
|||
|
|
string version = 1; // 版本号
|
|||
|
|
google.protobuf.Timestamp tick = 2; // 数据面时间
|
|||
|
|
google.protobuf.Timestamp timestamp = 3; // 管理面时间
|
|||
|
|
repeated Object.FusionInfo fusion_info = 4; // 视觉检测结果
|
|||
|
|
// [前短焦,后,前长焦,往左前看,往左后看,往右前看,往右后看]
|
|||
|
|
// 不存在的补0
|
|||
|
|
repeated uint32 frame_ids = 5; // 各v的frame_id
|
|||
|
|
SceneList scene = 6; // 场景分类
|
|||
|
|
|
|||
|
|
google.protobuf.Timestamp start_tick = 7; // 算法开始时间
|
|||
|
|
google.protobuf.Timestamp end_tick = 8; // 算法结束时间
|
|||
|
|
uint32 mode = 9; // 模式
|
|||
|
|
uint64 roadmarking_frame_id = 10; // 匹配路面感知的frame_id
|
|||
|
|
uint64 roadmarking_tick_ms = 11; // 匹配路面感知的tick(毫秒)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// topic : "VisionObjectsWarning"
|
|||
|
|
// perception.object.Warning
|
|||
|
|
|
|||
|
|
// topic : "SagWarning"
|
|||
|
|
// perception.object.SAGWarning
|