康谋技术 | 深入探讨:自动驾驶中的相机标定技术

随着自动驾驶技术的快速发展,多传感器的数据采集和融合可以显著提高系统的冗余度和容错性,进而保证决策的快速性和正确性。在项目开发迭代过程中,传感器标定扮演着至关重要的角色,它位于数据采集平台与感知融合算法之间,是确保传感器数据准确性的基础,同时也是实现传感器融合的关键先决条件。

在众多传感器中,相机以其丰富的信息获取能力和成本效益而成为自动驾驶系统中的首选。相机标定可以提高空间定位精度,消除畸变影响,统一传感器数据以及增强系统的鲁棒性。


目录

一、相机的工作原理

二、相机的标定参数

三、标定方法

作者介绍


一、相机的工作原理

通过相机拍摄图像,可以将3D世界投影成2D图像。因此可以把相机模型看作一个从3D空间到2D空间的映射。采用小孔成像模型来描述相机的成像原理。

小孔成像模型由光心、光轴和成像平面几个部分组成,且假设所有成像过程都满足光的直线传播条件。根据光的直线传播理论,空间中的物点反射光经过光心后,投影到平面形成一个倒立的像点。虽然作为理想的成像模型,小孔成像的物理性质极佳,但是实际的相机光学系统中大多是由透镜组成的,在透镜成像中需要满足以下条件:

\frac{1}{f}=\frac{1}{u}+\frac{1}{v}

其中,表示 f透镜的焦距, u表示物距, v 表示像距,如图1所示。

图1 凸透镜成像原理

相机成像系统主要有4个坐标系,分别是世界坐标系、相机坐标系、图像坐标系和像素坐标系,如图2所示。世界坐标系通过平移和旋转得到相机坐标系,相机坐标系通过成像模型中的相似三角形原理得到图像坐标系,图像坐标系通过平移和缩放得到像素坐标系。

图2 相机成像系统中4个坐标系之间的关系

这些坐标系描述了从三维空间到二维图像的坐标变换过程。标定的目标是确定这种变换关系,即三维物体表面点与二维图像对应点之间的关系,从而建立摄像头成像的几何模型。

二、相机的标定参数

相机的标定参数主要包括内参、外参和畸变参数。从世界坐标系到像素坐标系的转换是图像处理和计算机视觉中的关键步骤,它允许我们理解图像中物体的真实位置和尺寸,进而实现各种应用,如自动驾驶中的物体检测与定位。

  • 内参是相机自身的固有属性,包括焦距、主点坐标和像素的物理尺寸等信息,这些参数不会因外界环境而改变,可以通过标定获得。相机的内参矩阵 A(d_{x},d_{y},r,v_{0},u_{0},f) , 内参矩阵是实现图像坐标系与像素坐标系转换的关键。 d_{x},d_{y}分别表示在x和y轴方向上一个像素占据的实际长度,r表示径向畸变参数之一, f表示焦距, u_{0},v_{0} 表示像素坐标下的主坐标点。

  • 外参描述了摄像头在世界坐标系中的位置和方向,包括旋转角度和平移参数,它说明了现实世界点是如何通过平移和旋转映射到摄像头坐标系的。其中,R为旋转矩阵,负责实现坐标系之间的旋转变换。T为平移矩阵,负责实现坐标系之间的平移变换。

  • 畸变参数则是用来描述摄像头成像过程中产生的形状改变和扭曲。畸变主要包括径向畸变和切向畸变,即相机的径向畸变系数 k_{1},k_{2},k_{3}等和相机的切向畸变系数p_{1},p_{2}等。常见的畸变类型,如图3所示。

图3 图像畸变的两种类型

因此,世界坐标系到像素坐标系的转换关系为:

其中,相机坐标系到图像坐标系转换时,由于相机镜头制造工艺缘故,需要进行畸变桥正。径向畸变是由于透镜形状的制造工艺导致的,且越向透镜边缘移动,径向畸变就越严重。矫正径向畸变前后的坐标关系为:

X_{corrected}=x(1+k_{1}\times r^{2}+k_{2}\times r^{4}+k_{3}\times r^{6})

Y_{corrected}=y(1+k_{1}\times r^{2}+k_{2}\times r^{4}+k_{3}\times r^{6})

切向畸变是由透镜和CMOS或者CCD的安装位置误差导致的。切向畸变需要两个额外的畸变参数来描述,矫正前后的坐标关系为:

X_{corrected}=x+2p_{1}xy+p_{2}(r^{2}+2x^{2})

Y_{corrected}=y+2p_{2}xy+p_{1}(r^{2}+2y^{2})

因此,一共需要5个畸变参数。求出上述这些参数即完成了标定过程。

三、标定方法

标定方法是视觉领域中摄像头校准的关键步骤,直接影响视觉系统的输出结果。主要的标定方法包括自标定、根据参照物进行标定和基于主动视觉的标定法。 在这些方法中,张正友标定法因其简便、高精度和广泛的适用性而备受推崇。它利用双平面棋盘格结构作为标定物,通过观察棋盘格在不同视角下的图像,可以计算出相机的内外参数。克服了传统方法需要高精度标定物的缺点,并提高了自标定的精度。张氏标定法的主要贡献在于提出了计算相机参数优化初值的方法,成为计算机视觉领域广泛应用的标定方法之一。 张正友标定法的整体流程如下:

  1. 制作标定板并从不同角度(平移、旋转)拍摄若干张图像(10-20张)。

  2. 检测图像中的特征点。

  3. 求解理想无畸变情况下的内参、外参。

  4. 使用最小二乘法求出实际的径向畸变参数。

  5. 使用极大似然法优化估计,结合内参、外参、畸变参数,提升估计精度。

  6. 得到实际的内参、外参、畸变参数。

相机标定是自动驾驶系统中不可或缺的一环,它直接影响到系统的感知能力和决策准确性。通过深入理解和掌握相机标定的技术要点,我们可以为自动驾驶车辆提供更加准确和可靠的视觉感知能力,推动自动驾驶技术的发展和应用。


作者介绍

郑工

康谋高级自动驾驶技术研发工程师,拥有超过5年的汽车电子和自动驾驶数据分析经验,专精于高精度传感器数据的获取、整合与优化。在数据采集技术方面造诣深厚,尤其在车载网络和实时数采系统上富有实践成果,设计并优化了多种数据采集与传输方案。曾多次代表公司参加海外技术研讨会和培训项目,深入了解国际自动驾驶行业的最新动态和技术趋势,积累了丰富的国际视野。


欢迎联系康谋自动驾驶团队了解更多信息。

我们将竭诚为您服务!

期待与您的交流!

康谋科技 - 您的一站式自动驾驶解决方案合作伙伴,助力自动驾驶商业化落地 - keymotek康谋科技有限公司是原虹科自动驾驶业务孵化出来的全新独立公司,专注于自动驾驶领域。我们以数据为驱动力,提供高性能的数据采集、记录、传输方案,针对各种驾驶场景进行精准的仿真模拟,以及对大量自动驾驶数据进行高效、高质量处理。我们的一站式服务能够满足自动驾驶领域研发测试的全流程需求,助力客户在自动驾驶领域取得更大突破。icon-default.png?t=N7T8https://keymotek.com/

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

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

相关文章

Python学习之-typing详解

前言: Python的typing模块自Python 3.5开始引入,提供了类型系统的扩展,能够帮助程序员定义变量、函数的参数和返回值类型等。这使得代码更易于理解和检查,也方便了IDE和一些工具进行类型检查,提升了代码的质量。 typ…

Unity之OpenXR+XR Interaction Toolkit快速监听手柄任意按键事件

前言 当我们开发一个VR时,有时希望监听一个手柄按键的点击事件,或者一个按钮的Value值等。但是每次有可能监听的按钮有不一样,有可能监听的值不一样,那么每次这么折腾,有点累了,难道就没有一个万能的方法,让我可以直接监听我想要的某个按钮的事件么? 答案是肯定的,今…

【结构型模式】代理模式

一、代理模式概述 代理模式的定义-意图:给某一个对象提供一个代理或占位符,并由代理对象来控制来原对象的访问(对象结构型模式)。某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动。 代理模式分析: 1.引入一个新的代…

Flutter 之 HTTP3/QUIC 和 Cronet 你了解过吗?

