GML C++ Camera Calibration

zox2m·2024년 6월 29일
0

https://track.virnect.com/1.9.0/tutorials/camera_calibration/camera_calibration/

컴퓨터 비전 프로그램인 Virnect Track 을 사용해보는 중
이때 카메라의 왜곡을 보정하기 위해 카메라 캘리브레이션이 필요하다.


작업 순서

  • 체커보드 이미지를 출력한다
  • 캘리브레이션 할 카메라로, 체커보드를 여러 각도로 촬영한다
  • GML C++ 캘리브레이션 프로그램 다운로드
  • 캘리브레이션 프로젝트 생성하여 캘리브레이션 설정 값(.json 형식)을 얻는다

이미지 출력

나는 vernect 에서 제공한 8*11 (20 mm) 의 체커보드 이미지를 출력했다

이미지 촬영

노트북 캠으로 이 체커보드 이미지를 11장 찍었다
3장 이상이면 된다고 한다

대강 이런 사진들

프로그램 다운로드

위 Vernect Camera Calibration 페이지 하단의 GML C++ Camera Calibraction Toolbox를 다운받았다.

캘리브레이션 설정값 얻기

다운받은 프로그램을 실행한다

친절하게 안내가 나와있다.

카메라 캘리브레이션 방법

1.캘리브레이션 패턴 인쇄 및 사진 촬영:

앱 설치 폴더에 있는 PDF 형식의 패턴을 인쇄하여 사진을 촬영합니다.

2.새 프로젝트 생성:

File > New Project 메뉴를 클릭하고, 캘리브레이션 객체 속성을 입력합니다.

3.캘리브레이션 패턴 이미지 추가:

Object detection > Add image 메뉴를 클릭하여 하나 이상의 이미지를 프로젝트에 추가합니다. 모든 이미지는 동일한 해상도여야 합니다.

4.캘리브레이션 패턴 감지:

Object detection > Detect All 메뉴를 클릭하여 모든 이미지에서 캘리브레이션 패턴을 감지합니다.

5.카메라 캘리브레이션:

Calibration > Calibrate 메뉴를 클릭하여 캘리브레이션을 시작합니다. 최소 3개의 이미지가 필요합니다.

file > new project
templete 1개

앞서 말한대로, 나는 8*11 (20 mm ) 로 설정해주었다

Object detection > add image
촬영한 이미지 10장을 추가해준다

Object detection > detect all
탐지한다

각각의 이미지에서 이렇게 정보를 파악해준다!!

Calibration > Calibrate
캘리브레이션 한다.

출력 방법은 잘 모르겠음. 수작업으로 json 으로 작성함

{
    "Intrinsic": {
        "cam0": {
            "1280x720": {
                "Resolution": [1280.0, 720.0],
                "FocalLength": [921.535, 926.270],
                "PrincipalPoint": [678.827, 340.682],
                "Distortion": [0.067819, -0.074090, -0.003919, 0.016263, 0.000767]
            }
        }
    }
}

다음엔 open cv 써서 파이썬으로 해보고싶다

0개의 댓글