## cos vs sin(考點)
sin的物理意義: high pass filter
cos的物理意義: low pass filter
訊號由cos/sin組成 (傅立葉)
## 鏡頭參數(考點)

景深: 從清晰到模糊的距離
視野範圍: Lens 能捕捉的範圍(長寬即解析度)
解析度(兩種解釋): 1. 1920*1080這種 2. 一個pixel幾mm?
## sensor size

會影響一個pixel的解析度
ex: 1/2 Inch camera
有 640 pixel, 則一個pixel 寬度的解析度是 6.4(mm) / 640(pixel)
## 計算精度 (不確定考不考)
timestamp: https://www.youtube.com/watch?v=ZL8rc841vO0 25:00
有 Focal 則可以求working,反之同理

## 色彩空間(考點)
不受光線影響: HSV/HSL
對光線敏感: RGB
hue:色調
saturation: 飽和度
value: 明度
## Pine Hole Model: Perspective projection
物體離近則看起來越大
物體成像上下顛倒
再解釋model時,都是使用 virtual image plane(實際上不存在)

## 座標轉換
原點盡量設在物體中心點
轉換時將真實物體座標轉換到參考相機的座標,其他相機的座標也以參考相機為主 => 簡單化
2D to 2D 和 3D to 3D 都是用Rotation + translation(稱為 affine transform)(Extrinsic)
3d to 2d 稱為 projection(Intrinsic)
2d to 3d 稱為 back-projection/reconstruction(Intrinsic)
Euclidean(Rotation) Transformation = Rotation + translation
Similarity Transformation = Scaling(長寬縮放一樣) + Rotation + translation
Affine Transformation = Shearing(通常忽略) + Scaling(長寬縮放不一樣) + Rotation + translation
### Extrinsic
6個DOF 分別是 X,Y,Z軸旋轉 + X,Y,Z平移
### Intrinsic
alpha: 調整 x軸 focal length
beta: 調整 y軸 focal length
gamma: 歪斜程度(現在不會有這種問題,通常為設為0)
(u0,v0): principle point 光軸穿過的點(理論上要會是物體正中心,但實際上會有誤差)
(u,v): 校正後的(u0,v0) 物體正中心
z軸: 又稱為光軸(optical/principle axis)
camera calibration 即找出所有未知數
Intrinsic 只需要做一次就可以
Extrinsic 是物體和相機的相對關係
相乘代表 correlation
相加代表 independent(orthogonal)

### 歐拉角(可能不重要)
Pitch/Tilt (俯仰): 這是圍繞X軸的旋轉。想像一架飛機的前端上升或下降,而尾部做相反的動作。
Yaw/Pan (偏航): 這是圍繞Y軸的旋轉。想像一架飛機從其垂直軸向左或向右旋轉。
Roll/swing (翻滾): 這是圍繞Z軸的旋轉。想像一架飛機的一翼上升,而另一翼下降。

## correlation vs covariance (考點)

## homogenous martix(考點)
將等式轉成 homogenous martix + non-linear equation
將問題轉換成 Ax = b
特徵: 最後一列作為分母
SOP: (homogenous martix + non-linear equation)
Z 和 w' 可以稱為denominator term(分母)
w' 也可以視為景深(depth)
=> 有投影座標和focal length 理論上可以重建3d真實座標(但實際不行)
or => 有真實座標和投影座標 可以得知focal length

給上面寫下面

## 如何解 homogenous martix(難 要重看) 三種方法
### 第一種 先用線性解出初始解,在用非線性逼近
#### 1-1-1 Closed-Form Solution (linear)
使用情境: b 為 0

最接近0的特徵值所對應的特徵向量即為答案
why?
AtAx = UWUt = 0
物理意義:因為 U 和 Ut 是特徵向量,不可能為0,所以最接近0的W(特徵值)所對應的特徵向量 即是你的解
#### 1-1-2 Pseudo Inverse (linear)
使用情境: b 不為0

#### 1 - 2 Sum of squares differences (non-linear)
1.將前面 linear得到的解作為初始值
2.再用levenberg-marquardt(LM)去解
### 第二種 Lagrange Approach with constraint
和第一種解法類似,但加了constraint term

### 第三種 Gradient Decent
EM/LM 方法(二階微分)理論上比Gradient Decent(一階) 好
有ground truth 就用LM
否則用EM
但因為DL需要大量參數,所以用sgd
### constraint term 的物理意義
去限制 variance
無 constraint term的話 會只有限制bias(和ground truth的距離)
why平方? => 因為他是variance
此概念從SVM拿過來的

### Pseudo Inverse 轉換成 Closed form
why? 某些研究指出前者做出來的結果較差


有時候解完h 即可,但若需更精確解,則需要解出外/內參數

一開始我們假設 z 為固定
解出x,y旋轉後 在用正交去解就可以

但解出來的rx,ry 不會是正交的,所以要做額外轉換
=> 用SVD
[rx,ry,rz] = Q = UZVt
將Z視為單位矩陣且U Vt 是正交的,則UVt結果也會是正交
此為 Rodrigues Transform 方法(cvRodrigues2)
## 造成 distortion 原因
1.Radial distortion => 鏡片有弧度 造成圖像有圓角
2.tangential distortion => 沒黏好
_______________________

## 相機校正程序
外部/內部參數用 closed-form 找初始值
失真參數用 Pseudo Inverse 找初始值

## 總結
a00/01/10/11 rotation/scaling
a02/12 translation
但左上角那個不是homgenous martrix,要加上scaling term
即scaling下面的那個公式

## vector 的兩個物理意義

rotation + scaling
絕對值代表距離 => scaling
單位向量 => rotation/direction
### 任何空間轉換只有 rotation/scaling/translation
## norm 種類
只有兩種
L1 : 絕對值
L2 : sum-of-squared diff
## SVD
U: 特徵向量(Eigenvector) 即 單位向量(rotation)
W: 特徵值(Eigenvalue) 即 scaling

## camera model
由 intrinsic/extrinsic/distortion 組成
Aspect Ratio: 在 cmos sensor上長寬比(通常為1 否則會變形)

將外部和內部參數相乘後才是homogenerous martix
要解聯立,至少要四個點(ex: ar要求在平面上=> 四個角落)
s: 和focal length有關 不知道的話可以當1,不然就放focal lengh(單位要注意)

### deep learning 部分
要額外除以batch size n

## PCA
將原始數據的向量表示拆分為多個主成分的線性組合
## 相似三角形計算


## 3d - 2d 轉換過程
[R,T] : 內部參數
K: 外部參數
右側3D to 2d時 照片是未失真的(因為是用計算出來的)
要在乘上失真矩陣,才會是肉眼看到的


## Perspective projection/Orthogonal/ Weak Perspective
### Perspective prjection :
=> 即 pinhole model
=> 物體越遠,則成像物體越小
=> 比較難,需要處理分母(非線性)

### orthogonal(parrel) :
=> 不管物體多遠,大小都都一樣

### Weak Perspective :
物體如果夠深,越靠近的面會變得很大,越遠的會變小
將物體切成足夠薄,則該部分全部點的景深視為一樣
=> 每次只重建部分物體

## stereo
目的: 找出物體距離(景深)
how? 找出 matching point後計算disparity
stereo 公式:
B: 兩相機距離
f: 內參的 focal length
d: disparity
Z: depth
物體如果越近,則視差會越大, 反之越小
baseline 越小越利於偵測更近的物體的距離 越大 => 利用偵測更遠的


### 如何找到 matching point ?
直覺: 逐點搜尋 => 過於耗時 需要將2D搜尋轉回1D搜尋
Ans: 利用 Epipolar Line
### 名詞解釋
el 為 Cr 在左圖的投影點
er 為 Cl 在右圖的投影點
=> 一張圖只會有一個 Epipoles
圖像上任一點和Epipoles 的連線稱為 Epipole Line
左圖上的 Epipole Line 都會在右圖上有一條對應的 Epipole Line
=> 找到對應 Line 後 1D search

### 如何找到 對應的 Epipole Line ?
A: intrinstic matrix
#### Essential Matrix
Essential Matrix 物理意義: 經過 Rotation/Translation 找到對應點
但這個方法適用於3D資訊都知道的情況下 => 要改用 Fudemental


#### Fudemental
A-1 pR => 將2D座標透過內參反函數轉換到3D

