Powered By 北溪入江流.
https://focus-wind.com/
https://blog.csdn.net/qq_42482078
视觉:人类观察世界、认知世界的重要手段。人类获得的信息约有75%来自视觉系统
计算机视觉:用计算机实现人类的视觉功能
视觉信息的表达问题
视觉信息的加工问题
图像理解
机器视觉
模式识别
人工智能
计算机图形学
机器人
心理学、神经科学
工业视觉
人机交互
安全监控
军事公安
遥感测绘
视觉导航
生物医学
虚拟现实
图像自动解释
马尔视觉理论框架
主动视觉
有目的的视觉
高层知识
反馈控制
视点变化
视觉亮度
比例对比
图像畸变
背景杂波噪声
对象类内变化
图像局部模糊
数字图像:把连续的模拟图像在坐标空间XY和性质空间F都离散化了的图像
通常用f(x, y)表示数字图像中像素(x, y)的性质
4-邻域: N 4 ( p ) N_4(p) N4(p)
对角邻域: N D ( p ) N_D(p) ND(p)(Diagonal:对角线,斜线)
8-邻域: N 8 ( p ) N_8(p) N8(p)
阶梯状边缘
脉冲状边缘
屋顶状边缘
如上图所示,对边缘进行检测,即要找到边缘变化大的地方,即通过导数(微分)计算图像边缘
一阶微分算子给出梯度,所以也称梯度算子,分别计算X和Y方向的两个偏导分量
中心像素的系数为正
中心像素邻近像素的系数为负
所有系数总和为0
计算步骤:在每个分辨率上进行如下计算
高斯加权平滑函数: h ( x , y ) = e − x 2 + y 2 2 σ 2 h(x, y) = e^{- \frac{x^2 + y^2}{2\sigma^2}} h(x,y)=e−2σ2x2+y2
通常是目标轮廓上曲率的局部极大值,对掌握目标的轮廓特征具有决定作用
通常认为角点是二维图像亮度变化剧烈的点,或两条线的交叉处
USAN原理(核同值区域):即与核有相同值的区域,可简称为核同值区
模板:
检测方式:
检测时不需要计算微分,有噪声时性能较好
对边缘的响应随着边缘的平滑或模糊而增强
能提供不依赖于模板尺寸的边缘精度
控制参数的选择很简单,任意性较小
角点判定:根据海森矩阵M的特征值 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2大小关系判断角点
λ 1 ≫ λ 2 ≈ 0 \lambda_1 \gg \lambda_2 \approx 0 λ1≫λ2≈0:x方向梯度信息,y方向没有梯度,是边缘
λ 2 ≫ λ 1 ≈ 0 \lambda_2 \gg \lambda_1 \approx 0 λ2≫λ1≈0:y方向梯度信息,x方向没有梯度,是边缘
λ 1 ≈ 0 , λ 2 ≈ 0 \lambda_1 \approx 0, \lambda_2 \approx 0 λ1≈0,λ2≈0:x,y方向没有梯度,是平坦区域
λ 1 ≫ 0 , λ 2 ≫ 0 \lambda_1 \gg 0, \lambda_2 \gg 0 λ1≫0,λ2≫0:x, y方向梯度信息,是角点
响应函数: R = d e t ( M ) − k ( t r a c e ( M ) ) 2 R = det(M) - k(trace(M))^2 R=det(M)−k(trace(M))2
R ≫ 0 R \gg 0 R≫0 :角点
∣ R ∣ ≈ 0 |R| \approx 0 ∣R∣≈0:平坦区域
R ≪ 0 R \ll 0 R≪0:边缘
人眼对世界感知的特性:
图像高斯金字塔:用来模拟人眼对世界感知的特性
使用采样法(上采样、下采样)模拟图像的远近程度
通过高斯核对图像的平滑处理模拟图像的粗细程度
尺度不变性,当旋转图像,改变图像亮度,移动拍摄位置时,仍可得到较好的检测效果
常见的用于电子稳像、全景图拼接
为什么要小孔:增加一个障碍物阻止大多数的光线,从而减少成像模糊
成像模型:任何点P在图像中的投影位置p,为小孔中心O与P点的连线OP与图像平面的交点
小孔的选择:
增加凸透镜:
通过光心的光线不会偏离
平行光线会聚于焦距f
世界坐标系XYZ:真实世界中一点为世界原点,选择方向为XYZ轴确立世界坐标系
相机坐标系xyz:以相机为中心建立的相机坐标系统
图像平面坐标系x’y’:成像平面上的坐标系统
一般取图像平面与相机坐标系的xy平面平行,且x轴与x’,y与y’重合
由三角形比例关系知 x X = λ λ − Z , y Y = λ λ − Z \frac{x}{X} = \frac{\lambda}{\lambda - Z},\frac{y}{Y} = \frac{\lambda}{\lambda - Z} Xx=λ−Zλ,Yy=λ−Zλ,所以 x = λ X λ − Z , y = λ Y λ − Z x = \frac{\lambda X}{\lambda - Z},y = \frac{\lambda Y}{\lambda - Z} x=λ−ZλX,y=λ−ZλY
在相机坐标系和图像坐标系中,一般而言,取它们的x轴和y轴平行。然后我们需要进行相机坐标系和图像坐标系的坐标系转换
u = X d X + u 0 v = y d Y + v 0 u = \frac{X}{dX} + u_0 \\ v = \frac{y}{dY} + v_0 u=dXX+u0v=dYy+v0
f:焦距,单位毫米
dx:像素x方向宽度,单位毫米,1/dx:x方向1毫米内有多少个像素
f/dx:使用像素来描述x轴方向焦距的长度
f/dy:使用像素来描述y轴方向焦距的长度
u0,v0:主点的实际位置,单位也是像素
相机的内参数是相机自身的参数信息,同一厂家出厂的同一型号的相机,因为工艺流程,所以一般是相同的
光学畸变:由于相机的物镜系统设计、制作、装配所引起的像素点偏离其理想位置的点位误差
x,y:理想像素坐标
x ^ , y ^ \hat{x}, \hat{y} x^,y^:实际像素坐标
Δ x ^ , Δ y ^ \Delta_{\hat{x}},\Delta_{\hat{y}} Δx^,Δy^:畸变偏差
在相机的内参数中,我们讨论了相机坐标系和图像坐标系的关系,其中空间点W表示在相机坐标系和图像坐标系中的空间点,但在实际的图像采集过程中,我们往往希望得到从世界坐标映射到图像坐标的关系,以此来研究真实世界的视觉信息。所以在这里我们需要将空间点W转换为世界坐标系中的点来探索世界坐标与像素坐标的关系。
由于世界坐标是由使用人员自己设置的。所以一旦世界坐标发生变化,相机的外参数就发生变化,相机的外参数本质上反映的是相机相对于世界坐标的位置关系。
在计算机视觉中有世界坐标、相机坐标、图片坐标三个坐标。成像系统的研究是希望找到世界坐标与图片坐标之间的关系。借图片坐标来研究真实世界的信息。
s [ u , v , 1 ] T s[u, v, 1]^T s[u,v,1]T:图像坐标
M 1 M_1 M1:相机内参数,图像坐标与相机坐标的桥梁
M 2 M_2 M2:相机外参数,相机坐标与世界坐标的桥梁
X w X_w Xw:世界坐标
计算机视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体。
摄像机参数:空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。
在大多数条件下,摄像机参数必须通过实验与计算才能得到,这个过程被称为摄像机标定。
标定过程就是确定摄像机的几何和光学参数,摄像机相对于世界坐标系的方位。标定精度的大小,直接影响着计算机视觉 的精度。因此,只有做好了摄像机标定工作,后续工作才能正常展开。
需要已知结构信息的标定物(棋盘格)
可以使用于任意的摄像机模型,标定精度高
在实际应用中很多情况下无法使用标定块
直接线性变换是将像点和物点的成像几何关系在齐次坐标下写成透视投影矩阵的形式
如上所示,根据世界坐标中的一个点,我们得到了两个含P的方程式,当已知N个空间点时,我们能得到2N个相关的方程式:KP = 0,其中P为透视投影矩阵
相机标定的任务就是寻找合适的P,使得 ∣ ∣ K P ∣ ∣ ||KP|| ∣∣KP∣∣最小。
针对单目相机,由于单个相机无法真实的获取深度信息。所以在单目相机中我,我们只能获得到世界坐标对应的x,y坐标。
定模板平面在世界坐标系Z=0 的平面上
A:相机的内参数矩阵
[ r 1 , r 2 , r 3 ] [r_1, r_2, r_3] [r1,r2,r3]:相机坐标系相对于世界坐标系的旋转矩阵
t:相机坐标系相对于世界坐标系的平移向量
打印一张模板并贴在一个平面上
从不同角度拍摄若干张模板图象
检测出图象中的特征点
求出摄像机的内参数和外参数
求出畸变系数
优化求精
单目立体视觉的缺陷:光线OP上的任意点都投影在图像平面的p点上,深度感知存在歧义。所以,单目立体视觉只能反映世界坐标的x,y信息,无法反映z信息。
针对单目相机无法获得深度信息,采用双目相机能有效解决无法获得z信息的问题。
特点:
将光心 O l O_l Ol移动到 O r O_r Or处,根据三角形比例关系可以得到 x l − x r B = f Z \frac{x_l - x_r}{B} = \frac{f}{Z} Bxl−xr=Zf,其中 d = x l − x r d = x_l - x_r d=xl−xr称为视差,进一步可以得到 Z = f B d Z = \frac{fB}{d} Z=dfB
根据深度信息,我们可以得到(以左光心为主光心:
特点:
由上图可知,根据三角形比例关系得: λ x 2 = X c o s θ r + X s i n θ \frac{\lambda}{x_2} = \frac{Xcos\theta}{r + Xsin\theta} x2λ=r+XsinθXcosθ
联立可得: r = B 2 s i n θ r = \frac{B}{2sin\theta} r=2sinθB,可得 Z = R c o s θ + λ c o s θ = B c o s θ 2 s i n θ + 2 x 1 x 2 s i n θ d Z = Rcos\theta + \lambda cos\theta = \frac{Bcos\theta}{2sin\theta} + \frac{2x_1x_2sin\theta}{d} Z=Rcosθ+λcosθ=2sinθBcosθ+d2x1x2sinθ
特点:
由三角形比例关系可得: X − x 1 = Z − λ λ , X − x 2 = Z − λ − Δ λ λ \frac{X}{-x_1} = \frac{Z - \lambda}{\lambda},\frac{X}{-x_2} = \frac{Z - \lambda - \Delta\lambda}{\lambda} −x1X=λZ−λ,−x2X=λZ−λ−Δλ
根据上式可推导出: X = Δ Z x 1 x 2 λ ( x 1 − x 2 ) , Z = λ + Δ Z x 2 x 2 − x 1 X = \frac{\Delta Z x_1x_2}{\lambda (x_1 - x_2)}, Z = \lambda + \frac{\Delta Z x_2}{x_2 - x_1} X=λ(x1−x2)ΔZx1x2,Z=λ+x2−x1ΔZx2
特点:
由摄像机透视变换模型可得:
对极点:摄像机的基线与每幅图像的交点,即上图中的点e和e’
对极线:对极平面与图像的交线;例如,上图中的直线l和l’
消失点:
当你沿着铁路线去看两条铁轨,沿着公路线去看两边排列整齐的树木时,两条平行的铁轨或两排树木连线交与很远很远的某一点,这点在透视图中叫做消失点
平行线的视觉相交点
立体匹配:为左图像的每个像素点(xl, yl),在右图像中搜索对应点
匹配基元:参与立体匹配,计算相似测度的基本单元
立体匹配分类:
仅为特征搜索对应点,构建稀疏的视差图
匹配基元:特征
以基准图的待匹配点为中心创建一个窗口,以待匹配图像中某一像素点为中心创建同样大小的滑动窗口,将该窗口内相邻像素的亮度值分布来表征中心像素
比较待匹配图中每个滑动窗口内容与基准图参考窗口内容的相似程度
搜索范围:对于已校正的双目立体图像对,则在扫描线上搜索
相似性测度:
挑战:
重复场景
无纹理区域
遮挡
图像噪声、不同增益、不同对比度等等…
透视畸变
镜面反射
尺度、旋转变化
主要思想:在左右两幅图像中寻找匹配特征
常用特征:
匹配算法
经典特征提取方法:
SUSAN角点提取
harris角点提取
SIFT、SURF尺度不变特征提取
为克服匹配过程中存在的歧义性,需采用一些常用的匹配约束:
极线约束:匹配点必须在极线上
相似性约束:左、右图像的匹配点应具有相似的亮度或颜色。即,假定目标表面符合朗伯漫反射表面。
视差范围约束:仅在视差搜索内搜索。
唯一性约束:一幅图像中的一个像素,在另一幅图像中最多只有一个对应点像素。
顺序约束/单调性约束:若参考图中A点在B点的左边,则另一幅图像中A点匹配点也在B点匹配点的左边。
平滑性约束/一致性约束:除了遮挡或视差本身不连续区域外,小邻域范围内视差值变化量应很小或相似。换言之视差曲面应是分段连续的。
互对应约束:又称左右一致性,若以左图为基准图,左图上一像素点 pl 的搜索到右图上对应点像素为 pr ;那么若以右图为基准图,像素 pr 的对应点也应该是左图上的像素点 pl 。该约束常用于遮挡区的检测。
MatchNet
SFM:
增量式SFM:
全局SFM:
求解成对的摄像机的运动(本质矩阵分解)
从输入的成对的运动,同时注册所有摄像机
BA所有摄像机
SLAM:实现真正全自主移动机器人的关键
要想真正实现机器人,机器人至少需要知道以下几件事情:
SLAM是当某种移动设备(如机器人)从一个未知环境里的未知地点出发,在运动过程中通过传感器观测定位自身位置、姿态、运动轨迹,再根据自身位置进行增量式的地图构建,从而达到同时定位和地图构建的目的。
定位和建图是两个相辅相成的过程,建图可以提供更好的定位,而定位也可以进一步扩建地图。
SLAM非常强调未知环境,也是自主移动机器人的核心技术。
在SLAM中非常强调移动、未知环境,需要可携带式的传感器。
特别的,当谈论视觉SLAM,主要是指如何用相机解决定位和建图问题。
SLAM中使用的相机比单反摄像头更加简单,是以一定速率拍摄周围的环境,形成一个连续的视频流。按照工作方式的不同,相机可以分为单目相机、双目相机和深度相机。
SLAM设备:
SLAM流程:
度量地图
拓扑地图
运动分析主要针对视频进行展开处理(视频本质上就是一帧一帧连续运动的图片)
视频为时间序列上捕获的图像帧,可表示为图像数据空间(x, y) 和时间(t)的函数I(x, y, t)
应用:
运动的分类:
运动的表达方式:
目标在运动过程中的位置信息
由一系列关键点和一组在关键点之间进行插值的函数组成
图像差的计算:
像素图像差的计算:
基本思路:
块匹配原则:
归一化互相关函数
均方误差
绝对值误差
匹配像素数
基本思路
基于单高斯模型的方法:假设像素点的值在视频序列中服从一个高斯分布
基于视频初始化方法:
基于高斯混合模型的方法:
运动场:3D场景运动在图像上的投影
估计方法:
二维运动估计存在的问题:
噪声不可避免
运动估计对噪声非常敏感
图像分类:根据图像信息中所反映出来的不同特征,把不同类别的目标区分开来的图像处理方法
分类的任务:给定一组离散标签,找到一个分类器将给定图片区分开来
分类面临的挑战:
视点变换
照明不良
变形
遮拦
背景杂乱
类内变化:如黑猫白猫
图像分类不像一般问题,没有简单明了的算法能够识别一种类别。所以一般的采用机器学习的相关方式对图像进行分类研究。
机器学习方法的一般步骤:
收集带有标签的图像数据库
使用机器学习算法训练图像分类器
用测试图像评估分类器的效果
NN分类器
NN分类器一般很少在实践中使用
K-NN是NN的延申和增强,相比于NN
K-NN的距离度量(如何找到最相似的训练图像)
超参数:在K-NN中,距离的度量和参数k的选择都不是由算法自动学习的,而是由我们来手动设置,所以我们将其称为超参
超参数的设置:
选择在训练集上表现最佳的参数。
将数据集划分为训练集和测试集,选择在测试集上表现最佳的参数。
将数据集训练集、验证集、测试集。选择在验证机上最佳的参数,在测试集上进行验证,可以获得对新数据的评估
使用k-折方法划分数据集(交叉验证):训练数据分为N折,将每一折作为验证集,其它折作为训练集,训练验证N次,结果取平均
线性分类器:一个m维空间中的数据集,如果能够被一个超平面一分为二,那么这个数据集就是线性可分的,这个超平面就是决策边界。
线性不可分情况:无法被一个超平面一分为二的情况
线性分类器的组成:评分函数+损失函数
损失函数的选择: