해당 글은 Visual Localization 관련 방법론들을 survey하면서 다 읽지는 않았지만 찾아놓은 논문들 리스트입니다.
1. 2D Image-based Localization
영상 기반 위치인식 방식(또는 Image retrieval methods)은 쿼리 영상의 pose를 계산할 때 어떠한 3차원 공간 정보 및 방법론들은 전혀 사용하지 않습니다.
대신에 데이터베이스 내 영상들 중 쿼리 영상과 가장 유사한 영상의 카메라 포즈를 통하여 쿼리 영상의 카메라 포즈를 근사하는 것이죠. 물론 위에 방식을 적용하려면 GPS나 SFM을 통하여 데이터베이스 영상들의 카메라 포즈를 완전히 알고 있는 상황이어야만 합니다.
일반적으로 Image based Localization은 먼저 쿼리 영상과 모든 데이터베이스 영상들에 대하여 single global image descriptor를 계산하고, 그다음 query descriptor와 가장 가까운 이웃 descriptor(database)를 찾는 과정으로 진행됩니다.
DenseVLAD(https://hal.inria.fr/hal-01616660/document)
DenseVLAD는 서로 다른 스케일 내에서 균일한 격자를 가지는 DenseSIFT를 추출하여 global image descriptor를 계산합니다.
위 과정은 difference of Gaussian과 같은 feature를 extract하는 과정 대신 수행이 되는데, 이는 feature detector의 반복성이 view point의 증가와 조도 변화 등을 악화시키기 때문입니다.
DenseSIFT로 추출된 descriptor는 VLAD 기법을 통하여 군집화된다고 합니다.
NetVLAD (https://arxiv.org/pdf/1511.07247.pdf)
NetVLAD는 미분이 가능하게끔 만든 VLAD Layer를 통하여 영상을 global image descriptor로 encoding하는 CNN Network를 말합니다.
영상을 분류하고자 CNN의 제일 마지막 단에 VLAD layer가 존재하고 있으며, 해당 레이어는 feature를 pooling하는 역할을 하기도 합니다.
Loss는 triplet ranking loss를 사용합니다.
ToDayGAN(https://arxiv.org/pdf/1809.09767.pdf)
ToDayGAN은 style-transfer network(만약 A,B 영상이 주어졌을 때 결과 영상은 A의 content를 가지고 있으나 style은 기존 A가 아닌 B의 style로 변형되게끔 하는 Network)로 night to day image translation을 수행한다고 합니다.
즉 밤 영상을 낮 시간대로 바꾸는 network이며 이때 DenseVLAD descriptor를 추출하여 사용한다고 합니다.
Localizing Visual Landmarks for Place Recognition
(https://arxiv.org/pdf/1904.06635.pdf)
해당 학습 기반 image retrieval method는 visual place recognition problem을 기반으로 제안되었으며, 가장 큰 핵심은 영상을 기술하는데 있어 영상의 모든 부분이 중요치 않다는 것입니다.
즉 핵심적인 dense local feature를 추출할 수 있는 landmark localization network를 오직 image level annotation(no pixel-level annotation)만을 사용한 weakly supervised 방식으로 학습시킨다는 것입니다.
두 영상의 유사성은 영상들간에 feature를 매칭한 후, 모든 매칭의 cosine-similarity를 합함으로써 계산할 수 있으며, 이때 매칭의 공간적 분포를 반영하는 weight를 줄 수도 있습니다.
2. Structure-based approaches
위에서 설명한 image-based localization과 달리, structure-based method들은 위치 인식을 위해 database 영상들로부터 3D representation constructed를 진행합니다.
전형적으로 SFM model은 database 영상들로부터 3D map을 만들고, query 영상의 카메라 pose를 계산하기 위해 query 영상과 point cloud간에 초기 2D-3D correspondences 값을 결정합니다. 그 후에는 구한 correspondence 값으로 카메라 pose를 계산하면 됩니다.
이러한 방식들은 일반적으로 model을 만들고 매칭으로부터 카메라 포즈를 계산하는 방법, 어떠한 매칭 전략이 사용되는지 등등 매칭을 진행하는 local image feature 형식과는 다릅니다.
Active Search(
Active Search는 feature matching을 보다 빠르게 하기 위해서, descriptor space를 양자화하였습니다.
CityScaleLocalization(https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7534854)
CityScaleLocalization은 최적의 카메라 포즈를 추정할 수 없는 correspondences 즉 outlier를 reject하는 outlier rejection 전략을 사용합니다.
해당 method는 지면 위 카메라의 height와 vertical direction의 개념을 베이스로 합니다. 이러한 환경 안에서, 만약 하나의 대응점이 inlier라고 가정된다면, 가장 우수한 camera pose에 필요한 inlier 개수의 상한선을 계산할 수 있다고 합니다.
반대로 만약 이것이 지금껏 찾은 best pose 후보의 inlier 개수보다 아래라면, 해당 correspondnece는 최종 결과값에 영향을 줄 수 없도록 영구적으로 제거해버립니다.(outlier reject)
3. Learned local image features
SuperPoint는 영상을 인풋으로 하여 loca feature를 아웃풋으로 하는 CNN 모델을 말합니다. 해당 네트워크는 하나의 공유 인코더와 두개의 디코더로 구성되어 있습니다.
두 개의 디코더 중 하나는 detection score의 heatmap을, 나머지 하나는 영상의 dense descriptor를 출력합니다.
해당 네트워크는 self supervised 형식으로 학습이 되며, GT 값은 합성 데이터로 학습한 검출기에 여러 종류의 왜곡된 영상을 적용한 다음 모든 검출 결과를 원래의 영상으로 되돌림으로써 GT를 구한다고 합니다.
D2-Net(https://arxiv.org/pdf/1905.03561.pdf)
D2-Net은 feature detector와 descriptor를 학습하는 네트워크로, 영상을 입력으로 받고 출력은 영상 속 각 픽셀 별 descriptor와 영상 전체의 feature detection을 출력으로 하는 CNN입니다.
해당 네트워크는 single CNN으로, 검출과 description을 동시에 수행하게 되는데, descriptor는 네트워크의 출력 tensor의 depth 채널과 연관이 있습니다. 그리고 detection은 feature map들 중 하나에 존재하는 local maximum을 가지는 픽셀값과 연관있습니다.
실제로 구현해보셨을 때 코딩에서 가장 힘든 부분이 무엇이였나요?
해당 글은 visual localization의 전반적인 흐름을 알아보고자 관련 논문들을 survey한 것이기 때문에 코드적으로 구현은 아직 안하였습니다.