728x90
반응형

 

Object Detection 분야는 대부분 2차원 객체 탐지만을 다루고 있다. 2차원 객체를 탐지하는 것은 2차원 바운딩 박스만 있지만, 3차원 객체 탐지로 범위를 확장한다면, 물체의 크기 및 위치, 방향 등을 알 수 있으므로 자율 주행 및 이미지 검색, 증강 현실에서 다양한 분야에 응용 할 수 있다.

 

가령, 2D Human Pose Estimation 분야에서 3차원 정보가 아주 조금 필요한 도메인이라면, 3D Human Pose Estimation 까지 연구의 범위를 확장 안하고도 문제를 해결 할 수 있지 않을까 라는 생각을 했다. 즉, 사람에 대한 2차원 바운딩 박스 정보를 3차원으로 추출 할 수 있다면, 꽤 vanilla 적인 접근으로 여러가지 문제를 해결할 수 있지 않을까 ㅎㅎ 심지어 이건 모바일에서 작동하기 때문에 속도도 빠르다는 큰 장점이 있다.

 

(역시나 모바일 환경에서 작동하기 때문에 신경망 구조는 Backbone 은 MoblieNet v2를 기반으로 하는 인코더, 디코더로 구성되어있다.)

 

 

2020 TensorFlow Developer Summit 에서 Google 이 2차원 영상에서 3차원 객체의 포즈와 크기를 추정 할 수 있는 모델인 Objectron 을 공개하였다. 

 

3차원 객체 추적은 제한된 컴퓨팅 리소스로 인하여 처리가 까다롭고, 특히나 비디오 환경에서의 데이터가 부족하다는 어려움을 갖고 있다. 그래서 Google 은 3차원 split-screen view 를 사용하여 2차원 비디오 프레임 들을 통해 3차원 바운딩 박스에 레이블링을 할 수 있는 Annotator 를 개발하였다. 3차원 바운딩 박스는 point cloud, camera position, detected plane 과 함께 배치된다. Annotator 는 3차원 뷰에서 3차원 바운딩 박스를 그리고, 2차원 비디오 프레임의 projection 을 review 하여 위치를 확인하고 있으며, 정적인 객체의 경우 대상 객체에 단일 프레임으로 주석을 달면 된다. 이 도구는 AR session data 에서 실제 카메라 포즈 정보를 이용하여 객체의 위치를 모든 프레임으로 propagation 하였다. 

 

 

AI 모델의 예측 정확도를 높이기 위하여 즉, 실제 real-world 에서 사용될 수 있도록, 학습 데이터를 보완하기 위해, Google 은 AR session data 가 포함되어있는 기존 장면에 virtual object 를 배치하는 엔진을 개발하였다. 이는 carmera pose, detected planar surface, estimated lighting 을 사용하여 객체들을 처리함으로써, 실제 배경에 렌더링 된 객체들이 자연스럽게 녹아 들도록 고품질의 합성 데이터를 생성하였다. 이러한 합성 데이터들로 정확도를 약 10% 정도 향상 시켰다고 한다. 

 

 

 

2020.03.11 기준으로 최신 버전의 objectron 모델이 모바일 장치에서 실시간으로 실행할 수 있을 정도(약 초당 26프레임 처리)로 가볍게 만들었다고 한다.

실제 모바일 테스트 환경 : With the Adreno 650 mobile graphics chip found in phones like the LG V60 ThinQ, Samsung Galaxy S20+, and Sony Xperia 1 II, it’s able to process around 26 frames per second.

 

MediaPipe 에서 훈련된 모델과 end-to-end 데모를 이용할 수 있다고 한다. 

 

 

이와 같이 3차원 객체 탐지를 수행하기 위해서 Google 은 주석이 달린 바운딩 박스를 사용하고, 상자 중심에 중심을 두고, 상자 크기에 비례하는 표준 편차를 사용하여 Gaussian 을 적용하였다. 그 다음 detection 의 목표는 물체의 중심 위치를 나타내는 peak 분포를 예측하는 것이다. Regression 작업은 8개의 바운딩 박스 vertex 의 2차원 projection 을 수행하며, 바운딩 박스에 대한 최종 3차원 좌표를 얻기 위해 이미 잘 작동하는 포즈 추정 알고리즘인 Established Pose Estimation(EPnP) 알고리즘을 활용한다. 객체의 차원에 대한 정보 없이도 객체의 3차원 바운딩 박스를 복원해 낼 수 있다. 3차원 바운딩 박스가 주어지면 객체의 포즈와 크기를 쉽게 계산 할 수 있다고 한다. 

 

 

 

모바일 장치에서 캡쳐된 모든 프레임에 모델을 적용하면 각 프레임에서 추정된 3차원 바운딩 박스의 모호성으로 인하여 jitter 가 발생할 수 있는데, 이를 해결하기 위해 Tracker 를 사용한다. 그래서 모든 프레임에서 객체를 탐지하는 작업을 수행하지 않고, 더 무겁고 정확한 모델을 사용하면서, 모바일 장치에서 이러한 파이프라인을 실시간으로 작동 가능하도록 하였다. 또한 프레임 간 객체 identity 를 유지하고, 예측의 일관성을 유지하여 jitter 를 줄인다. 

 

 

 

 

 

 

 

 

참고자료 1 , Google Objectron Youtube : https://www.youtube.com/watch?v=DbgRkYSah_g

 

참고자료 2 : https://venturebeat.com/2020/03/11/googles-objectron-uses-ai-to-track-3d-objects-in-2d-video/

 

Google’s Objectron uses AI to track 3D objects in 2D video

Google's Objectron model can track 3D objects from 2D imagery, and it's lightweight enough to run on any modern smartphone.

venturebeat.com

 

참고자료 3 : https://mediapipe.dev/

 

MediaPipe

Free and open source Available under Apache 2.0 with an ecosystem of reusable components Build once, deploy anywhere Same solution works across mobile (Android/iOS), desktop/server and the web End-to-end acceleration Fast ML inference and pre/post-processi

mediapipe.dev

 

참고자료 4 : https://ai.googleblog.com/2020/03/real-time-3d-object-detection-on-mobile.html

 

Real-Time 3D Object Detection on Mobile Devices with MediaPipe

Posted by Adel Ahmadyan and Tingbo Hou, Software Engineers, Google Research Object detection is an extensively studied computer vision p...

ai.googleblog.com

 

728x90
반응형