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차원 위치 추정

3차원 비전 기술을 이용한 무인이동로봇의 위치인식(Localization)기술을 연구하고 있습니다. 로봇이 스스로 주행하기 위해서는 자신의 위치를 정확히 추정할 필요가 있습니다. 본 연구에서는 360도 레이저 거리정보와 3차원 지형정보 (DSM)을 등록하여 로봇의 위치를 추정합니다. 로봇의 주행 속도를 높이기 위하여 3차원 위치추정을 실시간으로 구현하고 있습니다.

구조광을 이용한 3차원 복원

  • Abstract


초소형 시스템을 이용하여 기존 구조광 기반의 위상 변위 방식 3차원 복원 알고리즘을 적용했을 때 발생하는
오차를 최소화하였다. 카메라와 프로젝터를 사용한 구조광 기반의 3차원 복원 기술은 프로젝터로 투영한 구조광과
카메라로 캡처한 구조광을 분석하여 3차원 정보를 얻는다. 이때 초소형 시스템의 장치들이 가지는
광학적인 결함은 좋지 않은 결과를 야기시킨다. 이 문제점을 해결하기 위하여 블룸 현상을
억제하고 구조광의 패턴으로 사용된 위상을 직접 보정하는 기술을 연구한다.

  • 1. 코사인 함수의 평균값 보정일정하지 않은 평균값을 동일하게 보정
  • 2. 블룸 현상(Bloom Effect) 최소화– 블룸 현상: 영상의 밝은 부분에서 그 밝기가 밝은 부분으로 인하여 더 밝아지는 현상
  • 3. 이상적인 영상의 교차점 이용 보정실제 획득 영상과 코사인 함수에서 나타나는 교차점의 이상적인 값 추정하고 값 재배치
  • 4. 시스템
  • 5. 실험 결과
ICP 알고리즘으로 정합 후 보정 전과 보정 후의 결과 비교

 

SLAM based on 2D Range Scan Matching

2DScan

 

 


SLAM (Simultaneous Localization and Mapping) is a technique used by a mobile robot to build a map within an unknown environment and at the same time compute its current location. Our research is based on matching two consecutive 2D range scans which are obtained from a LRF (Laser Range Finder) mounted on a mobile robot.


The most widely used algorithm for matching range scans is the Iterative Closest Points (ICP) algorithm. This algorithm is based on an iterative process in two steps: first a set of corresponding pairs between two consecutive scans is selected, and second the error between corresponding pairs is minimized to find the rigid-body transformation between two scans. This process is repeated until two scans are converged. The most critical part of the ICP is the establishment of corresponding point-pairs. For any point in the first scan, the conventional ICP algorithm finds the closest point in the second scan (the nearest neighbor) its correspondence.

 


While ICP has advantages of easy implementation, it has many drawbacks because of the non-linear characteristic. ICP can fall into a bad local minimum due to outliers, occlusions and poor initial alignment. Our research interest is to increase the performance of the conventional ICP and adapt it to the real-time SLAM. In order to speed up the convergence, the point-to-line metric is adopted. The point-to-line metric has quadratic convergence instead of linear convergence of the conventional point-to-point metric, as shown in the next figure.

 

2D_SLAM

 


nj is the normal vector of tangent line going through point mj. The point-to-line metric minimizes the Euclidean distance from pi to the tangent line through mj, which greatly increase the robustness of the ICP algorithm against sensor noises. Besides, the point-to-line metric can be weighted to reduce the impact of false correspondences caused by outliers and occlusions.

 

 

  • Demo Video

download

스테레오 특징점 정합

  • Abstract


In stereo vision researches, feature-based stereo matching algorithms have been widely used in the preference of low computation cost and high matching accuracy. This paper presents a new stereo matching algorithm based on feature links. The proposed method, which is called feature link matching, utilizes the length and color information of feature links in stereo images. The proposed algorithm is very effective to decide correct correspondence, thus increases accuracy of stereo matching. In addition, inner features which lie within a link are interpolated by an internal division method to increase the number of correct disparity values. For real-time applications of the proposed method, point features are determined by the FAST extractor. Three feature link constraints, epipolar, ordering, and length, are employed. In experimental results, feature link matching yields 1 pixel disparity accuracy of 98.6% which is the average of 5 sample images from the Middlebury stereo data. Average computation time is about 18.7ms.

 

 

  • Block Diagram

Distance between adjacent other features. Stereo matching at same distance

  • Feature Link

 

  • Result

 

  • Accuracy at Feature Points

 

  • Demo Video

download

주부 카메라를 이용한 3차원 영상 생성

  • Abstract


입체 TV가 대중의 관심을 끌면서 최근 입체 영상으로 제작된 3차원 컨텐츠들과 입체영상을 제작하는 시스템들이 많이 개발되고 있다. 입체 영상 시스템은 일반적으로 인간이 양안을 통하여 거리감을 느낄 수 있다는 점을 바탕으로, 좌우 영상간의 에피폴라인(epipole line)을 일치시키기 위해 동일한 사양의 두 카메라를 이용한다. 우리는 다른 사양의 CCD센서를 가진 주-부 카메라를 기반으로 한 입체 영상 시스템을 제안하여 동일한 사양의 카메라들에 비해 가격 경쟁력을 가질 뿐 아니라 고해상도 영상을 보여줄 수 있다.
주-부 비전 카메라 기반의 입체 영상 시스템은 오른쪽 영상과 왼쪽 영상이 각각 주카메라와 부카메라에 입력되어 NVIDIA 모니터를 통해 입체 영상으로 출력되며, 사용자는 셔터 안경을 쓰고 출력된 영상을 보게 된다. 이러한 환경에서 사용자는 서로 다른 CCD센서를 사용하는 주카메라와 부카메라를 사용하므로 수직, 수평이 제어 되지 않은 입체 영상에 대해 피로감을 느낄 수 있다. 제안한 시스템에서는 자연스러운 입체감을 느낄 수 있도록 수직 및 수평 시차에 대한 오차를 제어할 수 있도록 한다. 아래의 그림은 제안한 시스템의 실시간 처리 과정을 보여준다.
1) 주-부 카메라에 입력된 각각의 왼쪽, 오른쪽 영상 획득
2) 획득한 두 영상을 DirectX를 이용하여 GPU의 텍스쳐버퍼(texture buffer)로 업로드(upload).
3) GPU로 업로드된 영상들은 CUDA를 이용하여 고속으로 영상처리가 시행됨
4) 두 카메라의 위치 정보로 구해놓은 호모그래피 행렬로 출력될 영상 픽셀들의 위치 보정
5) 영상들은 DirectX하에서 보정된 위치 값과 스테레오 헤더 정보를 가지고 CPU의 surface버퍼로 복사되어 최종 디스플레이의 back버퍼로 복사.
6) 입체 영상은 그래픽 디스플레이의 다중 버퍼링 기술을 이용하여 고속 출력.

 

 

  • Block Diagram

배관 결합 검사 시스템


배관의 결함을 검사하기 위해서는 정확한 배관의 복원이 필요하다. 배관복원의 정확도가 높아지면 배관결함의 검사의 정밀도가 높아진다. 보다 정확한 배관 복원을 위해서 우리는 레이저와 카메라를 이용하였다. 배관 검사를 위해 제작된 장치는 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차원 정보처리의 가장 핵심이되는 정렬(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)