总结:变换

【计算机视觉】Lecture 14:参数估计_最小化

参数估计

我们将会讨论以下方面的参数估计:


  1. 几何模型(如直线、平面、曲面)
  2. 几何变换(我们讨论过的任何参数化变换)

最小二乘法是解决这两个问题的通用策略!

参数估计:拟合几何模型

总体思路:


  1. 希望使模型适合原始图像特征(数据):特征可以是点,边缘,甚至区域
  2. 参数化模型:模型例子是Rn的一个元素,也就是模型实例 = (a1, a2,…,an)
  3. 定义一个误差函数E(模型i,数据),该函数测量给定模型实例对数据的描述程度(好坏)
  4. 求解最小化E的模型实例

示例:直线拟合

总体思路:

1. 希望使模型适合原始图像特征(数据):特征可以是点,边缘,甚至区域

2. 参数化模型:模型例子是Rn的一个元素,也就是模型实例 = (a1, a2,…,an)

3. 定义一个误差函数E(模型i,数据),该函数测量给定模型实例对数据的描述程度(好坏)

4. 求解最小化E的模型实例

点特征数据(第一步)

点特征 = {(xi, yi) | i = 1,…,n}

【计算机视觉】Lecture 14:参数估计_计算机视觉_02

示例:直线拟合

总体思路:


  1. 希望使模型适合原始图像特征(数据):特征可以使点,边缘,甚至区域
    2. 参数化模型:模型例子是Rn的一个元素,也就是模型实例 = (a1, a2,…,an)
  2. 定义一个误差函数E(模型i,数据),该函数测量给定模型实例对数据的描述程度(好坏)
  3. 求解最小化E的模型实例

直线参数化(第二步)

【计算机视觉】Lecture 14:参数估计_数据_03

b横穿y轴

模型实例 = (m, b)

【计算机视觉】Lecture 14:参数估计_参数化_04

示例:直线拟合

总体思路:


  1. 希望使模型适合原始图像特征(数据):特征可以使点,边缘,甚至区域
  2. 参数化模型:模型例子是Rn的一个元素,也就是模型实例 = (a1, a2,…,an)
    2. 定义一个误差函数E(模型i,数据),该函数测量给定模型实例对数据的描述程度(好坏)
  3. 求解最小化E的模型实例

最小二乘法(第三步)

最小二乘只是众多误差函数中的一种


  1. 给定直线(m, b)
  2. 点(xi,yi)到直线的距离是垂直距离

【计算机视觉】Lecture 14:参数估计_计算机视觉_05

【计算机视觉】Lecture 14:参数估计_参数化_06

  1. E是所有点的平方距离之和

【计算机视觉】Lecture 14:参数估计_最小化_07

示例:直线拟合

总体思路:


  1. 希望使模型适合原始图像特征(数据):特征可以使点,边缘,甚至区域
  2. 参数化模型:模型例子是Rn的一个元素,也就是模型实例 = (a1, a2,…,an)
  3. 定义一个误差函数E(模型i,数据),该函数测量给定模型实例对数据的描述程度(好坏)
    3. 求解最小化E的模型实例

求极值的微积分(第四步)


  1. 分别求 E 关于 m 和 b 的一阶导数
  2. 将方程设为零

【计算机视觉】Lecture 14:参数估计_参数化_08

  1. 求解 m 和 b (线性回归的等价性)

最小二乘解

【计算机视觉】Lecture 14:参数估计_数据_09

参数化问题

我们的参数化有一个问题,即(m,b)对于垂直线是未定义的

更一般的直线参数化是下面这样的

【计算机视觉】Lecture 14:参数估计_数据_10

【计算机视觉】Lecture 14:参数估计_参数化_11

代数距离的最小二乘法

代数距离 :

【计算机视觉】Lecture 14:参数估计_数据_12

误差函数求导

【计算机视觉】Lecture 14:参数估计_数据_13

(a,b,c)是与最小特征值相关联的特征向量

(只有在没有噪声的情况下才是0,因此所有的点都准确地在一条直线上)

