# Scale Invariant Feature Transform (SIFT) 尺度不變特徵變換

## Group Activity 集體活動​

Given this noisy image, design the best suitable algorithm to detect edges. 給定這個嘈雜的圖像，設計最合適的算法來檢測邊緣。

Given the calculated edges, how would you quantify accuracy? 給定計算出的邊緣，你如何量化準確性？

## Why do we care about matching features? 我們為什麼要關心匹配特徵？​

• Object Recognition 物體識別
• Wide baseline matching (stereo) 大幅度匹配（立體）
• Given any two images, estimate the fundamental matrix and a set of matched interest points. 給定任何兩個圖像，估計基礎矩陣和一組匹配的關注點。
• Tracking 跟蹤

## We want invariance!!! 我們想要不變性!!!​

• Good features should be robust to all sorts of nastiness that can occur between images. 好的特徵應該能夠抵抗圖像之間可能發生的各種惡劣情況。

## Types of invariance 不變性的類型​

• Illumination 照明
• Scale 尺度
• Rotation 旋轉
• Affine 仿射
• Full Perspective 全景

## How to achieve illumination invariance 如何實現照明不變性​

• The easy way (normalized) 簡單的方法（正規化）
• Difference based metrics (sift) 差異度量（sift）

## How to achieve scale invariance 如何實現尺度不變性​

• Pyramids 金字塔
• Divide width and height by 2 將寬度和高度除以 2
• Take average of 4 pixels for each pixel (or Gaussian blur) 對每個像素取 4 像素的平均值（或高斯模糊）
• Repeat until image is tiny 重複直到圖像很小
• Run filter over each size image and hope its robust 對每個大小的圖像運行過濾器並希望它的魯棒性

• Scale Space (DOG method) 尺度空間（DOG 方法）
• Pyramid but fill gaps with blurred images 金字塔但用模糊的圖像填補空隙
• Like having a nice linear scaling without the expense 就像有一個很好的線性縮放而不需要花費
• Take features from differences of these images 從這些圖像的差異中提取特徵
• If the feature is repeatably present in between Difference of Gaussians it is Scale Invariant and we should keep it. 如果該特徵在不同的高斯差異中可重複出現，則該特徵是尺度不變的，我們應該保留它。

## Rotation Invariance 旋轉不變性​

• Rotate all features to go the same way in a determined manner 以確定的方式旋轉所有特徵以相同的方式
• Take histogram of Gradient directions 獲取梯度方向的直方圖
• Rotate to most dominant (maybe second if its good enough) 旋轉到最主要的（如果足夠好，可能是第二個）