논문: LIFT: Learned Invariant Feature Transform
포스터: ECCV2016-S-4A-08
이미지에서 특징점을 검출하는 전통적인 Hand-craft 방법으로는 SIFT[1]가 가장 영향력(2020년 5월 1일 기준 56k 인용)을 많이 주고 있고, SIFT는 크게 (1)관심 포인트 찾기, (2)오리엔테이션 예측, 그리고 (3)각각의 특징점 생성이라는 3가지 파트로 나눌 수 있습니다. 이후 인공신경망을 사용하는 연구가 급속하게 많아졌지만 대부분 1 ~ 2가지 파트에 집중했을 뿐 좋은 성능을 보여주는데 실패했습니다.
이번에 소개할 논문 LIFT는 end-to-end 방식은 아니지만 위에서 언급한 3가지 파트 각각에서 CNN을 사용합니다. 그림 1에서와 같이 Detector[2], Orientation[3], Descriptor(LIFT)으로 구성되어 있으며 모든 연구가 같은 연구진을 통해 이루어졌습니다.
그림 1을 토대로 LIFT의 전체 파이프라인은 아래의 단계로 진행됩니다. 단, 실제 훈련은 반대의 순서 (DESC -> ORI -> DET)로 진행된다는 점이 특이한 점입니다.
1. Input patch를 DET(detector) CNN에 넣어 score map을 얻고 softargmax 함수의 출력을 이용하여 지역을 crop합니다. 이 때 patch를 얻기 위해 SIFT의 scale value를 이용합니다.
2. small patch를 ORI(orientation) CNN에 넣어 Rot(rotation value)를 얻습니다.
3. 앞의 두 정보를 이용하여 다시 rotated small patch를 DESC(descriptor) CNN에 넣어 descriptor vector를 얻습니다.
위에서 언급한 바와 같이 LIFT에서 제안하는 것은 전체 파이프라인의 완성 퍼즐인 descriptor 입니다. 그림 2와 같이 DET 4개, ORI 과 DESC 3개를 비교하여 학습 시키는데 p1과 p2는 같은 이미지 patch를 의미하고, p3는 전혀 관계없는 이미지 patch, 그리고 p4는 검출 되지 않은 무의미한 이미지 patch를 말합니다.
DESC의 loss function은 수식 1과 같으며, 이미 설명한 내용을 수식으로 옮긴 것입니다. p1과 p2의 차이는 minimize 시켜야 하며, p3와 (p1, p2)의 차이는 maximize 시켜야 합니다. 수식 2, 수식 3도 같은 내용이며 자세한 방법론이 궁금하면 이 논문 및 연관 논문 [2][3]을 같이 읽어보면 됩니다.
LIFT의 학습 과정은 사실 매우 어렵다고 알려져 있습니다. 왜냐하면 각 파트별로 학습하면서 연구자가 적당한 시점에 중지 시키는 것을 결정해야 하기 때문이죠. 아무튼 학습이 끝나게 되면 LIFT를 사용하여 특징점을 검출하기 위해 그림 3과 같이 약간 변경된 사항과 흐름을 따라야 합니다. 우선 DET에 sliding window 기법으로 patch를 넣게 되면 computational cost가 높기 때문에 scale을 다르게 한 이미지를 DET에 넣어 score map pyramid를 얻습니다. 그리고, 학습에서 softargmax를 사용했던 것을 NMS(non-maximum suppression)로 대체하여 keypoint를 얻는다는 것이 모델을 훈련할 때와 다른 점입니다.
표 1의 하단 그래프에서 알 수 있듯이 LIFT는 전통적인 방법 뿐만 아니라 인공 신경망을 사용하는 방법 중 논문 발표 당시 가장 좋은 성능을 보여주고 있습니다. 그리고 그림 4는 위에서부터 차례대로 Herz-Jesu-P8 of Strecha, Frankfurt of Webcam, Scene 7 of DTU, Scene 19 of DTU 데이터 셋을 비교한 것이며 LIFT가 SIFT에 비해 더 많은 특징점을 검출하는 것을 보여주고 있습니다.
이 논문은 최유경 교수님께서 소개해주신 논문으로 인공 신경망을 이용해 이미지 특징 검출을 연구하는 몇 안되는 연구입니다. 이 글에서 LIFT의 훈련이 어렵다고 언급했는데 같은 연구자(이경무 교수님, University of Victoria)의 이 후 논문 LF-Net[4]에서 end-to-end 방식을 사용하도록 개선하였고, 이미지의 patch가 아닌 이미지 전체를 input으로 넣는 것이 가능하게 되었습니다.(LF-Net은 바로 이어서 논문 리뷰를 할 예정입니다.)
LIFT와 LF-Net이 궁금하신 분들은 저자가 직접 세미나를 하였으니 아래 영상을 참고해주시고, 슬라이드[5]도 함께 보시면 좋을 것 같습니다.
참고:
[1] Distinctive Image Features from Scale-Invariant Keypoints
[2] TILDE: A Temporally Invariant Learned DEtector
[3] Learning to Assign Orientations to Feature Points
[4] LF-Net: Learning Local Features from Images
[5] Slide: Learning to Find and Match Interest Points