회전 3D 센서를 이용한 3차원 족부 스캐너

Abstract

맞춤형 신발을 제작하기 위해서는, 사용자의 정밀한 발 형상 데이터가 필요하다. 발 형상 데이터를 획득하기 위해 주로 3차원 족부 스캐너를 사용한다. 시중에 공개된 3차원 족부 스캐너들은 일반적으로 카메라와 라인 레이저로 구성된 3D 센서가 선형 이동을 하며 스캔한다. 선형 이동의 특성상 하나의 3D 센서로 족부의 모든 표면을 스캔할 수 없다. 따라서 여러 개의 3D 센서를 족부 다방면에 배치하여 스캔한다. 센서의 수가 늘어남에 따라 장치의 전체 가격이 높아지는 단점이 있다. 따라서 본 연구는 회전 3D 센서를 이용한 회전 방식의 3차원 족부 스캐너를 연구한다. 회전 이동하는 하나의 3D 센서로 족부의 모든 측면을 스캔할 수 있어, 보다 적은 양의 센서로 족부 전체의 스캔이 가능하다.

 

장치 구성

회전 이동을 할 수 있게 스캐너는 원통 형태이며, 회전 이동을 위한 회전 스테이지와 선형 이동을 위한 선형 스테이지로 구성되어 있다. 회전 3D 센서는 회전 스테이지를 따라 회전 이동하며 족부 측면을 스캔한다. 선형 3D 센서는 선형 스테이지를 따라 선형 이동하며 족부 바닥을 스캔한다.
그림1

 

3D 센서 구성

일반적인 3D 센서는 하나의 라인 레이저와 카메라로 구성되어 있다. 하지만 해당 센서를 회전 이동에 사용할 경우 스캔 과정에서 족부의 표면이 지속적으로 변화하여 많은 폐색 현상(Occlusion)이 발생한다. 이러한 문제를 해결하기 위해 두 개의 라인 레이저와 하나의 카메라로 회전 3D 센서를 구성한다. 하나의 라인 레이저가 족부 표면에 의해 폐색되더라도 이전의 위치에서 다른 라인 레이저로 폐색 영역의 스캔이 가능하여, 전체적인 폐색 현상을 줄일 수 있다.
그림2

 

획득 영상

 

스캔 결과

Multi-Kinect 기반 Full 3D 스캐닝

Abstract

360도 방향에서 촬영한 물체를 3D 로 복원하기 위해, 카메라간의 기하관계를 알아야 한다. 이러한 카메라 간의 기하 관계를 간편히 구할 수 있도록, MS사의 Kinect V2와 단일 시점에서도 항상 원형을 유지하는 구형 물체를 활용하여 키넥트 간의 기하 관계를 알아내고 3D로 복원하는 것을 연구한다.

 

각 키넥트에서 획득한 볼의 중심 궤적을 활용하여 시점간의 기하관계 추출

 

모델 생성

 

4D Mesh Video 생성

GPU 가속을 이용한 실시간 3차원 모델링

휴대 가능한 거리센서를 이용하여 다시점 거리 영상을 획득함과 동시에

  • Abstract


Multi-view range image registration is a technique of bringing range images obtained from different camera coordinate systems to a common coordinate system. It is one of the important steps to generate complete 3D models of real objects from 3D range sensors. In recent years, many investigations have addressed multi-view range image registration. However, it is usually a time-expensive and difficult task whose accuracy affects the quality of final 3D models. Thus, conventional investigations usually focus on accurate implementation of registration refinement. Registration refinement is also a 3D shape matching technique which finds correspondence between different 3D shapes. It usually needs considerable computation because that 3D data from a range sensor consists of hundreds of thousand of points. In this reason, few systems have addressed real-time registration problem. In this paper, we propose a real-time and on-line 3D registration system which acquires and registers multi-view range images simultaneously. Continuously obtained range images from a hand-held range sensor are registered by using a geometric refinement techniques run on a GPU. To register range images in real-time, we employ a GPU(Graphic Processing Unit) programming technique. GPU is a processor for graphic work originally, however recent computer vision researches employ GPU for fast and real-time implementation of computer vision algorithms such as KLT tracker and SIFT. We implement a point-to-plane registration refinement technique using GPU. To use up-to-date techniques of GPU, we use the CUDA architecture which is available beyond Geforce 8 series graphic boards from NVIDIA. Most linear algebra used in the refinement process is implemented by GPU programming except a least squares minimization. For experiments with real objects, a hand-held stereo camera is used to
continuously obtain range images. Results in this extended abstract show the proposed system can registered the range images in very fast time.

  • Demo Video
– Beethoven plaster model : download(avi, 26.1MB)
– Budda statue : download(avi, 46.6MB)

스테레오 비전 센서를 이용한 3차원 지도 생성

전체 진행 과정 RANSAC 기반 3차원 모션 추청 Lebenverg-marquardt 알고리즘을 이용한 re-projection 오류 최소화 로봇 플랫폼 실험: 실내 주행 복귀 – Demo Video: download (WMV, 21.4MB)

  • 전체 진행 과정
  • RANSAC 기반 3차원 모션 추청
  • Lebenverg-marquardt 알고리즘을 이용한 re-projection 오류 최소화
  • 로봇 플랫폼
  • 실험: 실내 주행 복귀


– Demo Video: download (WMV, 21.4MB)

배관 결합 검사 시스템

배관의 결함을 검사하기 위해서는 정확한 배관의 복원이 필요


배관의 결함을 검사하기 위해서는 정확한 배관의 복원이 필요하다. 배관복원의 정확도가 높아지면 배관결함의 검사의 정밀도가 높아진다. 보다 정확한 배관 복원을 위해서 우리는 레이저와 카메라를 이용하였다. 배관 검사를 위해 제작된 장치는 4개의 선형레이저와 하나의 카메라로 구성되었다. 100mm 배관을 목표로 하기 때문에 장치의 직경은 약 70mm 이다. 곡선 배관부도 복원 할 수 있어야 되기 때문에 전방으로 길게 돌출되어 있는 전방향(omni-direction) 레이저를 사용하는 대신에 폐곡선을 생성하도록 4개의 선형레이저를 이용한다. 4개의 레이저와 카메라간의 위치관계를 정확하게 보정하여 복원 정확도를 향상시킨다. 4개의 레이저를 보정하는 것은 카메라좌표계를 기준으로 각각의 레이저 평면의 방정식을 계산하는 과정이다. 4개의 레이저 평면의 방정식을 획득한 후 검사장치는 배관내부를 따라 이동하면서 배관내부에 반사된 레이저 영상을 획득한다. 획득된 각각의 영상과 카메라 및 레이저의 보정정보를 이용하여 단일영상에 대한 배관을 복원할 수 있다. 하지만 복원된 배관은 이동할 때에 흔들림과 같은 요인들로 인해서 축의 방향 및 축 중심의 위치가 일치하지 않는다. 우리는 연속적인 배관복원의 결과가 정확하도록 직선 및 곡선 배관으로 나뉘어서 축의 일치화를 구현하였다. 직선 배관의 경우는 축의 중심 및 축의 방향을 일치하도록 하였고, 곡선 배관의 경우는 곡선 배관은 Torus의 일부로 가정하여 ICP 방법을 이용하여 Torus의 중심 원상에 곡관복원 모델의 중심이 있도록 하였다.

 

그림 1. 배관 복원 순서

    0. 다중레이저와 카메라를 이용한 배관검사장치

배관검사장치는 배관결함검사로봇(상)의 일부로 진행방향을 기준으로 가장 앞쪽에 위치한다. 100mm 배관을 목표로 하기 때문에 실제 배관 검사에 사용되는 모듈(좌하)은 직경이 100mm이고 실험용으로 사용하는 경우(중하,우하)는 70mm 정도이다. 두 가지 모듈에서 동일하게 4개의 선형레이저와 레이저의 방향을 바꿔주는 반사경, 중심에 고해상도 흑백 아날로그 카메라로 구성되어있다. 렌즈는 영상획득 시 화각을 고려하여 3.5mm 광각 렌즈를 사용하였다.

 

 

그림 2. 배관 검사 로봇과 결함 검사 모듈

    1. 카메라와 레이저간의 보정

