[OjOcamStereo-AX] 거리 측정 (Depth Map)

[ OjOcamStereo-AX Depth Map  Extraction ]

ojocamstereo-ax-depth-map-pic1

그림 1. 프로그램의 실행

m031_depth_2.jpg

그림 2. 캘리브레이션

ojocamstereo-ax-depth-map-pic3

그림 3. OjOcamStereo.exe

 

프로그램 실행

  1. Cam On 버튼을 누르면 영상이 나오기 시작할 것입니다.
  2. Disp에서 영상을 1/1로 하여 영상을 출력하고 영상의 초점이 맞는지를 확인합니다.
  3. 사용할 체커 보드의 코너 개수를 확인하고 맞는 코너 개수를 입력 에디트 박스에 입력합니다. 프로그램에서는 사각형의 중심점이 아니라 사각형의 모서리를 특징점으로 이용하므로 모서리(코너)의 개수를 입력해야 합니다. (그림에서는 8 x 6으로 되어 있습니다.) 에디드박스에 코너의 개수를 입력하면 프로그램상에서 체커 보드의 모양을 보여주기 때문에 확인하실 수 있으실 것입니다. (프로그램 상에서 가로 세로 비율은 다를 수 있습니다.)
  4. Checker Bd 체크 박스를 체크하면 캡쳐되는 영상에서 코너를 찾습니다. 영상에 적절한 코너가 없을 경우에는 찾는 시간이 오래 걸리기 때문에 화면이 업데이트되는 속도가 느릴 것입니다. 코너를 올바르게 찾았으면 화면상에 코너의 위치가 표시됩니다.
  5. 코너를 무사히 찾는 것이 확인되었으면 Clear Images 버튼을 누릅니다. 이 버튼을 누르면 캘리브레이션용 이미지를 저장하는 calib_img 디렉토리의 내용을 모두 지워서 초기화시켜 줍니다.
  6. calib_img 디렉토리의 내용이 깨끗이 지웠으면 다양한 각도에서 체커보드를 놓고 Save Images 버튼을 누릅니다. 콘솔창에 보면 L_00.jpg, R_00.jpg부터 차례로 영상이 저장되는 것이 표시될 것입니다.
  7. 대략 20~40장정도의 영상을 찍은 후 Calibration 버튼을 누릅니다. 그동안 찍은 캘리브레이션용 영상을 이용하여 캘리브레이션이 진행됩니다. 캘리브레이션이 무사히 진행되었으면 intrinsics.yml, extrinsics.yml 파일이 calib_img 디렉토리에 저장될 것입니다.
  8. 이제 Depth 라디오 버튼을 선택합니다.이제 화면에 Depth 창이 뜨고 거리 정보가 표시될 것입니다.
  9. Scale 콤보박스를 변경하면 알고리즘을 처리하는 영상의 크기를 변경할 수 있고, Alg 콤보박스에서 알고리즘의 종류를 선택할 수 있습니다.

 

프로그램 컴파일

Depth를 구하는 코드는 OpenCV (ver 2.4.6)와 VisualStudio 2010을 사용하였습니다. 그러므로 프로그램을 컴파일하기 위해서는 OpenCV를 먼저 설치하셔야 합니다. (c:\opencv246에 설치하였고 굳이 다시 OpenCV를 빌드하지는 않았습니다. http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.6/OpenCV-2.4.6.0.exe/download)

Release.zip에 있는 실행 파일은 Shared DLL 형태로 컴파일되어 있으므로 만일 Visual Studio가 설치되어 있지 않은 컴퓨터의 경우 아래의 재배포 가능 패키지를 설치하시면 됩니다.

Microsoft Visual C++ 2010 재배포 가능 패키지(x64)
http://www.microsoft.com/ko-kr/download/details.aspx?id=14632

Microsoft Visual C++ 2010 재배포 가능 패키지(x86)
http://www.microsoft.com/ko-kr/download/details.aspx?id=5555

 

관련자료

 

관련글..

Cameras, OjOcamStereo 에 올린 글 태그됨: , , , , , , , , ,