일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 삼성전자 소프트웨어멤버십 SSM
- 가상화
- 하이퍼바이저
- 멤버십
- 동아리
- 신경회로망
- Bidirectional Associative Memory
- 삼성
- 물걸레로봇청소기추천
- NarwalFreo
- 빅데이터
- 증강현실
- 신경망
- 구글 앱 엔진
- 패턴인식
- BAM
- 갤럭시탭S8울트라
- Python
- Google App Engine
- 나르왈프레오
- 고려대학교
- 패턴 인식
- 물걸레자동세척로봇청소기
- SSM
- 인공지능
- hopfield network
- 삼성소프트웨어멤버십
- Friendship
- Neural Network
- 파이썬
- Today
- Total
정보공간_1
[6기 강북 이보희] 디지털 영상처리 - camera 편 본문
안녕하세요.
강북멤버십 22-1기 이보희입니다.
앞으로 디지털 영상처리에 대해 글을 올릴 예정인데요, 오늘은 카메라로부터 디지털 데이터를 얻는 과정에 대해서 소개하겠습니다.
1. Image Acquisition Pipeline
빛으로부터 픽셀데이터를 얻는 과정은 아래 그림을 보면 쉽게 알 수 있습니다. 렌즈를 통해 들어오는 빛을 센서로 감지한 후 디지털 값으로 변환시키는 것으로, 이 과정 중에서 몇가지를 자세하게 알아보겠습니다.
위 그림과 관련된 더 상세한 내용은 P.E.Debevec and J. Malik - recovering high dynamic range radiance maps from photographs 논문을 참조하시면 됩니다.
2. Lens
카메라가 발명되기 이전부터 렌즈를 사용하지 않고 빛을 받아들여 촬영하는 사진기가 있었는데, 그것이 pinhole camera(바늘구멍 사진기) 입니다. 이 pinhole camera에는 한계가 있었는데
- 구멍이 크면 상이 흐려진다.
- 구멍을 작게하면 해상도가 좋아지지만, 빛의 양이 줄어든다.
- 회절로 인해 구멍을 일정 크기보다 더 줄이면 어두워질뿐만 아니라 흐려진다.
등 입니다. 이런 심각한 한계를 개선하고자 나온 것이 렌즈로, 빛을 많이 받아들이면서 뚜렷한 상을 얻기 위하여 고안된 것입니다.
렌즈를 사용하게 되면 빛이 필름에 맺히게 되는데, 모든 평행 광선은 초점 거리(f)에 위치하는 평면 상의 한 점으로 수렴하게 됩니다.
pinhole camera의 단점들을 보완하긴 했지만 렌즈를 사용한 카메라에서도 몇가지 단점들이 존재하는데요, 그 중에서 두가지 단점에 대해 알아보겠습니다.
1) Vignetting
비네팅이란 이미지 외곽부에 도달하는 광량이 중심부 광량보다 적은 광학적인 현상을 말합니다. 렌즈가 곡면의 이미지를 형성하기 때문에 그 외곽부에 도달하는 광량이 급격히 줄어들어 발생하는 것으로 아래 그림과 같이 사진의 외곽으로 갈수록 이미지가 어두워지는 것을 볼 수 있습니다.
2) Radial Distortion
렌즈를 통과한 빛은 시작지점과 끝의 결과물이 같지 않습니다. 현실은 3차원인데 비해서 사진은 2차원이고, 렌즈는 구면인데 비해서 이미지가 맺히는 곳은 평면입니다. 중심에서 먼곳을 지나가는 광선은 좀 더 가까운 곳을 지나는 광선보다 좀 더 많이 휘어져서 지나가게 되고 왜곡이 발생하게 되는 것입니다.
이런 왜곡을 보정하기 위해 캘리브레이션 패턴과 openCV를 사용할 수 있습니다. 일반적으로 캘리브레이션을 위해 사용되는 패턴인 체스판이 인쇄된 종이를 여러번 찰영 한 뒤, 카메라의 특징을 구하고 아래 함수를 사용하는 것으로 보정이 가능합니다.
static void cvCalibrateCamera2( IntPtr object_points, IntPtr image_points, IntPtr point_counts, MCvSize image_size, IntPtr intrinsic_matrix, IntPtr distortion_coeffs, IntPtr rotation_vectors, IntPtr translation_vectors, int flags
)
왜곡 보정에 관한 간단한 예제는 OpenCV tutorial 홈페이지에서 확인할 수 있습니다.
http://docs.opencv.org/trunk/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
3. Image irradiance
이미지 픽셀의 밝기는 어떤것의 영향을 받게 될까요? 아래 그림을 보면 빛이 물체 O에서 반사되어 이미지평면에 맺히는 것을 볼 수 있습니다. (O')
여기서
L : Scene radiance (Light source)
E : Image irradiance (렌즈를 통해 O'에 맺히는 빛)
이라고 하면 다음과 같은 식이 성립합니다.
위 수식으로 이미지의 밝기는 빛의 양과 비례하고, 조도는 렌즈의 면적에 비례하며, 렌즈와 이미지 평면과의 거리의 제곱에 반비례한다는 사실을 알 수 있습니다.
이 식을 이용하면 sensor exposure 값은
이 되고, final digital values 는
가 됩니다.
4. 처음에 보여드렸던 Image Acquisition Pipeline으로 지금까지의 내용을 정리하면 다음과 같습니다.
Reference
- P.E.Debevec and J. Malik, recovering high dynamic range radiance maps from photographs, SIGGRAPH 97
- 위 글은 국민대학교 윤상민 교수님의 디지털영상처리 강의를 기반으로 작성되었습니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 부산 심현정] Ext JS4 파헤치기 #1 (0) | 2014.08.06 |
---|---|
[6기 강북 윤덕진] Tizen OS Porting을 위한 환경구축 (0) | 2014.08.06 |
[6기 부산 오승민] Transact-SQL(T-SQL) #1 - 데이터 형식 (0) | 2014.08.05 |
[6기 부산 박천경]SDL (Simple DirectMedia layer) #1 (0) | 2014.08.04 |
[6기 전주 황규하] AVR로 알아보는 MCU 구조 - AVR Features (0) | 2014.08.04 |