본문 바로가기
Studies/논문리뷰

Deep Image Homography Estimation, arXiv(2016)

by 알푼 2023. 7. 25.
728x90
728x90

1. Introduction

  • Sparse 2D feature는 일반적으로 코너로 알려져 있으며, 모든 geometric computer vision 작업에서 코너의 감지 방법의 오류와 geometric 추정 오류의 균형을 맞춰야 함
  • 한 쌍의 이미지에서 2D homography를 추정하는 것은 컴퓨터 비전의 기본 작업
  • Homography : 카메라 중심을 중심으로 회전하는 두 이미지를 관련시키는 변환 → 파노라마를 만드는데 필수적 → 많은 평면 장면 처리를 위해 사용되는 ORBSLAM의 기본 조합이며, 증강 현실과 카메라 보정 기법 등도 homography를 사용
  • 기존 Homography의 추정
    • Corner estimation: 완전한 point 집합을 가지고 강건화 함
    • Robust homography estimation: RANSAC을 많이 사용하거나 squared loss function을 강건화 함
    → 모서리 특징이나 선 특징 등 수동으로 엔지니어링 하는 대신에 알고리즘이 자체적으로 기본 요소 집합을 학습하고 싶음
  • 최근 동향
    • LSD-SLAM : Dense or Direct featureless한 SLAM은 전체 이미지를 사용할 수 있는 가능성
    • Deep convolution network를 통해 image classification이나 semantic segmentation, human pose estimation 등이 가능해짐
    • FlowNet, Deep Semantic Matching, Eigen 등의 Multi-scale Deep network 같은 작업은 고밀도 geometric 컴퓨터 비전 작업에 대한 유망한 결과 제시
    • 시각적 주행 거리 측정과 같은 작업도 Deep convolution으로 가능해짐
  • 논문의 contributions
    • Homography 추정을 위한 새로운 VGG 스타일의 네트워크 제안
    • 4-point parameterization을 사용하여 잘 동작하는 deep estimation problem을 얻는 방법을 보여줌
    • 딥 네크워크는 학습량이 많으므로 MS-COCO 데이터 셋과 같은 실제 이미지의 기존 데이터 세트에서 IA, IB, HAB 삼중 항으로 구성된 무한한 데이터 세트 생성하는 방법 제시
    • Homography 추정을 위한 추가적인 공식화를 분류로 제시하여 분포를 생성하고, 추정된 homography의 신뢰도 결정

