Processing math: 100%
(멀티플 뷰 지오메트리) Lecture 12. Generalized cameras

(멀티플 뷰 지오메트리) Lecture 12. Generalized cameras

2022, Apr 20    


Multiple View Geometry 글 목차


  • 참조 : https://youtu.be/PUgr2VKlNbc?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
  • 참조 : https://youtu.be/HuxLHhvdBLY?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
  • 참조 : https://youtu.be/E-YXFI5xzNM?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
  • 참조 : Multiple View Geometry in Computer Vision





Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing


  • plucker vector 설명: https://en.wikipedia.org/wiki/Pl%C3%BCcker_coordinates


Drawing


  • 위 그림에서 ddirection vector이고 mmoment vector를 의미합니다.


Drawing



Drawing



Drawing



Drawing



Drawing



Drawing


  • Plucker VectorRigid Transformation을 적용하면 direction vector qmoment vector q 는 다음과 같이 변환될 수 있습니다.


  • p=Rp+t
  • qtransformed=Rq
  • qtransformed=p×qtransformed=(Rp+t)×(Rq)=(Rp)×(Rq)+t×(Rq)=R(p×q)+t×(Rq)=Rq+t×Rq=Rq+[t]×Rq


  • 따라서 위 슬라이드의 행렬과 같이 표현할 수 있습니다.

  • [R0[t]×RR][q1q1]=[Rq1[t]×Rq1+Rq1]



  • 한 쌍의 선이 교차할 때의 필요 충분 조건에 대하여 다루어 보도록 하겠습니다. 필요 충분 조건에 대한 수식 증명을 위해서는 아래 식을 증명해야 합니다.


  • qTbqa+qTbqa=0


  • 위 식을 증명하기 위하여 두 선 LaLb 를 다음과 같이 표현해 보겠습니다.


  • La=pa+taqa(ta is scalar.)
  • Lb=pb+tbqb(tb is scalar.)


  • 이 때, 두 선 La,Lb 가 교차한다면 다음과 같이 식을 적을 수 있습니다.


  • papb=tbqbtaqa


  • 따라서 벡터 papbqa,qb 벡터의 spanplane 상에 존재함을 알 수 있습니다.


  • 지금부터 qTbqa+qTbqa=qa(qb)T+qTbqa=0 식에 대한 유도를 진행해 보도록 하겠습니다.


  • qa=pa×qa
  • qb=pb×qb
  • qa(qb)T+qTbqa=qa(pb×qb)+qb(pa×qa)


  • 스칼라 삼중적 성질을 이용하면 a(b×c)=b(c×a) 이므로 위 식을 다음과 같이 변형할 수 있습니다.


  • qa(qb)T+qTbqa=qa(pb×qb)+qb(pa×qa)=pb(qb×qa)+pa(qa×qb)=pb(qb×qa)pa(qb×qa)=(pbpa)(qb×qa)


  • 이 때, papbqa,qb 의 선형 결합으로 span 된 평면 상에 존재하는 벡터임을 앞에서 확인하였습니다. 그리고 qb×qaqa,qb 에 의해 만들어진 평면과 직교합니다.
  • 따라서 papbqa,qb 에 형성되는 평면상에 존재하고 (qb×qa) 는 평면과 직교하므로 papb(qb×qa) 또한 직교합니다. 따라서 다음 식을 만족해야 합니다.


  • qa(qb)T+qTbqa=(pbpa)(qb×qa)=0


  • 앞에서 두 선이 교차한다는 조건인 papb=tbqbtaqa 식을 사용하였으므로 두 선이 교차할 때, qa(qb)T+qTbqa=0 이 만족함을 확인할 수 있습니다.


  • 선들이 교차하는 경우, 선 위의 점들 사이의 벡터는 direction vector에 의해 형성되는 평면에 있기 때문에 스칼라 삼중곱은 0이 되어야 합니다. 따라서 필요 조건을 만족함을 확인하였습니다. 반대로 qaqb+qTbqa=0 인 경우에 앞에서 보인 바와 같이 선들이 교차하므로 충분 조건을 만족합니다. 따라서 필요 충분 조건을 만족함을 알 수 있습니다.


Drawing


  • 앞에서 유도한 식을 이용하여 위 슬라이드의 식을 전개해 보도록 하겠습니다.


  • qa(qb)T+qTbqa=qTbqa+qa(qb)TqT2q1+q1(q2)T=0
  • qT2([t]×Rq1+Rq1)+(q2)Tq1=0(q1=[t]×Rq1+Rq1)
  • qT2[t]×Rq1+qT2Rq1+(q2)Tq1=0


  • 따라서 행렬로 표현하면 다음과 같이 표현할 수 있습니다.


  • [q2q2]T[ERR0][q1q1]=0


