实用指南:【相机基础知识与物体检测】更新中

news/2025/10/6 20:00:27/文章来源:https://www.cnblogs.com/lxjshuju/p/19127863

参考: 黑马机器人 | 相机标定&物体检测https://robot.czxy.com/docs/camera/

01-相机基础

相机基础概述¶

相机是机器视觉的基础,相机直接产生了相机数据。所有视觉算法都是作用在相机材料上的。相机数据的好坏,或者对相机数据的理解方式,直接决定了视觉算法的效果。

世界中的光线被检测到,于是产生了视觉。光线从某种发射源(如灯管、太阳)发射出射线,穿过空间照射到某个物体上。此时,大部分光线被吸收,我们认为没有被吸收的光线就是物体的颜色,这些光线反射进入我们的眼睛(或相机),被我们的视网膜(或图像采集器)吸收。

光线从物体发射开始,通过透镜到达眼睛或相机,然后到达视网膜或图像采集器的几何过程,是计算机视觉应用构建的重要部分。

许可说:机器视觉是建立在对相机成像过程的深刻理解的基础之上的。

相机分类

依据相机数据维度的不同,相机分为两类,

2D相机¶
3D相机¶

通过根据相机的工作原理能够分为以下几种:

传感器

通过透镜聚焦于像平面的光线,最终需要通过传感器来生成图像。目前,有两种最流行的数字传感器技术,

从芯片中读出数据的方式即读出结构不同。下图描述了两者读出方式的不同。 就是两者的主要区别

1. CCD传感器¶

CCD传感器由一系列光线敏感的光电传感器组成,光电探测器能将光子转为电子并将电子转为电流。 曝光时,光电探测器累计电荷,通过转移门电路,电荷被移至串行读出寄存器从而读出。 每个光电探测器对应一个读出寄存器。 下图形象的描述了CCD传感器的工作原理。

2. CMOS传感器¶

通过CMOS传感器通常采用光电二极管作为光电探测器。 与CCD传感器不同,光电二极管中的电荷不是顺序地转移到读出寄存器,CMOS传感器的每一行都可以依据行和列选择电路直接选择并读出。因此,CMOS传感器能够当做随机读取存储器。 

3. 彩色相机¶

CCD和CMOS传感器,对于整个可见光波段全部有响应,所以无法产生彩色图像。 为了产生彩色图像,需要在传感器前面加上彩色滤镜阵列(color filter array, CFA)使得一定范围的光到达每个光电探测器。 下图展示了最常见的Bayer滤镜阵列。这种滤镜阵列由三种滤镜组成,每种滤镜都可以透过人眼敏感的三基色红,绿,蓝中的一种。由于人眼对绿色最为敏感,所以滤镜阵列中绿色采样频率是其它两种的两倍。值得注意的是由于绿色采样是1/2,红、蓝是1/4,这就导致了严重的图像失真。通常在传感器前加上控图像失真滤光片。 CCD彩色相机的示意图: 

输出信号时,像素的RGB分量是由其对应像元和其附近的像元共同构成的。

Bayer滤波法:

02-3D相机及分类

1. TOF相机

TOF(Time of flight)直译为飞行时间。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。

img

TOF相机与普通机器视觉成像过程也有类似之处,都是由光源、光学部件、传感器、控制电路以及处理电路等几部单元组成。TOF相机不仅可以获取到深度信息还允许获取到图像的灰度信息,微软kinect2即是基于TOF原理的深度相机。

img

TOF 相机目前的主要应用领域包括:物流行业,安防和监控,工业视觉,工业定位、工业引导和体积预估;替代工位上占用大量空间的、基于红外光进行安全生产控制的设备,医疗和生物,互动娱乐等领域。

2. 双目RGB相机

双相机立体视觉指仅依靠双相机的视差获取深度信息的方式。

双相机立体视觉相机因为非常依赖纯图像特征匹配,所以在光照较暗或者过度曝光的情况下效果都极其差,另外如果被测场景本身缺乏纹理,也很难进行特征提取和匹配。例如纯色的背景。

img

3. 结构光相机

