4-1/컴퓨터비전개론

6-2주차-Camera Calibration

Donghun Kang 2025. 4. 17. 20:11
  • DLT(Direct Linear Transform)
- 이미지 평면에서 보이는 점들을 바탕으로 11개의 내·외부 파라미터 (intrinsic & extrinsic)를 추정하는 것

 

# Rearrange the DLT Equation

투영 행렬 P를 다음과 같이 3개의 행렬로 표현

# Estimateting the Elements of P

# Verifiying Correctness

- axP는 위와 같다.

- ayP는 위와 같다.

# Summary

=> 모든 point들에 대해 Stacking하여 하나의 큰 행렬 시스템으로 변환한다.

 

- 우리는 아래와 같은 동차 선형 방정식 (linear equation)을 풀고자 한다.
Ax = 0
- 이는 행렬 A의 null space를 찾는 문제와 같다.
- system "MP = 0"을 풀기 위해 P는 0에 대응하는 singular value의 singular vector로 선택된다.

[ Homogeneous System => SVD]

SVD를 활용한 linear system 해법

  • SVD(Singular Value Decomposition)

- U, V: 직교행렬
- S: 대각행렬 (singular value들만 존재)
=> 가장 작은 singular value "s12"에 해당하는 "v12" 선택
=> 이때, p=v12는 wTw를 최소화 한다.

  • Obtaining the Projection Matrix
- 위에서 구한 P=v12를 이용해 P를 구한다.

Q) 이 방법은 항상 잘 작용할까?

  • Critical Surfaces
- M의 rank가 11이어야 SVD를 잘 구할 수 있다. 
=> rank(M)이 11이 되어야 SVD 했을때  singular vector까지 잘 나온다.
- 최소 6개의 점이 필요하다. 
=> 3D 상에 point가 골고루 섞여있어야 한다. 

EX)
=>  모든 point Xi가 하나의 평면 위에 있을 경우 해가 존재하지 않거나 부정확하다. (No Solution)

 


  • Decomposition of P
Q) Projection matrix(P)로부터 K, R, X0를 구하는 방법은?

위의 정의로부터 유도
[QR-decomposition]
inverse H 계산
정규화를 위해 마지막 요소로 나눠준다. 마지막 행을 001로 만들기 위해

 


 

  • DLT in a Nutshell

1. linear system M을 구성한다.

 

2. SVD를 이용해 M을 푼다. V matrix의 마지막 열 벡터 "v12"가 해이다

 

3. 개별 parameter가 필요하다면 

 


  • Summary
- DLT는 camera의 Intrinsic, Extrinsic parameters를 추정하는 방법
- 최소한 3D 상에서 6개 이상의 control points가 필요하다.
- 초기 추정값 없이 linear하게 직접 해를 계산할 수 있다.

 


  • Zhang's Method
- Intrinsic parameter를 plane이더라도 구할 수 있다.

- World 좌표계의 원점을 체스보드의 코너로 설정한다.
- 모든 점은 Z = 0인 평면 상에 존재
=> 이 구조로 수식이 단순화, 계산이 쉬워진다.

  • Simplication
- 모든 point의 Z 좌표는 0 이므로
Extrinsic 행렬의 3번째 열이 삭제된다.
즉, Z좌표가 0인 checkboard 위의 점 1개로부터 이와 같은 식 하나를 만들 수 있다.

 

  • Setting up the equaations for determining the parameter
표현을 다음과 같이 바꾼다.
이미지 한장에서 여러개의 checkerboard 점을 관측하면 다음과 같은 여러개의 대응식이 생긴다.
DLT 방식과 유사하다.

=> 3x3 projection matrix(P) 대신 3x3 Homogeneous matrix(H)를 추정한다.

- 위의 linear system을 통해 H를 추정할 수 있다.
- H : DOF = 8 / at least 4 points
=> DOF가 8이므로 최소한 4개의 점 쌍(즉 8개의 방정식)이 필요하다.
=> 각 점에서 x,y 2개의 관측치를 주기 때문에 총 4개의 점이면 된다.

  • Computing K Given H

- r1, r2가 orthogonal 보장이 없다. => QR 분해를 직접 사용할 수 없다.
- 방법은?

- 우리는 SVD를 통해 얻은 H - K [r1,r2,t]로부터 내부 행렬 K를 추출해야 한다.

[4 Step Procedure]
1. K, r1, r2에 대한 제약 조건을 활용한다.
2. 행렬 B를 정의 한다.
3. 이 B는 또 다른 homogeneous linear system을 풀어서 계산 가능
4. B를 분해하면 내부 파라미터 K를 얻을 수 있다.
  • Exploiting Constraints for Determining the Parameter
행렬 B 정의
B를 통해 이와 같이 표현

=> B는 미지수 / h는 알고 있다.

  • Compute B
B는 대칭행렬이므로 총 6개의 독립적인 값이 필요하다.

- 위에서 유도한 2가지 제약 조건을 바탕으로 system of linear equations "Vb = 0"을 구성한다.

  • Matrix V
여러 이미지의 경우

- 전체적으로 어떻게 되는지만 확인

  • Solving the Linear System
  • H를 구하기 위해 필요한 조건
- at least 4 points per plane to compute the matrix H
: 한 평면(이미지)(plane)당 4개 이상의 대응점

- Each plane gives us two equations
: 한 평면 당 2개의 제약 조건을 제공

- B has 5,6 DOF, we need at least 3 differencet views of a plane
: B 행렬은 5~6개의 DOF를 가지므로 최소한 3장의 서로 다른 평면 이미지가 필요하다.

- Solve Vb = 0 to compute K

 


  • General Calibration Matrix
  • Error Minimization

- optimization 방법이다. 정도만

 



  • Camera Calibration Summary
- Calibration: camera의 intrinsic parameter를 추정하는 것
- 보정 과정에는 Linear / Non-linear Errors 가 있다.
- Linear parameter는 5개
- Zhang's Method: checkerboard를 이용하여 이 5개의 linear parameters를 추정한다.
- Non-linear parameters는 두번째 step에서 추정한다.

 


 

'4-1 > 컴퓨터비전개론' 카테고리의 다른 글

6-1주차-Camera Calibration  (0) 2025.04.17
5주차-Projective Geometry  (0) 2025.04.16
4주차-Camera with Lenses  (0) 2025.04.16
3주차-Image Formation  (0) 2025.04.15
2주차-Math Basics  (0) 2025.04.14