|
|
|
|
|
School of Electronics Engineering, Kyungpook National University, South Korea
입체 TV가 대중의 관심을 끌면서 최근 입체 영상으로 제작된 3차원 컨텐츠들과
|
|
|
|
|
전체 진행 과정 RANSAC 기반 3차원 모션 추청 Lebenverg-marquardt 알고리즘을 이용한 re-projection 오류 최소화 로봇 플랫폼 실험: 실내 주행 복귀 – Demo Video: download (WMV, 21.4MB)
|
|
|
|
|
|
|
|
|
|
|
배관의 결함을 검사하기 위해서는 정확한 배관의 복원이 필요
|
그림 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장의 영상을 획득하였다. 직선 배관 복원 방식으로 축 중심 및 방향을 일치 시키는 방법을 이용하면 곡선 배관의 쏠림 현상으로 인해 결함 검출이 힘든 상태이다. 하지만, 곡선 배관 복원 방법을 이용하면, 결함 검출이 용이한 형태로 복원이 된다. |
본 연구에서는 다시점에서 획득한 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뷰 |
|
|
스테레오 비전 기술은 두 대의 영상 카메라를
|
그림 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차원 도로 및 환경지도 작성 결과 |
|