---
# System prepended metadata

title: 研究心得 2019/12/10
tags: [SLAM, personal review, registration]

---

# 研究心得 2019/12/10 
> **心得**是會參雜個人觀點、想法、情緒的文章，僅供參考、歡迎指教。

###### tags: `personal review` `registration` `SLAM`

## Paper reading：
A review of 3D/2D registration methods for image-guided interventions

---
覺得不光是SLAM領域，在整個三維重建領域裡面，SFM的先決條件是Motion，然而現在有一群人卻專注在**3D Shape Reconstruction from 2D Landmarks**，這是一個不用Motion就可以重建的議題，比起SLAM應該會更加複雜。

---
除了知名的CVPR、ICCV，其實在CV領域也有如**Medical Image Analysis**等知名期刊可以參閱，應該盡量參閱[這個](https://www.scimagojr.com/)網站**CV & Pattern Recognition**領域的Ranking才是。

---
另外也發現新的函式庫叫"libigl"(前面igl沒打錯字，請參閱[這個網站](http://geometryhub.net/bgl))或稱為**基礎幾何函式庫**，用C++撰寫，應該要抓時間與PCL(Point Cloud Library)比較。

---
Back-projection是指"反向投影"(與reprojection"重投影"不同)，主要是從2D圖像中尋找特徵，再利用此特徵去與原本的2D圖像比對，讓原本的圖像更有代表意義，也就是 **N x 2D -> 2.5D**

---
Projection     ：3D -> N x 2D
Back-projection：N x 2D -> 2.5D
Reconstruction ：N x 2D -> 3D
要能使用projection時，基本上是先前已經算好的有3D模型資訊，才能做投影，至於SLAM領域的reprojection則是（N x 2D）-> 3D ->2D (須注意括號N x 2D，那只是有點在強調他的3D point也是算出來的而已)，真正的reprojection絕對是3D ->2D

![](https://i.imgur.com/GfaQ8YV.png)
Table from **A review of 3D/2D registration methods for image-guided interventions**

---
## Reprojection定義：
![](https://i.imgur.com/TOlImJg.png)

事實上我個人覺得這張圖定義的很模糊，因為它並沒有把時間考慮進去，容易讓人誤以為是兩張影像同時投影到一個三維點，若考慮到時間因素因該如下方所示，再加上我個人對於reprojection的理解，reprojection應當是強調橘黃色方框處的動作而已(3D ->2D)
![](https://i.imgur.com/EVRjuRM.png)

理解上述後，再來理解Reprojection Error 和 Reprojection Loss的不同，會輕易很多。首先是Reprojection Error：
![](https://i.imgur.com/OrLjFV6.png)

上圖是網路的定義，個人覺得很奇怪。
![](https://i.imgur.com/IptYiYD.png)

上圖這是滑鐵盧大學定義，看起來也有一點點奇怪…

![](https://i.imgur.com/PbHdQA1.png)

上圖是Pix4D定義，感覺有點到了但還是看不太懂…

![](https://i.imgur.com/CAtUUQF.png)

上圖是個人目前看到最理想的reprojection error，定義來自於**Computers & Graphics**期刊的**Camera pose estimation under dynamic intrinsic parameter change for augmented reality**

---
想想了上述各圖的”奇怪”的點，我覺得是因為沒有先了解”現況”，現況是沒有三維模型只擁有二維影像的話絕對是最後一張圖(”Computers & Graphics”期刊)是對的，坦若現況是只有三維模型，然後用二維影像去校準才是前面幾張圖(有點像visual servoing) ，前面幾張圖就稍微說得通，但應該很少這種情況，畢竟要先去掃描，除非先使用Lidar reconstruction掃描建圖後再對齊。

---
接下來定義Reprojection Loss，僅需一張圖就能完美定義Reprojection Loss
Reprojection Loss：
![](https://i.imgur.com/fyjDG8V.png)

---
3D/2D registration classes
1 Feature-based：基於特徵點
2 Intensity-based：基於影像強度
3 Gradient-based：基於梯度(基於輪廓)

---
Gradient-based的Gradient梯度的定義如下圖所示。節錄自[維基百科](https://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6)。
![](https://i.imgur.com/mcEEY58.png)

---
## Image registration定義：
影像校準 (image registration) 是從兩個或多個數據來進行影像對齊的過程，它牽涉到影像的整合來建立整合視圖、改善訊號的雜訊比(signal-to-noise ratio)，並從多張圖片中萃取(extract) 那些無法從單一影像中獲得的資訊。影像校準用於遙測(remote sensing)、醫學影像、製圖(cartography)，以及其他需要從影像中獲得正確資訊的應用，如：從衛星圖片發現淹水面積、MRI掃描檢測腫瘤或工廠檢測等等。該如何決定有效的影像校準方法依情況而異，且可能是一個複雜和費時的過程。這需要仔細選擇一個點轉換模式來提供影像間的參考點，並建立一個比較資訊的方法，來界定正確對齊影像所需要之適當參數。有兩個著名的方法可進行自動影像校準流程：以特徵(feature-based)為基礎和以影像強度(intensity-based)為基礎的校準演算法。在這篇文章中，我們使用一個偵測發燒的例子，來說明以影像強度為基礎，透過MATLAB imregister 函式及影像處理工具箱 (Image Processing Toolbox) 來建立自動影像校準流程。這個工作流程可以快速、且有效地從不同的相機整合影像。
節錄自[鈦思科技](https://www.terasoft.com.tw/technews/commercial201503.html
)。

---
## Rigid transformation（剛性變換）定義：
**僅改變物體位置而不改變其形狀與大小的變換**。即：
1. 點之間的距離不變。
2. 線之間的夾角不變。點積保持不變的線性變換是剛性變換。

---
> [name=Huang Yu Hsuan][time=Tue, Feb 25, 2020 12:56 AM][color=darkgreen]





