Apollo检测出的障碍物输出格式如上图所示。
输出的注释写的是kitti数据集的格式,kitti只有16个值。这个比kitti还要多6个值。
./apollo/modules/perception/camera/app/debug_info.cc说明了每个值的含义。
(前16个是和kitti数据集格式一样)
// 1 type Describes the type of object: 'Car', 'Van', 'Truck',
// 'Pedestrian', 'Person_sitting', 'Cyclist', 'Tram',
// 'Misc' or 'DontCare'
// 1 truncated Float from 0 (non-truncated) to 1 (truncated), where
// truncated refers to the object leaving image boundaries
// 1 occluded Integer (0,1,2,3) indicating occlusion state:
// 0 = fully visible, 1 = partly occluded
// 2 = largely occluded, 3 = unknown
// 1 alpha Observation angle of object, ranging [-pi..pi]
// 4 bbox 2D bounding box of object in the image (0-based index):
// contains left, top, right, bottom pixel coordinates
// 3 dimensions 3D object dimensions: height, width, length (in meters)
// 3 location 3D object location x,y,z in camera coordinates (in
// meters) 1 rotation_y Rotation ry around Y-axis in camera coordinates
// [-pi..pi] 1 score Only for results: Float, indicating confidence
// in detection, needed for p/r curves, higher is better.
但细看代码,比kitti的类要少,只有car ,cyclist,pedestrian和pedestrian几个类。(但是我记得在其他的配置文件有别的类啊。。。)
for (const auto &obj : objects) {
switch (obj->type) {
case base::ObjectType::VEHICLE:
outf << "Car";
break;
case base::ObjectType::BICYCLE:
outf << "Cyclist";
break;
case base::ObjectType::PEDESTRIAN:
outf << "Pedestrian";
break;
default:
AERROR << "Unknown object type: " << static_cast<int>(obj->type);
outf << "Unknown";
}
然后可以看到截断和遮挡都设为了0.也就是认为完全没有截断,完全没有遮挡。
//截断和遮挡
outf << " 0 0 ";
outf << obj->camera_supplement.alpha;
outf << " " << obj->camera_supplement.box.xmin;
outf << " " << obj->camera_supplement.box.ymin;
outf << " " << obj->camera_supplement.box.xmax;
outf << " " << obj->camera_supplement.box.ymax;
outf << " " << obj->size[2];
outf << " " << obj->size[1];
outf << " " << obj->size[0];
outf << " " << obj->center[0];
outf << " " << obj->center[1];
outf << " " << obj->center[2];
outf << " " << obj->theta;
outf << " " << obj->type_probs[static_cast<int>(obj->type)];
下面是比kitti数据集要多的几个值:分别是刹车灯,左转向和右转向灯是否可见?是否开启?
outf << " " << obj->car_light.brake_visible;
outf << " " << obj->car_light.brake_switch_on;
outf << " " << obj->car_light.left_turn_visible;
outf << " " << obj->car_light.left_turn_switch_on;
outf << " " << obj->car_light.right_turn_visible;
outf << " " << obj->car_light.right_turn_switch_on;