재바기
JaeTech
재바기
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • Computer Vision (2)
    • 선형대수학 (9)
    • Papers (1)
    • 알쓸신잡 (7)
    • 삽질 기록 (0)
    • 3D\Multiview Geometry (10)
      • CS231A (10)
    • Computer Science (46)
      • Algorithm (14)
      • JavaScript (3)
      • C || C++ (5)
      • Git || Github (3)
      • Linux (2)
      • DL || ML (5)
      • Operating System (8)
      • Computer Network (0)
      • Database (1)
      • Effective Python (5)
      • Data Communication (0)
    • 회고 (0)
    • Latex (1)

블로그 메뉴

  • 홈
  • 태그

Github

공지사항

  • 주인장에 대해

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
재바기
3D\Multiview Geometry/CS231A

CH01. Camera Models (3)

CH01. Camera Models (3)
3D\Multiview Geometry/CS231A

CH01. Camera Models (3)

2023. 2. 6. 18:27
728x90

Camera Calibration

앞에서 intrinsic, extrinsic parameter 를 알아야 정확한 transformation이 가능하다고 했다.

하지만 임의의 카메라를 처음 쓰게 되면, parameter들에 대한 정보가 없다.

하지만 그 카메라로 image를 촬영할 수는 있다.

따라서 해당 image를 이용해 extrinsic, intrinsic camera parameter들을 추정하는 것이 바로 camera calibration이다.

위의 사진은 calibration rig 를 보여준다.

이 rig는 보통 그림처럼 차원을 가진 simple한 패턴으로 구성되고,

더 나아가 rig는 world reference를 원점 OwOw 와 iw,jw,kwiw,jw,kw 로 정의한다.

이 때, world reference frame에서 우리가 알고있는 점들 P1,...,PnP1,...,Pn 이 주어지고,

해당 점들에 상응하는 image의 점들 p1,...,pnp1,...,pn을 직접 찾아준다.

그 후, n개의 3D, 2D 포인트 쌍으로부터 아래와 같이 linear system of equations을 유도해낸다.  

 

pi=[uivi]=MPi=⎡⎣m1Pim3Pim2Pim3Pi⎤⎦pi=[uivi]=MPi=[m1Pim3Pim2Pim3Pi]  

 

(m1,m2,m3m1,m2,m3 는 matrix MM의 각 행을 의미)  

  

위의 식에서 각 Pi,piPi,pi 쌍으로부터 2개의 equations를 얻을 수 있다.

따라서 mm의 parameter를 풀기위한 2개의 constraint도 얻을 수 있다.  

 

ui(m3Pi)−m1Pi=0vi(m3Pi)−m2Pi=0ui(m3Pi)−m1Pi=0vi(m3Pi)−m2Pi=0  

 

앞에서 camera matrix 는 11개의 unknown parameter가 있다고 했었다.

따라서 6개의 correspondence만 있으면 이 matrix를 찾을 수 있다.

하지만 실제 세상에서는, 정확하게 측정되기 어렵기 때문에 noise가 있을 수 밖에 없다.

nn개의 correspondence가 주어졌을 때, 전체 linear system of equation은 다음과 같다.  

 

u1(m3P1)−m1P1=0v1(m3P1)−m2P1=0⋮un(m3Pn)−m1Pn=0vn(m3Pn)−m2Pn=0u1(m3P1)−m1P1=0v1(m3P1)−m2P1=0⋮un(m3Pn)−m1Pn=0vn(m3Pn)−m2Pn=0  

 

이걸 matrix-vector product 형태로 바꾸면,  

 

⎡⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢⎣PT10T−u1PT10TPT1−v1PT1⋮PTn0T−unPTn0TPTn−vnPTn⎤⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥⎦⎡⎢ ⎢⎣mT1mT2mT3⎤⎥ ⎥⎦=Pm=0[P1T0T−u1P1T0TP1T−v1P1T⋮PnT0T−unPnT0TPnT−vnPnT][m1Tm2Tm3T]=Pm=0  

 

