我目前正在研究车道检测项目,其中输入是来自赛车游戏的RGB道路图像“ img”,输出是在检测到的车道上标注有彩色线条的同一图像。
步骤是:
- 将RGB图像“ img”转换为HSL图像,然后在其上使用白色范围内的白色蒙版(仅在图像中应具有白色泳道),以丢弃该范围以外颜色的图像任何部分(将它们的值设为零),则此步骤的输出为“ white_img”。
- 将“ white_img”转换为灰度,生成“ gray_img”。
- 对“ gray_img”应用高斯模糊以使边缘更平滑,因此可以检测到更少的嘈杂边缘,从而产生“ smoothed_img”。
- 在“ smoothed_img”上应用边缘检测,生成“ edge_img”。
- 通过选择感兴趣区域ROI(大约在图像的下半部分内)来裁剪“ edge_img”,从而产生“ roi_img”。
- 最后,对“ roi_img”应用霍夫变换来检测将被视为检测到的车道的线。
我现在面临的最大问题是车道的亮度变化和阴影。对于车道上带有阴影的深色图像,车道颜色可能会变得很暗。我试图在步骤1中增加可接受的白色范围,这对于此类图像效果很好。但是,对于在车道上没有阴影的明亮图像,在步骤1之后不会丢弃大部分图像,这会产生包含许多与车道无关的内容的输出。
输入图像示例:
- Medium brightness without shades on lanes
- Low brightness with shades on lanes
- High brightness without shades on lanes
对解决这些问题的任何帮助将不胜感激。预先感谢。