《计算机视觉》(马颂德)阅读笔记
2021/12/31 23:15:57
本文主要是介绍《计算机视觉》(马颂德)阅读笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
绪论
Marr的计算视觉理论框架
视觉系统研究的三个层次
系统的研究应分为三个层次,即计算理论层次、表达与算法层次、硬件实现层次。
计算理论层次
计算理论层次要回答系统各个部分的计算目的与计算策略。
视觉系统的总的输入输出关系的总目标:输入是二维图像,输出是由二维图像重建出来的三维物体的位置和形状。
表达与算法层次
各部分(模块)的输入输出和内部的信息表达,以及实现计算理论所规定的目标的算法。不同的表达与算法,在计算理论层次上可以相同。
硬件层次
回答“如何用硬件实现以上算法”
视觉信息处理的三个阶段
二维图像数据到最终对三维环境的表达经历三个阶段的处理
第一阶段
构成基元图,由二维图像中的边缘点、直线端、曲线、顶点等基本几何元素或者特征组成。
第二阶段
对环境的2.5维描述。重建三维物体在以观察者为中心的坐标系下的三维形状与位置。只能观察到物体部分。该阶段存在许多并行的相对独立的模块,如立体视觉、运动分析等不同处理单元。
第三阶段
进一步处理以得到物体的完整三维描述,而且必须是物体本身某一固定坐标系下的描述。
边缘检测
二维图像的特征提取是三维计算机视觉的第一步。
图像上边缘点可能对应的物理意义:
- 空间曲面的不连续点,不同曲面或平面的交线
- 不同材料或不同颜色产生,由于这些物体对光的反射系数不同,使得它们图像灰度不同。
- 物体与背景的分界线。一般称为外轮廓线。
- 阴影引起的边缘,由于物体表面某一部分被另一物体遮挡,使它得不到光源的照射,从而引起边缘点两侧灰度值有较大差异。
边缘都是图像上灰度的不连续点或灰度变化剧烈的地方。由于“灰度变化剧烈”意味着在边缘点附近,信号具有空间域的高频分量,因此所有的边缘抽取方法在本质上都是检测信号的高频分量。
边缘检测与微分滤波器
边缘信号模型P13。
检测一阶导数局部最大值或者二阶导数过零点是边缘检测的基本方法。在实际算法实现上,检测过零点更简单。
微分滤波器
信号存在毛刺,要先进行平滑滤波,去噪后再检测边缘点。
平滑滤波器h(x)的特点:
- 当 ∣ x ∣ − > ∞ , h ( x ) − > 0 , h ( x ) |x|->\infty,h(x)->0,h(x) ∣x∣−>∞,h(x)−>0,h(x)为偶函数
- ∫ − ∞ + ∞ h ( x ) d x = 1 \int_{-\infty}^{+\infty}h(x)dx=1 ∫−∞+∞h(x)dx=1
- h ( x ) h(x) h(x)一阶且二阶可微
上述第二个条件保证信号经过平滑滤波器 h ( x ) h(x) h(x)滤波后,其均值不变
常用的平滑滤波器为高斯函数
离散信号的差分滤波器
边缘检测与正则化方法
信号的微分不能由带有噪声的观察信号的微分得到。
完善定义的问题:
- 问题的解具有存在性与唯一性
- 数据连续变化时,问题的解也连续变化。这一点保证了问题的解对噪声具有鲁棒性。
不符合上述条件的问题称为病态问题。解病态问题的正则化方法。
A
Z
=
Y
AZ=Y
AZ=Y
A为变换算子,Z为理想无噪声时的物理信号,Y为某设备观察到的信号,包含噪声也包含系统误差。由Z求Y即是病态问题(A不可逆)。
正则化求解方法定义稳定算子P以及PZ的模
∣
∣
P
Z
∣
∣
=
∫
−
∞
+
∞
(
P
Z
)
2
d
x
||PZ||=\int_{-\infty}^{+\infty}(PZ)^2dx
∣∣PZ∣∣=∫−∞+∞(PZ)2dx
P
Z
PZ
PZ描述
Z
Z
Z的平滑程度.上式描述Z在全部定义域范围内的总平滑程度,其值越小,Z越平滑。求解Z的三种方法
-
在约束 ∣ ∣ P Z ∣ ∣ < C ||PZ||<C ∣∣PZ∣∣<C的条件(C为某一指定常数)下求解Z,使得 ∣ ∣ A Z − Y ∣ ∣ ||AZ-Y|| ∣∣AZ−Y∣∣最小
-
在约束 ∣ ∣ A Z − Y ∣ ∣ < C ||AZ-Y||<C ∣∣AZ−Y∣∣<C的条件下,求 Z Z Z使得 ∣ ∣ P Z ∣ ∣ ||PZ|| ∣∣PZ∣∣最小
-
求Z使得下式E最小
E = ∣ ∣ A Z − Y ∣ ∣ + λ ∣ ∣ P Z ∣ ∣ E=||AZ-Y||+\lambda||PZ|| E=∣∣AZ−Y∣∣+λ∣∣PZ∣∣
上面三种方法思想其实一样,只是算法不一样。
多尺度滤波器与过零点定理
最优边缘检测滤波器
用于边缘检测的一阶微分滤波器 h ′ ( x ) h'(x) h′(x)的三条最优化准则:
- 最大信号噪声比准则
- 最优过零点定位准则
- 多峰值响应准则
xxx根据变分原理推出 h ′ ( x ) h'(x) h′(x)的函数形式应近似为高斯函数的一阶微分(有限脉冲响应滤波器)。xxx推导无限脉冲响应滤波器的函数形式为 C s i n ω x e − α ∣ x ∣ Csin\omega xe^{-\alpha|x|} Csinωxe−α∣x∣或近似 C x e − α ∣ x ∣ Cxe^{-\alpha|x|} Cxe−α∣x∣。多人给出了许多的“最优滤波器”
边缘检测快速算法
由于一次卷积的计算量对一维信号是 N ω N\omega Nω,对二维信号是 N 2 ω 2 N^2\omega^2 N2ω2,计算量与窗口大小的平方成正比,对512X512的图像,5x5的窗口,一次卷积计算量约为600万次。为此提出快速算法,结合二维情况下的可分离滤波器以及滤波器的递推算法(一维离散信号)可以降低计算复杂度。
图像低层次处理的其它问题
- 将孤立的边缘点连接起来,构成区域的边界线。如何决定哪些边缘应放在一起处理以构成有意义的边界线?
- 基元图包括一些基元,如角点,线段的端点,区域图像的纹理特征等,这些基元的提取也是一个问题
- 找出具有相同纹理特征的区域或由边缘点组成的闭合曲线围成的区域,成为图像分割。在自然环境或者非结构环境下的图像分割。
以上问题参见R.M.Haralick and L.G.Shapiro,Compuer and Robot Vision
射影几何与几何元素表达
摄像机标定
像素坐标-<—原点平移、尺度伸缩----像平面坐标<—透视投影—相机坐标<-----刚体转换世界坐标。
Z
c
[
u
v
1
]
=
[
1
d
x
0
u
0
0
1
d
y
v
0
0
1
1
]
[
f
0
0
0
0
f
0
0
0
0
1
0
]
[
R
t
0
T
1
]
[
X
ω
Y
ω
Z
ω
1
]
=
[
α
x
0
u
0
0
0
α
y
v
0
0
0
0
1
0
]
[
R
t
0
T
1
]
[
X
ω
Y
ω
Z
ω
1
]
=
M
1
M
2
X
ω
=
M
X
ω
Z_c \begin{bmatrix} u\\v\\1 \end{bmatrix}= \begin{bmatrix} \frac{1}{dx}&0&u_0\\0&\frac{1}{dy}&v_0\\0&1&1 \end{bmatrix} \begin{bmatrix} f&0&0&0\\0&f&0&0\\0&0&1&0 \end{bmatrix} \begin{bmatrix} R&t\\0^T&1 \end{bmatrix} \begin{bmatrix} X_\omega\\Y_\omega\\Z_\omega\\1 \end{bmatrix}\\= \begin{bmatrix} \alpha_x&0&u_0&0\\ 0&\alpha_y&v_0&0\\ 0&0&1&0 \end{bmatrix} \begin{bmatrix} R&t\\0^T&1 \end{bmatrix} \begin{bmatrix} X_\omega\\Y_\omega\\Z_\omega\\1 \end{bmatrix}=M_1M_2X_\omega=MX_\omega
Zc⎣⎡uv1⎦⎤=⎣⎡dx1000dy11u0v01⎦⎤⎣⎡f000f0001000⎦⎤[R0Tt1]⎣⎢⎢⎡XωYωZω1⎦⎥⎥⎤=⎣⎡αx000αy0u0v01000⎦⎤[R0Tt1]⎣⎢⎢⎡XωYωZω1⎦⎥⎥⎤=M1M2Xω=MXω
相机内存M1,外参M2
线性模型摄像机标定
如果标定块上有n个已知点,并已知它们的空间坐标 ( X w i , Y w i , Z w i ) (X_{wi},Y_{wi},Z_{wi}) (Xwi,Ywi,Zwi)与它们的图像点坐标 ( u i , v i ) (u_i,v_i) (ui,vi),则可以得到2n个关于 M M M矩阵元素的线性方程。令 m 34 = 1 m_{34}=1 m34=1,则N矩阵的位置元素的个数为11个…得出2n>11时可以通过最小二乘求得M矩阵,即需要空间6个点,通过对M矩阵进行分解可以得到摄像机内外参数
这篇关于《计算机视觉》(马颂德)阅读笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南