고속 다시점 3D 깊이 데이터 정렬 및 정합

본 연구에서는 다시점에서 획득한 3차원 깊이 정보를


본 연구에서는 다시점에서 획득한 3차원 깊이 정보를 고속으로 정렬하고 정합하는 연구를 수행하였다. 최근 3차원 비전 센서의 발달로 인하여 값싸고 고속으로 물체의 3차원 정보를 획득할 수 있는 센서들이 개발되고 있다. 3차원 센서를 사용하여 물체의 3차원 형상을 획득하기 위해서는 다시점 3차원 정보처리가 필수적이다. 다시점 3차원 정보처리의 가장 핵심이되는 정렬(registration) 및 정합 (integration)을 고속으로 처리하기위한 연구는 아직 진행된 바가 많지 않다. 따라서 본 연구에서는 3차원 깊이 정보를 고속으로 정렬 및 정합할 수 있는 기술을 개발하는 것이 목표이다.

 

그림 1. 연구과제의 추진방향

    0. 3차원 깊이센서의 보정

카메라 보정은 잘 알려진 체스보드 패턴을 이용하며, 먼저 체스보드 패턴을 찍은 RGB카메라의 컬러 영상과 IR카메라의 영상을 동일한 장면에 대해 쌍으로 획득한다. 두 카메라의 보정을 하기 이전에 정확한 내부파라미터 및 렌즈 왜곡 계수를 획득하기 위해 각각 카메라 보정을 실행한다. IR카메라와 RGB카메라 사이의 상대 자세를 획득하기 위해 스테레오 보정을 시행하고 그 결과 깊이 정보와 컬러 화소의 일대일로 대응되는 매핑 관계를 구함으로써 정확한 3차원 정보를 얻을 수 있다.

 

그림 2. RGB-IR 카메라의 보정 과정

    1. 다시점 깊이센서의 시점 보정

4대의 Kinect간의 보정을 하기 위해서는 1번 Kinect를 기준으로 한 후 나머지 Kinect간의 보정을 시행한다. 각 Kinect를 보정한 후 각 Kinect에서 복원된 3차원 거리 정보와 색상정보를 보정하여 하나의 3차원 모델로 완성시킨다. 일렬의 과정은 실시간으로 시행된다. 아래의 그림 4은 4대의 Kinect를 보정하여 모델을 완성한 예이다.

 

 

그림 3. 4대의 Kinect를 보정한 예

    2. CUDA를 이용한 고속 다시점 합성 모델링 시스템

시스템의 초기화 단계에서는 먼저 이전 장에서 소개한 다시점 Kinect 보정 알고리즘을 사용하여 획득한 각 Kinect의 보정 파라미터 및 투영행렬을 GPU 메모리에 업로드 한다. 본 연구에서 활용하는 3차원 다시점 거리센서는 고정된 리그에서 움직이지 않는 특성을 가지고 있기 때문에 보정 파라미터는 최초 한번만 CPU에서 GPU로 복사하는 과정을 거친다. 시스템 초기화 시 GPU 단에서는 CUDA와 OpenGL의 그래픽스 파이프라인을 연동하기 위한 일련의 과정이 진행된다. 이 과정은 GPU 메모리에 존재하는 CUDA 커널 프로그램의 실행 결과들을 다시 CPU 쪽으로 보내지 않고 곧바로 그래픽스 처리에 활용하기 위한 것이다. 엔드유저의 모니터에 3차원 합성 모델을 출력하는 것이 본 시스템의 최종 단계인 것을 고려하면 시스템의 운용적인 측면에서 속도향상의 이점이 있기 때문에 이는 매우 중요한 과정이라고 할 수 있다. 초기화 이후 메인루프에 들어가면 시스템은 본격적으로 고속 다시점 합성 모델을 생성하기 위한 일련의 과정을 거치게 된다. 일단 CPU 단에서 각 Kinect로부터 RGB영상과 깊이 영상을 획득하면 앞선 절에서 소개한 Kinect의 IR-RGB 카메라 보정과정을 통해서 깊이 화소에 컬러정보가 입혀진 거리영상을 각 시점 별로 생성한다. 이렇게 생성된 컬러 다시점 거리영상은 CUDA API 함수를 통해 GPU 메모리에 적재되며, 곧바로 GPU는 고속으로 3차원 모델을 생성하기 위해 총 3개의 CUDA 커널 프로그램을 실행시킨다.

 

그림 4. CUDA를 이용한 실시간 3차원 모델링 시스템

    3. 결과

고속으로 3차원 깊이센서 정보를 정렬하기위하여 깊이센서의 거리 획득 기능을 적극 활용하였다. 두 가지의 정렬방법 중 첫째로 카메라 보정에 많이 사용하는 보정판의 RGB 영상 및 깊이 영상을 획득하고 영상에서 보정판의 코너점들의 2차원 및 3차원 정보를 추출하였다. 추출된 코너점의 일치정보를 이용하여 깊이 센서간의 좌표변환 관계를 계산하였다. 두 번째 방법으로 쉽고 빠른 시점 보정 기술을 제안하였다. 이 방법은 구 모양의 보정물체의 깊이 정보와 RGB영상에서의 구의 영역을 추출하고 보정 물체의 3차원 이동 궤적을 정합하는 기술에 기반하였다. 시점 보정된 다시점 3차원 깊이정보들은 GPU기반의 Marching Cubes 알고리즘을 사용하여 고속으로 정합하였다. 3차원 공간상에 정의된 복셀들의 부호거리를 빠르게 계산하고 복원 물체의 메쉬구조를 복원하였다. 복원된 메쉬의 색상 정보를 합성하여 실제 물체의 모습과 유사한 3차원 모델을 복원할 수 있었다.

 

 

그림 5. 사람 반신에 대한 합성 모델 결과: (a) 입력 거리영상, (b) 합성 결과에 대한 360뷰


– Demo Video( Ball registration ) : download (WMV, 27.6MB)


– Demo Video: download (WMV, 6.96MB)