(위의 mm 벡터는 MM 행렬의 모든 행을 열로 펴서 한 열로 만들어 놓은 열벡터이다.)  

그런데 2n>112n>11 일 때, 위에서 세운 homongeneous linear system은 overdetermined(미지수보다 방정식이 더 많음)하고, 

m=0m=0 은 항상 trivial solution이 된다.

뿐만 아니라 nonzero solution이 아닌 mm 에 대해서, ∀k∈R∀k∈R인 kmkm이 solution 으로 가능하다.

따라서 solution에 constraint을 줘야한다.

따라서 minimization을 완성시켜보면 다음과 같다.  

 

minimizem∥Pm∥2subject to∥m∥2=1minimizem‖Pm‖2subject to‖m‖2=1  

 

위의 minimization problem을 풀려면, 그냥 singular value decomposition(SVD)를 이용하면 된다.

P=UDVTP=UDVT 라 했을 때, solution은 VV의 마지막 column이다. (mm이 VV의 마지막 column과 같음)  

  

이렇게 얻은 mm은 벡터이므로 다시 matrix MM으로 바꿔야한다.

이 MM은 true matrix가 아니라 MM의 scalar multiple이다.

즉 실제 camera matrix는 K[RT]K[RT] 였으므로  

 

ρM=⎡⎢ ⎢ ⎢⎣αrT1−αcotθrT2+cxrT3αtx−αcotθty+cxtzβsinθrT2+cyrT3βsinθty+cytzrT3tz⎤⎥ ⎥ ⎥⎦ρM=[αr1T−αcot⁡θr2T+cxr3Tαtx−αcot⁡θty+cxtzβsin⁡θr2T+cyr3Tβsin⁡θty+cytzr3Ttz]  

 

가 된다. (rT1,rT2,rT3r1T,r2T,r3T는 RR의 행들임)

이를 scaling parameter ρρ로 나눠주면  

 

M=1ρ⎡⎢ ⎢ ⎢⎣αrT1−αcotθrT2+cxrT3αtx−αcotθty+cxtzβsinθrT2+cyrT3βsinθty+cytzrT3tz⎤⎥ ⎥ ⎥⎦=[Ab]=⎡⎢ ⎢⎣aT1aT2aT3⎤⎥ ⎥⎦⎡⎢⎣b1b2b3⎤⎥⎦M=1ρ[αr1T−αcot⁡θr2T+cxr3Tαtx−αcot⁡θty+cxtzβsin⁡θr2T+cyr3Tβsin⁡θty+cytzr3Ttz]=[Ab]=[a1Ta2Ta3T][b1b2b3]  

 

이고, A,bA,b 는 다음과 같다.  

전개해서 풀면 intrinsic parameter는

이고, extrinsic parameter는

과 같다.  (유도 과정은 강의 범위를 벗어나므로 생략)

  

유의할 점으로는, 위의 과정에서 degenerate case가 발생할 수도 있는데,

예를 들어, 모든 PiPi 들이 같은 평면 위에 있으면 안 된다.

이와 같은 점들을 degenerate configurations라고 부른다.

728x90
저작자표시 비영리 (새창열림)

'3D\Multiview Geometry > CS231A' 카테고리의 다른 글

CH02. Single View Metrology (2)  (0) 2023.02.09
CH02. Single View Metrology (1)  (0) 2023.02.08
CH01. Camera Models (4)  (0) 2023.02.06
CH01. Camera Models (2)  (0) 2023.02.05
CH01. Camera Models (1)  (0) 2023.02.05
  • Camera Calibration
'3D\Multiview Geometry/CS231A' 카테고리의 다른 글
  • CH02. Single View Metrology (1)
  • CH01. Camera Models (4)
  • CH01. Camera Models (2)
  • CH01. Camera Models (1)
재바기
재바기
재박이의 테크블로그

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.