车道线检测算法

1.高斯模糊算法

blur_gray = cv2.GaussianBlur(gray,(kernel_size,kernel_size),0)
Mathematically, applying a Gaussian blur to an image is the same as convolving the image with a Gaussian function.
数学上讲,对图像做高斯模糊等同于将图像与高斯函数卷积。
Since the Fourier transform of a Gaussian is another Gaussian, applying a Gaussian blur has the effect of reducing the image’s high-frequency components; a Gaussian blur is thus a low pass filter.
由于高斯分布的傅里叶变换仍然是高斯分布,使用高斯模糊就减少了图像的高频分量,因此高斯模糊是低通滤波器。

参数:
gray为灰度图;
(kernel_size,kernel_size):表示高斯矩阵的长与宽都是kernel_size,第三个参数0为高斯矩阵的标准差。

高斯模糊本质上是低通滤波器,输出图像的每个像素点是原图像上对应像素点与周围像素点的加权和,原理并不复杂,就是用高斯分布权值矩阵与原始图像矩阵做卷积运算而已。类似神经网络中卷积层的卷积。

这里(kernel_size,kernel_size)表示高斯矩阵的长与宽都是kernel_size,标准差取0时OpenCV会根据高斯矩阵的尺寸自己计算。概括地讲,高斯矩阵的尺寸越大标准差越大,处理过的图像模糊程度越大

2.Canny边缘检测算法

edges = cv2.Canny(blur_gray, low_threshold, high_threshold)

参数:
blur_gray为模糊后的灰度图;
low_threshold为阈值下界;
high_threshold阈值上界;两阈值用来判断梯度大小。

Canny算法的基本思想是找寻一幅图像中灰度强度变化最强的位置。所谓变化最强,即指梯度最大。平滑后的图像中每个像素点的梯度可以由Sobel算子(一种卷积运算)来获得(opencv中有封装好的函数,可以求图像中每个像素点的n阶导数)。

首先,利用如下的核来分别求得沿水平(x)和垂直(y)方向的梯度G_X和G_Y。

        K_{GX} = [-1 0 1; -2 0 2; -1 0 1],  K_{GY} = [-1 -2 -1; 0 0 0; 1 2 1] 

之后,便可利用公式来求得每一个像素点的梯度值,

G=Gx2+Gx2 G = G x 2 + G x 2

有时为了计算简便,也会使用G_X和G_Y的无穷大范数来代替二范数。把平滑后的图像中的每一个点用G代替后,便得到梯度图。
Canny算法中应用了一种叫双阈值的技术。即设定一个阈值上界和阈值下界(opencv中通常由人为指定的),图像中的像素点如果大于阈值上界 high_threshold则认为必然是边界(称为强边界,strong edge),小于阈值下界 low_threshold则认为必然不是边界,两者之间的则认为是候选项(称为弱边界,weak edge),需进行进一步处理。

3.霍夫变换

lines = cv2.HoughLinesP(edges, rho, theta, threshold, np.array([]),
                        min_line_length, max_line_gap)

参数:
edges: 必须是二值图像,推荐使用canny边缘检测的结果图像;
rho: 线段以像素为单位的距离精度,double类型的,推荐用1.0;
theta: 线段以弧度为单位的角度精度,推荐用np.pi/180;
threshold: 累加平面的阈值参数,int类型,超过设定阈值才被检测出线段,值越大,基本上意味着检出的线段越长,检出的线段个数越少;
np.array([]) 这个参数为占位符,对结果无影响;
min_line_length: 线段以像素为单位的最小长度,根据应用场景设置;
max_line_gap: 同一方向上两条线段判定为一条线段的最大允许间隔(断裂),超过了设定值,则把两条线段当成一条线段,值越大,允许线段上的断裂越大,越有可能检出潜在的直线段。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
特斯拉的车道线检测算法是基于深度学习的。它主要通过车辆所搭载的视觉传感器获取道路图像,并利用深度学习算法对图像进行分析和处理来检测车道线的位置和形状。 为了提高车道线检测的准确性和鲁棒性,特斯拉的车道线检测算法采用了一些防御措施。其中之一是通过特征检测异常车道线,来检测和拒绝异常的车道线数据。这样可以防止攻击者通过生成假车道线来误导车辆。另外,特斯拉的算法还考虑了其他视觉元素,如来车辆和行人,来辅助转向控制。这样可以减少对车道线检测结果的依赖,提高对攻击的鲁棒性。 然而,特斯拉车道线检测算法也面临一些挑战和困难。首先,由于车辆的车道线检测系统是嵌入式的,其二进制和计算逻辑不容易被访问和理解。其次,确定误导车辆的最佳扰动也是困难的,因为扰动应该足够被车道线检测模块感知,但同时又不容易引起驾驶员的注意。此外,在现实世界中决定如何发动攻击也是困难的,因为需要在地面上添加不引人注意的道路标记。 总体而言,特斯拉的车道线检测算法采用了深度学习和多传感器融合等技术来提高检测的准确性和鲁棒性,并采取一些防御措施来抵御对车道线检测的攻击。然而,由于车辆的安全性和技术限制,特斯拉仍然建议在检测到异常情况时向驾驶员发出警告,并要求驾驶员手动控制车辆,以确保安全。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [腾讯科恩实验室对特斯拉自动驾驶的车道线攻击](https://blog.csdn.net/qq_40591773/article/details/125656111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [深度学习-无人驾驶实战](https://download.csdn.net/download/u011063343/87663643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值