Drawing


  • 이전 슬라이드에서 유도된 식을 Generalized epipolar geometry라고 하며 이 식의 의미와 형태는 앞선 강의에서 다룬 Epipolar geometry와 일치합니다.
  • 이와 같은 이유로 [ERR0]generalized essential matrix로 불립니다.
  • 다음 슬라이드의 내용과 연결 짓기 위하여 Generalized epipolar geometry의 식을 아래와 같이 풀어서 써보겠습니다.


  • q1=[q11q12q13]
  • q1=[q11q12q13]
  • [q1q1]=[q11q12q13q11q12q13]
  • [ERR0]=[e11e12e13r11r12r13e21e22e23r21r22r23e31e32e33r31r32r33r11r12r13000r21r22r23000r31r32r33000]
  • [q2q2]T[ERR0][q1q1]=[q21q22q23q21q22q23][e11e12e13r11r12r13e21e22e23r21r22r23e31e32e33r31r32r33r11r12r13000r21r22r23000r31r32r33000][q11q12q13q11q12q13]=q11q21r11+q11q22r21+q11q23r31+q12q21r12+q12q22r22+q12q23r32+q13q21r13+q13q22r23+q13q23r33+q21q11r11+q21q12r12+q21q13r13+q22q11r21+q22q12r22+q22q13r23+q23q11r31+q23q12r32+q23q13r33+e11q11q21+e12q12q21+e13q13q21+e21q11q22+e22q12q22+e23q13q22+e31q11q23+e32q12q23+e33q13q23


Drawing


  • 이전 슬라이드에서 q1,q1,q2,q2 는 알고 있는 값인 반면 [ERR0] 에 정의된 E,R 의 각 원소는 미지수인 상황입니다. 이전 강의에서 살펴본 바와 같이 Epipolar Geometry에서 Essential Matrix의 값을 추정해야 하는 상황이거나 Levenberg-Marquardt 알고리즘을 이용하여 R 값을 추정하는 내용등을 상기시키면 이해가 될 것입니다.
  • 17 페이지 슬라이드에서 최종적으로 풀어쓴 식에서 rij 또는 eij 가 미지수이고 이 미지수에 곱해진 계수들을 분리하여 식을 정리해 보고자 합니다. 이 때, 계수들은 a 로 표시하고 미지수는 g 로 표시하겠습니다. 다음과 같습니다.


  • a=[q11q21q12q21q13q21q11q22q12q22q13q22q11q23q12q23q13q23q11q21+q21q11q12q21+q21q12q13q21+q21q13q11q22+q22q11q12q22+q22q12q13q22+q22q13q11q23+q23q11q12q23+q23q12q13q23+q23q13],g=[e11e12e13e21e22e23e31e32e33r11r12r13r21r22r23r31r32r33]


  • 위 식에서 [q2q2]T[ERR0][q1q1]=aTg=0 을 만족해야 하므로 아래의 식과 같이 적을 수 있습니다.


  • aTg=[q11q21q12q21q13q21q11q22q12q22q13q22q11q23q12q23q13q23q11q21+q21q11q12q21+q21q12q13q21+q21q13q11q22+q22q11q12q22+q22q12q13q22+q22q13q11q23+q23q11q12q23+q23q12q13q23+q23q13]T[e11e12e13e21e22e23e31e32e33r11r12r13r21r22r23r31r32r33]=q11q21r11+q11q22r21+q11q23r31+q12q21r12+q12q22r22+q12q23r32+q13q21r13+q13q22r23+q13q23r33+q21q11r11+q21q12r12+q21q13r13+q22q11r21+q22q12r22+q22q13r23+q23q11r31+q23q12r32+q23q13r33+e11q11q21+e12q12q21+e13q13q21+e21q11q22+e22q12q22+e23q13q22+e31q11q23+e32q12q23+e33q13q23


  • 따라서 [q2q2]T[ERR0][q1q1]=aTg 가 됨을 알 수 있습니다.


Drawing



Drawing



Drawing



Drawing



Drawing



Drawing





Drawing


  • 16 페이지의 식을 참조하면 위 슬라이드의 GEC (Generalized Epipolar Geometry Contraints)를 정의할 수 있습니다.

  • qT2[t]×Rq1+qT2Rq1+(q2)Tq1=0
  • qT2Eq1+qT2Rq1+(q2)Tq1=0
  • xTiExi+xTiR(vi×xi)+(vi×xi)Txi=0


Drawing



Drawing



Drawing



Drawing



Drawing


  • 만약 E=0,R=I 라면 다음과 같이 GEC의 해를 만족합니다.


  • xTi(vi×xi)+(vi×xi)Txi=(xi)T(xi×vi)+(vi+xi)Txi(a(b×c)=c(a×b))=(xi)T(vi×xi)+(vi×xi)Txi(a×b=b×a)=0


Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing





Drawing



Drawing



Drawing



Drawing


  • 위 슬라이드에서 LC=τCWLW 를 변환할 때, τCWLW=[UTWVTW]LC=[UTCVTC] 로 변환하기 위해 다음과 같이 정의 됩니다.


  • PC=RCWPW+tCW
  • UC=PC×VC=(RCWPW+tCW)×(RCWVW)=(RCWPW)×(RCWVW)+tCW×(RCWVW)=(RCW)(PW×VW)+tCW×(RCWVW)=RCWUW+tCW×(RCWVW)=RCWUW+(tCW×RCW)VW
  • VC=RCWVW
  • LC=τCWLW=[RCWtCW×RCW03×3RCW]LW


Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Drawing



Multiple View Geometry 글 목차