计算机视觉|针孔成像,相机内外参及相机标定,矫正的重要性

news2025/1/16 7:56:50

计算机视觉读书笔记|相机内外参及相机标定,矫正的重要性

这篇博客将介绍针孔成像,透镜(弥补了针孔成像曝光不足成像速度慢的缺点,但引进了畸变,主要是径向畸变和切向畸变,径向畸变主要是离中心越远越弯曲,切向畸变当透镜与成像目标不平行时导致),相机内外参(内参4个矩阵参数,5个畸变参数;外参6个,3个旋转向量,3个平移向量)及相机标定,矫正的重要性及目的,主要是为了矫正畸变及三维重建。

1. 针孔成像及透镜

从发射源发出的射线形成光线,然后穿过空间照射到某些物体上。照射到物体上的大部分光线被物体表面吸收。而只有少部分没有吸收的光线被我们所察觉到,并形成光线的颜色。

光线从物体发射开始,通过透镜到达眼睛或摄像机,然后到达视网膜或者图像采集器。
不选用针孔而选用透镜的原因是,真实的针孔不能为快速曝光收集足够的光线。
但使用透镜带来了畸变。

可以利用 摄像机标定(camera calibration) 来矫正因使用透镜而给针孔模型带来的主要偏差。以及从摄像机的二维自然单位(像素)和物体世界的单位(米)的关系来进行3维场景的重构。

摄像机标定的过程既给出摄像机几何模型,也给出透镜的畸变模型。这俩个模型定义了摄像机的内参数(intrinsic parameter)。

单应变换(homograph transform)是一种能够描述摄像机基本行为特性和各种失真、矫正特性的数学工具。

投影平面project plane
焦距focal length,从针孔到屏幕的距离就是焦距f。
Z是摄像机到物体的距离
X是物体长度
x是图像平面上的物体图像
则-x/f = X/Z 即:-x = FX/Z

针孔点被理解为投影中心center of projection
光轴与图像屏幕的交点被称为主点principle point
x/f = X/Z

针孔摄像机成像图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由于只有少量的光线通过针孔,导致因曝光不足而使得图像生成得很慢。对于要快速生成图像的摄像机而言,必须利用大面积且弯曲的透镜,让足够多的光线收敛聚集到投影点上。(透镜可以据集足够多的光线到某个点上,使得图像生成更加迅速,其代价就是引入了畸变。)

2. 径向畸变和切向畸变

径向畸变来自于透镜形状,而切向畸变则来自于整个摄像机的组装过程。
在这里插入图片描述

在这里插入图片描述
标定物(calibration object)

平面的单应性被定义为从一个平面到另一个平面的投影映射。单应性矩阵H。
在这里插入图片描述

3. 相机的内外参及标定函数

内参:
有4个内参数(fx,fy,cx,cy)和 5个畸变参数——3个径向(k1,k2,k3)和俩个切向(p1,p2);
内参数直接与棋盘所在空间的3D几何相关(即外参数),而畸变参数则与点集如何畸变的2D集合相关。

内参数矩阵,也称为摄像机矩阵M,如下:
在这里插入图片描述

外参:
相机外参矩阵描述的是相机在静态场景下相机的运动,包括旋转和平移,或者在相机固定时,运动物体的刚性运动。
有3个轴的旋转参数(ω、δ、 θ)和平移参数(Tx,Ty,Tz)
,旋转矩阵R,平移向量T

  • 内参数矩阵完全定义了理想摄像机模型的摄像机行为,而畸变参数则更多表征摄像机的非理想行为。
    摄像机矩阵总是3X3的,而畸变系数总是5个,记录顺序是:k1,k2,p1,p2,k3

  • 外参数概括的是对于摄像机来说标定物体的位置,由三维空间3个坐标轴的旋转和平移向量表征;
    向量长度表示逆时针的旋转角度。平移向量是摄像机坐标系中相对棋盘原点的偏移量。

利用标定函数,可以根据多个图像的角点,来计算相机的内外参:
在这里插入图片描述

标定摄像机通常是做俩件事,一个是校正畸变效应,另一个是根据获得的图像重构三维场景。
基本方法是先计算畸变映射,再矫正图像。

参考

  • http://www.vision.caltech.edu/bouguetj/calib_doc/
  • https://blog.csdn.net/qq_41743157/article/details/124863365

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tableau指标排行

2022年11月15日,深圳数据交易所举行揭牌暨数据交易成果发布活动。 文章目录前言一、整体数据排行二、数据排行TOP N三、根据需要也可以显示具体排名总结前言 分享Tableau指标排行制作过程中遇到的问题及其解决方式,供各位小伙伴参考。 一、整体数据排行…

谷粒学院(二) 讲师管理模块

一、讲师管理模块配置 1、在service下面service-edu模块中创建配置文件 2. resources目录下创建文件 application.properties # 服务端口 server.port8001 # 服务名 spring.application.nameservice-edu# 环境设置:dev、test、prod spring.profiles.activedev# my…

java基于ssm网上超市购物商城-计算机毕业设计

项目介绍 网上超市是商业贸易中的一条非常重要的道路,可以把其从传统的实体模式中解放中来,网上购物可以为消费者提供巨大的便利。通过网上超市这个平台,可以使用户足不出户就可以了解现今的流行趋势和丰富的商品信息,为用户提供…

