双目视觉定位方案设计

article/2025/10/9 16:17:56
  1. 双目视觉定位总体方案设计

主要步骤说明:

1)双目相机标定,获取左右摄像头内参、外参,得到图像坐标到世界坐标的映射模型。

2)图像预处理,根据标定得到畸变参数对采集到的图像去畸变,根据测试图像数据特征对畸变后图像做增强、滤波等,使图像更便于后续特征检测;

3)图像特征点匹配:采用ORB算法对左右相机图像作特征检测,检测后的特征点根据匹配算法做匹配,记录匹配后的特征点对;

4)根据匹配后的特征点对计算视差,根据双目视觉测距原理得到匹配点对对应摄像机坐标系下的三维坐标;

5)根据匹配点对三维坐标和图像坐标采用PnP或ICP算法计算相机位姿;

6)根据相机与车辆相对位置关系确定车辆当前位置;

7)对借鉴视觉SLAM和信标识别定位思想对定位误差做修正;

8)车辆连续运动实时获取位置信息得到车辆全局位姿信息。

2.各模块详细说明

2.1双目相机标定

2.1.1 标定原理

相机成像模型中涉及四个基础坐标系:世界坐标系、相机坐标系、像素坐标系、成像平面坐标系。空间上的一点由世界坐标系转换到摄像机坐标系,然后再将其投影到成像平面坐标系,最后再将成像平面上的数据转化到图像像素坐标系。空间一点P(Xw,Yw,Zw)经相机小孔投影到像平面生成倒立虚像,进行等效,如图2-1所示:

                                 

图2-1 相机模型中各坐标系关系

在不考虑畸变时,各坐标系关系转换为数学模型如图2-2所示,其中(u,v)是图像中的像素坐标,(u0,v0)是相机镜头光心在像平面的坐标,dxdy为感光芯片像素点对应的实际物理尺寸,f/dxf/dyu0 v0为相机内参,R,T 为旋转和平移矩阵,为相机外参,S为比例缩放因子。

图2-2 各坐标系转换数学模型

在考虑畸变时通过非线性估计求解标定模型参数。由于畸变的影响,线性模型中的点 (u,v)会发生偏移。因此线性标定得到的参数误差较大,引入畸变参数后,对相机模型进行极大似然估计,得到得到相机内参(含畸变系数:径向畸变系数s1,s2,s3,切向畸变系数p1,p2)和外参,为保证标定的稳定性,一般取大于 14 张图片完成标定,减少由测量误差带来的精度损失。

双目相机的标定,在以上标定基础上还需考虑两摄像机之间的旋转平移关系,可推导出

两相机坐标系之间的旋转矩阵R和平移向量T分别为R=RrRlT,T=Tr-RTl

2.1.2 标定实验设计

基本思想,采用打印的棋盘格图像(已知各角点的世界坐标),通过角点检测图像算法求解出棋盘格图像角点坐标,根据标定模型求解出个标定参数,步骤如下:

  1. 打印棋盘格图像;
  2. 双目相机从多个角度拍摄不少于14张图片;
  3. 角点检测和参数计算(通过matlab工具箱或OpenCV库函数实现)
  4. 验证标定结果精确度,对畸变图像通过标定模型中的畸变系数作校正,查看校正后效果是否可接受;将棋盘格图像根据标定模型重投影计算出世界坐标,并与真实的世界坐标做对比,评估误差。

2.2 图像预处理

2.2.1畸变校正

摄像机采集到的的图像可能发生形变,主要可分为径向畸变和切向畸变。

径向畸变是指像素点以图像中心为圆心,顺着径向产生的变形,通常由于镜头厚薄不均匀导致,依据图像在径向上的变化方向,分为枕形畸变和桶形畸变两种。

                  

            2-3枕形畸变                                            2-4桶形畸变

切向畸变是由摄像机的光轴未垂直于成像平面引起的,与径向畸变类似,图像的切

向畸变也可以通过畸变参数进行校正。

畸变校正过程即是根据畸变系数模型还原图像。

2.2.2 Bouguet 算法极线校正