虽然 HTTP3/QUIC 和 cronet 跟 Flutter 没太大关系,只是最近在整理 Flutter 相关资料时发现还挺多人不了解,就放到一起聊聊。 本篇也是主要将现有资料做一些简化整合理解。 前言 其实为什么会有 HTTP3/QUIC ?核心原因还是现有协议已经无法满…

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU+外部etcd使用containerd部署K8S 1.26.15容器版集群(一主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本,出现了一个问题,就是在pod中访问百度网站,大…

《2024最新Java面试题及答案(带完整目录)》

获取链接:《2024最新Java面试题及答案(带完整目录)》 更多技术书籍:技术书籍分享,前端、后端、大数据、AI、人工智能... ​ ​ ​ 4.1.9.8. 可重入锁(递归锁) ...........................…

十大开源机器人 智能体

1- Poppy 网址 https://www.poppy-project.org/en/ 2- Nao 网址:https://www.aldebaran.com/en/nao 3- iCub 网址: https://icub.iit.it/

vscode 配置go环境

https://www.zhihu.com/question/486786946/answer/2723663432 注意一定要安装最新版,否则不容易debug //main.go package main //说明hello.go这个文件在main这个包中import "fmt" //导入内置包,可以使用其中函数等func main() {fmt.Println("Hello…

机器视觉系统:电容表面瑕疵缺陷检测的精准“守望者”

在电子行业中,电容器作为关键元件,其质量和性能对于整个产品的稳定性和可靠性至关重要。电容器的表面质量直接影响其性能和寿命,因此,对电容表面瑕疵缺陷的精确检测显得尤为重要。近年来,随着机器视觉技术的飞速发展&a…

Linux设置真实IP

1.查看ens33网卡信息 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #添加以下内容 BOOTPROTODHCP #协议类型 dhcp bootp none ONBOOTyes #启动时是否激活 yes | no#修改文件完成后,重启网络 service network restartping www.baidu.com #验证网络是否生效 ifco…

[卷积神经网络]YoloV8

一、YoloV8 1.网络详解 ①backbone部分:第一次卷积的卷积核缩小(由3变为6);CSP模块的预处理卷积从3次变为2次;借鉴了YoloV7的多分支堆叠结构(Multi_Concat_Block)。 所小第一次卷积的卷积核尺寸会损失部分感受野&#…

鸢尾花数据集分类(决策树,朴素贝叶斯,人工神经网络)

目录 一、决策树 二、朴素贝叶斯 三、人工神经网络 四、利用三种方法进行鸢尾花数据集分类 一、决策树 决策树是一种常用的机器学习算法,用于分类和回归任务。它是一种树形结构,其中每个内部节点表示一个特征或属性,每个分支代表这个特征…

特步赞助可能“惹乱子”,北京半马进入官方调查阶段

北京半马风波的发酵超乎想象,从4月14日事件发生到现在,舆论已经从对赛事本身的质疑,上升到一些其他的层面。 从最新的信息来看,北京体育局、北京半马组委会表态称事情还在调查,舆论则大多倾向于“特步幕后操盘、外籍选…

抖去推短视频矩阵系统----源头开发

为什么一直说让企业去做短视频矩阵?而好处就是有更多的流量入口,不同平台或账号之间可以进行资源互换,最终目的就是获客留咨,提单转化。你去看一些做得大的账号,你会发现他们在许多大的平台上,都有自己的账…

Ubuntu 20.04 LTS 在3588安卓主板上测试yolov8-1.0版本的yolov8n-seg模型

0. 创建虚拟环境 #!< 创建虚拟环境yolov8 $ sudo pip install virtualenv $ sudo pip install virtualenvwrapper $ mkvirtualenv yolov8 -p /usr/bin/python3.81. 将yolov8n-seg.pt转换为yolov8n-seg.onnx文件 #!< 创建项目目录yolov8-rknn并下载yolov8n-seg.pt模型文…

MATLAB环境下基于随机期望最大化的多分量信号瞬时频率估计方法

相对于频率成分单一、周期性强的平稳信号来说&#xff0c;具有非平稳、非周期、非可积特性的非平稳信号更普遍地存在于自然界中。调频信号作为非平稳信号的一种&#xff0c;由于其频率时变、距离分辨率高、截获率低等特性&#xff0c;被广泛应用于雷达、地震勘测等领域。调频信…

.net反射(Reflection)

文章目录 一.概念&#xff1a;二.反射的作用&#xff1a;三.代码案例&#xff1a;四.运行结果&#xff1a; 一.概念&#xff1a; .NET 反射&#xff08;Reflection&#xff09;是指在运行时动态地检查、访问和修改程序集中的类型、成员和对象的能力。通过反射&#xff0c;你可…

SAP项目任务一览表

根据SAP Activate项目管理方法论的主要精神&#xff0c;浓缩到一些主要的团队和任务。 主要的团队有&#xff1a; 项目管理(办公室)Project Management(office)&#xff1a;项目经理团队&#xff0c;包括项目办公室。负责项目整体运行和监控&#xff0c;项目办公室负责项目的…

【MySQL 安装与配置】Window简单安装MySQL,并配置局域网连接

文章日期&#xff1a;2024.04.17 系统&#xff1a;Window10 || Window11 类型&#xff1a;安装与配置MySQL数据库 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js…

Stm32-hal库串口教程

工程是在上一节的LED的基础上修改的。 串口原理图 串口配置 led参考 CubelMX点灯-CSDN博客https://blog.csdn.net/anlog/article/details/137830323生成工程 编写包含文件 编写重定向代码 编写发送 编译下载 串口没有收到数据 查找原因 少配置了下图 再编译下载 收到数据…