stereo 的 rectification 就是找外部參數
window size越小 資訊越仔細,越大則越global

#### half-occluded reigon
左相機只能看到物體左邊,右相機也只能看到物體右邊
如何偵測出這種情況? : left-right Consistency
物體越近 你的baseline要越短,比較不容易出現 half-occluded reigon
物體越遠,則baseline要越大(太遠會近似於重合)
### stereo 步驟

## covaraince vs corealtion vs hessian 考點
covaraince => PCA/特徵值/特徵向量
corealtion => inner prduct/相似性
hessian: => 找出某個點的梯度變化(一階微分)

## SIFP
### 流程圖

### Difference of Gaussian
噪音處理 => 先用low 再 high
high pass filter 特徵 => 正負面積相等
low pass filter 特徵 => 面積和為1
傳統方法要先分別做low pass和high pass後兩張圖片座相減 => 得到dog
但此方法是已經將這兩個函數合併了 => 只需要做一次

### 流程說明
### step1-1
SIFT 採用的方式是對同一張圖片做多次的高斯模糊,然後相減(得到結果即DOG)

### step1-2
並考慮多個同個解析度的做了不同次數的高斯模糊圖片
比較每個點是否為最大/最小,如此下來可以得到特徵候選點


### step2-1
從這些特徵候選點找出更重要的 => sub-pixel
y軸為 diff
x軸為 像素位子


根據經驗: 如果sub-pixel位子大於 x 1/2,則需要將整個點往右移

得到結果取代原本x
### step2-2
將小於閥值的點刪掉(remove low contrast)
### step2-3
刪除edge 留下corner
使用 hessian martix(一階微分)
corner的物理意義: 由兩個特徵向量組成 => 兩個特徵值都大
edge: 只會有一個明顯的特徵向量 => 只有一個特徵值大
考慮兩個特徵值a,b(這邊的特徵值代表為變異性 variance)
a,b都很小 => 平坦區域
a >> b, 邊緣
a,b都很大 => corner
特徵向量大 => 變化量大 => variance 大

### step3
找出圖片角度
假如計算旋轉角度為5,則將這張圖片中所有為旋轉角度為5的點的magnitude的值相加累積(histogram)
擁有最高y則最高的x值為旋轉角度

有時候會將最高值的peak * 0.8找出第二個second peak
=> 則該特徵點為有兩個角度

#### 某個 pixel 的角度計算方法



在後續比較兩個patch時 先將角度旋轉到一樣
=> 再用descripotr後得到的向量做相似性檢測
## edge vs bounday?
edge 是不連續的,只有單點(由多個點組成 但只有一點表示)
bounday是連續的(由edge組成)
## backround subtract
目的: 利用原圖 減掉 backround 找出前景
### Gaussian Mixture model(GMM)
#### 參數版本
透過 VQ 分群,找出權重
透過 EM 來優化
#### (考點) GMM是一個相似性(likelihood)檢測

下圖這個物理意義是: covariance

#### 非參數版本
指數部分物理意義: 相減 => variance
(三種方法 1.兩兩相減 2.用avg去減 3.用median)
median filter 會比 avg.filter 好(因為avg被noise影響)
如果沒有參數,那要如何設計標準差? => median 除以 常數

variance 物理意義: difference

好處:速度快
壞處: 占用記憶體(每個pixel都有自己的高斯model)
## 影像後處理(做完backround subtract)
1. 每個點附近點附近的background出現機率高的話,就把自己delete => 可能會overkill
2. widnow裡面的值全部相乘
=> 值高 有很多background ,可以安全DELETE
=> 值低 代表有很多 foreground ,不能刪

## Likelihood Probability
通常不用 mean,而是用 ground truth
除以 covariance => 統一所有單位

## Gussian Distribution

紅色地方即 sum of squred diff 再除以標準差 => 統一單位(某種activation)
物理意義: translation / scaling / rotation
除以標準差 => scaling
## Maximum a Posteriori (MAP)

Posteriori: 給一個 20*20的圖片,在裡面是否存在 face
likehood: 圖片和ground truth之間的相似性
priori prob: 這個widnow 某個地方存在face的機率(可以減少誤判情況)

#### note
transfomer其實有包含 priori prob => attenion (有包含geo location)
改善QKV => 改善 priori prob