Intrinsic parameters
how to calculate focal length & image center
horizon = line at infinity
- horizon gives us the full information aboue how the ground plane is oriented with respect to the camera
정면에서 제대로 보고 있다면 horizon(주황선)이 이미지 중앙에 있었을 것
하지만 tilted 되었기 때문에 소실점 C도 이미지 밖 image plane 어딘가에 있게 됨
세 소실점 A, B, C의 관계는?
horizon이 카메라의 방향(how oriented your camera is)에 달린 거라면,
소실점 C가 어디에 있는지 정확히 알 수 있어야 함 - C는 vertical lines 가 카메라에 대해서 어떤 방향인지 알려주고 있기 때문
하지만 그렇지 않음; focal length가 얼마나 되는지, image center가 어디에 있는지에 따라서 소실점의 위치가 달라짐
따라서 A, B를 통해 고정된 C의 위치를 정확하게 알 수 있는 것은 아님, focal length와 image center도 알아야 함
거꾸로, C가 주어졌을 때 calibration 없이 어떻게 focal length와 image center를 구할 수 있을까?
- 이미지에 projection center 를 추가 (lens가 있는 곳) --> 점O
- 소실점들이 직교평행선으로부터 오기 때문에, 점O로부터 각 소실점으로 파란선을 그었을 때 각도는 90도가 된다
- 사면체(tetrahedron) OABC, 삼각형 ABC, projection center 점 O 를 활용해서 image center를 계산하기
- 삼각형들의 높이끼리 교차하는 점 H을 체크한다 - 삼각형 ABC의 orthocenter(수심)
- 유클리디안 기하학에서, 사면체가 있을 때 꼭짓점 O와 수심H 을 잇는 선(빨강)을 그렸을 때, 이 선은 image plane 에 대해서 수직을 이루게 됨
- 즉 projection center에서 수직으로 뻗어가는 유일한 선이 곧 optical axis 임
- optical axis와 image가 교차하는 지점이 image center가 됨
- 이제 focal length도 구해보자 (빨간 선의 길이!)
- 보조선 h을 그린다: projection center O에서 점 D 를 잇는다
--> 직각삼각형 OAB의 높이 보조선 h 에 대해서 " h 제곱 = d1 * d2 "
--> 직각삼각형 OHD에서 피타고라스 정리 " h제곱 = d3제곱 + f제곱"
--> 즉 " d3제곱 + f제곱 = d1 * d2 ", " f제곱 = d1 * d2 - d3제곱 "
--> d1, d2, d3는 픽셀 단위로 측정할 수 있는 수치
'인공지능 > pose estimation' 카테고리의 다른 글
Vanishing Points; How to Compute Camera Orientation (0) | 2022.05.11 |
---|---|
Camera Calibration (0) | 2022.05.11 |
3D World to First Person Transformation (0) | 2022.05.10 |
Pinhole Camera Model/Focal Length and Dolly Zoom Effect/Intrinsic Camera Parameter (0) | 2022.05.10 |
Rotations and Translations (0) | 2022.05.09 |