基于OpenCL的车道线检测算法加速

发布日期:2024年3月8日
基于OpenCL的车道线检测算法加速 基于OpenCL的车道线检测算法加速

本内容试读结束

下载后可阅读完整内容,立即下载

随着图像处理和算法复杂度的逐步提高,传统基于CPU的车道线检测算法在运行时会消耗大量时间,这极大地影响了算法的实时性。为了提升车道线检测算法的运行速度,本文采用了基于OpenCL的并行加速技术对传统的道路车道线检测算法进行优化。在处理过程中,首先对图像进行灰度化处理,然后利用OpenCL实现了高斯滤波、边缘检测和霍夫变换过程的内核调用,并在GPU上并行执行,这大大提升了这三个过程的运行速度,尤其是霍夫变换过程,其加速比达到了32.771。最后,通过筛选和聚类检测到的直线参数,实现了准确的车道线检测。在对1280 × 720大小的图片进行检测时,该算法相较于使用CPU处理的方法,其加速比能达到5.497,平均检测一张图片只需7.581 ms。这表明,本文提出的算法可以满足实时检测车道线的需求。

随着中国汽车技术的迅猛进步以及汽车智能化程度的不断提高,国内的汽车保有量正呈现逐年增长的趋势。然而,由此引起的道路安全问题也日益严峻。为了确保车辆运行的安全性,基于计算机视觉的车辆辅助驾驶和智能车辆自动驾驶得到了广泛应用,而车道线的准确实时检测是其中一个重要的组成部分[1] [2]。车道是交通系统中用来划分道路、保证汽车安全有效行驶的交通标志,车道检测是一种自动检测道路标记的技术,其在自动驾驶方面发挥着重要作用[3]。实时准确的车道检测可以让自动驾驶车辆对其位置和状态做出正确的判断,从而确保安全驾驶。

在车道线检测方面,直线车道线的检测是研究最多的。传统车道线检测在经过图片预处理后会采用霍夫变换算法来检测直线,其在直线车道线检测领域表现出了高有效性和高精度。然而,霍夫变换算法的实施过程中存在计算量大和内存占用的问题,这在一定程度上限制了其在实时系统中的应用[4]。为了减少图像处理和直线检测的时间,提高检测的实时性,文献[5]通过限定斜率范围、设置平均斜率偏离阈值来快速除去噪声,将检测对象锁定在目标车道线上;文献[6]通过缩小感兴趣区域并动态跟踪感兴趣区域来减小霍夫变换的计算量;文献[7]则利用OpenCV 库函数高效地实现了霍夫变换直线检测。

随着道路交通场景的不断复杂化,对应算法的复杂度也显著提升。由于车道线检测在实时性和准确性方面要求很高,以CPU 为基础的传统算法已有其局限性。同时,伴随着并行计算的兴起,以GPU 为核心的并行计算技术已经被越来越多的应用到各个领域[8]。

基于CPU + GPU 的异构计算架构正在逐渐成为一种高效、低能耗的主流计算方式,为多个应用场景提供了良好的计算平台[9]。OpenCL 通过统一的编程框架和接口能在CPU + GPU 的异构计算环境中, 构筑并行计算架构, 允许应用程序利用多种硬件资源进行加速,这种并行计算可以同时处理多个任务或数据,显著提高了计算效率和程序性能[10]。因此, 本文基于OpenCL 异构计算架构,旨在通过并行化加速车道线检测算法,着重对车道线检测算法中常用的高斯滤波、边缘检测和霍夫变换等流程进行了GPU 并行计算的实现和优化。

2. OpenCL 异构计算架构简介 OpenCL 包含一系列基础API 和高效、快速、可移植的抽象层,使其能够在不同的硬件体系结构上进行异构计算程序开发,这能够更有效地利用现有的计算资源提高程序的性能和效率[11]。OpenCL 程序



相关标签