基于计算机视觉的定位服务原理,基于计算机视觉的汽车四轮定位技术研究

2023-10-09 04:59

本文主要是介绍基于计算机视觉的定位服务原理,基于计算机视觉的汽车四轮定位技术研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

同理,可以求出转动角度θ后的 和α,由α、L1和d进而求出θ。

由以上过程求出距离、成像尺寸及空间旋转角度。

1.3 定位参数求取

此方法目标盘上一般选择圆作为规则图形,这是因为圆具有独特的几何特性,是进行相关参数计算最理想的图形。它是轴对称图形,也是中心对称图形;定位时以车轮轮轴所确定的三个相互垂直平面为定位基准:车身平面、轮轴平面、车轮平面。轮轴平面是主销后倾的基准面;车轮平面是前束角、外倾角及主销内倾角的基准面。

当目标的实际尺寸已知,而摄像机处观测点至目标的距离、成像尺寸和转动角度求出后,可以通过计算得出定位参数数据。

用夹具将目标盘以一定角度安装在车轮上,当车辆前后移动时,车轮及目标盘一起前后转动,通过对目标盘上圆沿其纵轴旋转情况进行检测,可检测出前束角的情况;同时,这一过程中目标盘的对称线将形成一组矢量曲面,转动前后目标盘的两条对称线之间夹角叫矢量角。通过矢量角,可计算出车轮外倾角的情况[4](如图4(a)所示)。

在车辆静止时,(如图4(b)所示),使车轮与目标盘向左或向右转动,检测盘面上圆绕其纵轴的旋转情况可检测出主销内倾角情况;检测圆沿其横轴旋转情况,可检测出主销后倾角的情况。

86185f952c65c0aa61ca51cb12342916.png

这种方式原理上比较简单,为国外专利技术,虽对目标盘上图案形状等有一定要求,但推导计算过程简捷而巧妙,容易实现快速的定位,且对定位平台没有严格要求。

2、基于空间向量的方式

该方法为通过对安装在车轮上的目标盘(带有规则斑纹)进行运动前后的拍摄,然后进行图像处理和分析提取出目标盘上的特征点,再根据特征点位置在空间坐标上的变化计算出车轮的空间旋转向量,进而由该向量与空间坐标系各坐标轴夹角关系得出定位参数。

2.1 参考坐标系

计算机视觉中,需要用到世界坐标系、摄像机坐标系和图像坐标系三种坐标系。

世界坐标系(Xw,Yw,Zw)是在环境中选择的一个基准坐标系,用来描述摄像机位置,可以根据描述和计算方便等原则自由选取。对于有些摄像机模型,选择适当的世界坐标系可大大简化视觉模型的数学表达式。

摄像机坐标系(Xc,Yc,Zc)以摄像机镜头光心Oc为坐标原点,Xc,Yc轴平行于成像平面,Zc轴垂直于成像平面,其交点在图像坐标系上的坐标为(u0,v0),即摄像机主点。

图像坐标系是定义在二维图像上的直角坐标系,分以像素为单位和以物理长度(如毫米)为单位两种,这里分别用(u,v)和(x,y)来表示,如图5所示。最常用的是以像素为单位的坐标系,通常其坐标原点一般定义在图像的左上角。

7d24cd57fdab993249e94e7b05fb7790.png

设摄像机CCD每个像素在X轴与Y轴方向上的物理尺寸为dx,dy(该参数由摄像机厂家提供,是已知参数,其比值dy/dx称为Aspect Ratio,即纵横比),由图5可知图像上像素值(u,v)与坐标(x,y)之间的关系是 , ,用齐次坐标与矩阵表示为式(3)。

3546b36f294d2c64995a3efe8291e79b.png

2.2 摄像机模型

针孔模型是由小孔成像原理推导出来的,是在简单的中心射影(又叫透视投影)基础上加入刚体变换(刚体的旋转与平移)得到的线性摄像机模型。它不考虑各种镜头的畸变,然而它却能很好的模拟实际摄像机,是其它模型和标定方法的基础。

设P是空间某点,其在摄像机坐标系下坐标为(Xc,Yc,Zc);q是P成像平面上的对应点,q的坐标为(x,y),设f为摄像机焦距,则根据透视投影的比例关系为式(4)。

85b1327f7cf8d8e87b3c4c7aa98d6912.png

这篇关于基于计算机视觉的定位服务原理,基于计算机视觉的汽车四轮定位技术研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/170508

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L