有关车道线检测的问题
markofan opened this issue · comments
您好,非常感谢您之前的回复。
目前我在看车道线检测这一块,用的网络是DarkSCNN,我不太理解process2D这个函数对车道线做了什么处理?您对这一块有研究吗,谢谢!
目前我正在看camera模块,可能需要到7月左右,期间我会看下这个问题,也欢迎你看完之后讨论
好的,非常感谢,后面还有 camera obstacle 这一步真的看得我云里雾里。
简单来说Process2D和Process3D是提取模型感知到的车道线结果,并且转换到世界坐标
Process2D
从(感知结果)图像中得到2D的车道线的点,转换到相机坐标
- lane_map 中是深度学习模型检测到的车道线信息
- value的值定义如下
std::map<base::LaneLinePositionType, int> spatialLUTind = {
{base::LaneLinePositionType::UNKNOWN, 0},
{base::LaneLinePositionType::FOURTH_LEFT, 1},
{base::LaneLinePositionType::THIRD_LEFT, 2},
{base::LaneLinePositionType::ADJACENT_LEFT, 3},
{base::LaneLinePositionType::EGO_LEFT, 4},
{base::LaneLinePositionType::EGO_CENTER, 5},
{base::LaneLinePositionType::EGO_RIGHT, 6},
{base::LaneLinePositionType::ADJACENT_RIGHT, 7},
{base::LaneLinePositionType::THIRD_RIGHT, 8},
{base::LaneLinePositionType::FOURTH_RIGHT, 9},
{base::LaneLinePositionType::OTHER, 10},
{base::LaneLinePositionType::CURB_LEFT, 11},
{base::LaneLinePositionType::CURB_RIGHT, 12}};
- xy_points[value] 则对应每种类型车道中包含的点的个数,比如value=4,则表示左边车道线中采样的点的集合
- 进行多项式采样 RansacFitting
- 处理特殊情况,比如左边车道的点小于最小采样的点等
- 保存采样点
Process3D
把2D相机坐标转换到3D世界坐标
简单来说Process2D和Process3D是提取模型感知到的车道线结果,并且转换到世界坐标
Process2D
从(感知结果)图像中得到2D的车道线的点,转换到相机坐标
- lane_map 中是深度学习模型检测到的车道线信息
- value的值定义如下
std::map<base::LaneLinePositionType, int> spatialLUTind = { {base::LaneLinePositionType::UNKNOWN, 0}, {base::LaneLinePositionType::FOURTH_LEFT, 1}, {base::LaneLinePositionType::THIRD_LEFT, 2}, {base::LaneLinePositionType::ADJACENT_LEFT, 3}, {base::LaneLinePositionType::EGO_LEFT, 4}, {base::LaneLinePositionType::EGO_CENTER, 5}, {base::LaneLinePositionType::EGO_RIGHT, 6}, {base::LaneLinePositionType::ADJACENT_RIGHT, 7}, {base::LaneLinePositionType::THIRD_RIGHT, 8}, {base::LaneLinePositionType::FOURTH_RIGHT, 9}, {base::LaneLinePositionType::OTHER, 10}, {base::LaneLinePositionType::CURB_LEFT, 11}, {base::LaneLinePositionType::CURB_RIGHT, 12}};
- xy_points[value] 则对应每种类型车道中包含的点的个数,比如value=4,则表示左边车道线中采样的点的集合
- 进行多项式采样 RansacFitting
- 处理特殊情况,比如左边车道的点小于最小采样的点等
- 保存采样点
Process3D
把2D相机坐标转换到3D世界坐标
谢谢!Darkscnn 的process2D这一部分我已经看懂啦,darkscnn输出的size和输入的size一样大,输出的是一个13维的图像,每一个channel对应的就是您发的那个type,然后将其整合为一张图上,process2D就是左车道选取靠右的采样点,右车道选取靠左的采样点。再拟合
不知道您有没有看denseline的process2D,感觉有点麻烦。Denseline的输出是一个9个channel然后输出尺寸是原来的1/8,有点像yolo的输出?等您看了denseline这部分希望能和您再请教一下。谢谢!
我还想问一下,lane这部分的输出是会给谁?我看它的output_channel 是 /perception/lanes,但是我好像没有看到哪个component的输入是/perception/lanes?而且obstacles中也有一个步骤进行lane detection,感觉这个就是使用DarkSCNN进行车道线的检测,所以这个lane_component目前是还没有使用么?
目前车道线部分发布的topic已经废弃掉了,采用的方式是部分代码在obstacles detection使用的方式。