# 2024 NTU CV Midterm Review
[2023 NTU CV Midterm Review](https://hackmd.io/@Lambo0724/2023ntu_cv_midtrem#2023-NTU-CV-Midterm-Review)
[Vision 2021 - Midterm Answer](https://hackmd.io/@KC-YEN/r18ACfFtK)
[2022 Computer Vision Midterm Exam](https://hackmd.io/@jiawei1209/HJFEF0JVo#%E6%AD%B7%E5%B9%B4%E6%9C%9F%E4%B8%AD%E8%80%83%E5%85%B1%E7%AD%86)
[2023 NTU CV Midterm Review](https://hackmd.io/@Lambo0724/2023ntu_cv_midtrem#2023-NTU-CV-Midterm-Review)
[2022 CV Notes for Mid](https://hackmd.io/XtjpuurFQmaXaKWGZud9cg?fbclid=IwAR39kodXVvsfcgHGN2W0AHRtnOZsAaE7BJzF-WWq3IjcAFI-xoaXHRZdiJs#Bonus)
# 重點
* 授課教師: 傅楸善
* 金句: 笑話比本文更重要
* To err is human, to forgive divine: 人非聖賢,孰能無過
* 塞翁失馬,焉知非福:sometimes misfortune is a blessing in disguise.
* What's Professor Chiou-Shann Fuh's pet phrase? © 好極了Good
# Chapter 1: Overview
### **未出過的名詞解釋**
* computer vision:
用電腦視覺模擬人類視覺,應用: 瑕疵檢測、物件偵測
* vanishing point: 3D中平行的物體在2D時會在遠處交會,可用於繪圖時做出遠近感(無限延伸的鐵軌會在遠方交於一點是最經典的例子)
* extremal sharpening: 讓亮的地方更亮、暗的地方更暗,可用於影像銳利化
### 出過的名詞解釋or高機率出的
* shape
描述 image 或 region 中 2D 形狀或 3D 物體的方式,如 512x512 image 代表 row, cols = 512
* Shape from texture(形狀由紋理決定):
用物品材質、紋理來反映出三維空間的形狀,可用於電腦繪圖展現3d感覺
* Shape from shading(從陰影塑造形狀):
用陰影濃淡、明暗來反映出三維空間的形狀,可用於電腦繪圖展現3d感覺
#### 電腦視覺的主要應用
* Vision-guided robot assembly(視覺引導機器人組裝):
以電腦視覺輔助機器人組裝,為電腦視覺的主要用途之一,例如機器人在焊接組裝汽車,用電腦視覺來指引鎖螺絲的位置
* Inspection tasks(檢測任務):
為電腦視覺的主要用途之一,例如用電腦視覺來確定物體表面沒有瑕疵,SART等
SART (Simultaneous Algebraic Reconstruction Technique)(同時代數重建技術)
FBP (filtered back projection)(濾波反投影)
* Pattern recognition(圖型識別): 從圖片中尋找特定的模式,用數學技術方法來研究圖形的處理和判讀!。為電腦視覺的主要用途之一,例如協助林務局去分析地景資料,尋找拍攝到的照片有多少面積的水稻等
* Alignment(對準、結盟): 協助判斷物件是否對齊,為電腦視覺的主要用途之一,例如製作晶片時用於判斷位置
* Measurement(量測): 為電腦視覺的主要用途之一,可量測如長度、面積等
#### Atomic image feature (最小不可分割的特徵單位,如edge, corner, hole….)
* Edge: 物件與背景之間的邊界, 影像中一邊亮一邊暗的部分
* Corner:兩個邊界的交點,影像的轉角點
* Hole: binay-0 像素的連通分量,不與影像的邊框連接。
* Peak: 把亮度看成高度的話,peak就是中間高亮的部分,可用於影像判斷如醫學影像等
* Pit: 把亮度看成高度的話,pit就是中間暗的部分,可用於影像判斷如醫學影像等
* Ridge(山嶺): 把亮度看成高度的話,中間亮兩邊暗,可用於影像判斷如醫學影像等
* Valley: 把亮度看成高度的話,中間暗兩邊亮,可用於影像判斷如醫學影像等
#### Composite feature: 結合數個atomic image後的影像特徵
* Arcs(弧線): edge or ridge pixels linked together,為composite feature的一種
* ==Region==: connected sets of pixels with similar properties(相似屬性的相連像素集),connected components labeling 產生的結果
#### Recognition methodology
* Image formation: 影像如何形成的,例如是用透視投射法還是正投影法
* Conditioning: 利用模型去除無用的雜訊,可用來降
目的:去除無用的資訊、雜訊
應用:降躁、背景均一化 (給分標準:三取二。去除無用的資訊、降躁)
* ==Labeling==: 將相同特性的像素給予同樣的編號,可用於邊緣檢測、自駕車、機器人、相片、商品搜尋、辨識影像中的各種物體搜尋等
* ==Grouping==: 識別同一類事件的最大連接像素,利於將群組化後的資訊進行一些計算,可用於segmentation分割(將影像)、edge linking邊緣鏈接
* Extracting(解析): 對grouping好的set of pixels,計算出能代表群組特性的特質(centroid, orientation, area, spatial moments)
* Matching(比對): 給定特定的三維物件或二維的形狀,在圖形中找出相對應的事件,可用在template matching(OCR)
#
* ==Range image==: 在一張2d 影像中的每一個pixel存放深度值(depth),可用於重建3d模型
* ==Pixel==: 圖片的基本單位,包含位置與數值,可以將圖片數字化
* ==Feature==: 影像中的特殊結構,圖像中有興趣的部分,可用於feature recognition
* ==Orientation==: 影像中物體的方向,旋轉的方位,可用 𝜃來判定,加上Position可以得知影像中的物體形狀、位置等
* ==gray level==: 灰階就是指不同程度的灰⾊,通常由8 bit 儲存,0為最暗,255為最亮。
*灰階圖可以看成是圖的亮度。灰⾊圖像是由彩⾊圖像的3個通道(RGB)轉換成1個通道⽽來,原先彩⾊圖像共有$256^3$種顏⾊變化,⽽灰度圖像只有256種,將其轉換的⽬的能讓圖片依然清楚,同時能減少後續的計算量
## 額外
* normal vector(法向量) :與平面垂直的向量
* arc curvature - 曲率
* intensity image强度图,是表示单通道图像像素的强度(值的大小)
* peripheral圓周的,周圍的、(??)peripheral vision 稱鄰近視覺
* VR, AR
Virtual Reality 虛擬實境
利用電腦類比產生一個三維空間的虛擬世界,提供使用者關於視覺等感官的類比。
Augmented Reality 擴增實境
攝影機影像的位置及角度精算並加上圖像分析技術,讓螢幕上的虛擬世界能夠與現實世界場景進行結合與互動的技術。
* segmentation (from ch.10)
將影像劃分為一組不重疊的區域
* proximity
在論文中通常指真實距離。而 proximity sensor 指鄰近感測器。
* position
表示 pixel 的位置,可用 row r 和 column c 表示 (r,c)
* image sequence
通常指某段時間(frames)內得到的多個影像資料
* stereo vision
從數字圖像中提取3D信息
# 其他章節重要名詞 有烤過的
* dilation
如果以白色部分為前景,會使圖片中較亮的範圍變大,可用於填補圖片中的小黑洞
A⊕B={c∈E^N│a+b for some a∈A and b∈B}
* erosion
如果以白色的部分為前景,會使圖片中較亮的部分縮小,能消除部分雜訊
A⊝B={x∈E^N│x+b∈A for every b∈B}
* opening
先侵蝕後膨脹,能夠消除雜訊
BoK=(B⊝K)⊕K
* closing
先膨脹後清蝕,能夠消除小型黑洞
closing of image B by kernel K:
B∙K=(B⊕K)⊝K

# Chapter 2: Thresholding and Segmentation
考圖
經過演算法作用後的圖
聯通圖演算法的名字、內容
疊代法
### 未出過的名詞解釋
binary value 1: 二進制影像中的數值為1的pixel,通常被認為是物體的一部分
binary value 0: 二進制影像中的數值為0的pixel,通常被認為是背景的一部分
binary machine vision: 二元機器視覺,對二元影像做分析(非灰階影像)
ocr: optical character recognition,光學判斷垂直水平有幾個pixel為1
micr: magnetic ink character recognition,磁性墨水去讀垂直水平有幾個pixel為1
### 出過的名詞解釋or高機率出的
* thresholding: Thresholding是在灰階圖上的一種操作, 主要是將一張圖片的像素一分為二, 設定一個數值作為依據, 若pixel值大於等於此數值則為1, 小於則為0。
* Histogram Equalization (直方均衡圖)
利用 histogram 算出各個灰階值的 probability density function
將 PDF 做累加求出 CDF,
將 CDF 的結果4捨5入後建構一組對照表
將 對照表結果 與 轉換公式 進行換算,求得各個灰階值的機率
* intensity histogram:
X軸為0-255灰階值,Y軸為影像中灰階值出現的次數,數位影像中灰階值分佈的圖形表示。
* connected components labeling:
做分組,可將二元影像中同樣為1且相鄰的像素劃成同一個group,可用於辨識潛在為相同物件的像素
* connected components analysis:
1. 用connected component labeling對binary value 1的區域做label
2. 將相連的label給定相同的標籤
3. decision making
* Connected Components Operators


* label: 給定像素特定的編號,可用於辨識物件的區域
* Pixel property: 像素的屬性,位置、灰階值與亮度
* Region property: 區域的屬性,形狀、位置、bounding box
* 4-connected: 四連通,東西南北,以線做連接
* 8-connected: 八連通,東西南北、東北、西南…,以點做連接
* border: 二元影像中,1和0的交界
* signature segmentation: 該方向上所有為1的像素加起來的數量,稱為該方向上的投影,大多會拿兩個彼此差90度的投影做成一個長方形,投影完之後,若整行、列為0,則捨棄並切割成子影像,因此在數次重複後,會得到數個子影像,他們就是可能的物件區域 (舉例 : 數字辨識)

* 對角投影 :
𝑃𝐸: 左上到右下對角投影,
P𝐷: 右上到左下對角投影
* Signature analysis
筆跡學,分析簽名圖像 :
1. 將影像⼆值化
2. 投影分割
3. 區域性值計算
4. 根據投影做出決策
### Binary Thesholding Algorithms
* ==Minimizing within-group variance (Otsu)==(大津演算法): 最小化組內變異,組間差異越大越好,越能區分群體,目標是找到 𝑡去minize組內變異 [image](https://hackmd.io/_uploads/Skhq8E6Jkx.png)
(組內變異數是指前景和背景內部的灰度值差異,最小化組內變異數意味著讓前景和背景的灰度值分佈儘可能集中,使得二值化後的圖像具有明顯的分割效果)
* ==Minimizing kullback information distance==: 最小化kullback 有效散度J,假設目標與背景都常態分佈,目標也是找到 𝑡去 minimize 有效散度 𝐽(p.17)
比較:
![image alt][reference][image](https://hackmd.io/_uploads/HymPwVa1yg.png)
### Connected Component Algorithms
* **Iterative Alogorithm:**(必考)
Step 1. Initialization of each pixel to a unique label.(將每個像素賦予不同的標籤)
Step 2. iteration of top-down followed by bottom-up passes until no change.(執行由上而下,再由下而上的迭代更新label值, 直到label值不再更動。)

* **Classical Alogorithm:**

一開始先全給1後

* **A Space Efficient Two-Pass Algorithm That Uses a Local Equivalence Table**:
一行行處理,邊傳播邊檢查

* **An Efficient Run Length Implementation of the Local Table Method**:
用一連串 1 跟 0 去紀錄整串的 pixel value
用 table 去紀錄每一行每個 1 的 start 和 end
當 p 結束早於 q 的開始或 q 結束早於p的開始->沒有交集
當結束晚於開始->有交集,進行label取代

## 必考題:
Q3. Please write the 4 algorithms for connected component analysis and explain in detail.
1. 迭代演算法(An Iterative Algorithm):先top-down傳播,再bottom-up傳播,直到沒有變化。
2. 經典演算法(The Classical Algorithm):使⽤兩次⾃上⽽下的傳播,並⽤global table儲存標籤。
3. 省空間演算法(A Space-Efficient Two-Pass Algorithm That Uses a Local Equivalence Table):使⽤local table儲存當前這⾏跟前⼀⾏的等價值。
4. 省時間演算法(An Efficient Run-Length Implementation of the Local Table Method):使⽤變動長度的碼來取代連續重複出現的原始資料。
# Chapter 3: Region Analysis
* ==bounding rectangle==: 最小外接區域的矩形


質心可能包含非整數,且可能不屬於該區域。如果該區域沒有孔且是凸的,則保證質心屬於該區域
* region


perimeter pixel 是 border pixel 的集合,只要有鄰居不是在區域內就是 border pixel。



Compactness緊密度:當物體愈圓,則比率接近1

可能考下面圖的周長

Mean centroid-boundary distance: µR
Standard deviation of the centroid-boundary distance:σ2R




越圓值越大,相同的圖會有接近的值,轉動平移縮放值不會變

* Texture(紋理): 描述影像內灰階基元的空間關係(分佈)。
如果存在隨機圖案且灰階值範圍很寬(灰階圖元的方差很大),則影像呈現出細粒度的紋理
如果存在結構良好的圖案(棋盤狀、六邊形圖案)且灰階基元的變異數較低,則影像描繪出粗粒度的紋理。




Pv 垂直
PH 水平
PD 右上左下
PE 左上右下

### Extremal Points(極端點)
* 8 distinct extremal points’ names of the bounding rectangle ({ }most { }):

Q(φ)補償因子,在計算線段長度時,根據角度來進行補償,以減少計算誤差

#### Histogram Equalization(以 8 bits 為例)
Histogram 最理想分佈狀況就是平均分佈,而這就是我們接下來要介紹的 Equalization。


# Ch4: Statistical Pattern Recognition

> 簡單來說,我們有一些 region 的特徵了 (在此稱 measurement),現在要用某種統計或機率的方法去決定要怎麼把 region 分類。這叫 decision rule,我們現在要談的就是這個。
推導看一下就好,注意第1, 2點的定義以及economic gain matrix。考試好像不會給定義…









考古:Statistical Pattern Recognition, maximin decision rule, Bayesian decision rule的名詞解釋
* Statistical Pattern Recognition(統計模型識別)
根據觀察到的數據樣本來學習如何將新數據正確分類
* maximin decision rule
在不確定的環境中做出保守決策。對於每一個可能的決策,找出該決策在最壞情況下的損失,然後選擇使這種「最大損失」最小化的決策。
* Bayesian decision rule
把結果全都assign給機率最大的類別,即根據所有可能情況的概率分佈做出最佳選擇。
### Maximizing Expected Economic Gain 例子






# Chapter 5 Mathematical Morphology
* morphological operations:
簡化影像
保持形狀、特徵
消除不相關的東西
* shape:主要的載體與 object 的分解(decomposition)、特徵、表面缺陷(surface defects)、組裝缺陷(assembly defects) 相關
* set theory:
用數學形態中的集合來表示圖像中的形狀或物體,通常使用二質化圖片
* Euclidean N-space: EN(物體的幾何屬性)
* Discrete Euclidean N-space: ZN
N=2:
*square grid

*hexagonal grid(Z的2次方)
將各列像素平移 0.5 個 pixel,使得像素至周圍每個像素的距離相同

集合平移和集合反射

### Binary Morphology
##### Binary Dilation(膨脹)

可交換性、結合律、平移不變性、膨脹是平移的聯集
* example:


* B的原點沒有點:

* dilation的應用(消除噪聲)


##### Binary Erosion


例子:



反正就是當二值圖像中的「1」像素使用 4-連通性時,「0」像素則使用 8-連通性,反之亦然
所以g4(I)時表示,像素用4連通,背景用8連通
所以g8(I)時表示,像素用8連通,背景用4連通
然後genus就是 物件-背景
#### Hit-and-Miss Transform:

侵蝕的交集,可以用在找轉角點、孤立點、邊界點、模板的匹配、細化、粗化、居中、計數
example:


#### Opening and Closing

* opening:先侵蝕後膨脹,欲於去除所獲得影像的內部雜訊(將圖形凸出的銳角給鈍化,也會把孤島(isolate island)去除)
* closing:先膨脹後侵蝕,用於平滑輪廓和融合窄斷點(將圖形內陷的銳角給鈍化,也會把hole填補上)



------有條件的擴張

* generalized opening:增加、反擴張、等冪
* generalized closing:增加、擴張、等冪
#### gray scale morphology(灰階型態學):
T:取最大值 U:陰影

灰階膨脹


灰階侵蝕


* median filter(中值濾波器):
對於每個像素,新值是視窗的中位數
對異常像素值具有穩健性,留下銳利的邊緣
中值根影像:中值濾波器後影像保持不變

* 對灰階值做opening或closing可以減少圖片複雜性
* distance transform(距離轉換):
距離變換後的強度值表示每個點到最近邊界的距離

* Medial Axis:具有距離函數的中軸
* morphological skeleton(可想成一種壓縮演算法)




* Morphological Sampling Theorem(形態取樣定理)
在對集合進行採樣以進行形態處理之前,必須透過開或閉對它們進行形態簡化。
這樣的採樣集可以透過兩種方式重建:透過閉運算或擴張。
# 助教研究
### CH2

瑕疵檢測

step3:比較原本特徵跟重構特徵的差異性
result:用這個很好的模型,可以在實際應用上有很好的效果
### CH3
基于 RGB-D 图像的 Stacked Hourglass 网络用于床上病人体位的关节定位

方法:使用修改过的 Stacked Hourglass 网络,通过 RGB-D 图像定位床上病人的身体关节。
步骤:
1.RGB-D 图像预处理:去除深度通道中的噪声(如孔洞),确保颜色通道和深度通道之间的一致性(防止使用不同相机获取的图像不一致)。
2.生成包含一致的 RGB-D 图像及其对应的真实身体关节位置的数据集。
3.从身体关节位置生成真实的热图。
4.使用 RGB-D 图像和热图训练修改后的 Stacked Hourglass 网络。
5.使用 PCK(正确关键点百分比)指标评估人体姿态估计模型的性能。
结果:即使在被毯子覆盖的情况下,仍可通过 RGB-D 图像(包含一个人)进行及時(real-time)身体关节定位。
### CH4
車牌辨識:

1.用yolo偵測車牌
2.STN轉正車牌
3.LPRnet+CTC 辨識上面的文字
result: 可以在動態的行進過程中辨識車牌
### CH5
方法:
stable diiffusion、LDM(Latent Diffusion Models)、CLIP
步驟:
1.pixel sapce有encoder把圖轉換到latent space decoder把latent space轉回圖
2.latent space有diffusion process使用Latent Diffusion Models
3.conditioning 使用CLIP text encoder
結果:有時候無法生成準確的圖案,波音747少了兩個引擎,但模型成本較低

4*6=24
2*16=32
ITRI演講:沈志聰
genAI、AIOT智慧相機
# 感覺會考




AREA:區域的面積
CEMTROID:質心可能包含非整數,且可能不屬於該區域。如果該區域沒有孔且是凸的,則保證質心屬於該區域,所有位置點的算術平均數

border pixel : 其任一相鄰元素不在 region 內的 pixel

