[영상 Geometry] 핀홀 카메라 모델과 좌표계에 대해

2022. 7. 19. 18:50·Autonomous Driving 🚙/Geometry
반응형

오늘은 핀홀카메라 모델과 좌표계에 대해 이해한 내용을 간단히 정리해보려고 한다. 인턴을 시작하면서 카메라에 대해 처음 공부하고 있다. 새롭고 뜻깊은 경험이다! :D

 

핀홀 카메라 모델 

핀홀 카메라 모델은 projection 할 때 사용하는 카메라에 대한 표준 모델이라고 생각하면 된다. 초등학교 때 배운 바늘구멍 카메라와 작동 원리가 유사하다. 아래 그림과 같이 빛을 조그마한 구멍으로 투사시켰을 때 3D 물체가 image plane에서 거꾸로 보이게 된다. 

그리고 2d image의 상에서 바늘구멍까지의 거리를 f(초점거리)라고 한다. 이 f는 calibration으로 구할 수 있는 camera intrinsic 중 하나로 변하지 않는 고유값이다. 자율주행에서는 카메라를 주로 사용하고, 이렇게 전방의 3D 물체를 카메라의 2D 평면으로 투사(projection)시키는 것이 굉장히 중요할 것이다. 

참고로 앞에서 언급한 f와 camera intrinsic은 다음과 같은 행렬의 구성요소를 뜻한다! 이러한 행렬은 주로 K라고 나타내며, 잘 바뀌지 않는다. 

 

좌표계 

영상 geometry를 이해하는 기본은 좌표계를 이해하는 것이다. 아래와 같이 크게 4가지 좌표계가 존재한다고 한다. 

위 그림에서 월드 좌표계와 카메라 좌표계는 3D이고, 픽셀 좌표계와 정규 좌표계는 2D 기반이라고 생각하면 된다. 그럼 네가지 좌표를 차례차례 정리해보겠다. 

 

1. 월드 좌표계 (World Coordinate) 

우리가 세상에 존재하는 사물의 위치를 표현하는 3차원 좌표이다. 월드 좌표계의 중심은 정하기 나름일 것이다. 그리고 단위도 정하기 나름이다. 임의로 설정해도 괜찮다는 말이다! 

2. 카메라 좌표계 (Camera Coordinate) 

말 그대로 카메라를 기준으로 한 좌표이다. 위 월드 좌표계 안에 카메라가 존재할텐데(따라서 월드 좌표계의 단위와 카메라 좌표계의 단위는 동일할 수밖에 없다), 이 카메라를 기준으로 바라본 좌표를 나타낸다고 이해하면 되겠다. 카메라 좌표계의 원점은 카메라의 "초점"이 된다. 

 

3. 픽셀 좌표계 (Pixel Image Coordinate) 

실제 세상은 3D 인데, 카메라로 이를 촬영하면 2D의 이미지로 3D 물체들이 투영(Projection)된다. 따라서 이렇게 우리가 직접 보는 이미지와 영상에 대한 좌표계가 픽셀 좌표계라고 이해하면 된다. 이러한 픽셀 좌표계는 2D일 것이며, 아래와 같이 가장 왼쪽 위가 원점이다. 

 

위에서 투영(Projection)이라는 표현을 사용했는데, 이렇듯 3D 공간상의 한 점은 카메라 초점을 지나 2D 이미지의 한 점에 투영되게 된다. 이렇게 3D에서 2D로 차원을 축소하는 작업은 결정적이라, 별다른 정보가 필요하지 않다. 하지만 반대(2D 이미지의 한 점을 3D로 보내는 작업)는 부가적인 정보가 필요하다. 

 

4. 정규 좌표계 (Normalized Image Coordinate) 

위 세가지의 좌표계는 실제로 존재하는 좌표계이지만, 마지막 정규 좌표계는 초점거리(f)가 1인 가상의 이미지 평면이라고 생각하면 된다. 초점거리가 여기서 1이라는 소리는, 앞서 소개한 카메라의 내부 파라미터 (intrinsic)의 영향력을 제거한 이미지 좌표계라는 뜻이다. 원래 이미지 평면을 초점거리가 1이 되도록 땡겨왔다고 생각해보자. 아래와 같은 관계라고 이해하면 되겠다. 

 이러한 정규 좌표계의 원점은 Z축과의 교점인 정규 이미지 평면의 중점이 된다. 

 

+) 픽셀 좌표와 정규 좌표 사이의 변환 

카메라 내부 파라미터(camera intrinsic)를 알면 두 좌표계 사이에 자유롭게 변환이 가능하다. 아래와 같이 말이다. 아래에서 u와 v는 정규 좌표계의 벡터이고, x와 y는 픽셀 좌표계의 벡터라고 생각하자. 가운데 끼어있는 matrix는 카메라 내부 파라미터이다. 

 

 


Reference 

[0] https://darkpgmr.tistory.com/77?category=460965 - 감사합니다! 

반응형
저작자표시

'Autonomous Driving 🚙 > Geometry' 카테고리의 다른 글

[영상 Geometry] FOV(Field Of View)에 대해  (0) 2022.07.20
[영상 Geometry] Homogeneous Coordinate에 대해  (0) 2022.07.20
[영상 Geometry] 2D & 3D Transformation(변환)에 대해  (0) 2022.07.19
'Autonomous Driving 🚙/Geometry' 카테고리의 다른 글
  • [영상 Geometry] FOV(Field Of View)에 대해
  • [영상 Geometry] Homogeneous Coordinate에 대해
  • [영상 Geometry] 2D & 3D Transformation(변환)에 대해
당니이
당니이
씩씩하게 공부하기 📚💻
  • 당니이
    다은이의 컴퓨터 공부
    당니이
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • Achieved 👩🏻 (14)
        • 생각들 (2)
        • TIL (6)
        • Trial and Error (1)
        • Inspiration ✨ (0)
        • 미국 박사 준비 🎓 (1)
      • Computer Vision💖 (39)
        • Basic (9)
        • Video (5)
        • Continual Learning (7)
        • Generative model (2)
        • Domain (DA & DG) (5)
        • Multimodal (8)
        • Multitask Learning (1)
        • Segmentation (1)
        • Colorization (1)
      • RL 🤖 (1)
      • Autonomous Driving 🚙 (11)
        • Geometry (4)
        • LiDAR 3D Detection (1)
        • Trajectory prediction (2)
        • Lane Detection (1)
        • HDmap (3)
      • Linux (15)
      • PyTorch👩🏻‍💻 (10)
      • Linear Algebra (2)
      • Python (5)
      • NLP (10)
        • Article 📑 (1)
      • Algorithms 💻 (22)
        • Basic (8)
        • BAEKJOON (8)
        • Programmers (2)
      • ML (1)
        • 통계적 머신러닝(20-2) (1)
      • SQL (3)
      • 기초금융 💵 (1)
  • 블로그 메뉴

    • 홈
    • About me
  • 링크

    • 나의 소박한 github
    • Naver 블로그
  • 공지사항

  • 인기 글

  • 태그

    LLM
    domain generalization
    Python
    til
    CV
    continual learning
    conda
    코딩테스트
    Linux
    알고리즘
    백준
    Incremental Learning
    자료구조
    domain adaptation
    CL
    NLP
    dfs
    pytorch
    백트래킹
    리눅스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
당니이
[영상 Geometry] 핀홀 카메라 모델과 좌표계에 대해
상단으로

티스토리툴바