【计算机视觉】Lecture 14:参数估计_计算机视觉_14

请注意,与线性回归直线(在这种情况下)有很大不同,但我们可以放心,当我们的程序看到一条垂直线时,它不会凸起!

代数最小二乘问题

注意:我没有在图上画出误差向量

那是因为我不知道怎么画…

代数距离的主要问题:很难说清楚你在最小化什么,因为代数距离是有很少物理意义的量

正交最小二乘法

最小化正交(几何)距离。

在物理上有意义,但很难推导

表示:

【计算机视觉】Lecture 14:参数估计_参数化_15

【计算机视觉】Lecture 14:参数估计_最小化_16

【计算机视觉】Lecture 14:参数估计_数据_17

垂直于直线测量的距离

正交最小二乘法

很难推导。

关键洞察:最佳的拟合直线必须会通过点集的质心!

将质心移到原点。

这就将问题简化为寻找垂直于直线的单位向量:寻找(a,b)使得 a平方 + b平方 =1

这将是点的散射矩阵的最小特征向量。

最后,解出c

正交最小二乘解

【计算机视觉】Lecture 14:参数估计_计算机视觉_18

这个“距离”是指我们直觉上所期望的

(即到线上最近点的距离,或到线上的最小距离)

参数估计:估计变换

假设我们找到了两幅图像之间的匹配点,我们认为它们是通过一些参数化变换(例如平移;尺度欧几里德;仿射)相关联的。我们如何估计此变换的参数?

基本策略

基于对应点的最小二乘估计

两个重要(相关)问题:

多少自由度?

需要多少个对应点?

例子:平移估计

【计算机视觉】Lecture 14:参数估计_参数化_19

多少自由度?

有多少自变量?

两个

需要多少个对应点?

每个对应关系提供两个方程 (x, y)=>(x’, y’)

【计算机视觉】Lecture 14:参数估计_参数化_20

例子:平移估计

【计算机视觉】Lecture 14:参数估计_计算机视觉_21

最小二乘估计:

最小化

【计算机视觉】Lecture 14:参数估计_数据_22

【计算机视觉】Lecture 14:参数估计_参数化_23

尝试另一个例子

相似变换

【计算机视觉】Lecture 14:参数估计_计算机视觉_24

【计算机视觉】Lecture 14:参数估计_计算机视觉_25

实际问题

一旦我们估计了一个变换,我们如何(反)映射图像像素值来产生一个新的图像

映射&双线性插值

给定两个图像(坐标系)之间的变换,我们希望将一个图像“映射(warp)”到另一个图像的坐标系中。

我们将我们要映射的坐标系称为“源source”图像

我们将要映射到的坐标系称为“目标destination”图像。

映射例子

在这个例子中的变换是射影变换(一般的 3x3 矩阵,在齐次坐标系上运算)

【计算机视觉】Lecture 14:参数估计_计算机视觉_26

正向映射

【计算机视觉】Lecture 14:参数估计_计算机视觉_27

在源图像上的每个像素x

以H(x)的形式确定此像素的去向

为目标像素上色

正向映射问题

【计算机视觉】Lecture 14:参数估计_计算机视觉_28

会留下空隙,这是一个比较大的问题(因为映射有放大作用)

逆向映射(没有空隙)

【计算机视觉】Lecture 14:参数估计_最小化_29

在目标图像上的每个像素x

以H-1(x)的形式确定此像素的来源

从那个地方获得颜色

插值

我们所说的“从那个地方获得颜色”是什么意思?

考虑灰度值。在(x, y)处的灰度值是什么?

【计算机视觉】Lecture 14:参数估计_最小化_30

最近的邻域:

取离中心最近的那个像素的颜色。

【计算机视觉】Lecture 14:参数估计_参数化_31

双线性插值

我们所说的“从那个地方获得颜色”是什么意思?

考虑灰度值。在(x, y)处的灰度值是什么?

【计算机视觉】Lecture 14:参数估计_参数化_32

双线性插值:加权平均

【计算机视觉】Lecture 14:参数估计_最小化_33