结构光(Structured Light)相机是通过红外((Infrared Radiation)发射端投射人眼不可见的伪随机散斑红外光点到物体上,每个伪随机散斑光点和它周围窗口内的点集在空间分布中的每个位置都是唯一且已知的。这是结构光的存储器中已经预储存了所有的数据。这些散斑投影在被观察物体上的大小和形状根据物体和相机的距离和方向而不同。拍摄到的斑点和已知斑点进行对比,接着获取到深度信息。

为了在远中近三种距离内都能得到相对较好的测量精度:就是根据三种不同的距离使用了三种不同尺寸的散斑,这样的目的

近距离(0.8 – 1.2 m):行获得较高的测量精度, 中距离(1.2 – 2.0 m):可以获得中等的测量精度, 远距离(2.0– 3.5 m):可以获得较低的测量精度。

img

4. 三维扫描仪

三维扫描仪(3D scanner)重要有两种:拍照式扫描仪,激光扫描仪

三维扫描仪的作用是用来创建物体表面的点云图,从而生成物体的表面形状,越密集的点云,构建出的三维形状越精确。

拍照式三维扫描仪是一种高速高精度的三维扫描测量设备,应用的是目前国际上最先进的结构光非接触照相测量原理。拍照式三维扫描仪采用了结构光技术、相位测量技术、计算机视觉工艺,是一种复合三维非接触式测量技能。

它采用的是白光光栅扫描,以非接触三维扫描方式工作,全自动拼接,具有高效率、高精度、高寿命、高解析度等优点,特别适用于复杂自由曲面逆向建模, 重要应用于产品研发设计(RD,比如快速成型、三维数字化、三维设计、三维立体扫描等)、逆向工程(RE,如逆向扫描、逆向设计)及三维检测。

激光式扫描仪工作时,将激光线照射在物体上,通过两个相机捕捉每个瞬间的三维扫描数据,根据捕获到的不同角度的激光反射及折射,借助软件构建三维图像,由于激光扫描的频率很高,较快的扫描动作也能得到较准确的结果。使用时常需要使用反光型焦点标志贴,与扫描软件配合使用,以进行摄影测量和自动校准。

激光扫描仪是在原有拍照式扫描仪的基础上设计的,比拍照式拥有更高的精准度,可以满足更加苛刻的三维逆向建模需求。

03-相机模型

在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点相机参数。就是之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就

标定的目标:求出相机的内、外参数,以及畸变参数。

为什么需标定:

无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定,提高标定精度是做好后续工作的前提和重点。

小孔成像模型

(图1) 小孔成像原理示意图

上图是最原汁原味的小孔成像原理图,它描述的是三维空间中的点到图像平面(image plane)上的投影。

思考: 三维空间中的每个点,都在图像平面上有一个唯一对应的投影吗?

在实际的实现和应用中,为了表达的方便,通常会将图像平面放在小孔和三维场景之间。如下图所示,(这是大家在很多教科书,播客,专业书籍上能看到的图)

(图2) 小孔成像原理的一个实际实现的描述

(图3) 对图2的一些直观补充

 

这里介绍几个概念:

四个坐标系

为了数学表达的方便,通常以光心为原点,建立一个图像坐标系。下图详细的描述了这些关系。

    点在各个坐标系的表达:

     

    04-坐标变换

    下面详细推导下3个坐标系之间的对应关系:

    1. 世界->相机

    2. 相机->图像

    3. 图像->像素

    根据在图像中点pp的坐标xyxy,得到其在像素坐标系即我们所能看到的图片像素中的位置uvuv

    综合: 世界->像素

    :::tip

    由于制造工艺等因素,相机像素坐标系中心未必与光轴经过的图像坐标系中心重合,即(u0,v0)(u0,v0)并非是像素坐标系的中心,而是在中心附近某个位置,焦距及像素物理尺寸也非绝对精准,故而需要通过实际的内参标定过程,确定相机的内参矩阵。

    05-相机透镜及畸变

    透镜

    实际成像时,如果小孔过小,则入射光的强度会受到影响,进一步会影响到成像。 另一方面,由于光的波动性,在小孔的边缘上,光将发生衍射,因此,这些光将在像平面上“散播”。当小孔变的越来越小时,入射光的“散播”范围将变得越来越大,因此,入射光中越来越多的能量将会被“散播”到:偏离入射光方向的“地方”。

    我们在使用针孔相机时,我们做过一个假设:针孔是无线小的一个孔。在真实物理世界中,我们的假设一般无法成立,那如果改变针孔的大小后,会发生怎样的变化呢?

    img

    如上图所示,当针孔尺寸发生改变后,穿过针孔的光线数量就会增加。光线数越多,像平面中的点就会被三维世界中物体上越多的点影响,导致图像越发模糊。针孔小了,得到的图像更清晰,但也更暗。自然而然的,我们就会想到针孔模型下的一个基本障碍:我们能设计一个相机能得到既清晰又明亮的图像吗?

    通过为了应对小孔相机的上述问题,我们现在考虑:在成像系统中使用透镜。镜头能够使光线聚焦或分散,如果我们选用一个理想的透镜替代针孔,那他应该具有以下特性:P点发出的所有射线,经镜头折射后,聚焦在像平面上P′点。

    假如我们另取一点 Q ,在像平面上的投影点则可能是模糊或失焦的。每个镜头都会有特定的准确对焦的距离,在摄影学或计算机图形学中也叫景深(depth of field)。

    镜头能够讲所有平行于光轴的光线折射到同一个点,称之为焦点。焦点和光心的距离即为焦距ff。从光心穿过的光线不会偏离原始方向。

    一个理想的透镜具有如下两个性质:

    畸变参数

    径向畸变

    径向畸变来自透镜形状不规则以及建模的方式,导致镜头不同部分焦距不同。光线在远离透镜中心的地方偏折更大(枕型畸变)或更小(桶形畸变)。

    从径向畸变开始。实际摄像机的透镜总是在成像仪的边缘产生显著的畸变,如下图所示。对某些透镜,光线在远离透镜中心的地方比靠近中心的地方更加弯曲。

    对径向畸变,成像仪中心(光轴)的畸变为0,随着向边缘移动,畸变越来越严重。当然,在实际的相机中,这种畸变比较小,而且可以用r=0位置周围的泰勒级数展开的前几项来定量描述。

    下图显示矩形网格因径向畸变而产生的位移。越远离光轴中心的地方,矩形网格上的点偏移越大。

    下图描述了3种常见的畸变情形,桶形畸变通常k1>0,枕形畸变通常k1<0。

    切向畸变

    切向畸变来自于整个摄像机的组装过程。由于透镜制造上的缺陷使得透镜本身与图像平面不平行而产生的,如下图所示:

    1569638268925

    切向畸变可以用两个额外的参数p1p1和p2p2来描述:

    06-相机标定与去畸变

    综合径向畸变和切向畸变,我们总结出去畸变公式:

     








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

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

    相关文章

    外贸网站推广方法南昌百度关键词搜索

    Windows 网络质量测试 References 保证网络稳定性&#xff0c;建议最大数据包延迟 200ms 以内&#xff0c;数据包最大和最小延迟差 100ms 以内&#xff0c;丢包率最好不丢包或 5% 以内。 ping www.baidu.com -t 调出 运行 (快捷键 Win R)&#xff0c;输入 cmd&#xff0c;pi…

    网站用cms如何制作网址内容

    SharePoint 2013 单一服务器场环境恢复数据库内容 笑男的公司服务很多客户&#xff0c;当然&#xff0c;这些客户都很挑剔&#xff0c;所以一般情况下生产&#xff08;Prod&#xff09;环境的服务是不能停的。 当然&#xff0c;如果你将包含相同网站集的数据库连接到同一个服务…

    文化类网站建设福州seo推广外包

    网上很多代码都略显繁琐&#xff0c;看了一下yy dalao的代码感觉很好&#xff0c;但他懒得打题解&#xff08;好吧我也是 以0为根节点的话&#xff0c;我把yy的一段代码删了改用fail[c]x0?0:ch[fail[x]][i];来实现特判&#xff0c;效果还不错&#xff01;也算是AC自动机的模版…

    广州网站建设推广网站建设及推广开发

    根据html&#xff1a;可知div是块级标签&#xff0c;span是行级标签 这里view类似于div&#xff0c;text类似于span&#xff0c;即 块级标签&#xff1a;view 行级标签&#xff1a;text、icon 类似效果 两个icon图标&#xff0c;置于第一排 两个view&#xff0c;分别位于第…

    在上海哪个网站比较好自己在家可以做网站吗

    在使用web-view时发现了一个问题总是会过段时间自己跳转到web-view是src地址 由于我是写的轮播图中嵌套一个web-view 所以当时我以为是轮播图和这个web-view冲突了 其实设计就是如此 自己跳 <view class"page-body"><web-view src"{{url}}">&…

    AtCoder Beginner Contest 422 游记(VP)

    很快过 $3t$,D 题稍微卡顿,E 题一堆垃圾错误。省流 很快过 \(3t\),D 题稍微卡顿,E 题一堆垃圾错误。10.6 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 本来在补 \(2023CCPCHarbin\) 的题目,做到最小生成…

    详细介绍:无人机光纤FC接口模块技术分析

    详细介绍:无人机光纤FC接口模块技术分析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

    2025 --【J+S 二十连测】-- 第十三套 总结

    总结 T1 T3 考试时很快就写出了代码,没什么问题 T2 考试时很快就写出了代码,但思路不严谨,故失分 T4 T5 考试时很快就写出了部分分代码,无失分 题解 T1 利用最近学的数学方法即可 代码 #include<bits/stdc++.h&…

    企业网站制作需要多少钱网页翻译功能在哪

    配置文件目录 linux 系统中有很多配置文件目录/etc/systemd/system、/lib/systemd/system 以及/usr/lib/systemd/system 等&#xff0c;这三者有什么样的关系呢&#xff1f; 以下是网络上找的资料汇总&#xff0c;并加了一些操作验证。方便后期使用 介绍 目录/lib/systemd/s…

    文件提供的基本操作

    创建文件(create) 1.所需外存空间大小 2.文件存放路径 3.文件名 操作系统在接受大create之后 1.在外存中找到文件所需空间(上小结内容) 2.根据文件存放路径信息找到目录对应的目录文件,在目录文件创建文件对应的目…

    上海建设小学网站电脑从做系统怎么找回以前登录的网站

    数据结构之图 图的定义和概念图的定义图的术语 图的类型定义图的存储结构数组&#xff08;邻接矩阵&#xff09;表示法无向图的邻接矩阵表示法有向图的邻接矩阵表示法网&#xff08;即有权图&#xff09;的邻接矩阵表示法 邻接矩阵的ADT定义邻接表&#xff08;链式&#xff09;…

    网站制作步骤深圳营销推广公司

    什么是IOC&#xff1f; 控制反转&#xff0c;依赖注入 1、控制什么&#xff1f; 控制对象的创建及销毁(生命周期) 2、反转什么&#xff1f; 讲对象的控制权交给IOC容器

    无锡知名网站制作广州个人网站制作公司

    引言&#xff1a;从本文开始&#xff0c;我们详细介绍Xilinx CIC IP核滤波器相关知识&#xff0c;包括CIC IP核提供的特性、IP核接口描述以及IP核设计指导等相关内容。1.概述级联积分器梳状(CIC)滤波器&#xff0c;也称为Hogenauer滤波器&#xff0c;是用于实现数字系统中大采样…

    深入解析:MySQL(50)如何使用UNSIGNED属性?

    深入解析:MySQL(50)如何使用UNSIGNED属性?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

    网站建设公司新员工培训ppt重庆是哪个省

    条款15: 让operator返回*this的引用 c的设计者bjarne stroustrup想使用户自定义类型尽可能地和固定类型的工作方式相似。所以有重载运算符&#xff0c;类型转换函数、拷贝赋值、拷贝构造函数等。 类c中&#xff0c;缺省版本的operator函数具有如下形式&#xff1a; c& c::…

    衡水企业网站河北建设集团股份有限公司

    背景 众所周知&#xff0c;目前群晖DSM7中使用Synology Photos做照片管理时&#xff0c;个人照片只能默认索引 /home/Photos 文件夹&#xff0c;但是如果个人照片很多或者用户很多时&#xff0c;共享文件夹/homes 所在的存储空间就会不够用 当然&#xff0c;如果你的存…

    yarn、pnpm、npm - 指南

    yarn、pnpm、npm - 指南2025-10-06 19:32 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

    网站流量多少做网盟工程招标平台

    SqlSessionFactoryBuilder.build创建SqlSessionFactory&#xff08;粗略走一步流程&#xff09; 看完上篇文章后&#xff0c;你对mybatis应该有个大概的了解了&#xff0c;那么我们知道new SqlSessionFactoryBuilder().build是框架的入口&#xff0c;我们到SqlSessionFactoryB…

    基于Linux环境docker封装exe

    基于Linux环境docker封装exepre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

    迈向人机价值共生文明:AI元人文范式下的演化架构与协同治理

    迈向人机价值共生文明:AI元人文范式下的演化架构与协同治理 引言:超越价值对齐的必然之路 在人工智能发展的当前阶段,我们正面临一个根本性困境:传统“价值对齐”范式试图通过预设规则或优化目标函数将人类价值“灌…