논문 2011-3-12
OPRoS를 위한 3차원 물체 인식 컴포넌트 개발
Development of a 3D Object Recognition Component for OPRoS
한창호*, 오춘석**
Chang-Ho Han, Choon-Suk Oh
요 약 본 논문에서 최근 다양한 로봇에 기존에 개발된 소프트웨어를 쉽게 적용하기 위한 플랫폼 개발에 기여하고 있는데, 국내에서 개발한 지능형로봇 개발을 위한 공통기반 플랫폼(OPRoS)에서 동작하는 3차원 물체 인식 컴포넌트 개발한 내용을 기술하였다. 컴포넌트 구성 내용과 3차원 공간 인식을 위해 사용한 기존 시각차 맵과 깊이 맵에 대한 알고리즘에 대한 언급을 했으며, 또한 시각차 맵을 만들기 위해 스테레오 매칭 방법과 블럭 매칭 방법을 표현했다. 기존 알고리즘으로 만들어진 컴포넌트는 OPRoS가 탑재된 컴퓨터에서 동작을 시켜 실험을 하였다.
Abstract Recently, many researchers in the world are concentrated to develop the robot platform which is to reduce the developing cost by reusing existing softwares. In this paper, we describe that the 3 dimension recognition object components for OPRoS (Open Platform for Robotic Services) which is developed in Korea.
We present that the structure of the component, disparity map and depth map algorithm for recognizing 3 dimension space. We used stereo matching and block matching method to produce the disparity map. We test the component on the computer with OPRoS platform and show the results of accuracy and performance time.
Key Words : Robot Operation System, Robot Platform, Disparity, Depth map, Stereo Vision
I. 서 론
최근 로봇관련 분야에서의 연구개발[1],[2]이 활발히 진 행되고 있으며, 다양한 서비스를 제공하는 지능형 로봇 이 관심을 끌면서 하드웨어를 운용하는 소프트웨어가 갈 수록 복잡해지고 확장성 및 호환성 등이 매우 시급한 문 제로 제기되고 있다. 즉 기존에 개발된 소프트웨어를 다 른 로봇에 활용을 하려고 하면 대부분이 새롭게 만들어 야 하는 문제 등이 발생한다. 또한 현재 다양한 로봇을 많이 요구하고 있는 시점에서 하드웨어 부분에 집중하는 것보다 로봇을 운영하는 콘텐츠에 집중하고 있는 실정이
*준회원, 선문대학교 정보통신공학과
**정회원, 선문대학교 정보통신공학과(교신저자) 접수일자 2011.3.8, 수정일자 2011.4.24 게재확정일자 2011.6.10
다. 뿐만 아니라 기존에 개발하여 검증한 하드웨어 및 소 프트웨어를 재활용함으로써 새로운 로봇을 개발하는데 걸리는 시간을 줄이는 노력을 하고 있다.
많은 국가에서 다양한 요구 조건으로 로봇용 소프트 웨어 플랫폼에 대한 연구를 하고 있다. 일본과 유럽의 경 우 정부 주도로 로봇 소프트웨어 개발을 했고 추가적으 로 확장하여 수행하고 있다. 미국은 특수 목적의 로봇 시 장을 목표로 ERSP 및 MSRDS 등 다양한 로봇 소프트웨 어 플랫폼을 개발해 시장에 제공하고 있다. 미국의 에볼 루션로보틱스(ER)사에 의해 지난 2004년 개발된 ERSP 는 그동안 고도의 기술력이 필요했던 비전 기반의 모바 일 로봇 제어를 간단한 프로그램 작업으로 구현해 지능 형 로봇 개발에 널리 사용 되고 있다. MS도 2008년 12월 윈도 전용의 로봇 소프트웨어 개발 툴인 ‘MS 로보틱스 스튜디오(MSRS) 1.0’을 발표하면서 로봇 시장에 진출했
다. 국내에서 로봇 소프트웨어 개발은 지식경제부와 OPRoS (Open Platform for Robotic Services)[3],[4]라는 로봇 소프트웨어 플랫폼 개발팀은 총괄운영위원회를 구 성해 소스 코드를 개방화하고 상용화와 관련된 라이선스 정책을 세우는 등의 연구를 수행하고 있다.
II. OPRoS 구조
로봇 소프트웨어 플랫폼은 로봇 소프트웨어의 재사용 성을 높이고 로봇 컴포넌트간의 통신을 쉽고 안정적으로 할 수 있도록 하는 소프트웨어로서 서로 다른 통신수단 이나 운영체제 상에서도 투명하게 응용 프로그램이 작동 할 수 있도록 지원해 주는 역할을 한다. OPRoS의 로봇 소프트웨어 플랫폼 요소 기술로 컴포넌트, 서버, 프레임 워크, 통합개발환경, 검증 및 평가가 어떻게 구성되는지 간단하게 아래 그림에 나타나 있다.
그림 1. OPRoS 구성 Fig. 1. Diagram of OPRoS
OPRoS의 특징은 다음과 같다.
- 확장성 및 유연성 : 단순한 로봇부터 복잡한 로봇까 지 적용 가능
- 쉬운 컴포넌트 개발 및 콘텐츠 개발
- 기존의 알고리즘 혹은 응용 S/W와의 쉬운 연동 - 서비스 지향 구조 지원
- 안전성 : 결함-안전성 및 결함-동작성 지원 - 웹 기반 혹은 개발도구 기반 검증 및 평가 도구 지원 - 모든 개발도구가 하나에 들어가 있음(all-in-one) - 로봇 개발을 편리하게 함: HW와 연결된 컴포넌트
들과 프레임워크를 사용하면 쉽게 SW 및 H/W를
통합할 수 있음
- 유연한 S/W 컴포넌트: 제조회사가 다른 H/W 모듈 을 바꾸더라도 전체 S/W의 변경 없이 관련 H/W 모 듈과 연관된 S/W 라이브러리만 변경하면 동작.
H/W 특성에 맞는 S/W 컴포넌트 운영 가능 - 로봇 콘텐츠 및 컴포넌트의 저장과 수행을 위한 유
연한 서버 제공
III. 3D 물체 검출 컴포넌트
1. 컴포넌트 구성
OPRoS 플랫폼에서 동작시키기 위해서는 다음 그림과 같은 컴포넌트 인터페이스에 맞게 개발해야 한다.
그림 2. 컴포넌트 인터페이스 Fig. 2. Component Interface
OPRoS 컴포넌트에서는 외부 컴포넌트와의 인터페이 스가 포트(port)를 통해 이루어진다. OPRoS 컴포넌트의 포트 종류에는 서비스 포트(service port), 데이터 포트 (data port)와 이벤트 포트(event port)가 있다. 외부에 서 비스를 제공하는 서비스 포트를 provided 포트라고 하며, 외부의 서비스를 이용해야하는 경우에는 required 포트 라고 한다. 또한, 데이터 포트 및 이벤트 포트는 외부로부 터 데이터(혹은 이벤트)를 수신하는 포트를 input포트라 고 하며, 외부에 데이터(혹은 이벤트)를 송신하는 포트를 output 포트라고 한다.
본 3D 물체 검출 컴포넌트는 다음과 같이 구성된다.
class IPEL_DisparityCorrComp : public Component, public IVisionRecognition3DService
{ protected:
vector<VisionRecognition3DResult> _recognitionResult;
Property parameter;
CvCalibFilter m_Calib;
int m_MaxDisparity;
IplImage* m_DisparityImage;
CvMat* m_DepthMap;
public:
IPEL_DisparityCorrComp();
IPEL_DisparityCorrComp(const std::string &compId);
virtual ~IPEL_DisparityCorrComp();
virtual void portSetup();
protected:
virtual ReturnType onInitialize();
virtual ReturnType onStart();
virtual ReturnType onStop();
virtual ReturnType onReset();
virtual ReturnType onError();
virtual ReturnType onRecover();
virtual ReturnType onDestroy();
public:
virtual ReturnType onEvent(Event *evt);
virtual ReturnType onExecute();
virtual ReturnType onUpdated();
virtual ReturnType onPeriodChanged();
// 서비스포트
virtual bool SetParameter(Property parameter);
virtual Property GetParameter();
virtual vector<VisionRecognition3DResult> Recognize3D(
vector< vector<unsigned char> > image,int width,int height,int pixelBytes, string calibrationFilename,bool bSwap);
int GetError() {return 0;};
bool GetDisparityImage(IplImage* srcimgL,IplImage*
srcimgR,IplImage* dstimg);
void GetDepthMap(IplImage* disparityImg,CvMat*
depthMap);
void GetQ(double *Q);
void WriteToObj(char* filename, CvMat* depthMap);
void Correction3D(CvMat* depth);
void Adjustment3DPoint(CvMat* depthmap);
};
그림 3. 3D 물체 검출 컴포넌트 소스
Fig. 3. Source of 3D object detection component
위 컴포넌트 소스 중에서 Recognize3D() 함수와 그밖 에 관련 함수의 구현에 대해 연구한 내용을 본 논문에 기 술했다. 3차원 물체 검출 컴포넌트는 3차원 공간을 인식 하기 위해 스테레오 카메라로부터 두 개의 영상을 입력 받는다. 먼저 두 개의 영상으로부터 시각차 맵(Disparity Map)을 만들고, 그 맵을 이용하여 실제 3차원 공간 데이 터를 얻기 위해 깊이 맵(Depth Map)을 만든다.
2. 3D 스테레오 비전과 캘리브레이션
스테레오 매칭 알고리즘[5]-[17]은 현재 매우 많은 연구 가 계속 진행중이며, 본 연구에서는 기본적인 매칭이론 을 이용한 연구를 했다. 이 매칭 알고리즘은 삼차원 공간 의 동일한 점에 해당하는 각각 영상의 점들이 서로 매칭 (matching)될 때, 공간적으로 다른 평면으로부터 얻어진 2차원 이미지 쌍으로부터 3차원 세계를 복원[18]하는 과정
이다. 이때 기하학 구조는 에피폴라 제약조건을 따라 3D 좌표값을 계산한다. 3D 좌표값을 구하기 위해 카메라의 캘리브레이션이 필요하며, 카메라 캘리브레이션에는 intrinsic 파라미터와 extrinsic 파라미터가 있다. 이것은 기존에 많이 사용하는 체스판을 사용하여 내부와 외부 파라미터를 구할 수 있다. 본 연구에서는 20장의 체스판 을 이용하여 캘리브레이션을 수행했다.
그림 4. 캘리브레이션 Fig. 4. Calibration
3. 스테레오 보정
스테레오 보정을 위해 Hartley 방법과 Boguet 보정 알 고리즘을 사용했다. 간략하게 살펴보면 다음과 같다.
먼저 Hartley가 제안한 알고리즘이다. 이것은 기본 행 렬만을 이용하여 보정되지 않은 스테레오 영상을 조정한 다. 두 영상에서 대응되는 7개 이상의 점들을 이용하여 계산된 기본 행렬을 알고 있을 때 다음과 같이 구하게 된 다. 먼저, 기본 행렬을 이용하여 양쪽 에피폴을 계산한다.
다음식과 같이 fundamental matrix를 이용하여 구한다.
(1)
그리고, 호모그래피 Hr을 구한다. 이 호모그래피는 오 른쪽 에피폴을 무한대의 점(1,0,0) T에 매핑시킨다. 오른 쪽 영상의 원점을 이동시키는 이동 벡터 T와 에피폴을
로 변환 시키는 회전 행렬 R을 구하여 다 음과 같은 호모그래피를 구할 수 있다.
(2)
그림 5. Hartley 보정 알고리즘 결과 영상 Fig. 5. Result of Hartley rectify algorithm
이번엔 왼쪽 에피폴을 무한대로 보내고 행 정렬되도 록 만드는 Hl을 구한다. 마지막으로 왼쪽-오른쪽 대응점 들의 전체 시차
가 최소가 되는 Hl을 찾
는다. 이것을 가지고 영상을 보정한다.
Bouguet 알고리즘은 보정 되어 있는 카메라 영상에서 회전 및 이동 파라미터를 이용하여 조정을 수행한다. 두 스테레오 영상 사이의 회전 행렬과 이동 벡터가 주어졌 을 경우, 재 투영에 의한 변화는 최소로 줄이고 공통 영 역은 최대로 만든다. 왜곡을 최소로 만들기 위해, 양쪽 모 두 반씩 회전하는 Rl과 Rr을 구한다. 먼저, 에피폴의 방향 은 이동 벡터와 동일 방향이므로 다음과 같이 e1 으로 표 현되며, e2는 e1과 세로 방향으로 직교가 된다. e3은 모두 직교해야 하므로 외적을 이용해 구할 수 있다.
∥∥
×
(3)
에피폴라 라인을 수평이 되게 하는 회전 행렬은 다음 과 같으며, 각각 영상에서의 회전 행렬을 Rl, Rr로 표현할 수 있다.
(4)
다음은 3차원 좌표를 2차원 좌표로 바꾸는 투영행렬
로, 카메라 행렬을 사용해 구하면 다음과 같다. 여기서
은 skew 정보로 보통 0이다. ′
′
(5)
다음은 2차원 좌표를 3차원 좌표로 재 투영할 수 있는 재투영 행렬이다.
′
(6)
이렇게 구한 정보를 이용하여 영상을 매핑을 해야 한 다. 원본 영상에서 변형된 좌표에 매핑되면 주변 픽셀값 들은 보간을 해서 픽셀값을 구하게 된다. 최종적으로 매 핑을 하여 구하여 영상 보정을 마치게 된다.
그림 6. Boguet 보정 알고리즘 결과 영상 Fig. 6. Result of Boguet rectify algorithm
4. 시각차 맵 (Disparity Map) 시각차 맵[19],[20],[21]
을 구하기 위한 방법으로 스테레오 매칭과 블럭 매칭 방법이 있다. 먼저, Stereo Matching의 기본 원리와 SIMD를 이용한 optimization에 대해서 알아 보자. Stereo Matching은 두개의 flow를 가진다. 우선 Dynamic Programming을 이용해서 disparity map을 생 성하고, 생성된 disparity map 정보를 바탕으로 높은 신
뢰성(higher reliability)을 가지기 위해 postprocessing을 한다.
그림 7. 스테레오 매칭 플로우챠트 Fig. 7. Stereo Matching Flowchart
Stereo Maching은 cvFindStereoCorrespondence 함수 로 이미 구현되어 있으며, 그 원리는 다음과 같다.
여기서는 DP(Dynamic Programming)을 이용해서 문 제를 해결하는 알고리즘을 살펴보겠다. 이 알고리즘을 사용해서 disparity map을 생성하는데 총 3단계로 나눌 수 있다.(Dissmilarity Space -> DP Table -> Disparity map)
Dissimilarity Space는 아래 그림과 같이 왼쪽 이미지 에 있는 한 픽셀 값과 오른쪽 이미지의 한픽셀 값의 차이 로 채운 전체 테이블을 말한다. Dissimilarity Space의 크 기는 depth x width이며 depth는 user가 정할 수 있다.
(여기서 depth란 max disparity값을 의미한다.) DP(Dynamic Programming) Table은 Dissimilary Space를 이용해서 만들어 진다. Dissimilarity Space를 이용해서 각각의 셀을 cost informatino으로 채운 것이 DP Table이다. 아래 그림과 같이 Dissimilarity Space에 있는 각각의 셀의 좌측 상단 대각선 값, 좌측값, 아래값 중 한 값을 참조하고 이 중 최소값이 셀의 cost값으로 결 정된다. DP Table에 있는 각 셀들은 이렇게 계산된 cost 와 가장 작은 값을 가지는 셀의 position을 가지고 있다.
그림 8. Dissimilarity Space Fig. 8. Dissimilarity Space
Disparity map은 셀과 그 최소값을 라인들로 보여준 다. 위에서 구한 DP table의 optimal pass를 따라가면 disparity map이 만들어진다. 우측 하단부터 각각의 셀의 정보를 따라 가면 optimal pass를 구할 수 있고, 이렇게 생성된 disparity map은 input image와 같은 크기를 가진 다.
두 번째 알고리즘으로 블럭 매칭 알고리즘이 있다. 이 방법은 스테레오 조정된 왼쪽과 오른쪽 영상에서 대응점 을 찾기 위해 윈도우 내부의 SAD(Sum of Absoute Difference)를 계산한다. 블록-매칭 스테레오 대응 알고 리즘은 세 단계로 구성되는데, 전처리 과정, 대응점 찾기, 후처리 과정으로 이루어졌다. 전처리과정에서는 영상의 밝기를 정규화하고 질감을 향상 시키는 과정이며, 대응 점 찾는 과정은 수평 에피롤라 직선을 따라 SAD 윈도우 를 이동시키며 찾는 과정이다. 마지막으로 잘못된 대응 점들을 제거하는 과정으로 끝난다.
그림 9. 블럭 매칭 알고리즘
Fig. 9. Block matching algorithm
5. 깊이 맵 (Depth Map)
시차 지도에서 3차원 모양으로 만들 필요가 있는데, 이것을 재구성 (reconstruction) 또는 깊이 지도 (depth map) 구성이라 한다. 위에서 소개한 재투영 Q 행렬을 이 용하여 2차원 점을 3차원으로 변환을 할 수 있다.
Depth map을 보면 뒤 부분이 크고 맨 가운데 부분이 오히려 작다. 이것은 실제 diparity map에서 가까운 것은 크게 보이고 먼 것은 작게 보이는 perspective projection 을 실제 크기에 맞게 구현했기 때문이다. 따라서 앞부분 은 작게 보이고, 상대적으로 뒤 부분은 크게 보이게 된다.
이것은 실제 3차원 공간 좌표가 되며, 이것을 이용하여 물체를 피해갈 수 있으며, 물체의 위치를 알 수 있다.
Perspective Projection을 변환하기 위해 다음과 같은 행 렬을 사용했다.
// construct the matrix that maps from Cartesian coordinates to disparity coordinates
double data [] = {
mFx, 0, mClx, 0, 0, mFy, mCy, 0,
0, 0, (mClx-mCrx)/mDu, mFx*mTx/mDu, 0, 0, 1, 0
};
CvMat _P = cvMat(4, 4, CV_64FC1, data);
cvCopy(&_P, &mMatCartToDisp);
//construct the matrix that maps from disparity coordinates to Cartesian coordinates
double Q[] = {
1, 0, 0, -mClx, 0, mFx/mFy, 0, -mCy*mFx/mFy, 0, 0, 0, mFx, 0, 0, mDu/mTx, -(mClx-mCrx)/mTx
};
CvMat _Q = cvMat(4, 4, CV_64F, Q);
cvCopy(&_Q, &mMatDispToCart);
그림 10. Perspective Projection을 위한 변환 행렬 Fig. 10. Matrix for perspective projection
IV. 실험 결과
스테레오 매칭 방법과 블럭 매칭 방법으로 각각 실험 을 했다. 정확도를 측정하기 위해 각각 거리 측정을 해서 표로 나타냈다.
1. 스테레오 매칭 방법 (Stereo Matching) MaxDisparity 값은 80이다. 값에 따라 전체 밝고 어두
운 정도가 달리 나타난다. 속도는 약 3.20 fps 나온다.
(Core2 Quad CPU 2.4GHz)
그림 11. 스테레오 매칭 결과
Fig. 11. Results of stereo matching algorithm
그림 12. SM 방법을 사용한 거리 측정 결과
Fig. 12. Results of distant experiment with SM
거리 측정을 위한 실험방법으로 90cm에서 30cm씩 이 동하면서 가운데 보이는 사람 영역의 거리 값을 평균을 하여 측정 결과 값을 출력했다. 맨 왼쪽 그림부터 90, 120, 150, 180cm이며, 오른쪽 그림 위부터 210, 240, 270, 300cm 이다.
그림 13. SM 거리 측정 그래프
Fig. 13. Graph of distance experiment with SM
실제거리 90 120 150 180 210 240 270
측정결과 242 278 323 363 414 467 502
보정값 91.4 116.6 148.1 176.1 211.8 248.9 273.4 오차(cm) 1.4 -3.4 -1.9 -3.9 1.8 8.9 3.4 표 1. SM 거리 측정 값
Table 1. Result values of distance with SM
오차는 측정된 결과 값을 선형으로 보정하여 나온 결 과 값과 비교했다. 수행속도는 270ms정도 나왔다. 결과 표를 보면 최대 8.9cm의 오차를 보여준다.
2. 블록 매칭 방법 (Block Matching)
블록 매칭 방법을 이용해서 실험을 했다. 먼저 결과 영 상을 보면 가까운 물체에 대한 영상일 경우 제대로 나타 나는 결과를 보여준다.
그림 14. 블록 매칭 결과
Fig. 14. Results of block matching algorithm
80cm에서 10cm씩 이동하면서 가운데 보이는 사람 영 역의 거리 값을 평균을 하여 측정 결과 값을 출력했다.
맨 왼쪽 그림부터 80, 90, 100, 110cm이며, 오른쪽 그림 위부터 120, 130, 140, 150cm 이다. 이후 180cm까지 측정 했다. 본 알고리즘은 근거리에 적합하다고 할 수 있다.
측정 실험에서는 Bouguet 방법으로 측정실험을 했다.
(PreFilterSize 21, PreFilterCap 24, SADWindowSize 31, MinDisparity -64, NumberOfDisparities 128, Texture -Threshold 10, UniquenessRatio 15, RectifyMode 1)
그림 15. BM 방법을 사용한 거리 측정 결과
Fig. 15. Results of distant experiment with BM
다음 그래프는 Z축 거리에 따른 측정 실험 결과와 측 정 결과 값이다. 오차는 측정된 결과 값을 선형으로 보정 하여 나온 결과 값과 비교했다. 수행속도는 80ms 정도 나왔다. 최대 오차는 10cm로 측정됬다.
그림 16. SM 거리 측정 그래프
Fig. 16. Graph of distance experiment with SM
실제거리 90 100 110 120 130 140 150 160 측정결과 482 513 597 801 997 1257 1426 1585
보정값 94 95 100 111 121 134 143 151
오차(cm) -4 5 10 9 9 6 7 9
표 2. BM 거리 측정 값
Table 2. Result values of distance with BM
3. Depth Map 실험 결과
다음 그림은 실험 결과 영상들로써 Disparity Map을 이용하여 Depth Map으로 변환한 결과를 보여준다. 위쪽 그림은 스테레오 매칭 방법이고, 아래쪽 그림은 블럭 매 칭 방법 결과 영상이다.
그림 17. 깊이 맵 결과 영상 Fig. 17. Results of depth map
Ⅴ. 결 론
본 연구에서는 지능형로봇 개발을 위한 공통기반 플 랫폼(OPRoS) 에서 동작하는 3차원 물체인식 컴포넌트를 개발하였다. 시각차 맵과 깊이 맵을 이용하여 3차원 공간 을 인식하도록 했으며, 시각차 맵을 만들기 위해 스테레 오 매칭 방법과 블럭 매칭 방법을 이용했다. 만들어진 컴 포넌트는 OPRoS가 탑재된 컴퓨터에서 동작을 시켜 실 험을 하였다. 실험시에는 거리측정 오차가 10cm정도 발 생했다. OPRoS에 탑재해서 실험을 했는데 예상보다 빠 른 동작 수행시간을 보여줬다. 향후 알고리즘을 좀 더 최 적화해서 수행시간 단축할 필요가 있다.
참 고 문 헌
[1] Jean, Grace V. Road warriors: robots get smarter, but who will buy them? National Defense, March 2008.
[2] Kageyama, Yuri. “Walking, talking female robot to hit Japan catwalk.” The Seattle Times. 16 March 2009.
[3] OPRoS 팀, www.opros.or.kr
[4] 박홍성 “로봇 S/W 플랫폼 검증 및 평가 자동화 기 술 개발”, OPRoS 통합 workshop 2008. 11.
[5] Trucco, Emanuele. Introductory Techniques for 3D Computer Vision. Prentice Hall Inc, 1998.
[6] Hong Jeong and Yuns Oh, “A Parallel Real Time Implementation of Stereo Matching,” Proc. of 15th Int’l Symp. on Parallel and Distributed Processing, Apr. 2001, pp.23-27.
[7] H. Jeong and S.C. Park, “Generalized Trellis Stereo Matching with Systolic Array,” In Lecture Notes in Computer Science, Vol.3358, 2004, pp.263-267.
[8] D. Scharstein, R. Szeliski, "A taxonomy and evaluation of dense two frame stereo correspondence algorithms", DCV 7, 113, 2002.
[9] K. Muhlmann, D. Maier, 1. Hesser and R.
Manner, "Calculating Dense Disparity Maps from Color Stereo Images, an Efficient Implementation", DCV 47, 1/2/3, pp. 79-88, 2002.
[10] Luigi Di Stefano, Massimiliano Marchionni, Stefano Mattoccia, "A fast area-based stereo matching algorithm", Image and Vision Computing 22, pp. 983-1005, 2004.
[11] Abhijit S. Ogale and Yiannis Aloimonos, "Shape and the Stereo Correspondence Problem", DCV 65,3, pp. 147- 162, 2005.
[12] Sukjune Yoon, Sung-Kee Park, Sungchul Kang, Yoon Keun Kwak, "Fast correlation-based stereo matching with the reduction of systematic errors", Pattern Recognition Letters 26, pp. 2221- 2231,2005.
[13] P.H.S. Torra, A. Criminisi, "Dense stereo using
※ 본 연구는 이 연구는 2010년도 선문대학교 교내학술연구비 지원에 의하여 이루어졌음.
저자 소개
한 창 호
∙1993년 청주대 전자공학과 (학사).
∙1995년 동 대학원 전자공학과 (석사).
∙2005년~2009년 선문대학교 대학원 전 자공학과 (박사).
<주관심분야> 영상처리, 모션캡쳐, 자 동검사, 로봇 비전
오 춘 석
∙1980년 서강대학교 전자공학과 (학 사)
∙1986년 Marquette University 컴퓨터 공과 (석사)
∙1992년 University of Arizona 컴퓨터 공과(박사)
∙1980년~1993년 전자통신연구원 (ETRI) 선임연구원
∙2001년 미국 Optical Sciences Center Visiting Scholar
∙1993년~현재 선문대학교 전자정보통신공학부 교수.
<주관심분야> 화상처리, 자동검사, 머신비전, 광학시스템설계 pivoted dynamic programming", Image and
Vision Computing 22, pp. 795-806, 2004.
[14] Michael Bleyer, Margrit Gelautz, "A layered stereo matching algorithm using image segmentation and global visibility constraints", ISPRS Journal of Photogrammetry & Remote Sensing 59, pp. 128- 150, 2005.
[15] Minglun Gong and Vee-Hong Yang, "Fast Unambiguous Stereo Matching Using Reliability-Based Dynamic Programming", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 27, no. 6, June 2005.
[16] Minglun Gong and Vee-Hong Yang, "Near Real-time Reliable Stereo Matching Using Programmable Graphics Hardware", Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2005.
[17] Sung Hwan Lee, Jongsu Vi, and JunSeong Kim,
"Real-Time Stereo Vision on a Reconfigurable System", SAMOS 2005, LNCS 3553, pp. 299-307, 2005.
[18] Hansung Kim, Kwanghoon Sohn, "3D reconstruction from stereo images for interactions between real and virtual objects", Signal Processing: Image Communication 20, pp.
61- 75, 2005.
[19] Xiaodong Huang, Eric Dubois, "Dense disparity estimation based on the continuous wavelet transform", CCECE 2004 - CCGEI 2004, Niagara Falls, May 2004.
[20] Salvador Gutierrez, Jose Luis Marroquin,
"Robust approach for disparity estimation in stereo vision", Image and Vision Computing 22, pp. 183- 195, 2004.
[21] Bradski, Gary; Kaehler, Adrian. Learning OpenCV: Computer Vision with the OpenCV Library. O'Reilly Media Inc, 2008.