데보션앱 소개페이지 바로가기

인재 DB 등록 시 유의사항

CLOSE

채용공고 지원 시 유의사항

CLOSE
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

2D-3D point matching 기술 및 광고판/간판 검출 기술 연구 - 연구결과(3)

yujin399 21.11.23
2328 4 0

안녕하세요! 저희는 7조 ASAP 강민지👩🏻‍🌾, 김유진🧘🏻‍♀️, 진정민🤠입니다.

6개월동안 진행한 2D-3D point matching 기술 및 광고판/간판 검출 기술 연구의 결과를 공유해드리겠습니다. 

(이전에 기록한 연구 계획 및 중간 점검 링크를 함께 공유드립니다.)


 

본격적인 연구 결과 설명에 앞서, 저희의 연구가 어떤 기술에 사용되는지 설명드리겠습니다. 

 

VLAM

저희의 연구는 VLAM(Visual Localization & Mapping) 기술에 활용됩니다. VLAM이란 Cloud를 기반으로 공간을 modeling하고 측위 서비스를 제공하는 기술입니다.

Untitled

VLAM 기술을 통해 현실 세계를 3D modeling하고, image 기반 feature를 3차원으로 복원하여 가시화한 Visual-Geo DB를 생성합니다. 해당 DB 내 Visual representation과 연관된 이미지가 주어졌을 때 카메라의 위치를 추정할 수 있게 됩니다.

스크린샷 2021-11-17 오후 10.13.38.png

해당 기술은 프로세스 자동화를 통해 손쉽고 빠르게 다양한 서비스 지역으로 확대 가능하고, Clients로부터 수집된 센서 데이터를 기반으로 공간 변화를 감지하거나 주기적으로 Map/Visual-Geo DB를 업데이트 할 수 있습니다.

 

Application

VLAM 기술은 다음과 같이 다양하게 응용될 수 있습니다.

Metaverse-AR

Untitled

 

VPS(Virtual Private Server)에 의해 사용자의 카메라 위치 및 방향을 추정하고, 이를 바탕으로 자동 생성된 3D mesh 공간 상에 가상 객체를 배치시켜 다음 영상과 같이 AR 세계를 구현할 수 있습니다.

 

또한 실내 로봇, 자율주행, 실내 길 안내 서비스에도 활용될 수 있습니다.

하단의 영상은 실제로 VLAM 기술을 활용하여 SKT 사옥 내 네비게이션 서비스를 제공하기 위해 제작된 어플리케이션입니다.

Untitled

ezgif.com-gif-maker.gif

 

Workflow

VLAM 기술의 흐름에는 크게 두 가지 task가 존재합니다.

스크린샷 2021-11-17 오후 10.07.47.png

 

 

1. Mapping : 센서 데이터를 활용하여 현실 세계를 3D modeling하고, 이를 기반으로 3D Visual-Geo DB를 생성합니다.

3d mapping.gif

 

2. Positioning : 서비스 이용자가 모바일 디바이스로 촬영한 2D 이미지와, 서버의 3D Visual-Geo DB 간 matching을 통해 정확한 카메라의 위치 및 방향을 추정합니다.

positioning.gif

저희는 Positioning task에 Deep Learning 기반 SLAM(Simultaneous Localization & Mapping) 기술을 적용할 수 있도록 연구를 진행하였습니다.

 

Objective

저희의 연구는 2가지 주제로 나누어져 있습니다.

2D-3D Point Matching

서비스 이용자가 모바일 디바이스로 촬영하여 서버로 전달된 이미지의 2D 특징점과 Visual-Geo DB 내 3D 특징점을 matching하여 카메라의 Pose(위치/방향)를 추정합니다.

Untitled

이때 기존에 사용되고 있는 Nearest Neighbor 방식에서 벗어나, 2D-3D 특징점을 matching하는 Deep Learning Model을 개발하는 것이 첫번째 연구의 목표입니다.

 

Panel Detection

