Modeling Projection
•
Homogeneous Coordinates
•
Camera Coordinate 로 매핑할 때 하나의 Matrix Multiplication 으로 표현하고자 함
◦
인 는 에 대한 division 을 구현할 수 없어서 존재하지 않음.
•
각 좌표의 끝에 을 추가하는 형태의 표현방식인 Homogeneous Coordinate 를 사용
•
Homogeneous Coordinate 에서 Cartesian Coordinate 로 변환할 때는 마지막 항목으로 나머지 값들을 나누어주면 됨.
◦
이 나누기를 통해 에 대한 division 을 구현할 수 있음
Perspective Projection Matrix
Orthographic Projection
•
Perspective Projection 의 특수한 경우
◦
▪
는 피사체의 두께
▪
는 Camera Center 와 피사체와의 거리
◦
Telepho Optics 의 좋은 approximation
•
Camera Center 를 통과하게 그리는 것이 아니라 평행하게 선을 이어 상이 맺힌다고 봄
◦
Real World 의 dimension 이 Image Plane 에 그대로 적용됨
◦
Sim City 같은 게임을 할 때 앞 건물이 뒷 건물보다 커야하는데, 게임하기 편하기 위해서 이를 고려하지 않고 비율이 같음 (Perspective Effect 를 무시함)
•
Projection Matrix
•
Scaled Orthographic Projection Matrix
◦
Orthographic Projection 에 scale 을 입힌 것 (피사체와 Camera Center 와의 거리나 Effective Focal Length 에 관계없이 비율은 동일하지만, 그 동일한 비율의 크기를 조절)
◦
Weak Perspective 이라고도 부름.
•
Affine Projection
◦
구체적으로 다루지는 않음.
Camera Model
•
3D World Coordinate 를 2D Image Plane 상의 로 변환하는 과정
•
고려할 세 가지 Coordinate System
◦
World Coordinate: 3D Point 가 정의된 Coordinate
◦
Camera Coordinate: 3D Point 를 2D Point 로 변환하는 Coordinate ( 축이 Image Plane 에 수직)
◦
Image Coordinate: Image Plane 의 점이 Pixel 로 변환된 Coordinate
Pinhole Camera Model
•
World: Extrinsic/External Camera Parameters (3D World Coordinate → 3D Camera Coordinate)
◦
임의의 3차원 → 3차원 좌표변환을 표현하는 방법
◦
Euler Transformation
•
Camera: Perspective Projection (3D Camera Coordinate → 2D Image Coordinate)
◦
앞의 Perspective Transform Matrix 는 Rotation Matrix 와 Translation Vector 로 나누어 이야기하기도 함.
•
Image: Intrinsic/Internal Camera Parameters (2D Image Coordinate → Pixel 2D Image Coordinate)
◦
Image Plane 상의 Principal Point (Image Plane 의 중심점) 가 Image Coordinate 기준으로 라고 할 때, 길이를 Image Coordinate 의 pixel 로 변환하면 다음과 같음.
◦
Homogeneous Coordinate
▪
여러 오차에 의해서 Image Plane 이 찌그러질 수 있고, 이를 보정하기 위한 parameter 가
▪
Skew 가 없다고 가정하면
▪
, , , , 는 Internal Parameter 라고 하고, 이들로 구성된 좌측 Matrix 가 Internal Matrix
◦
Practical Camera 에는 Radial Distortion 이 존재하여 보정하는 과정이 필요할 수 있음
▪
Lens 바깥쪽을 통과하는 ray 는 deviation 이 많음
•
Wrap-up
◦
3D World Coordinate () → 3D Camera Coordinate () → 2D Image Plane Coordinate () → 2D Pixel Image Coordinate ()
◦
◦
최종적인 Multiplication Matrix 는 이며 DOF 는 11 임. (배수를 곱한 Matrix 는 동일하게 취급되기 때문)
Modeling Distortion
•
World Coordinate 의 에서 , 를 로 나누어 , 을 구함.
•
Radial Distortion 을 적용함.
•
Focal Length 를 곱하고 Camera Center 를 더해줘서 최종적인 변환을 구해냄.
Camera Calibration
•
Intrinsic Parameter 와 Extrinsic Parameter 를 알아내는 과정
◦
Intrinsic Parameter: Focal Length, Optical Center, Skew …
◦
Extrinsic Parameter: Rotation, Translation
•
최종적으로는 DOF 인 11 개의 parameter 를 찾아내야 함.
◦
11 개의 과 의 쌍이 있으면 결정할 수 있음
◦
수식을 변경해 unkown 만을 vector 로 뽑아낼 수 있음
▪
n 개의 쌍을 쌓으면 에서 는 이 되고, 는 이 된 형태의 식으로 표현할 수 있음
▪
Residual 를 최소화하도록 parameter 를 찾도록 함
•
미분해서 0 이 되도록 하는 값을 찾아봄
•
Non-Linear Regression 으로도 11 개의 parameter 를 찾을 수 있음.
◦
Levenberg-Marquardt 방법론을 사용하여 다음을 촤소화할수 있음.
◦
강의에서 디테일하게 다루지는 않음.
Practical Issue (for obtaining data for calibration)
•
Multi-Plane Calibration
◦
Checkerboard Plane 을 준비하고, 해당 Checkerboard 의 한 칸 길이만 알고 있어야 함.
◦
Checkerboard 를 들고 여러 장의 사진을 찍으면 Toolbox 를 사용해 Intrinsic/Extrinsic Parameters 들을 구할 수 있음.
◦
Step 1: Data Acquisition: Planar Checkerboard 사진을 많이 찍음.
◦
Step 2: Checkerboard 의 네 꼭지점을 클릭함.
▪
안쪽의 corner 들은 자동으로 구해짐.
◦
Step 3: Iterate Corner Detection
◦
Step 4: Minimize Projection Error
▪
Non-Linear Optimization 을 통해서 각 parameters 들을 자동으로 구해줌.
Summary
•
Calibration 은 Camera Model 의 Intrinsic/Extrinsic Parameter 를 찾아내는 과정임.
•
Intrinsic Parameter 는 Camera 에 의존적인 parameter 로 카메라가 바뀌면 따라서 바뀜.
◦
이를 알게 되면 Lens Distortion 등을 보정할 수도 있음.
•
Extrinsic Parameter 는 3D World Coordinate 를 3D Camera Coordinate 로 바꾸는 과정이어서 카메라의 위치랑 방향이 고정되면 고정됨.
•
Calibration 에 대해서 잘 알려면 Optimization 에 대해서도 잘 알 필요가 있음.