Back to Apollo

激光雷达参数介绍

docs/应用实践/开发调试教程/Apollo感知实践/基于配置参数开发/激光雷达参数介绍.md

11.0.014.4 KB
Original Source

参数目录结构

首先介绍各个组件的配置目录,以激光雷达检测模块为例:

bash
├── lidar_detection
    ├── conf            // 组件配置文件
    ├── dag             // 组件dag文件
    ├── data            // 功能配置文件
    ├── detector
    │   ├── center_point_detection
    │   ├── cnn_segmentation
    │   ├── mask_pillars_detection
    │   └── point_pillars_detection
    ├── interface
    ├── proto
    ├── lidar_detection_component.cc
    ├── lidar_detection_component.h
    ├── cyberfile.xml   // 包配置文件
    ├── README.md
    └── BUILD

公共配置目录,多个组件的公共配置放到modules/perception/data路径下:

bash
modules/perception/data
├── BUILD
├── conf    // 感知公共配置,例如一些单例
├── cyberfile.xml
├── flag    // 感知模块所有的gflags命令行传入,用于dag
├── models  // 模型存放路径
└── params  // 传感器内外参

全局配置

全局配置在 gflag 文件中定义,包括modules/perception/common/perception_gflags.h

参数名默认值含义
obs_sensor_intrinsic_path/apollo/modules/perception/data/params传感器内参路径
obs_sensor_meta_filesensor_meta.pb.txt传感器meta文件名
enable_base_object_poolenable_base_object_pool开启对象池
config_manager_path./配置管理器路径
work_root/apollo/modules/perception工作目录
onnx_obstacle_detector_model/apollo/modules/perception/camera/lib/obstacle/detector/yolov4/model/yolov4_1_3_416_416.onnx目标检测模型
onnx_test_input_path/apollo/modules/perception/inference/onnx/testdata/dog.jpg目标检测测试路径
onnx_test_input_name_file/apollo/modules/perception/inference/onnx/testdata/coco.names目标检测测试文件
onnx_prediction_image_path/apollo/modules/perception/inference/onnx/testdata/prediction.jpg目标检测预测图像路径
num_classes80目标类型数量
torch_detector_model/apollo/modules/perception/camera/lib/obstacle/detector/yolov4/model/yolov4.pttorch检测模型路径
lidar_sensor_namevelodyne128lidar传感器名称
use_trtfalse是否使用tensorrt
trt_precision1tensorrt的精度,0: 32float,1: kInt8
trt_use_statictrue是否从磁盘路径加载tensorrt图优化
use_calibrationtrue是否使用校正表
use_dynamicshapetrue是否使用动态形状
collect_shape_infotrue是否采集动态形状信息
dynamic_shape_file/apollo/modules/perception/lidar_detection/data/center_point_paddle/pillar_20_0625/collect_shape_info_3lidar_20.pbtxt动态文件路径
object_template_fileobject_template.pb.txt对象模版配置文件
hdmap_sample_step5高精度地图采样率
scene_manager_filescene_manager.conf场景管理器配置文件
roi_service_fileroi_service.confROI服务配置文件
ground_service_fileground_service.conf地面检测服务配置文件

modules/perception/common/onboard/common_flags/common_flags.h

参数名默认值含义
obs_enable_hdmap_inputtrue为 roi 过滤器启用 hdmap 输入
obs_enable_visualizationfalse是否发送可视化消息
obs_screen_output_dir./输出目录,用于保存可视化屏幕截图
obs_benchmark_modefalse是否开启 benchmark 模式,默认 false
obs_save_fusion_supplementfalse是否保存融合补充数据,默认false
start_visualizerfalse

修改配置

全局配置修改在/apollo/modules/perception/data/flag/perception_common.flag中,例如我们要修改obs_enable_hdmap_input的值为 false,可以在文件中添加:

bash
--obs_enable_hdmap_input=false

组件配置

各个组件的配置在对应组件的 conf 和 data 目录,直接修改对应文件的值即可,以 3D 目标检测模块(lidar_detection)为例。

lidar_detection 模块配置文件路径:

  • modules/perception/lidar_detection/conf

  • modules/perception/lidar_detection/data

ModelInfo 配置,文件路径:modules/perception/common/proto/model_info.proto

参数类型参数名默认值含义
stringname/模型名称,同models/下文件夹名
stringframework/模型推理框架
stringModelFile.proto_file/模型网络结构
stringModelFile.weight_file/模型权重文件
stringModelFile.anchors_file/anchor size
stringModelBlob.inputs/模型输入数据名称及维度
int32ModelBlob.outputs/模型输出数据名称及维度

PointCloudPreProcess:

参数类型参数名默认值含义
int32gpu_id0GPU的id
doublenormalizing_factor255强度归一化的缩放因子
int32num_point_feature4每个点的特征数量
boolenable_ground_removalfalse是否过滤掉地面点
doubleground_removal_height-1.5过滤掉z值小于阈值的点
boolenable_downsample_beamsfalse是否根据beam id对点云进行过滤
int32downsample_beams_factor4保留beam id为downsample_beams_factor的倍数的点云
boolenable_downsample_pointcloudfalse是否根据voxel过滤点云
doubledownsample_voxel_size_x0.01过滤时voxel的x方向长度
doubledownsample_voxel_size_y0.01过滤时voxel的y方向长度
doubledownsample_voxel_size_z0.01过滤时voxel的z方向长度
boolenable_fuse_framesfalse是否融合多帧点云
int32num_fuse_frames5融合点云的帧数
doublefuse_time_interval0.5融合点云的时间间隔
boolenable_shuffle_pointsfalse是否打乱点云索引
int32max_num_points2147483647允许的最大点云数量
boolreproduce_result_modefalse是否开启复现结果模式
boolenable_roi_outside_removalfalse是否在输入模型之前将roi外的点云进行过滤

PointCloudPostProcess

参数类型参数名默认值含义
floatscore_threshold0.5置信度阈值
floatnms_overlap_threshold0.5NMS的iou阈值
int32num_output_box_feature7输出障碍物的属性个数
floatbottom_enlarge_height0.25获取目标真实点云时向上扩充的范围
floattop_enlarge_height0.25获取目标真实点云时向下扩充的范围
floatwidth_enlarge_value0获取目标真实点云时宽度扩充的范围
floatlength_enlarge_value0获取目标真实点云时长度扩充的范围

cnnseg 配置 modules/perception/lidar_detection/detector/cnn_segmentation/proto/model_param.proto

<table><thead><tr><th>参数类型</th><th></th><th>参数名</th><th>默认值</th><th>含义</th></tr></thead><tbody><tr><td>ModelInfo</td><td></td><td>info</td><td>/</td><td>模型基本配置</td></tr><tr><td rowspan="7">FeatureParam</td><td>float</td><td>point_cloud_range</td><td>90</td><td>点云范围</td></tr><tr><td>uint32</td><td>width</td><td>864</td><td>BEV宽度</td></tr><tr><td>uint32</td><td>height</td><td>864</td><td>BEV高度</td></tr><tr><td>float</td><td>min_height</td><td>-5.0</td><td>点云z值最小值</td></tr><tr><td>float</td><td>max_height</td><td>5.0</td><td>点云z值最大值</td></tr><tr><td>bool</td><td>use_intensity_feature</td><td>true</td><td>是否使用强度特征</td></tr><tr><td>bool</td><td>use_constant_feature</td><td>false</td><td>是否使用常数特征</td></tr><tr><td>bool</td><td></td><td>do_classification</td><td>true</td><td>是否预测分类信息</td></tr><tr><td>bool</td><td></td><td>do_heading</td><td>true</td><td>是否预测朝向角信息</td></tr><tr><td>PointCloudPreProcess</td><td></td><td>preprocess</td><td>/</td><td>预处理信息</td></tr><tr><td>SppEngineConfig</td><td>float</td><td>height_gap</td><td>0.5</td><td>高度差距</td></tr><tr><td>bool</td><td></td><td>remove_ground_points</td><td>true</td><td>是否过滤掉障碍物中的地面点</td></tr><tr><td>float</td><td></td><td>objectness_thresh</td><td>0.5</td><td>objectness的阈值</td></tr><tr><td>float</td><td></td><td>confidence_thresh</td><td>0.1</td><td>confidence的阈值</td></tr><tr><td>float</td><td></td><td>height_thresh</td><td>0.5</td><td>高度阈值</td></tr><tr><td>uint32</td><td></td><td>min_pts_num</td><td>3</td><td>目标最少点数</td></tr><tr><td>float</td><td></td><td>confidence_range</td><td>85</td><td>置信度范围</td></tr><tr><td>bool</td><td></td><td>fill_recall_with_segmentor</td><td>true</td><td>是否使用背景分割</td></tr></tbody></table>

centerpoint 配置在modules/perception/lidar_detection/data/center_point_param.pb.txt中,通过修改其中的值来选择不同配置。

<table> <thead> <tr> <th>参数类型</th> <th>参数名</th> <th>默认值</th> <th>含义</th> </tr> </thead> <tbody> <tr> <td>ModelInfo</td> <td>info</td> <td>/</td> <td>模型通用配置</td> </tr> <tr> <td>PointCloudPreProcess</td> <td>preprocess</td> <td>/</td> <td>预处理</td> </tr> <tr> <td>PointCloudPostProcess</td> <td>postprocess</td> <td>/</td> <td>后处理</td> </tr> <tr> <td>int32</td> <td>point2box_max_num</td> <td>5</td> <td>每个点最多可以属于多少个box</td> </tr> <tr> <td>float</td> <td>quantize</td> <td>0.2</td> <td></td> </tr> </tbody> </table>

NEXT

激光雷达感知参数开发实践