카메라와 레이저의 보정은 반복적인 과정을 통해서 이뤄진다. 최초 보정평면을 이용한 보정과정에서 레이저 평면이 결정이 되면 평면과 단일 영상을 이용하여 배관 모델을 복원한 후 배관의 축을 계산한다. 배관의 축을 중심으로 하여 이미 알려진 배관의 직경에 맞는 가상의 배관을 생성한다. 영상의 레이저의 ray가 가상 배관과 만나는 점을 계산하고 이 점들을 이용하여 새로운 레이저 평면들을 계산한다. 이전 평면과 새롭게 구해진 평면간의 차가 일정 수준 이하가 될 때까지 계산을 반복한다.

 

 

그림 3. 카메라와 레이저간의 반복적 보정 모듈

    2. 단일 영상에 대한 배관 복원

선형레이저와 카메라간의 보정 과정을 통해서 레이저 평면의 방정식과 카메라의 내부 변수들을 획득한 후, 우리는 이들 정보를 이용하여 카메라좌표계에서 레이저가 물체에 반사되는 점들의 위치를 3차원으로 계산할 수 있다. 다중 레이저를 이용하여 폐곡선을 생성하는 경우에는 한 장의 영상으로부터 배관 내부의 일부분을 복원할 수 있다.

 

그림 4. 레이저평면과 카메라영상을 이용한 물체 복원

    3. 축 중심 및 방향의 일치화를 통한 연속 영상에 대한 직선 배관 복원

단일 영상을 이용하여 계산된 배관 모델들을 이용하여 배관 전체를 복원할 수 있다. 하지만 각각의 단일 영상으로부터 복원된 모델은 카메라좌표계상에세 복원되었기 때문에 전체적인 배관의 형상을 만들기 위해서는 공간좌표계로 바꾸어주는 과정이 필요하다. 직선 배관의 경우에는 축 중심과 축 방향의 일치화를 통해서 연속적인 복원 모델 생성이 가능한다. 검사 모듈이 일정 속도로 이동함을 가정하여 축 방향을 따라 일정한 간격으로 단일배관 모델을 나열한다.

 

그림 5. 축 중심 일치화(좌) 및 축 방향 일치화(우)

    4. Torus 접합을 통한 연속 영상에 대한 곡선 배관 복원

직선 배관부와 달리 곡선 배관부는 실린더 모델을 가정하여 단일 영상에서 복원된 모델에 대해서 축 중심, 방향 을 계산할 수가 없다. 대신에 곡선 배관부는 torus의 일부로 가정할 수 있다. Torus의 일부로 가정하는 경우 정확하게 torus에 접하도록 위치하여야 하는데 이는 ICP 방법을 이용하였다. 최초 일부분만 생성된 torus의 무게 중심에 단일 영상에서 복원된 곡선 배관 모델의 무게중심을 이동 시키고 ICP를 이용하면 적은 이동 및 회전 변환을 통해서 곡관부에 접한다. 곡선 배관에서 검사 모듈이 일정한 각속도로 이동함을 이용하여 단일배관 모델을 배열한다.

 

그림 6. 연속적인 곡관부 복원 모델의 torus 일부로 접합

    5. 결과     (1)직선 배관 정렬 결과

직선 배관에서 70장의 영상을 손으로 이동하는 실험의 경우 배관 축의 정렬이 이뤄지지 않은 경우에는 복원 모델이 직선 배관과는 거리가 멀다. 하지만, 중심 정렬 및 축 방향 정렬이 이뤄지면서 직선 배관의 형태를 띈다. 또한 투영한 결과에 서 보듯이 배관 축방향에 따른 오차가 줄어든다는 것을 알 수 있다.

     (2) 곡관부 정렬 결과

곡선 배관에서 손으로 이동하여 30장의 영상을 획득하였다. 직선 배관 복원 방식으로 축 중심 및 방향을 일치 시키는 방법을 이용하면 곡선 배관의 쏠림 현상으로 인해 결함 검출이 힘든 상태이다. 하지만, 곡선 배관 복원 방법을 이용하면, 결함 검출이 용이한 형태로 복원이 된다.