校正前的左右相机的光心并不是平行的,两个光心的连线就叫基线,像平面与基线的交点就是极点,像点与极点所在的直线就是极线,左右极线与基线构成的平面就是空间点对应的极平面。

校正后,极点在无穷远处,两个相机的光轴平行。像点在左右图像上的高度一致。这也就是极线校正的目标。校正后做后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,能使效率大大提高。

(a)校正前                                   (b)校正后

2-4 极线校正前后对比图

2.2.3 图像增强和滤波

在实际场景中,可能由于光线变化、阴影遮挡等因素导致图像特征点难检出,因此考虑根据场景特征制定合理的图像增强方案,常用的图像增强算法如ACE(自适应对比度增强算法)、Clahe(限制对比度的自适应直方图均衡)等。此外,由于实际场景复杂,噪点干扰性强,可根据场景图像特征做滤波处理,便于后续特征检测,常用滤波算法如中值滤波、高斯滤波等。

2.3 空间点三维重建

图2-5 双目视觉定位坐标关系图

如图2.5所示,由小孔成像和相似三角形原理可推断出空间点P对应在相机坐标系下的坐标,图中PLPR分别为左右相机在左右成像平面匹配的特征点坐标,b为两相机光心距离,f为相机焦距,则空间点P对应在相机坐标系下的坐标为:

X’=bxuL/(xuL-xuR) , Y’=byvL/(xuL-xuR), Z’=bf/(xuL-xuR)

由此可确定空间点在相机坐标系下的三维坐标,根据相机坐标系和世界坐标系的旋转平移关系即可确定该点的世界坐标。上述坐标求解关键是获取左右相机拍摄的图像中特征匹配点PLPR即定位的关键在于匹配特征点的准确性。

2.4图像特征检测及匹配

   该部分多以传统图像算法实现,但现有算法可能仍存在部分场景匹配率低以及算法设计较复杂时耗时长等问题;部分学者采用深度学习卷积神经网络得到特征视差,通过传统匹配算法实现匹配。深度学习方案受限于训练数据的完备性及网络运行时间。KITTI数据集和Sceneflow数据集中部分数据可供使用,模型网络运行时间问题可考虑在尽可能少的牺牲检测精度的前提下裁剪网络分支。本方案设计初步考虑先尝试传统算法实现再根据实际测试问题优化迭代的思路。

根据特征的种类,特征图像匹配算法点特征匹配、边缘特征匹配、面特征匹配算法,本方案的主要目标是提取特征点并匹配,因此仅考虑高效的点特征提取及匹配算法,如下图2-6所示为常用的特征点匹配算法:

2-6 常用点特征图像匹配算法

综合考虑算法的实时性与特征点提取的准确性,本方案拟采用适用于双目实时定位的ORB算法,如图2-7所示,采用灰度质心法在Fast角点检测算法的基础上加入方向特征,将特征转换为Brief描述符,并加入旋转矩阵,使其具有局部不变性,通过计算汉明距离实现匹配,最后通过RANSAC 匹配优化算法实现误匹配剔除。在算法实现时考虑到实时性可根据实际测试结果对原图像取一定的ROI区域,在匹配时可根据距离与视差的关系确定大致匹配范围以减少匹配时间。

2-7 ORB算法图像匹配过程

针对本项目应用场景,匹配点对主要用来计算同一像素点在不同相机上的对应特征点的视差,以确定该点对应相机坐标系的坐标。对得到的匹配点对计算视差,根据图2-8确定是否采用该点对计算得到的视差值,如果不满足条件,则考虑当前帧不计算,直接考虑历史帧位置信息跟踪当前车位置。

2-8 根据匹配点视差计算相机坐标系下的坐标

2.6 相机位姿计算

1.PnP算法:n个空间3D点真实坐标与空间点在图像上的投影2D点对应的点对,计算相机位姿。

由上述步骤分别计算出了n个左右图像匹配的空间点图像坐标及其对应的相机坐标下的三维坐标,根据PnP原理,当n>3时,即可求解出相机位姿,即相机相对世界坐标系的旋转和平移矩阵。算法可能存在的问题:

1)P3P 利用点数较少,当给定的配对点多于 3 组时,难以利用更多的信息。