MySQL8.0优化 - 锁 - 从数据操作的粒度划分:表级锁、页级锁、行锁

文章目录学习资料锁的不同角度分类锁的分类图如下从数据操作的粒度划分:表级锁、页级锁、行锁表锁(Table Lock)表级别的S锁、X锁意向锁(intention lock)自增锁(AUTO-INC锁)元数据锁(…

算法刷题介绍

算法刷题介绍 课程大纲 Python 作为实现语言。 快速排序算法 0 (nlogn) 实际工作中要根据实际情况选择最优解。 有可能没有完美方案,需要做平衡。 数据有啥特征? 举例:对一组数据进行排序 是否包含大量重复元素(三路快排&#x…

【微服务治理之监控APM】系统监控架构概述

APM 简介 APM 通常认为是 Application Performance Management 的简写,它主要有三个方面的内容,分别是 Logs(日志)、Traces(链路追踪)Metrics(报表统计)。 以后大家接触任何一个 APM 系统的时候,都可以从这三个方面去分析它到底是什么样的…

vue中scoped原理与样式穿透原理

是什么 在vue组件中的style标签上有一个特殊属性:”scoped“ 为什么 当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,通过该属性,可以使得组件之间的样式不互相污染。 怎么样实现的 1.为组件实例生成一个唯一…

[附源码]SSM计算机毕业设计智能视频推荐网站JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

codeforces:F. All Possible Digits【贪心 + 模拟进位】

目录题目截图题目分析ac code总结题目截图 题目分析 注意是只能再最后一位加我们要使得0到p - 1都出现至少一次统计出现的数字aset考虑最后一位pivot情况1:如果pivot前都出现了,就不用进位了,pivot只需要加到最大的未出现在aset的num即可情况…

【编程题】【Scratch二级】2022.09 小老鼠偷面包

小老鼠偷面包 1. 准备工作 (1)背景:Stars,绘制如下图所示的迷宫; (2)角色:Cat 2、Mouse1、Bread。 2. 功能实现 (1)Cat 2、Mouse1和Bread初始位置和方向如…

机器人C++库(12) Robotics Library 之路径规划算法:PRM、RRT、EET算法

机器人C库(12)Robotics Library 之路径规划算法:PRM、RRT、EET算法 RL库的运动规划(rl::plan)模块集成了以下经典的路径规划算法: PRM算法:概率路线图算法RRT算法:快速探索随机树算法EET算法:搜索树算法-基…

牧场系统设计与实现-计算机毕业设计源码+LW文档

关键代码 package com.example.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.huto…

japonensisjava乱码_Java乱码问题原因及解决方案

一. java乱码乱码问题解决思路,java乱码分为以下几种 1. 请求乱码 如果是在请求过程中发生的乱码,有可能是以下几种情况: 参数放在 URL 地址中乱码; 参数在请求体中乱码; 数据库本身乱码; 数据从 Java 应用程序传入数据库的过程中乱码。 2. 响应乱码 如果是响应乱码,那…

Go语言学习(八)-- Gin入门

Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快。Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单,这个时候我们 也推荐您使用 Gin。 当某个接口的性能遭到较大挑战的时候,这…

Prometheus监控案例

一:环境规划: 主机名主机地址角色node4192.168.188.114prometheus客户端node5192.168.188.115prometheus服务端 二. 监控远程linux主机: 1. 解压node_exporter压缩包: [rootnode4 ~]# tar xf node_exporter-1.3.1.linux-amd64…

RT-Thread 下的文件内容对比 MSH shell cmd 命令实现方法

前言 在使用 RT-Thread 时,需要对两个文件的内容进行比较,顺手写了一个测试的 MSH shell 命令,经过优化,发现功能可以使用 RT-Thread 下支持多种文件系统,如FAT等,可以通过 USB、串口 的 Ymodem 等协议把文…

YOLOv5-seg数据集制作、模型训练以及TensorRT部署

YOLOv5-seg数据集制作、模型训练以及TensorRT部署版本声明一、数据集制作:图像 Json转txt二、分割模型训练三 tensorRT部署版本声明 yolov5-seg:官方地址:https://github.com/ultralytics/yolov5/tree/v6.2 TensorRT:8.x.x 语言:…

基于stm32单片机体重秤电子秤超重提醒

资料编号:107 下面是相关功能视频演示: 107-基于stm32单片机体重秤电子秤称重超重报警Proteus仿真(源码仿真全套资料)功能介绍: 采用stm32单片机,可以设置称重上限制,LCD1602显示重量&#xf…

04_tcp

知识点1【多播】 多播地址: 多播地址向以太网MAC地址的映射 UDP多播工作过程: 多播地址结构体: 多播套接口选项: 知识点2【TCP面向链接编程】 1、创建tcp套接字 2、做为客户端需要具备的条件 3、connect链接服务器的函数…

地图下载白嫖神器!你该怎么用好它

今天介绍一下做数据可视化网站比较好的两个平台。一个是阿里云的Datav,另一个是易智微easyv. 一、DataV.GeoAtlas 前段时间 我们就给大家分享过阿里云的DataV.GeoAtlas地理小工具系列。我们可以通过这个平台下载高德比较新的地图数据,数据的时效性是有较…