2. The 4-point homography parameterization

  • Homography의 parameter를 단일 벡터로 풀어보면(unroll), rotational and translational terms가 포함되어 있음
  • 코너 기반으로 하는 대체 parameterization이 deep homography 추정에 더 적합하다는 것을 발견
  • 4-point paratemerization은 전통적 homography 추정에 사용되었으며, 본 연구의 modern deep homography 추정 표현에 사용
    • 하나의 포인트에 대한 offset, u-offset이 $\Delta u_1 = u^{'}_1 - u_1$ 이라면
    • $H_{4point} = \begin{pmatrix}\Delta u_1 & \Delta v_1 \\ \Delta u_2 & \Delta v_2\\\Delta u_3 & \Delta v_3 \\ \Delta u_4 & \Delta v_4 \end{pmatrix}$
  • 4개 코너의 변위를 알면 매트릭스로 변환 가능 : Direct Linear Transform(DLT) or OpenCV의 getPerspectiveTransform() 사용

3. Data generation for homography estimation

  • MS-COCO 데이터셋으로부터 랜덤한 projective transformation을 적용하여 labeled 데이터 생성

  • Single training 예제를 생성하기 위해 큰 이미지 I의 p 위치에서 랜덤하게 사각형 patch를 crop (bordering artifact를 방지하기 위해 테두리쪽은 피함)
  • → 이러한 random crop을 $I_p$ 라고함
  • Patch A의 네 모서리는 $[-\rho, \rho]$ 범위 내에서 랜덤하게 교란(perturbed)
  • 네 모서리는 Homography $H^{AB}$로 대응 → $(H^{AB})^-1 = H^(BA)$ Homography의 역을 적용하여 이미지 $I'$ 생성 → 두 번째 patch인 $I'_p$는 $I'$의 $p$에서 crop 됨 → 두 개의 patch $I',\; I'_p$ 를 채널별로 stack 하여 2채널 이미지 생성 → $H^{AB}$의 4-point parameterization은 ground-truth tarining label로 사용

4. ConvNet Models

  • 3x3 ConV, BatchNoem, ReLU를 사용하며, 옥스포드 VGG Net과 구조적으로 유사

HomographyNet은 코너 감지나 homography 추정 없이 homography를 생성

  • Input : 128 x 128 x 2 크기의 2채널 grayscale 이미지
  • Homography로 연관된 두 개의 이미지가 채널 단위로 쌓여 네트워크에 공급
  • 두 Conv 마다 max pooling layer (2x2, stride 2) 가 있는 8개의 conv layer 사용
  • Conv layer 별 필터 수 : 64, 64, 64, 64, 128, 128, 128, 128
  • FC는 2개이며, 첫 번째 fully connected layer는 1,024 unit
  • FC 사이에 Dropout은 0.5
  • 첫 번째 네트워크는 실수값을 출력하고, 두 번째 네트워크는 이산형 값 생성

  • Regression Network
    • 8개의 실수값을 직접 생성하고 training 중에 유클리드 (L2) 손실을 최종 layer로 사용
    • 단순하지만 예측에 대한 신뢰 값을 생성하지 않으면 지나치게 어려울 수 있음
  • Classification Network
    • 양자화(quantization) 방식을 사용하고 마지막 레이어에 softmax가 있으며, 훈련 중에 cross entropy loss function 사용
    • Quantization은 내재적 quantization error가 있다는 것을 뜻하지만, 네트워크는 이 방법으로 생성된 각 코너에 대한 신뢰도 생성 가능
  • 8개 출력 차원 각각에 21개의 quantization 구간 사용하여, 168개의 출력 뉴런이 있는 최종 layer가 생성
  • 모든 모서리에 대한 신뢰도가 동일하지 않음

5. Experiments

  • 학습 조건
    • 0.9 모멘텀으로 stochastic gradient descent 사용하여 훈련
    • Learning rate 0.005
    • 30,000 반복 마다 learning rate를 10씩 감소
    • Batch size 64로 하여 90,000회 반복
    • open-source deep learning 패키지 사용
  • 데이터 생성
    • MS-COCO 훈련 셋 사용
    • 이미지 크기 320 x 240 으로 조정하고, grayscale로 변환
    • 3장과 같은 방법을 사용하여 homography로 연결된 128x128 크기의 patch 50만 쌍 생성
    • $\rho = 32$, 128x128 그레이스케일 이미지의 각 코너가 전체 이미지 edge 크기의 최대 1/4까지 perturbed(변형? 뒤틀림?) 될 수 있음
    • Pre-train은 사용하지 않았으며, 네트워크 가중치를 무작위 값으로 초기화하여 훈련
    • MS-COCO 검증 세트로 overfitting 모니터링 했으나 발견되지 않음
  • 테스트셋 생성
    • 자체 개발한 MS-COCO 14 데이터 셋에서 homography 추정 결과를 평가
    • 테스트 셋 생성을 위해 5000개 이미지를 무작위로 선택하고 각 이미지 크기를 grayscale 640x480 으로 조정한 후 섹션3과 같이 ground truth homography에 해당하는 이미지 patch 쌍 생성
  • HomographyNet의 비교
    • 첫 번째 기준은 classical ORB descriptor + RANSAC + getPerspectiveTransform() OpenCV homography 계산을 사용하는 것 (OpenCV parameter를 default로 사용)
    • 두 번째 기준은 3x3 identity matrix 사용 (모든 이미지 쌍 마다)
  • HomographyNet은 고정 크기 128x128x2가 input이 되기 때문에, MS-COCO 14 테스트 셋에서 warp된 이미지 쌍은 네트워크를 통과하기 전에 256x256x2에서 128x128x2로 크기가 조정
  • 이미지의 네 모서리에 대해 평균을 구하고 전체 테스트 셋에 대해 평균을 계산 (실측 모서리와 추정 모서리 간 L2 거리를 계산)

6. Applications

  • 빠르게 수행 가능
  • 머신러닝으로서 정형화된 homograpy 추정 가능

7. Conclusion

  • Homography learning 할 수 있는가? → 두 가지 CNN 구조 제시
728x90
반응형

댓글