【发布时间】:2026-01-21 02:00:01
【问题描述】:
我从事自动驾驶汽车项目。我想确定汽车在高速公路上的转向角。但是对于这个特定的场景,没有车道线或任何车道边界,只有沥青本身。我假设周围环境不会包含任何与沥青颜色足够接近的颜色。
(假设中间没有白线,我看到的都是沥青)
这个过程是实时的(在 Raspberry Pi 上),帧是在相机的帮助下捕获的。
针对这个问题,我提出了如下管道(OpenCV 4.0 with C++):
- 去噪 --> BGR2HSV --> HSV 过滤器 --> Canny 边缘检测 --> 裁剪到 ROI --> 霍夫线检测 --> 工艺线
这条管道清楚地告诉了我汽车应该如何转向以保持在单向车道的中间。我可以用 HSV 过滤沥青部分。问题是当车道上有障碍物时。可能会在车道的一侧或中间放置一些盒子。在这种情况下,HSV 过滤器会在车道上创建一个大黑框。霍夫线检测将框的边缘转换为假车道线。最终,这会导致错误的转向预测。实际上,我开发了一种算法来通过观察霍夫线的斜率来处理这个问题,但是它并不总是稳定的。
(放置在车道一侧的红色框)
我的意思是,您会建议对此过程进行任何改进以消除图像过滤中可能存在的障碍吗?车道上的障碍物会导致错误的霍夫线并影响转向决策。我认为的一个改进是从图像的左侧和右侧(在 ROI 中)检测最大白色像素计数的索引,然后将每个像素设置为白色。这将扫除道路中间的障碍物(车辆可能会撞到障碍物),但无论如何都会将障碍物留在车道的一侧。但是如果道路弯曲,这将不实用,因为改进会丢失图像中的弯曲数据。
编辑:
当我使用convexHull as in OpenCV documentation 时,我得到以下结果,这是出乎意料的。
【问题讨论】: