目标检测+车道线识别+追踪

news/2024/4/29 15:41:00/文章来源:https://blog.csdn.net/m0_60657960/article/details/137094535

一种方法:

车道线检测-canny边缘检测-霍夫变换

一、什么是霍夫变换

霍夫变换(Hough Transform)是一种在图像处理和计算机视觉中广泛使用的特征检测技术,主要用于识别图像中的几何形状,尤其是直线、圆和椭圆等常见形状。霍夫变换的核心思想是将图像空间中的形状检测问题转化为参数空间中的峰值检测问题,通过在参数空间中投票累积的方式寻找满足特定形状条件的参数组合,从而有效地识别出图像中的几何特征。

以下是霍夫变换的基本工作原理和步骤:

  1. 图像空间到参数空间的映射: 霍夫变换的关键在于它将图像中的点与参数空间中的曲线参数对应起来。对于直线检测,通常使用极坐标形式表示直线:ρ = xcosθ + ysinθ,其中ρ是直线到原点(通常取图像左上角)的距离,θ是直线的斜率角。对于每个图像中的边缘点(x, y),都可以在ρ-θ参数空间中对应一条曲线。同样,对于圆或椭圆的检测,也有对应的参数表示形式。

  2. 投票累积: 对于图像中的每一个边缘点,计算其在参数空间中对应的所有可能参数组合,并在对应的参数值处进行投票(通常是增加计数或累加)。这意味着在参数空间中,每一条可能的直线(或圆、椭圆)都会有一个累积值。这个过程可以形象地理解为,每个边缘点都在参数空间中“投出”一系列票,支持其可能属于的几何形状。

  3. 峰值检测: 在投票累积完成后,参数空间中会出现一些局部峰值,这些峰值对应于图像中具有大量支持点(即边缘点)的几何形状参数。通过设定阈值或寻找全局/局部极大值,可以识别出这些峰值,即找到了图像中最可能存在的几何形状的参数表示。

  4. 形状重构: 根据识别出的参数,可以在原始图像空间中画出相应的直线、圆或椭圆,完成形状的检测。对于直线,可以使用ρ和θ计算出直线的方程;对于圆或椭圆,根据找到的参数可以直接绘制出来。

霍夫变换的优点包括:

  • 抗噪声:由于采用累加投票的方式,少量噪声点不会对最终结果产生显著影响,除非它们恰好在同一条可能的形状参数线上大量聚集。
  • 对形状完整性的要求较低:即使图像中的几何形状部分遮挡或断裂,只要存在足够多的边缘点支持同一参数,霍夫变换仍能有效识别。

其局限性包括:

  • 计算复杂度较高:尤其在处理高分辨率图像或检测复杂形状时,参数空间的维数增加,导致投票累积和峰值检测的计算成本增大。
  • 对参数选择敏感:霍夫变换的效果很大程度上取决于参数空间的分辨率设置,选择不当可能导致真实形状未能有效识别或产生大量假阳性结果。

尽管现代计算机视觉中出现了许多基于深度学习的高效检测方法,霍夫变换因其简单、直观和鲁棒性,在特定应用场合(如工业检测、低复杂度硬件实现等)中仍然具有实用价值。

1. 基本思想

将传统的图像从X,Y轴坐标系变化到参数空间(m,b)或者霍夫空间(hough space)中,通过参数空间(可称为累加空间)计算局部最大值从而确定原始图像中直线或圆的位置。

二、边缘检测算法

边缘检测算法本质上就是一种滤波算法,区别在于滤波器的选择,其与滤波的规则是一致的。为了理解边缘检测算子,我们引入梯度这个概念,梯度在数字图像处理领域可以理解为像素灰度值变化速度,但在数字图像处理中,实际的应用是不需要求导的,只需要进行简单的加减运算。

几种基本的边缘检测滤波器:sobel、prewitt、roberts算子。

问题:直接使用基本的边缘算子求得的边缘图存在很多问题,如噪声污染没有被排除、边缘线太过粗宽等。因此我们介绍一个先进的边缘检测算子——canny算子。

目前流行的canny算法的具体步骤:
1. 高斯滤波

高斯滤波的原理:根据待滤波的像素点及其邻域点的灰度值按照高斯公式生成的参数规则进行加权平均。

2. 计算梯度图像与角度图像

canny中使用的梯度检测算子是使用高斯滤波器进行梯度计算得到的滤波器,得到的结果也类似于sobel算子,即距离中心点越近的像素点权重越大。
角度图像的计算则较为简单,其作用为非极大值抑制的方向提供指导。

3. 对梯度图像进行非极大值抑制

上一步得到的梯度图像存在边缘粗宽、弱边缘干扰等众多问题,现在可以使用非极大值抑制来寻找像素点局部最大值,将非极大值所对应的灰度值置0,极大值点置1,这样可以剔除一大部分非边缘的像素点,因此最后生成的图像应为一副二值图像,边缘理想状态下都为单像素边缘。

4. 使用双阈值进行边缘连接

经过以上三步得到的边缘质量已经很高了,但是还是存在许多伪边缘,因此canny算法采用的算法是双阈值法,具体思路是:选取两个阈值,将小于低阈值的点认为是假边缘置0,将大于高阈值的点认为是强边缘置1,介于中间的像素点需要进一步的检查。

第二种方法:

利用边缘与颜色提取车道线,利用仿射变换转换成鸟瞰图,并利用直方图滑动窗口的算法精确定位车道线,利用最小二乘法进行拟合,实现车道线的检测,并计算车辆偏离车道中心的距离,触发报警装置。

第三种方法:

深度学习车道线检测

第三种方法:

需要实现的yolo+车道线检测

大致思路

目标检测+车道线识别+追踪+测距

数据获取和预处理:
首先,从摄像头或传感器获取图像或视频流,并进行预处理。预处理步骤可能包括图像去噪、色彩校正和尺度调整等。

目标检测:
使用深度学习的目标检测算法YOLO对图像或视频中的目标进行检测和定位。这些算法可以输出每个目标的类别、位置和置信度等信息。

车道线识别:
对于每个图像帧,利用图像处理技术(如边缘检测和霍夫变换)来识别图像中的车道线。这可以提供关于道路结构和车道位置的信息。

追踪:
将目标检测结果与前一帧的跟踪结果进行匹配,以实现目标的连续追踪。使用运动模型和特征匹配等技术来预测和更新目标的位置。这可以提供目标的运动轨迹和速度等信息。

测距:
利用单目视觉或其他深度估计技术,根据目标在图像中的大小、形状和视差等信息,计算目标与相机之间的真实距离。这可以提供关于目标与车辆的相对距离,从而帮助系统做出更准确的决策。

集成和决策:
将目标检测、车道线识别、追踪和测距的结果进行集成,并进行高级决策和规划。例如,根据目标的类别、位置和速度等信息,进行避障、路径规划和车辆控制等决策。

参考文章:目标检测+车道线识别+追踪+测距(代码+部署运行)_车道目标检测和跟踪-CSDN博客


                        
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1028055.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++从入门到精通——函数重载

函数重载 前言一、函数重载概念二、函数重载的分类参数类型不同的函数重载参数个数不同的函数重载参数类型顺序不同的函数重载 三、函数重载的具体代码展示main.cpp 四、为什么为什么C支持函数重载,而C语言不支持函数重载呢 前言 函数重载是指在同一个作用域内&…

argo rollout使用

一、前言 argorollout是比argocd更高级的发布工具,其中包含自动化金丝雀发布、自动化蓝绿发布、还可以通过argo命令或者dashboard查看发布的过程 二、使用 需要先部署argo rollout服务 参考:https://github.com/argoproj/argo-rollouts/tree/master/m…

微信小程序的页面制作---常用组件及其属性2

一、标签栏taBar 在全局配置文件app.json中添加taBar配置,可实现标签栏配置。标签栏最少2个,最多5个 (1)如何配置标签栏? 1》先建多个文件,(以我的index,list,myform文…

RelayAttention:让大型语言模型更高效地处理长提示符

一、前言 虽然大型语言模型 (LLM) 近年来取得了非常显著的进展,也在各种自然语言处理任务中展现出强大的能力。然而,LLM 的在实际的应用落地层面也面临着一些实际挑战,其中之一就是效率和成本问题,导致了在垂直行业实际落地的应用…

CE-Net:用于2D医学图像分割的上下文编码器网络

CE-Net:用于2D医学图像分割的上下文编码器网络 摘要引言方法 【2019】CE-NetContext Encoder Network for 2D Medical Image Segmentation 摘要 医学图像分割是医学图像分析中的重要步骤。随着卷积神经网络在图像处理中的快速发展,深度学习已经被用于医…

服务器被攻击有什么表现?

引言 在现今高度互联的网络环境中,服务器安全已成为每个企业和个人站长不容忽视的重要议题。服务器作为承载关键业务和数据的核心设施,一旦遭受攻击,不仅可能导致服务中断、数据泄露,还可能带来严重的经济损失和声誉损害。本文旨…

【二叉树】Leetcode 98. 验证二叉搜索树【中等】

验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例1&a…

fpga 通过axi master读写PS侧DDR的仿真和上板测试

FPGA和ARM数据交互是ZYNQ系统中非常重要的内容。PS提供了供FPGA读写的AXI-HP接口用于两者的高速通信和数据交互。一般的,我们会采用AXI DMA的方式去传输数据,DMA代码基本是是C编写,对于FPGA开发者来说不利于维护和debug。本文提供一种手写AXI…

6、鸿蒙学习-Stage模型应用程序包结构

基于Stage模型开发的应用,经编译打包后,其应用程序的结构如下图应用程序包结构(Stage模型)所示。开发者需要熟悉应用程序包结构相关的基本概念。 一、在开发态,一个应用包含一个或者多个Module,可以在DevE…

“免密支付”出事了?看看背后的安全隐患

#免密支付# 的安全问题近日冲上热搜,大家来看看怎么一回事。 “我不知道什么时候开通的‘免密支付’功能,直到手机频繁收到账单提醒,才发现平台账号被盗,对方通过‘免密支付’消费了5000多元。这种事关会员安全的操作提示应该设置…

机器学习概论—增强学习

机器学习概论—增强学习 强化学习(Reinforcement Learning, RL)或者说是增强学习,是机器学习的一个领域,旨在使智能体通过与环境的交互学习如何做出决策,它是关于在特定情况下采取适当的行动来最大化奖励。它被各种软件和机器用来寻找在特定情况下应采取的最佳行为或路径…

无忧微服务:如何实现大流量下新版本的发布自由

作者:项良、十眠 微服务上云门槛降低,用好微服务才是关键 据调研数据显示,约 70% 的生产故障是由变更引起的。在阿里云上的企业应用如茶百道、极氪汽车和来电等,他们是如何解决变更引起的稳定性风险,实现了在白天高流…

etf期权开户有哪些基本条件,期权的佣金最低多少?

在中国开设etf期权账户,投资者需要满足一系列的基本条件。首先,投资者的证券账户日均客户权益不得低于50万元人民币,且需有6个月以上的证券或期货交易经验。此外,投资者还必须通过相关的测试,并具备被认可的期权模拟交…

wpf程序调用macad的c++编写的dll

1.把macad里的build,source文件夹复制到一个文件夹里 2.创建一个wpf项目,在解决方案里添加macad.occt项目 3.把macad.occt设为dll文件,修改平台工具集,在macadtest里引用macad.occt 4.运行,应该会报错,说找…

深度学习每周学习总结P3(天气识别)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 数据链接 提取码:o3ix 目录 0. 总结1. 数据导入部分数据导入部分代码详解:a. 数据读取部分a.1 提问:关…

30-3 越权漏洞 - 水平越权(横向越权)

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、定义 攻击者可以访问和操作与其拥有同级权限的用户资源。 示例: 学生A在教务系统上正常只能修改自己的作业内容,但由于不合理的权限校验规则等原因,学生A可以修改学生B的内…

【CDA二级数据分析备考思维导图】

CDA二级数据分析备考思维导图 CDA二级复习备考资料共计七个章节,如需资料,请留言,概览如下图:一、数据采集与处理1.数据采集方法2.市场调研和数据录入3、数据探索与可视化4、数据预处理方法 总结:以上为自己学习数据分…

修改 RabbitMQ 默认超时时间

MQ客户端正常运行,突然就报连接错误, 错误信息写的很明确,是客户端连接超时。 不过很疑虑,为什么会出现连接超时呢?代码没动过,网络也ok,也设置了心跳和重连机制。 最终在官网中找到了答案&am…

展示大屏-24小时天气预报

一、项目说明 展示大屏显示未来一周天气和24小时天气详情。 二、技术工具 1.语言&框架:java、springboot 2.UI界面:jQuery、HTML、CSS、 VUE 3.开发工具:IntelliJ IDEA、Eclipse 三、实现步骤 后端步骤 1.调取免费或收费的API接口。 …

CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. 系…