2)如果 3D 点或 2D 点受噪声影响,或者存在误匹配,则算法失效。

针对PnP利用点数少问题可通过EPnP改进,基本思想是借鉴主成分分析的思想,先选所有点的质心点作为中心点,再选3个主方向上的点作为其余点。

2.ICP算法:多个匹配的特征点得到相机坐标系下的三维坐标,得到三维点云,通过ICP算法迭代求解出相机位姿,即相机相对世界坐标系的旋转和平移矩阵。

2.7车辆定位

根据相机位姿和车的相对位置关系,即可得到车的三维坐标,进而实现定位。

2.8定位误差修正

  1. 视觉SLAM方式

借鉴视觉SLAM思想,在后端优化和回环检测模块对误差进行修正。

2-9 视觉SLAM模块图

1)视觉里程计 (Visual Odometry):仅有视觉输入的姿态估计,上述定位过程可视为视觉里程计获取相机位姿的过程

2)后端优化 (Optimization): 后端接受不同时刻视觉里程计测量的相机位姿,可设计滤波器(如卡尔曼滤波器)对位姿优化

3)闭环检测 (Loop Closing): 如果发生了轨迹闭环即可判断自身是否进入历史同一地点,如进入同一地点,则可根据当前位置的历史信息修正当前位姿;

4)建图 (Mapping): 根据估计的轨迹,建立与任务要求对应的地图,便于回环检测时获取对应信息。    

2.信标辅助定位

1)建立高精度驾驶地图,如包含有不同特征的车道线、交通标志牌、红绿灯等信息,地图中含有这些路标信息的较为准确的位置(精度与定位精度相匹配);

2)在实时定位过程中通过检测并识别地图中含有的路标信息,与地图中已有的路标做匹配,若匹配上则当前位置路标为高精度地图中的路标位置,进而推算出当前车的位移。

其中上述见图和定位过程均可通过深度学习和传统目标检测算法模板匹配实现。


http://chatgpt.dhexx.cn/article/bKUnEUVl.shtml

相关文章

双目立体视觉概述

导读 为什么非得用双目相机才能得到深度? 双目立体视觉深度相机的工作流程 双目立体视觉深度相机详细工作原理 理想双目相机成像模型 极线约束 图像矫正技术 基于滑动窗口的图像匹配 基于能量优化的图像匹配 双目立体视觉深度相机的优缺点 ------------------------…

白学立体视觉(1): 双目视觉

文章目录 前言什么是双目视觉?双目视觉的应用总结 前言 小伙伴们,大家好,以前学习了新的知识,一段时间之后便忘得差不多了,经常被他人嘲讽: 你真是白学xxx了!。是啊,我确实是白学了…

(一) 双目立体视觉介绍

文章目录 1 针孔相机模型2.双目相机模型3.立体校正(共面行对准、极线校正)3.1极线约束3.2Bouguet算法3.3OpenCV API 介绍 4. 立体匹配与视差图5.深度图5.1 基础介绍5.2OpenCV API 6.双目测距精度分析7.总结 1 针孔相机模型 如基本相机模型及参数中介绍的,首先回忆一…

【技术流派】教你提高双目立体视觉系统的精度!

开源代码免费获取,欢迎关注我的GitHub: https://github.com/ethan-li-coding 双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像&am…

来聊聊双目视觉的基础知识(视察深度、标定、立体匹配)

点击上方“AI算法修炼营”,选择“星标”公众号 精选作品,第一时间送达 1 双目视觉的视差与深度 人类具有一双眼睛,对同一目标可以形成视差,因而能清晰地感知到三维世界。因此,计算机的一双眼睛通常用双目视觉来实现&am…

双目视觉(三)立体匹配算法

系列文章: 双目视觉(一)双目视觉系统双目视觉(二)双目匹配的困难和评判标准双目视觉(三)立体匹配算法双目视觉(四)匹配代价双目视觉(五)立体匹配…

双目视觉 1 双目视觉的原理

首先我们讲解一下双目视觉中,我们只有两张二维的图片,我们的目的就是通过这两张二位的图片来构建出一个三维的模型,这就要求我们要通过两张图,推算出来一个图片没有展示出来的深度。深度的计算的原理如下 图片中C1和C2分别对应着我…

