---
# System prepended metadata

title: Fisheye - Effective Cutting
tags: [IVA, paper]

---

# Fisheye - Effective Cutting
> [name=謝朋諺(Adam Hsieh)]
> [time=Wed, Aug 28, 2019 2:53 PM]
###### tags: `paper` `IVA`
---
# Pedestrian Detection in Fish-eye Images using Deep Learning: Combine Faster R-CNN with an effective Cutting Method

[論文連結](https://dl.acm.org/citation.cfm?id=3297069)

## Image Rotary Cutting Method
### The Specific Cutting Method of Obtaining the Center Images and Edge Images
![](https://i.imgur.com/7vX26xh.png)

:::info
擷取訓練資料集跟驗證資料集的方法
:::

* 如上圖所示，以魚眼圖像的中心點為旋轉點，旋轉角度為 30°，共旋轉12次。 
* 每次旋轉切割 $320\times320$, $320\times320$, $400\times400$ 的三個圖像。 
* 根據魚眼圖像中行人的分佈和我們需要的切割圖像的大小，確定了三個切割點(以左上角點為坐標，座標是往下往右為正，魚眼的最左上角座標為 (0,0))：P1(480,50)、P2(480,130)、P3(440,440)。 $320\times320$ 位於魚眼影像的邊緣，$400\times400$ 的影像位於魚眼影像的中心。

* 採用這種切割方法有兩個原因。
    1. 由於魚眼成像的特殊性和影像的邊緣失真。通過旋轉人群使他為直立的，至少在標記樣本時會更容易檢測到行人。
    2. 通過角度旋轉切割可以獲得更多的 Sample。

### Cutting Method and Bounding Box Relocation During Testing
* 由於訓練後的模型學會了已切割後的影像特徵，為了獲得更好的檢測結果，我們在測試時也採用了切割方法。 
* 首先，切割魚眼影像，然後對小影像進行行人偵測，最後根據數學幾何關係，將切割影像上預測的邊界框定位到原始圖像上的邊界框。

![](https://i.imgur.com/nTGnAI2.png)
:::info
擷取測試資料集的方法
:::
* 如上圖所示，魚眼影像的中央部分被切割成四個 $420\times420$ 縮圖，其中 C1、C2、C3、C4 作為切割點。 
* 另外還分別以 E1 和 E2 作為切割點去切割魚眼影像並旋轉來截出影像的邊緣，旋轉角度為 30 度，並且每次切割兩個 $360\times360$ 的小圖像。 
* 從魚眼圖像中切出總共 28 ($2\times12+4$) 個小圖像。 
* 採用這種切割方法的原因是為了確保整個影像都能夠被完全看過的同時還可以獲得最小數量的影像擷取，這樣就可以保留檢測的速度。

## HOG+SVM
* HOG 特徵是用於物件偵測的 CV 和影像處理用來當作特徵描述的方法。
* HOG 這項技術是用來計算局部圖像梯度的方向信息的統計值。
* 在這裡的 SVM 是用來判斷行人與非行人的分類器。

## Faster R-CNN
* 這篇也有使用 Faster R-CNN 作為他的行人偵測 model。

## Experiment Data
### Fish-eye Lens
* 與普通相機鏡頭相比，魚眼鏡頭是一種特殊的超廣角鏡頭，具有短焦距和大視野。除了中心部分的直線可以保持原始狀態外，影像中其他部分的直線是彎曲的，邊緣會失真的更嚴重。

### Data Sources
* 收集圖像的大小分別為 1024×768 像素（下圖左）和 1280×1280（下圖右）像素。
![](https://i.imgur.com/NICr7bm.jpg)

### Data Preprocessing
1. Unified image size
* 由於本文中使用的魚眼圖像尺寸不同，為了便於網絡模型的訓練，統一圖像尺寸為 $1280\times1280$。具體方法：使用 Scan Line Algorithm 提取魚眼圖像的圓形有效區域。Scan Line Algorithm 步驟：
    1. 計算交集：計算 Scan Line Algorithm 和多邊形每邊的交集;
    2. 排序：按橫坐標的升序對所有交集排序;
    * 配對：決定掃描線和多邊形之間的間隔，第一和第二，第三和第四等。每對交集代表掃描線和多邊形之間的交集。
    3. 填充：顯示交叉點的像素。

2. Image Enhancement
* 由於房間中不同時間的不同照明條件，所收集的魚眼圖像具有不同的質量。為了獲得更好的實驗結果，使用 Histogram equalization, Laplace operator 跟 Gamma correction 來增強圖像。

3. Rotary cutting
使用前面演算法截出來的畫面，下圖左為中間影像，右邊為邊緣影像
![](https://i.imgur.com/E0DNgcr.png)

4. Image annotation
影像中的行人由標記軟體精確地構圖並以 XML 儲存，下表顯示了資料處理的流程。
```flow
st=>start: Start
e=>end: End
OI=>operation: Original Images
(1280*1280)
(1024*768)
cond=>condition: 1280*1280
EEA=>operation: Extract Effective Area
Re=>operation: Resize:1280*1280
IE=>operation: Image Enhancement 
RC=>operation: Rotary Cutting 
GSD=>operation: Generate Sample Data 
LS=>operation: Label Sample

st->OI->cond
cond(no)->EEA->Re(left)->IE
cond(yes)->IE
IE->RC->GSD->LS->e
```

### Statistics of the data sets
* 訓練驗證集和測試集比例是 8:2，如下表所示：
![](https://i.imgur.com/IYz0MHf.png)

## 實驗和分析
* 使用兩種方式 HOG+SVM 以及 Faster R-CNN 模型結果去驗證本文做法的有效性，並使用相同的訓練參數如下表：![](https://i.imgur.com/o0iqrUy.png)
* 實驗結果畫出 PR 曲線可得：
![](https://i.imgur.com/EFf2f4N.png)
* 我們提出的切割方法有效地解決了魚眼圖像邊緣扭曲問題，提高了模型的檢測能力。使用裁切影像作為訓練和驗證集後，兩種模型的性能得到了顯著提高。

* HOG+SVM 的偵測結果：
![](https://i.imgur.com/If0u5c3.jpg)
* Faster R-CNN 的偵測結果：
![](https://i.imgur.com/5VDO6tw.png)
* 使用裁切後方式的 HOG+SVM 的偵測結果：
![](https://i.imgur.com/zltLk2G.jpg)
* 使用裁切後方式的 Faster R-CNN 的偵測結果：
![](https://i.imgur.com/fGjkwiO.jpg)