Local Feature Matching을 진행하기 위해서는 서버로 전달된 이미지와 유사한 이미지를 DB 내에서 탐색하여 추출하는 과정이 선행됩니다. 이때 지하철 내부 등 동일한 광고판이 여러 곳에 존재하는 장소의 경우 다른 장소가 후보군 이미지로 추출되는 등 부정확한 후보군이 추출될 수 있습니다.

Untitled

이를 방지하기 위해 Detection Model로 이미지 내 광고판을 detect하고 해당 영역을 제거한 후, 이미지 후보군을 추출하여 2D-3D Point Matching에서의 정확도를 높이는 것이 두번째 연구의 목표입니다.

 

저희는 위 두가지 연구 목표를 달성하기 위해 다음과 같이 역할을 분담하여 프로젝트를 진행했습니다.

스크린샷 2021-11-18 오후 6.15.53.png

 



2D-3D Point Matching

저희의 첫번째 연구과제는 2D-3D point matching 기술입니다.

 

Goal

Untitled

본 연구의 목표는 '서버로 전달된 이미지의 2D 특징점''DB 이미지의 3D 특징점'matching하여 정확한 카메라 Pose를 추정하는 것입니다.

기존에는 K-Nearest Neighbor search 방식을 이용하여 matching을 하였습니다.

KNN search는 2D 특징점과의 descriptor간 거리가 가장 짧은 3D 특징점을 matching합니다. 해당 방식은 matching 정확도가 낮으며, outlier(matching 쌍이 존재하지 않는 특징점)에 민감하다는 단점이 있습니다.

본 연구에서는 2D와 3D 특징점을 matching하는 딥러닝 모델을 개발하였습니다. 기존 방식보다 정확한 matching을 통해, back-end model의 성능 향상에 기여하는 것을 목표로 설정했습니다.

 

Data

학습에 사용된 데이터는 다음과 같습니다.

Untitled

2D-3D point matching model은 2D 특징점의 location과 descriptor, 3D 특징점의 location과 descriptor을 사용하여, 2D 특징점과 3D 특징점의 match 정보를 반환합니다.

 

Model

2D-3D point matching model의 base model은 SuperGlue입니다.

SuperGlue는 Image-to-Image(2D-2D) matching model로, 같은 공간 내 다른 위치에서 찍은 두 이미지의 특징점을 서로 매칭해주는 모델입니다.

Untitled

SuperGlue에서는 특징점을 node로 정의하고, 모든 node를 연결한 graph를 구성하여 Graph Neural Network을 통해 학습합니다.

 

Untitled

SuperGlue는 각 이미지에서 추출된 특징점 좌표(location) 및 descriptor을 입력으로 받아서, 두 이미지의 각 특징점이 서로 matching될 확률값을 반환합니다.

➡️ 본 연구에서는 2D-2D matching model인 SuperGlue를 2D-3D point matching task에 맞춰 변형했습니다.

 

3D Point Preprocessing

DB에 있는 3D 좌표값은 GPS에서 사용하는 WGS84(World Geodetic System 1984)를 사용합니다.

이 방식은 데이터마다 좌표 값의 범위가 다르기 때문에 scaling과 reference 좌표의 정의가 필요합니다.

이를 위해 다음과 같은 3D 특징점 좌표값의 전처리 방법을 사용했습니다.

➡️ 각 데이터의 reference 좌표를 x,y,z의 평균으로 정의하고, reference 좌표로부터 +- delta를 boundary로 지정하여 filtering합니다. (아래 그림의 초록색 박스 영역)

➡️ filtering된 3D 특징점들의 좌표값을 으로 나누어 +-1 범위로 normalize 해줍니다.

하단의 이미지는 3D 특징점들을 (z좌표를 제외하고) 2D 평면에 시각화한 그림입니다.

Untitled

boundary 안에 ground truth 특징점들이 대다수 포함되어 있음을 확인할 수 있습니다.

 

Keypoint Encoder

Keypoint Encoder은 특징점의 location과 descriptor의 정보를 결합하는 단계입니다.