单目视觉>双目视觉>RGBD比较

目前,视觉SLAM(SLAM是“Simultaneous Localization And Mapping”的缩写,可译为同步定位与建图)可分为单目、双目(多目)、RGBD这三类,另还有鱼眼、全景等特殊相机,但目前在研究和产品中还属于少数。从实现难…

双目视觉原理(万字总结,包含Halcon代码)

双目视觉原理 1. 双目视觉的视差与深度1.1 总览2. 视差原理 2. 双目相机的坐标系2.1 针孔相机的模型2.2 四大坐标系1 像素坐标系(单位:像素(pixel))2 图像坐标系(单位:mm)3 相机坐标…

来聊聊双目视觉的基础知识(视觉深度、标定、立体匹配)

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 1 双目视觉的视差与深度 人类具有一双眼睛,对同一目标可以形成视差,因而能清晰地感知到三维世界。因此,计算机的一双眼睛通常用双目视觉来实现,双目视觉就是通过…

单目视觉技术、双目视觉技术、多目视觉技术

计算机视觉、人工智能 视觉的研究过程:感知、认知、和控制 车载摄像头的要求: 看得远:提供了更充足的反应时间,直接提升了安全性。需要长焦距(D大,欲保持其他地方不变,就需要F增大)…

【双目视觉】双目立体匹配

一、双目立体匹配算法 在opencv中用的比较多的双目立体匹配算法有两种:BM和SGBM。SGBM是BM立体匹配算法的优化版,属于半全局匹配,相对于BM花的时间要更多,但效果优于BM。本文使用的是SGBM半全局匹配方式。 步骤: 1.打…

双目视觉原理及流程概述

双目原理 双目视觉是利用视差原理的一种视觉方法。 如图所示为空间中一点P在左右相机中的成像点Pleft=(Xleft,Yleft),Pright=(Xright,Yright)。将两相机固定在同一平面上,则点P在Y方向的坐标是相同的,即Yleft = Yright =Y。根据三角原理,可得: 视差被定义为相同点在左…

双目视觉(一)双目视觉系统

系列文章: 双目视觉(一)双目视觉系统双目视觉(二)双目匹配的困难和评判标准双目视觉(三)立体匹配算法双目视觉(四)匹配代价双目视觉(五)立体匹配…

双目视觉简介

hi 小伙伴们,人啊,很容易有惰性,很久不跟新了,不做笔记了,如今“良心发现”,毕业之后第一次更新博客。当然还是学习,整合分享给更多的人! 相信关注我博客和微信公众号的人很多都是做…

机器视觉——双目视觉的基础知识(视差深度、标定、立体匹配)

1、双目视觉的视差与深度 人类具有一双眼睛,对同一目标可以形成视差,因而能清晰地感知到三维世界。因此,计算机的一双眼睛通常用双目视觉来实现,双目视觉就是通过两个摄像头获得图像信息,计算出视差,从而使…

双目立体视觉(一) 基本原理和步骤

目录 一、双目立体视觉系统的四个基本步骤 二、各步骤原理 1、相机标定 2、立体校正 3、立体匹配 一、双目立体视觉系统的四个基本步骤 相机标定主要包含两部分内容: 单相机的内参标定和双目相机的外参标定,前者可以获得每个相机的焦距、光心、畸变系数等参数…

长连接和短链接的区别

长连接意味着进行一次数据传输后,不关闭连接,长期保持连通状态。如果两个应用程序之间有新的数据需要传输,则直接复用这个连接,无需再建立一个新的连接。就像下图这样。 它的优势是在多次通信中可以省去连接建立和关闭连接的开销…

springboot 实现长链接转短链接

实现结果: 转换短链接api: 接口:http://127.0.0.1/api?urlurlencode(要缩短的网址) 例如:http://127.0.0.1/api?urlhttp%3a%2f%2fwww.baidu.com 返回:http://127.0.0.1/baidu 访问短链接即可还原原url;…

长链接与短链接

1、Http协议 1.1 HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递…