智能车镜头组入门(三)巡线

镜头组的特点是通过摄像头来获取赛道的信息,从而达到前瞻的效果,完成转向和速度决策。

我们的方案,带上元素识别,大概在TC264上5ms一帧,所以我们开了100hz的图象。

之前我看别的博客上有人说,他们组的50帧到100帧提升不大,但是我试了下100帧还是有明显的提升的,大家可以都试试

摄像头比较重要的一点是 确定好图象的大小尺寸,摄像头的高度和角度,之后就不要在变化了,确定好前瞻距离和最近距离。近端距离是来控制转向的,前瞻距离是做速度决策的

如果突然卡死了,或是时间出乎意料地长, 大概率是数组越界了,检查下数组的索引

我们采用的是某飞的方案,即先通过近端白线的平均值来获取认为的白块,然后通过这个白块来寻找最长上升白列,然后通过这个白列向左向右的寻找边线,之后我会详细介绍

图象识别有一个比较大的差别就是是否二值化,就是把灰度图转换成只有黑白的图,一般常用的额算法是大津法,我们最开始也是用的这个方法,后来一段时间之后,觉得如果二值化的话时间实在太长了(印象中是>20ms的),就放弃了二值化的方案,采用了某飞的方案

我来简单的介绍下逐飞的方案,具体可以去看他们的直播。

主要用到的函数就是这几个

首先是求图象最近几个的平均值,也就是这一块下面红色区域的平均值,然后用吧这个平均值用于

白线和出界的判断,比如这个值是小于50 那么说明车跑出界了,需要设置一个信号量给调参的同学,让小车停下来。(这个边线不贴合赛道可能是无线图传的问题)

通过这个平均值,可以识别出赛道每一条数值方向的白列,这个白列,可以作为速度决策的依据

                                   (这是逐飞的图象,所示的黄线就是最长上升白列)

之后要做的就是边线的扫描,我们用的也是逐飞的差比和算法,也就是 比如说 ,目前找到的点是(40,100)灰度值为a,我们要搜寻左边线,就是要搜索和这个点的左边隔了一段距离,比如(35,100)的点,灰度值为b,通过这个(a - b)/(a +b) 所得的值 大于某一个阈值的时候,则说明了这个是一个明显的黑白交接点,可以把它认为是赛道的边线。

有些优化的方案,比如每继承每一次的值,如果上一条边找到了左边线,那就往右回撤几个像素 再继续进行差比和运算,可以大大减少运算量。

我们也可以利用前面求到的近端白列的平均值,给定一个比例,例如超过这个像素点110%的即为白色,低于70%的则为黑色。如果遇到白色的情况的话,直接continue,因为这不可能是边界,如果认为是黑色,则直接确定这点为边线,进行下一条线的寻找。

从边线中我们还可以获取到两个信息。一个是左右边线的丢线,和连续丢线的长度。另一个是如果小车在一条大直道的情况下,假设最顶端宽度是25,最低端宽度是150,这样我们就可以估计一个正常赛道的宽度。然后我们计算扫线扫到的赛道宽度,如果这个宽度和理论赛道宽度差距比较大的话,那就有是元素的嫌疑了

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

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

相关文章

光伏检测数据集(六种)

光伏检测数据集(六种) 1.并网光伏系统故障诊断数据集 (该数据集为excel张,对故障类型完成标注)。 2.分布式光伏目标检测数据集 (该数据集共4000张分布式光伏高清图片,均已标注) 3.光伏电池板缺陷检测数据集 (该数据集共2400张光伏板缺陷高清图片&#xf…

DC-DC降压10A电源降压可调模块24V转12V9V5V3V-AH1514芯片

AH1514:一款高效率小体积的DC-DC降压电源芯片 摘要:本文介绍了一款高性能的DC-DC降压电源芯片——AH1514,该芯片具有24V转12V、9V、5V、3V可调输出,支持7V-38V输入,20A峰值输出电流,且具有小体积、高效率的…

【计算机网络】TCP的可靠传输机制、标记位以及编程结构

文章目录 一、TCP的可靠传输的工作原理1、确认应答机制和捎带应答机制2、超时重传3、快速重传4、滑动窗口5、流量控制 未 PSH6、拥塞控制7、延迟应答8、TCP 以段为单位发送数据 二、TCP 首部的六个标记位1、URG2、ACK3、PSH4、RST5、SYN6、FIN 三、TCP网络并发编程 一、TCP的可…

下载docker镜像报错,dial tcp x.x.x.x:443: connect: connection refused

原因是:国外的连接超时了. 解决方案改为阿里云的数据源 打开阿里云 搜索&#xff1a;容器镜像服务 ACR 把你自己的这个直接复制在linux sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF { "registry-mirrors": ["你自己的"] }…

面试官问:如何解决消息队列的延时以及过期失效问题?

消息的可靠性传输 ActiveMQ 要保证消息的可靠性&#xff0c;除了消息的持久化&#xff0c;还包括两个方面&#xff0c;一是生产者发送的消息可以被ActiveMQ收到&#xff0c;二是消费者收到了ActiveMQ发送的消息。 生产者 非持久化又不在事务中的消息&#xff0c;可能会有消…

黑神话悟空+云技术,游戏新体验!

近期&#xff0c;一款名为黑神话悟空的游戏因其独特的艺术风格和创新的技术实现在玩家中产生了不小的影响。 而云桌面技术作为一种新兴的解决方案&#xff0c;正在改变人们的游戏体验方式&#xff0c;使得高性能游戏可以在更多设备上流畅运行。 那么&#xff0c;黑神话悟空如…

《深入理解 Java 线程池:高效管理线程的利器》

线程池 1. 什么是线程池&#xff1f; ​ 线程池内部维护了若干个线程&#xff0c;没有任务的时候&#xff0c;这些线程都处于等待空闲状态。如果有新的线程任务&#xff0c;就分配一个空闲线程执行。如果所有线程都处于忙碌状态&#xff0c;线程池会创建一个新线程进行处理或…

滑动窗口(6)_找到字符串中所有字母异位词

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 滑动窗口(6)_找到字符串中所有字母异位词 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f4…

STM32 芯片启动过程

目录 一、前言二、STM32 的启动模式三、STM32 启动文件分析1、栈 Stack2、堆 Heap3、中断向量表 Vectors3.1 中断响应流程 4、复位程序 Reset_Handler5、中断服务函数6、用户堆栈初始化 四、STM32 启动流程分析1、初始化 SP、PC 及中断向量表2、设置系统时钟3、初始化堆栈并进入…

【Transformer深入学习】之一:Sinusoidal位置编码的精妙

看苏神的文章提到&#xff1a;Transformer原论文使用Sinusoidal位置编码&#xff0c;作为位置编码的一个显式解&#xff0c;Google 在原论文中对它的描述寥寥无几&#xff0c;只是简单提及了它可以表达相对位置信息&#xff0c;并未提及这个编码的合理性。 看了几篇文章&#x…

云计算实训50——Kubernetes基础命令、常用指令

一、Kubernetes 自动补齐 # 安装自动补齐软件 [rootmaster ~]# yum -y install bash-completion # 临时开启自动补齐功能 [rootmaster ~]# source # 永 久开启自动补齐功能 [rootmaster ~]# echo "source > ~/.bashrc 二、Kubernetes 基础命令 kubectl [command] …

【数据结构】数据结构系列学习笔记——导航篇

一&#xff1a;概述 数据结构是计算机科学中的核心概念之一&#xff0c;是优化算法性能和资源利用率的关键。在软件开发和数据处理中&#xff0c;选择合适的数据结构对于算法的效率至关重要。数据结构的选择通常基于数据的使用模式&#xff0c;包括数据元素之间的关系、数据的存…

【专题】2024中国生物医药出海现状与趋势蓝皮书报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37719 出海已成为中国医药产业实现提速扩容的重要途径。目前&#xff0c;中国医药产业发展态势良好&#xff0c;创新能力不断增强&#xff0c;然而也面临着医保政策改革和带量集采带来的压力。政府积极出台多项政策支持医药企业出海…

Vim编辑器常用命令

目录 一、命令模式快捷键 二、编辑/输入模式快捷键 三、编辑模式切换到命令模式 四、搜索命令 一、命令模式快捷键 二、编辑/输入模式快捷键 三、编辑模式切换到命令模式 四、搜索命令

我的AI工具箱Tauri版-VideoReapeat视频解说复述克隆

本教程基于自研的AI工具箱Tauri版进行VideoReapeat视频解说复述克隆。 视频解说复述克隆样片 《我的AI工具箱Tauri版-VideoReapeat视频解说复述克隆》样片 进入软件后可以直接搜索 VideoReapeat 或者依次点击 Python音频技术/视频tools 进入该模块。 该模块会消耗TTS文本转语…

【四范式】浅谈NLP发展的四个范式

自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是计算机科学&#xff0c;人工智能&#xff0c;语言学关于计算机和人类自然语言之间的相互作用的领域&#xff0c;是计算机科学领域与人工智能领域中的一个重要方向。NLP发展到今天已经进入到了…

kubernetes架构

kubernetes cluster由master和node组成&#xff0c;节点上运行着若干kubernetes服务Master节点&#xff1a; master是kubernetes cluster的大脑&#xff0c;运行着的Daemon服务包括kube-apiserver&#xff0c;kube-scheduler,kube-controller-manager&#xff0c;etcd和Pod网络…

Dify 中的讯飞星火平台工具源码分析

本文主要对 Dify 中的讯飞星火平台工具 spark 进行了源码分析&#xff0c;该工具可根据用户的输入生成图片&#xff0c;由讯飞星火提供图片生成 API。通过本文学习可自行实现将第三方 API 封装为 Dify 中工具的能力。 源码位置&#xff1a;dify-0.6.14\api\core\tools\provide…

出厂非澎湃OS手机解BL锁

脚本作者&#xff1a;酷安mlgmxyysd 脚本项目链接&#xff1a;https://github.com/MlgmXyysd/Xiaomi-HyperOS-BootLoader-Bypass/ 参考 B站作者&#xff1a;蓝空穹 https://www.bilibili.com/read/cv33210124/ 其他参考&#xff1a;云墨清风、水墨青竹、Magisk中文网 决定解BL…

django学习入门系列之第十点《A 案例: 员工管理系统10》

文章目录 12 管理员操作12.4 密码加密12.5 获取对象&#xff08;防止id错误--编辑界面等&#xff09;12.6 编辑管理员12.7 重置密码 往期回顾 12 管理员操作 12.4 密码加密 密码不应该以明文的方式直接存储到数据库&#xff0c;应该加密才放进去 定义一个md5的方法&#xff…