双线性插值,数学描述

首先,考虑线性插值

【计算机视觉】Lecture 14:参数估计_数据_34

初始化:给定两个像素值,它们之间的某个中间点的值应该是多少?

如果接近(i,j),则灰度值应该类似于 I(i,j)

【计算机视觉】Lecture 14:参数估计_参数化_35

如果与两者距离相等,则应该为两个灰度值的平均值

【计算机视觉】Lecture 14:参数估计_最小化_36

如果接近 (i+1, j),则灰度值应该类似于 I(i+1, j)

【计算机视觉】Lecture 14:参数估计_计算机视觉_37

线性插值

【计算机视觉】Lecture 14:参数估计_最小化_38

【计算机视觉】Lecture 14:参数估计_数据_39

回忆:平面上直线求解

【计算机视觉】Lecture 14:参数估计_最小化_40

实例化:

【计算机视觉】Lecture 14:参数估计_计算机视觉_41

求解:

【计算机视觉】Lecture 14:参数估计_数据_42

双线性插值,数学描述

【计算机视觉】Lecture 14:参数估计_参数化_43

【计算机视觉】Lecture 14:参数估计_参数化_44【计算机视觉】Lecture 14:参数估计_计算机视觉_45

【计算机视觉】Lecture 14:参数估计_最小化_46

Matlab中的图像映射

interp2是 Matlab 内置的图像映射函数

用法: interp2(X,Y,Z,XI,YI)

【计算机视觉】Lecture 14:参数估计_最小化_47

使用Interp2的技巧

为了达到我们的目的,我们可以假设 X 和 Y 是正交的图像像素坐标

简单用法: interp2(Z,XI,YI)

【计算机视觉】Lecture 14:参数估计_最小化_48

它是如何工作的?

考虑计算R行和C列的ZI值。

【计算机视觉】Lecture 14:参数估计_数据_49

XI 和 YI 是和 ZI 尺寸相同的两个数列

对给定行列(R, C),数值 (XI(R, C), YI(R, C)) 表示为获取的原始图像上 (X,Y) 坐标处的值

最终结果是: Z(YI(R, C), XI(R, C))

【计算机视觉】Lecture 14:参数估计_计算机视觉_50

【计算机视觉】Lecture 14:参数估计_数据_51

interp2 处理了双线性插值,以防 YI(R, C) 和 XI(R, C) 不是整数坐标。

interp2有可选参数来更改计算插值的方式。我们可以使用默认值,即双线性插值。

Meshgrid

使用interp2时的一个有用函数是meshgrid

【计算机视觉】Lecture 14:参数估计_最小化_52

Interp2例子

【计算机视觉】Lecture 14:参数估计_参数化_53

【计算机视觉】Lecture 14:参数估计_数据_54

【计算机视觉】Lecture 14:参数估计_参数化_55

Interp2例子

易混淆点

【计算机视觉】Lecture 14:参数估计_数据_56

【计算机视觉】Lecture 14:参数估计_计算机视觉_57

将坐标值除以2是将图像放大尺度2

【计算机视觉】Lecture 14:参数估计_参数化_58

【计算机视觉】Lecture 14:参数估计_数据_59

将坐标值乘以2是将图像缩小尺度2

Interp2希望反坐标变换为所需的几何变换(它使用逆向映射)

Interp2例子

一个更复杂的例子:缩小尺度2,但围绕图像中心(128, 128),而不是(0, 0)

回忆变换矩阵级联

【计算机视觉】Lecture 14:参数估计_最小化_60

这指定了我们希望原始图像如何映射到新图像中。

【计算机视觉】Lecture 14:参数估计_计算机视觉_61

Interp2想知道新的图像坐标如何映射回原始图像坐标。

【计算机视觉】Lecture 14:参数估计_计算机视觉_62

【计算机视觉】Lecture 14:参数估计_数据_63

更一般的(比如齐次坐标系中任何 3×3 变换矩阵)

【计算机视觉】Lecture 14:参数估计_最小化_64

【计算机视觉】Lecture 14:参数估计_参数化_65