본문 바로가기
Camera Model

[개념 정리] Camera Intrinsic/Extrinsic Parameters #1

by xoft 2022. 11. 3.

Introduction

Camera Parameter 개념은 일상에서 많이 사용되고 있습니다.

 

현실 세계에서의 Camera는 현실의 3D 공간상에 있는 물체를 2D 이미지로 Projection(투영)하여 나타냅니다.

가상 세계에서의 Camera3D 물체를 2D Plane으로 Projection하여 보여줍니다.

 

사람은 3D 가상 공간을 2D인 모니터를 통해 바라보게 됩니다. 3D 게임을 생각해보면, 유저는 다양한 시점을 변경해서 3D 공간을 볼 수 있습니다. FPS 총 게임을 예시로 들자면, 왼쪽3인칭 시점, 오른쪽은 1인칭 시점을 보여줍니다. 게임 내 가상의 3D 공간 내, Camera Parameter의 변화에 따라 다른 화면을 보여줍니다.

 

3D Reconstruction 분야에서도, 여러 카메라 위치에서 Pose가 주어진 이미지들을 3D 공간상으로 Optimization하기 위해서, Camera Parameter가 중요하게 사용됩니다. 아래는 BARF: Bundle-Adjusting Neural Radiance Fields 연구에서 NeRF를 설명하는 이미지입니다.

 

본 포스트에서는 Camera Parameter에 대해 상세히 다루고자 합니다.

Camera Parameter를 설명하기 위해서, pinhole camera model, coordination system에 대해 먼저 다루겠습니다.

 

 

Pinhole Camera model / Lens Camera Model

Pinhole Camera model은 가장 초기 카메라에서 사용된 모델이며 영상처리 분야에서 기본적으로 사용되는 모델입니다. Pinhole을 통해, 외부의 빛을 받아들이고, 카메라 내 digital 센서로 빛을 인식합니다. 이 때 상은 상하반전, 좌우 반전되어 맺히게 됩니다. Pinhole같은 경우에는 빛을 많이 받아들이지 못하게 때문에 사용하지 않고, 최근에는 빛을 더 많이 받아들 일 수 있는 Lens Camera Model을 사용합니다. Pinhole sensor사이의 거리, lens sensor사이의 거리를 focal length라고 하는데, 위 그림에서는 focal length가 아주 큰 영역으로 표현되어 있습니다. 하지만 실제적으로 아주 작은 영역입니다. 찾아보니 아이폰12의 경우 13mm네요. 왼쪽 영역에 대해서는 카메라로 나무 촬영할 때 얼마나 떨어져서 촬영하는지를 생각해보면 될 듯합니다. 4M정도 되려나요?

 

Pinhole을 기준으로 해서 focal length만큼 앞으로 가상의 plane을 만들게 되면 이는 상하반전, 좌우반전이 안된 Image Plane으로 사용 될 수 있습니다.

 

 

Coordinate System

4가지 Coordinate System(좌표계)에 대해서 소개합니다.

Camera Coordinate System

카메라의 위치가 origin(원점)이 되는 좌표계입니다. 위 그림에서 X, Y, Z (대소문자 주의)에 해당합니다. Image plane은 origin기준 Z(optic axis) 으로 focal length(초점 거리) 만큼 떨어진 위치에 위치하게 됩니다.

 

World Coordinate System

다양한 coordinate(좌표계)의 관계를 설명하기 위해 사용되는 좌표계입니다. World coordinate는 1개의 임의의 origin(원점)이 정의됩니다. 위 그림에서 U, V, W에 해당합니다. 이를 통해 다양한 위치의 카메라 좌표계들은 이 좌표계를 기준으로 서로의 관계를 나타낼 수 있습니다.

 

때문에, 같은 위치라도 좌표계에 따라 다른 좌표 값을 갖게 됩니다. 아래 그림에서 PcCamera Coordinate System에서의 좌표값, PwWorld Coordinate System좌표값을 나타내며, 다른 값을 가집니다.

 

 

위에서는 2가지 3D Coordinate System을 다루었습니다.

다음으로 2가지 2D Coordinate System을 다루겠습니다.

 

Image(=Film) Coordinate System

Pinhole에서 perpendicular(수직)이 되는 image plane의 점을 Principal Point(주점) 이라고 하며, principal pointorigin(원점)이 되는 2D 좌표계를 말합니다.

 

Pixel coordinate system

이미지를 저장 / 처리 할 때 쓰는 2D 좌표계 입니다. OpenCV는 좌상단이 origin(원점)이고, OpenGL는 좌하단이 origin 입니다. Origin에 따라 다르게 표현됩니다.

 

 

Camera Parameters

Camera ParameterWorld Coordinate에 있는 3D Voxel (U,V,W)를 Image Coordinate2D Pixel(x,y) 변환하기 위해 사용됩니다. 아래와 같이 행렬식을 통해 변환이 가능하고, Camera Parameter는 P 행렬로 표현이 됩니다. 

크게 Intrinsic ParametersExtrinsic Parameters분류 됩니다.

 

 

Extrinsic Parameter3D 공간 내에서 카메라가 어디에 위치(3D Translation)하고 있고, 어디를 바라보고 있는지(3D Rotation)에 대한 Parameter입니다.

Intrinsic Parameter는 카메라 렌즈와 센서 위치에 의해서 결정되어지는 항목으로써, 이미지 패널이 얼마나 이동(2D Translation)하고, 얼마나 확대하고(2D Scaling), 얼마나 기울어졌는지(2D Shear) 대한 Parameter입니다.

Intrinsic은 카메라 박스 내에서 조절하는 parameter, Extrinsic은 그 외적인 parameter라고 생각하시면 됩니다.

 

Camera Calibration라는 용어가 있는데 이러한 Intrinsic, Extrinsic Paramter를 추정하는 과정을 의미합니다. (Calibration에 대해서는 다루지 않습니다.) 

 

위 수식에 대해서는 다음 포스트에서 차근차근 설명 드리겠습니다.

->  다음 포스트 바로가기

 

출처

https://ksimek.github.io/2013/08/13/intrinsic/

http://www.cs.cmu.edu/~16385/lectures/lecture10.pdf

https://web.pdx.edu/~jduh/courses/geog493f09/Students/W3_ImageCoordinates.pdf

https://pc114.tistory.com/290

https://www.researchgate.net/publication/350852884_BARF_Bundle-Adjusting_Neural_Radiance_Fields

https://blog.improveosm.org/en/3d-scene-reconstruction/

댓글