고속 다시점 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)

스테레오 비전 기반의 3차원 도로 및 환경지도 작성

스테레오 비전 기술은 두 대의 영상 카메라를


스테레오 비전 기술은 두 대의 영상 카메라를 사람의 눈과 같은 형태로 일정한 간격을 두고 배치하고 두 개의 서로 다른 시점에서 물체의 영상을 획득하여 활용하는 기술이다. 스테레오 비전 기술을 사용하면 2차원 영상 정보를 사용할 수 있을 뿐만 아니라 3차원 거리 또는 지도 정보를 동시에 획득할 수 있다. 이렇게 획득된 3차원 거리정보를 활용하면 카메라의 중심에서 물체까지의 거리를 측정할 수 있을 뿐만 아니라 스테레오 카메라가 주시하고 있는 차량전방의 3차원 형상을 실시간으로 추출할 수 있다. 또한 주행경로에 따라 획득된 3차원 거리정보를 서로 정합하게 되면 차량이 주행하고 있는 환경의 3차원 월드모델도 복원할 수 있게 된다.


그림 1. 스테레오 비전 기반 3차원 지도생성 시스템 개요

    0. 스테레오 카메라

실험에는 PointGrey사의 Bumblebee XB3 스테레오 센서가 사용되었다. 실험동안 800×600 해상도의 영상을 획득하였으며, 왜곡을 보정하기 위해 영상개정(image rectification) 작업을 매 프레임에 대해 선행적으로 진행하였다.

 

그림 2. 차량에 탑재된 스테레오 비전기반 3차원 복원 시스템. (a) 차량외부 모습, (b) 차량내부 모습

    1. 자세 추정 및 매칭 알고리즘

연속하는 스테레오 영상 프레임에 대해 카메라의 모션을 추정하는 과정은 다음과 같다. 먼저 2차원 영상이 입력되면 SURF[1] 알고리즘을 이용하여 t-1과 t시간에서 각각 획득한 영상에 대한 2차원 특징점들을 추출한다. 이후 추출된 2차원 특징점들 사이를 서로 매칭하여 t-1과 t프레임 사이의 일치점군을 획득한다. 초기 매칭결과는 잘못된 페어링으로 인한 오류를 포함할 수 있으므로 에피폴라 기하제약과 RANSAC 알고리즘을 적용하여 외치점(outlier)을 제거해야만 한다[2]. 외치점이 제거된 일치점군이 생성되면, 깊이정보를 가지고 있는 2.5차원 거리영상을 이용하여 t-1과 t시점 사이의 3차원-3차원 매칭 관계를 확보할 수 있으며, 이로부터 두 시점 사이의 변환행렬을 계산할 수 있다. 하지만 스테레오 매칭의 오류로 인해 2.5차원 거리영상의 정보가 부정확한 경우도 있기 때문에, 두 거리데이터 사이의 강체지속 제약과 RANSAC 알고리즘을 접목하여 잘못된 3차원-3차원 매칭결과를 효과적으로 제거하였다.

 

그림 3. 실험이 실시된 경북대학교의 위성영상 및 주행 경로 (주행거리 약 1130m)

    2. 결과

그림 3은 실험이 진행된 환경 및 주행 경로에 대한 위성영상을 보여준다. 실험과정 및 결과의 이해를 돕기 위해 차량이 실제로 주행했던 궤적을 GPS로 획득한 뒤, 위성영상에 붉은색의 곡선으로 표시하였다. 그림 4는 본 연구에서 제안한 방법을 사용하여 3차원 도로 및 환경지도를 작성 결과를 보여준다. 주행경로가 상당히 길었던 관계로 복원된 3차원 지도의 특정 부분을 별도로 확대하여 제시하였다. 그림 4의 결과에서 알 수 있듯이 복원된 3차원 환경지도의 모습이 GPS의 궤적과 상당히 유사함을 알 수 있다. 또한 복원된 3차원 장면도 매우 정교하게 복원된 것을 확인할 수 있다.

 

그림 4. 스테레오 비전센서를 이용한 3차원 도로 및 환경지도 작성 결과


– Demo Video: download (WMV, 76.8MB)