논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Go with the flow: Improving Multi-View Vehicle Detection with Motion Cues

[cite]10.1109/ICPR.2014.709[/cite]

1. Introduction

이 논문은 차량의 앞 뒤에 달린 2개의 광각 카메라를 이용하여 멀티-뷰 객체 탐지를 시도하고 있습니다.

2. Related Research Studies

3. Robust Motion Cue Extraction For Vehicle Detection

차량 탐지의 방법으로 optical flow를 이용합니다. 논문에서는 Lacus-Kanade, Brox and Malik, Farneback의 3가지 사람의 알고리즘을 사용하였습니다. 참고로 Farneback은 GPU를 이용하여 빠른 속도 향상을 가져올 수 있었습니다. 하지만 3가지 알고리즘 모두 부정확한 flow도 함께 검출되었습니다.

Consistency Check

먼저 앞, 뒤 카메라의 모든 프레임에 대해서 Dense optical flow를 계산합니다. 계산된 optical flow에 대하여 무결성을 검사하기 위하여, 계산된 optical flow를역으로 계산을 하여 두 벡터를 비교합니다. 프레임의 에지나 가려짐 등으로 잘못 계산된 부분이 있다면 그 벡터가 서로 다른 위치를 가리키기 때문에 걸러낼 수 있습니다. 따라서 둘 사이의 차이가 얼마인지를 조사하여 걸러내게 됩니다.

$$|| V_f - V_b ||_2 \leq t_\text{consistent}$$

Epipole Extraction

이제 구해진 optical flow로부터 fundamental matrix를 계산합니다. 이 행렬은 8-point algorithm을 RANSAC을 이용하여 추정하게 됩니다. 다음 추정된 fundamental matrix로부터 두 장면의 카메라 위치의 epipole을 참조하여 소실점(focus of expansion)을 추정할 수 있습니다.

Spectral Clustering

이제 각 flow 벡터들을 군집화(clustering)을 합니다. 이 때에는 flow의 similarity와 지역 특성(spatial proximity)을 반영하여야 합니다. [17]에서 제안한 반복적인 spectral clustering을 이용할 것인데 이는 단순 k-means clustering보다 좋은 성능을 보여주었습니다.

Ego-motion Compensation

나를 앞지르는 차량에 해당하는 cluster를 배경과 분리시키기 위해서 ego-motion을 보상시켜주어야 합니다. Flow 벡터 중 소실점으로 집중되지 않는 벡터들은 움직이는 물체라고 가정할 수 있고 추월하고 있다고 생각할 수 있습니다. 전 프레임의 위치에서 에피폴을 향하는 벡터 $l_v$와 실제 optical flow vector $v$간의 벗어나는 정도를 이용하고자 합니다.

$$v \cdot l_v \leq t_\text{moving}$$

만약 앞으로 이동하는 움직임이라면 결과는 양수로 나올 것입니다.

Cluster Merging

Spectral clustering은 over-segmentation된 결과를 보여줍니다. 따라서 이들을 합쳐주어야 합니다.

두 군집이 같은 객체라면 평균 벡터와 벡터가 향하는 그 중심이 서로간 가까운 위치에 있을 것입니다. 이를 이용하여 구현하였습니다.

$$||c_1 - c_2 ||_2 + ||v_1 - v_2||_2 \leq t_\text{similar}$$

$c_1$$c_2$는 벡터의 중심을 나타내고, $v_1$$v_2$는 드 클러스터의 평균 벡터를 나타냅니다.

Post Processing

클러스터가 합쳐졌으면 마지막 후처리를 하여 false positive를 제거하여 마무리합니다.

결과에는 outlier 모션 벡터가 포함되어있을 수 있는데, 여기서는 optical flow의 원점이 Gaussian 분포를 따른다고 가정하고, 각 클러스터의 원점에 대한 표준편차를 계산합니다 그리고 표준 편차의 2배가 넘는 벡터들은 outlier로 간주하여 제거하도록 합니다.

다음 아주 작은 크기로 분류된 객체와 적은 flow를 갖는 객체를 제거합니다. 카메라 근처의 객체는 매우 큰 움직임으로 나타나기 때문에 작은 클러스터는 먼 거리에 있는 객체이거나 false positive라고 생각할 수 있습니다. 둘다 우리의 관심사가 아니므로 제거합니다.

마지막으로 남은 클러스터들을 바운딩 박스를 계산합니다.

Motion Cue Integration With Appearance-Based Detector

계산된 박스들을 non-maximal suppression을 이용하여 서로를 통합하고 겹쳐진 것을 제거합니다. 찾아진 박스들이 ego-motion compenstation 이후에도 너무 작은 움직임을 가지고 있다면 제거합니다.

4. Experimental setup

두개의 흑백 Point Grey Flea3 카메라를 이용하였습니다.

5. Experimental Evaluation

6. Concluding Remarks and Future Work


Add a Comment Trackback