Showing posts with label Machine Vision. Show all posts
Showing posts with label Machine Vision. Show all posts

Saturday, September 14, 2013

Camera Calibration

@concept
Camera Calibration
: 실제 3차원 공간 상의 좌표계와 카메라 내부 이미지 좌표계의 변환을 위한 parameter 구하는 단계이다.

 - The Meaning of Camera Calibration
: (x,y,z) 일반적으로 우리가 알고 있는 3차원 공간 상의 좌표계이며, (u,v) 이미지 상에서 좌표계이다. camera intrinsic parameter 최대한 간략하게 표기하면 focal length f scale factor w 나타낼 있고, 이를 통해 좌표계 간의 변환이 가능하다. camera calibration이란, 미지수들을 찾아내는 과정이다. 이를 찾기 위해 미리 3차원 공간 상의 좌표를 알고 있는 특정 패턴을 카메라로 받아들여 계산해 낸다.

 - Projection Matrix P
: 위에서 [u,v,w] 좌표와 [x,y,z] 사이의 좌표를 변환하는 행렬을 projection matrix P라고 부르는데, P 계산하기 위해 3차원 공간의 여러 또는 점을 공간 상에서 움직여가며 촬영하여 수식을 쌓아(stacking) 최적화 문제로 해결한다. P matrix에는 여러 가지 기하학적인 특징이 있다. 그래서 값을 계산할 이러한 기하학적 특징까지 고려하면 보다 정밀한 값을 찾을 있다. 가장 일반적으로 많이 사용하는 방식은 SVD(Singular Value Decomposition) 사용하며, 복잡하게 계산할 때는 전형적인 최적화 방식으로 계산하기도 한다.

 - Calibration Patterns
: calibration 수행하기 위해 사용되는 패턴은 크게 2D checker board 3D calibration box 나눌 있다. 2D checker board 상대적으로 제작이 쉽지만 calibration 위해 checker board 이리저리 바꿔가며 여러 장의 이미지를 얻어야 한다는 단점이 있다. 반면 calibration box 장의 이미지만으로 camera calibration 수행할 있다는 장점이 있지만 제작이 복잡하다는 단점이 있다.



3D Vision Technology

@concept
3D Vision Technology
: 영상 정보를 통해 3차원 정보를 추출하는 기술

3D Stereo Vision Technology
: 개의 카메라로부터 얻은 영상의 차이(disparity) 이용하여 2D 영상에서 사라진 거리 정보를 복원해 내는 기술

 - Disparity: 카메라로부터 멀리 떨어진 물체는 각각의 카메라에 입력된 위치의 차이가 그다지 나지 않게 된다. 반면 카메라로부터 가까운 물체는 각각의 카메라에 입력된 위치의 차이가 크다. 이러한 차이를 disparity라고 한다. disparity 구하면 거리 정보를 복원할 있게 된다.

 - Matching: 그런데 여기서 문제점은 왼쪽 영상의 점이 오른쪽 영상의 어디에 대응되는가를 알아야 disparity 구할 있다는 점이다. 이렇게 왼쪽, 오른쪽 영상의 일치점을 찾는 과정을 matching이라고 한다. 통상적으로 점만으로는 비교가 어렵다. 그래서 대응점 주변 정보를 포함한 하나의 블록을 이용하여 일치점을 찾는 것이 일반적이다. 이를 block matching이라 부른다.

 - Image Rectification: matching 위해 블록을 다른 영상에서 처음부터 끝까지 모두 뒤지는 것은 불합리해 보인다. 카메라 간의 기하학적인 구조 정보를 이용하면 최소한 어느 근방에 있을 같다라는 정보를 구할 있는데, 이를 이용하여 탐색 위치를 줄여주는 과정을 image rectification이라고 한다. rectification 위해서는 대의 카메라 사이의 배치 형태를 정확하게 알고 있어야만 하는데, 이를 camera extrinsic parameter라고 한다.

 - Camera Calibration: 앞서 disparity 구하면 거리 정보를 있다고 했는데 이는 상대적인 정보까지만 알아낸 것이다. 영상 처리 분야에서는 이를 up to scale까지 찾아냈다고 표현한다. 이를 우리가 사용하는 단위 – metrical information, 쉽게 말하면 cm 떨어져 있는지 알고 싶다면 camera intrinsic parameter 찾아내야 한다. 이처럼 camera intrinsic/extrinsic parameter 찾아내는 과정을 camera calibration이라고 한다.

 - 요약하면, 장의 영상만으로는 3D 정보를 얻을 없다. 최소한 서로 다른 위치에서 촬영한 장의 영상이 필요하다. 장의 영상으로부터 disparity 계산하면 3차원 상의 위치를 파악할 있다. 그리고 , disparity 구하려면 image matching 풀어야 한다. 그냥 image matching 하면 너무나 많은 시간이 걸리기에 image rectification 수행하는데, 이를 위해서는 camera calibration 필요하다.


3D Image Processing Flow
: 위의 요약 내용을 역순으로 하면 3D 정보를 얻을 있다.

1) Camera Calibration 수행: image rectification 위하여 camera extrinsic parameter 구한다. 또한 나중에 찾아낼 up to scale로부터 실제 거리를 알아내기 위하여 camera intrinsic parameter 구한다.
2) Image Rectification 수행: image matching 쉽게 하기 위함이다.
3) Image Matching 수행: disparity 구하기 위함이다.
4) Disparity 구함: 유클리디안 공간 상의 3차원 좌표를 계산하기 위함이다.
5) 3D Information 취득: camera intrinsic parameter 이용하여 실제 거리를 계산한다.



Image Processing System

@concept
Image Sensor
: Image sensor projects 3D space object to 2D space. This data include geometric informations of that space(size, shape, thickness, angle, existence) and additive informations from color(grouping, surface, recognition, etc). Image sensor is useful because of these applicable informations.

Typical Architecture of Image Processing System
 - Camera : image acquisition
 - Encoder : image transformation for long distance transmission
 - Decoder : restoration of encoded image. so-called ‘Image Grabber’ or ‘Frame Grabber’
 - PC, Embedded System : image printing or processing


OpenCV (Open Computer Vision)
: OpenCV is a library of programming functions mainly aimed at real-time computer vision. We can bring images to user programming area using this.

The Field of Image Processing
 - Image Processing: INPUT=image, OUTPUT=image
 - Computer Graphics: INPUT=not image, OUTPUT=image
 - Machine Vision: INPUT=image, OUTPUT=not image

Image Transfer System
 - analog: NTSC
 - digital: ITU BT.601/656