IST

[컴퓨터 비전] 3D geometry 좌표계 이해하기

ssunj 2023. 4. 15. 23:21

컴퓨터 비전에서 3D를 다루면 안 나올 수 없는 지오메트리....

한동안 이해한다고 애를 먹었습니다ㅠㅠ

 

역시 비전의 아버지(?) 다크프로그래머님의 글을 많이 참고했고요... 다른 분들의 블로그도 읽고 이것저것 찾아보면서 깨우쳤습니다!

 

한 장의 그림으로 요약합니다... 이걸로 정리가 다 됐어요ㅠㅠ

3D 좌표계 변환을 한 장으로 요약하면 이렇다!

 

보충 설명을 쓰자면, 우선 그림에서 실선으로 나있는 세로선이 이미지 평면입니다.

첫번째 좌표를 u,v로 갖는 평면을 normalize coordinate라고 하고요, 두번째 (좌표는 안 써놨지만 x,y좌표입니다!) 를 image coordinate라고 합니다.

 

이때 두 좌표계를 이동하려면 [x,y,f]=K[u,v,1] (K는 camera intrinsic matrix) 공식을 사용할 수 있습니다.

그리고 이 좌표계를 3D상에서 나타내고 싶으면, norm coord에서 camera coord까지 Z만큼(뎁스를 알고 있다고 가정했을 때) 곱해주면 됩니다! 저런식으로 비례 관계를 가지니까요!!

 

그리고 월드 좌표계에서 카메라 좌표계로 바꾸고 싶을 때는 extrinsic matrix를 활용합니다.

카메라 좌표계와 월드 좌표계는 단위는 같지만, 기준점이 어디인지에 따라 달라집니다. 카메라 좌표계일 때는 카메라 위치가 (0,0,0)으로 기준점이 되고요, 월드좌표계는 무엇을 기준으로 잡느냐에 따라 달라집니다.

 

extrinsic matrix은 [R|t]라고도 쓰기도 하며, 회전행렬과 평행이동으로 볼 수도 있습니다.

extrinsic matrix가 4*4라면 카메라 좌표계를 구할 때 [X_c,Y_c,Z_c,1]=E[X,Y,Z,1] 로 구할 수 있습니다.