✅ 기존 SuperGlue는 두 이미지가 동일하게 특징점의 location 정보(x, y, confidence)를 MLP로 embedding 한 후 descriptor와 합치는 encoder을 사용했습니다.

Untitled

 

✅ 본 연구에서는 confidence를 input으로 넣는 대신, 특징점들을 사전에 지정한 threshold값을 사용하여 filtering하였습니다. 또한 2D 특징점의 (x, y)를 embedding하는 encoder와 3D 특징점의 (x, y, z)를 embedding하는 encoder를 각각 사용하였습니다.

Untitled

 

Score Normalization

Score Normalization은 score matrix를 normalization하여 각 특징점이 matching될 확률값을 계산하는 단계입니다.

✅ 기존의 SuperGlue model은 Sinkhorn Iteration이라는 최적화 알고리즘을 사용합니다. 이 알고리즘은 열과 행을 동시에 normalize합니다. 이는 두 장의 2D 이미지 특징점들이 양방향으로 1 : 1 matching 하는 것을 의미합니다. 해당 알고리즘은 학습 및 inference 시 많은 시간과 메모리가 필요하다는 단점이 존재합니다.

Untitled

 

✅ 2D-3D point matching model은 Softmax를 통해 normalize합니다. score matrix에서 행에 해당하는 2D 특징점에 대해서만 normalization을 해주게 됩니다. 이는 2D 특징점 기준 3D 특징점에 대해 단방향으로 N : 1 matching 하는 것을 의미합니다. 즉, 다른 2D 특징점이지만 같은 3D 특징점과 matching될 수 있습니다. 이 방식은 Sinkhorn에 비해 소모 시간과 메모리가 훨씬 짧다는 장점이 있습니다.

Untitled

 

Evaluation Result

  • Trained on 7570 samples and tested on 1488 samples
  • Trained for 47 epochs
  • GPU : Tesla K80

 

학습한 2D-3D point matching model을 평가할 때, 기존의 matching 방법이였던 KNN search와 비교했습니다.

또한, model을 평가할 때 Top 1, Top 3 Evaluation을 이용했습니다. Top 1 Evaluation은 가장 확률값이 큰 1개의 3D 특징점과 matching이 되는 것을 예측합니다. Top 3 Evaluation은 확률 값이 가장 큰 3개의 3D 특징점과 matching이 되는 것을 예측합니다.

Untitled

 

With filter

test data의 3D 특징점을 filtering 하고 evaluation을 진행한 결과입니다.

Untitled

 

Without filter

test data의 3D 특징점을 filtering하지 않고 evaluation을 진행한 결과입니다.

Untitled


Inference time & memory

Untitled

 

Output Visualization

각 이미지에서 좌측 이미지는 2D 특징점을 query image에 표시한 것이고, 우측 이미지는 3D 특징점을 DB 내 정보를 이용하여 이미지 위에 표시한 것입니다. 그리고 해당 특징점들이 서로 matching된 결과를 색상을 랜덤하게 설정하여 직선으로 나타냈습니다.

Untitled

Untitled

Untitled

 

Conclusion

  • 저희의 연구는 딥러닝 기반의 2D-3D point matching 기술입니다.
  • 기존 방식과 비교했을 때 최소 약 20%에서 최대 70%까지 evaluation metrics의 성능 향상을 이뤘습니다.
  • 기존 KNN search는 모든 2D 특징점에 대해 matching된 결과만을 반환합니다. 그에 비해 본 연구의 model은 matching이 되지 않는 경우까지 예측하기 때문에, outlier을 제거할 수 있다는 큰 contribution을 가집니다.
  • filtering 적용으로 성능 향상을 보임으로써, filtering 단계의 효과를 입증하였습니다.
  • 모델 경량화 이후 실제 서비스에 적용될 예정입니다.

 


 

Panel Detection

저희의 두번째 연구과제는 panel detection입니다.

 

Goal

