记录一下自己常用的检测方法
----------------------------------------------
2022.9.9更新
突然发现没发跟踪部分,对原博再修改一下
完结撒花
-------------------------------------------------------
特别要注意:输入的topic
1.播放数据包:雷达的topic必须为/points_raw
2.voxel_grid_filter:对原始点云进行降采样
3.ray_ground_filter:对降采样后的点云进行点云地面过滤,将地面点和非地面点进行分离
4.lidar_euclidean_cluster_detect:对非地面点进行聚类
5.imm_ukf_pda_track:基于交互式多模型、无迹卡尔曼滤波、概率数据关联的跟踪算法
Points topic:输入点云话题,选择/points_raw
Voxel Leaf Size:滤波时创建的体素大小为0.1m的立方体。过大的Leaf Size虽然会使速度变快,但聚类的结果会相对变差,尤其是对于反射较为微弱的物体(如远处的行人)
Measurement Range:滤波范围
input_point_topic:输入点云话题,选择voxel_grid_filter发布的/filtered_points
sensor_height:激光雷达高度
clipping_height:裁剪高度,例如裁剪1.28m以上部分(以雷达为原点)
min_point_distance:最近的点云距离,1.85代表过滤掉1.85m范围内的点云,为了消除车身自身的雷达反射的影响
radial_divider_angle:distance in rads between dividers
concentric_divider_distance:distance in meters between concentric divisions
local_max_slope:同条射线上临近两点的坡度阈值(单位:度)
general_max_slope:整个地面的坡度阈值(单位:度)
min_height_threshold:最小高度阈值
reclass_distance_threshold:重新分类点之间的距离
use_gpu:是否使用GPU
output_frame:输出坐标系
pose_estimation:使用最小面积边界矩形估计簇的姿态 Estimate the pose of the cluster using a minimum-area bounding rectangle
downsample_cloud:pointcloud downsampling via VoxelGrid filter
input_points_node:输入点云topic,选择/points_no_ground
leaf size:下采样体素网格大小
cluster size minimum:聚类的最少点数
cluster size maximum:聚类的最多点数
clustering distance:聚类公差(m)
clip_min_height:裁剪的最小高度
clip_max_height:裁剪的最大高度
use_vector_map:是否使用矢量地图
vectormap_frame:矢量地图坐标系
wayarea_gridmap_topic:
wayarea_gridmap_layer(面板写错了):
wayarea_no_road_value:
remove_points_upto:Points closer than this distance to the lidar will be removed
keep_only_lanes_points:side-filtering
keep_lane_left_distance:Remove points further than this distance to the left (m)
keep_lane_right_distance:Remove points further than this distance to the right (m)
cluster_merge_threshold:聚类簇间的距离 Distance between cluster centroids (m)
use_multiple_thres:use of distance-based clustering tolerances 基于距离的聚类
clustering_ranges:Distance from lidar (m)
clustering_distances:聚类公差 Clustering tolerances (m)
remove ground:ground plane filtering (removes points belonging to the ground)
use_diffnormals: Difference-of-Normals filtering
publisher filtered:
inout topic:输入话题
tracking frame:跟踪坐标系
vectormap frame:矢量地图坐标系
life time thres:对象关联变量,跟踪对象存活次数的阈值
gating thres:概率数据关联参数,一个匹配用的阈值
gate probability:概率数据关联参数,在IMM更新运动模型会用到
detection probability:概率数据关联参数,在IMM更新运动模型会用到
static velocity thres:静止速度阈值,小于这个阈值可视为静止
static num history thres:静止次数
prevent explosion thres:防止ukf参数爆炸的阈值
lane direction chi thres:使用矢量地图需要设置的参数
nearest lane distance thres:使用矢量地图需要设置的参数
merge_distance_threshold:合并两个锚点的距离阈值,小于这个阈值可合并点
use_sukf:是否使用比例无迹卡尔曼滤波算法
use_vectormap:是否使用矢量地图
节点关系图
效果图(不是很好)
节点图
以lidar_cnn_baidu_detect为例
1.首先打开 autoware.ai/src/autoware/core_perception/lidar_apollo_cnn_seg_detect/README.md
安装caffe
2.安装完成后,删除build install log文件夹,然后重新编译
编译完成后打开log文件夹查看编译结果,可以查看CUDA等模块是否安装成功
出现100%说明编译成功并且该模块可用
3.从Apollo官网下载预训练模型到autoware.ai/src/autoware/core_perception/lidar_apollo_cnn_seg_detect/models
4.代码直接使用会报错
参考链接
可按这个链接下载这个代码覆盖autoware里的代码链接
image_src:输入点云
Score Threshold:分类阈值,当识别的得分大于0.7时可认为是这个类别
network_definition:网络定义
pre_trained_model:预训练模型
use_gpu:是否使用gpu
gpu_device_id:gpu id
节点关系图
当显卡内存不足时会出现这种情况,考虑换个显卡