2D-3D point matching을 진행하기 위해서 서버로 전달된 사용자의 이미지와 유사한 이미지를 DB 내에서 탐색하여 추출하는 과정이 선행됩니다. 이때 여러 장소에 존재하는 유사한 광고판에 의해 다른 장소가 후보군에 포함되는 문제가 발생하는데, 이는 matching의 정확도를 저하시킵니다.

저희는 광고판 영역을 제거한 후 이미지 후보군을 추출하고자, 이미지 내 광고판을 detection하는 연구를 진행하였습니다. 특히 사각형의 광고판을 검출하는 것을 목표로 설정했습니다.

Untitled

 

Model

Panel Detection의 base model은 YOLOv5 입니다.

YOLOv5는 one-stage detector로, 실시간으로 object detection 가능하고 낮은 용량과 빠른 속도로 검출할 수 있다는 장점을 가집니다.

 

Data

Panel Dataset(512x512, 5884장)

올바른 형태 외에도 비스듬한 광고판, 야간에 촬영된 광고판 등 다양한 형태의 광고판을 포함하고 있습니다. ground truth는 panel의 영역을 표시하는 point 좌표로, 하단 사진의 초록색 꼭짓점에 해당합니다.

Untitled

 

Synthetic Dataset(640x640, 약 2만장)

panel dataset은 대부분 버스정류장 광고판 이미지로 구성되어 있어, 데이터의 개수와 다양성면에서 부족하다고 판단했습니다. 따라서 다양한 상황에서 robust한 모델을 개발할 수 있도록 synthetic dataset을 생성하였습니다.

광고판 이미지와 유사한 이미지를 만들기 위해, COCO dataset을 활용하여 배경이미지 위에 시점, 이미지, 회전을 랜덤하게 적용한 이미지를 삽입하였습니다. panel data와 synthetic data를 1 : 3의 비율로 합쳐서 총 23,536장의 이미지를 이용하였습니다.

Untitled

 

Result

panel dataset과 synthetic dataset에 각각 학습하여 evaluation한 결과입니다.

  • GPU : Tesla K80

 

Evaluation on validation data

Untitled

Untitled

 

Evaluation on subway & outdoor data

실제 서비스화 되어 사용될 환경에서의 성능을 확인하기 위해, 지하철 및 옥외 광고판 이미지를 크롤링하여 test한 결과입니다.

Untitled

panel dataset과 synthetic dataset 모두 높은 확률로 지하철 및 옥외 광고판을 정확히 검출하였습니다.

특히 synthetic dataset으로 학습한 모델의 경우, 여러 광고판이 존재하는 이미지에 대해 우수한 성능을 보였습니다. outdoor 데이터의 첫번째 결과 이미지를 통해 이미지 내 여러 개의 사각형 물체 중 광고판만 정확하게 검출한 것을 볼 수 있습니다.

 

Conclusion

  • Synthetic dataset으로 다양한 상황 연출을 통해 robust한 모델을 개발하였습니다.
  • inference time이 평균 약 35fps으로, real-time task에 적용 가능합니다.
  • 검출된 광고판 이미지를 제거하여 2D-3D point matching 성능 향상에 기여할 수 있습니다.
  • SKT에서 보유하고 있는 지하철역 데이터에 대해 우수한 성능을 확인하여, 해당 기술은 실서비스에 탑재될 예정입니다.

 

 

SKT AI Fellowship을 통해 경험하기 어렵다고 생각했던 주제에 대해 공부하고 연구할 수 있었다는 것이 저희에게는 굉장히 큰 행운이었던 것 같습니다. 성스윗 성성현 멘토님!👨🏻‍🎤 6개월동안 도와주시느라 고생하셨고 너무너무 감사드려요.🥲 각자의 자리로 돌아가서도 AI 산업의 발전을 위해 열심히 노력하겠습니다. 감사합니다!👏🏻

yujin399 님의 최신 블로그

더보기

관련 블로그

데보션 스탬프 이벤트 안내 바로가기