컴퓨터 비전에서의 카메라 센서는 사진이 이쁘게 나오는 게 아닌
정확하게 빛의 밝기를 감지하는 게 좋은 카메라 입니다.
정확하게 빛을 감지한다는 건 어떤 걸까요?
정확하고 적은 노이즈의 진짜 신호만을 가지고 있는 센서 데이터를 얻기 위해서는
디지털 이미지, 사진 이미징 장비에 대한 이해가 좋아야 합니다.
모든 카메라 센서는 기본적으로
photodiode 센서를 통해서 빛을 받아들이고, 전압을 생성하고, 그 전압을 Analogue-to-Digital Converter를 통해서 디지털 신호로 변환합니다.
이때 저희가 많이 사용하는 Color Camera에는 Bayer Pattern이라는 형태의 빨간색, 초록색, 파란색 광필터를 배치해서 RGB 이미지를 얻어낼 수 있습니다. 보통 디지털 신호를 얻어내면 픽셀마다 10bit, 12bit, 16bit 등으로 데이터를 얻게 됩니다. 이는 우리가 알고 있는 8bit의 RGB 채널들보다 훨씬 섬세하게 빛의 밝기를 표현할 수 있습니다.
카메라로부터 raw image가 나오게 되면 양자화를 거치고, 카메라 회사에서 지원하는 sRGB colorspace로 맵핑하면 저희가 알고 있는 컬러 이미지가 나오게 됩니다.
다음 사진은 실제 사진사분들이 사용하는 작업 파이프라인 입니다.
1. 피사체에 충분히 빛을 반사되게 합니다.
2. 렌즈로부터 셔터속도, 조리개값 등을 설정해서 광량을 조절합니다.
3. 카메라 내부에서 CMOS센서가 빛을 반응하고 내부 이미지 프로세싱을 거칩니다.
4. 프로세싱을 거친 후 sRGB Color space에 있는 이미지를 받아서 후보정 소프트웨어에 보냅니다.
5. 후보정된 이미지 결과를 얻어냅니다.
하지만 저희는 예쁜 사진을 받는 게 목적이 아니기 때문에 카메라 내부 프로세싱이 어떻게 이루어지는지 살펴볼 것입니다.
다음은 카메라 내부 프로세싱 파이프라인 입니다.
1. 렌즈를 통해 빛이 들어옵니다.
2. CCD나 CMOS 센서가 빛을 받아서 디지털 신호로 변환해줍니다.
3. 디지털 신호를 사전에 설정해둔 ISO gain값에 곱해져서 밝기값이 조정됩니다.
4. Bayer pattern에 맞춰 디모자이킹을 해줌으로써 모든 픽셀의 RGB값이 생성되게 만들어줍니다.
5. 전체적인 신호분석을 통해 이미지의 노이즈를 제거합니다.
6. 밝은 값은 밝게 만들어주고 어두운 값은 어둡게 만들어주는 화이트 밸런스 작업을 거친 후 컬러의 warmth값이 조절됩니다.
7. 이렇게 조정된 값을 sRGB color space에 맵핑을 해줍니다.
8. 이미지 저장을 위해 JPEG로 압축해줍니다.
9. 이미지를 저장합니다.
Color Camera 문제점
1. Bayer pattern 풀어주는 Demosaicing 작업에서 문제가 발생
Bayer pattern은 픽셀들마다 빨간색, 초록색, 파란색 필터 중 하나를 씌워주고 두 개의 같은 컬러 픽셀 사이에 있는 픽셀값을 interpolation(보간법)을 통해 풀어서 모든 픽셀값에 RGB값이 나오게 하는 방법입니다.
하지만 이 interpolation 방법은 실제 센서 데이터를 받는 게 아니라 주변 픽셀에 대한 정보를 기반으로 빈 픽셀의 값을 추론하는 하는
것이기 때문에 정확한 값을 받는 방법은 아닙니다.
이 때문에 Color image는 실제로 모든 픽셀의 데이터를 받는 것 보다 훨씬 흐려지게 됩니다. 왜냐하면 interpolation을 통해 blurring 과 같은 효과가 나타나기 때문입니다. 그리고 이 Bayer pattern을 풀기위해서는 2번씩의 interpolation 계산이 들어가게됩니다.
이때문에 interpolation 계산을 하느라 Color image를 취득하는데 계산 시간이 소요됩니다.
2. Bayer pattern에 인해 빨간색, 초록색, 파란색 필터가 씌워지게 되는데 이 필터 때문에 이 픽셀은 모든 빛의 스펙트럼을 다 받을 수 있게 설계되어있음에도 불구하고 하나의 색만 제외하고는 모든 다른 색의 빛을 받지 못하게 됩니다. 그렇기 때문에 절대적인 광량이 줄어들게 되고 영상의 밝기가 어두워지게 됩니다.
Monochrome camera
흑백 카메라의 장점
1. Bayer pattern X
-> 없는 것만으로도 이미지의 퀄리티가 좋아집니다.
2. 모든 픽셀이 전체적인 빛의 스펙드럼을 전부 받을 수 있기 때문에 광량이 많아집니다.
신호처리 입장에서 광량이 많다는 것은, 전자회로에서 기본적으로 가지고 있는 노이즈값에 비해 빛의 양이 훨씬 더 많아지기 때문에 신 호 대비 노이즈 비율이 좋아지게 됩니다. 신호처리 분야에서 이걸 signal-to-noise-ratio라고 합니다.
이 덕분에 훨씬 깔끔한 이미지가 나오게 됩니다.
흑백 카메라 장점 1번 예시 입니다.
흑백 카메라 같은 경우 노이즈가 없지만 컬러 카메라 이미지를 보게 되시면 노이즈(*무아르)가 껴있
는 것을 보실 수 있습니다.
※모아레 패턴(Moire pattern)
흑백카메라 장점 2번 예시입니다.
흑백이미지와 컬러이미지 각각의 raw 이미지를 비교한 사진 인데 흑백 이미지가 더 밝은 것을 볼 수 있습니다. 컬러 이미지가 어두운 이유는 컬러 필터를 통해 빛의 스펙트럼을 일부분만 받기 때문에 광량이 적어 어두운 것 입니다.
밝기를 높이는 방법은 ISO gain 값을 높여서 증폭을 시키면 되는데 밝기 뿐만 아니라 노이즈도 증폭이 되기 때문에 광량 뿐만 아니라 노이즈도 양이 많아집니다.
Multi-/Hyperspectral camera
보통 10개 정도의 채널을 받으면 Multi camera 범주에 속하고
100~200개 정도의 채널을 받으면 Htperspectral camera 범주에 속합니다.
(두 카메라 모두 VSLAM에서 쓰지는 않는다고 합니다.)
이 두 카메라 기술을 이용해서 개발한 것이 적외선 카메라입니다.
적외선 카메라 같은 경우는
교량에서 crack detection 같은 경우에 사용하거나, 야간에 VSLAM하거나 화재 현장에서 VSLAM할 때 사용합니다.
Polarized camera
편광 카메라는 픽셀에 편광 필터를 붙임으로써 빛반사를 없앨 수 있는 특별한 카메라 입니다.
종종, 공장 같은 환경에서는 고장 설비에 있는 금속들이라든지, 비닐 재질에서 반사된 빛 때문에 사야가 가려져서 VSLAM이 작동 중지되는 일이 있다고 합니다. 편광 카메라를 사용한다면 그런 빛들이 편광 필터가 막아줌으로써 깨끗한 이미지만 얻을 수 있습니다.
이러한 빛 반사를 막을 수 있는 방법은 소프트웨어적으로 전혀 없다시피하고, 하드웨어적으로는 편광필터만이 답이라고 합니다.
Event camera
이벤트 카메라는 최근 VSLAM에서 조명받고 있는 새로운 타입의 카메라 입니다.
픽셀의 밝기 변화(이벤트)가 있을 때만 감지합니다.
이벤트가 있을 때만 감지하기 때문에 기존 카메라 보다 훨씬 빠르게 동작합니다. (초고속 카메라와 맞먹는다고 합니다.)
좋은 카메라 고르는 법
좋은 카메라를 고르기 위해서는 카메라와 렌즈가 모두 좋아야 한다.
카메라 구매할 때 고려해야할 것들
> Sensor resolution (센서 해상도)
장점 : 작은 물체도 섬세하게 촬영 가능
단점 : 연산량이 많아지고, 카메라의 한계 해상도를 넘기게 되면 픽셀들이 우겨넣어지기 때문에 광량이 작아짐
> Sensitivity
: 적은 양의 빛으로도 밝게 촬영 가능
> FPS
: 시간에 대한 해상도
: 실시간 FPS -> 25~30FPS
> Sensor Size
: 센서 사이즈가 커지면 픽셀 사이즈도 커짐 -> 한 픽셀에서 받을 수 있는 광량 높아짐 -> 좋은 signal-to-noise-ratio를 가짐
-> 깔끔한 이미지 얻을 수 있음.
: 센서 사이즈가 클 때 이미지 중간 부분만 crop해서 사용하기 때문에 이미지 외곽으로 갈수록 심해지는 왜곡을 피함.
> Noise
: 카메라 노이즈엔 Shot noise 와 Read noise가 있음. 둘 다 낮을수록 좋음
: Quantum efficiency는 얼마나 디지털 신호로 변환되는지인데 변환이 되지 않은 신호들은 노이즈가 될 가능성이 있어 높을 수록 좋다.
Heat stabiliy는 너무 덥거나 추워도 노이즈가 생기는데 높을수록 안정화됨.
> Dynamic Range
: 밝은 곳과 더 밝은 곳, 어두운 곳과 더 어두운 곳을 구분해줌. 잦은 조명 변화에 있어 높을수록 좋음.
> Sensor Type (CCD/CMOS)
: 대부분의 카메라가 CMOS. 저전력이라는 단점이 있다.
CCD는 DSLR에서 사용되는 센서지만 머신비전에서 모바일 용도로도 만들어지고 있음. CCD는 Dynamic Range도 높고, noise도 작은 편이고, Global shutter로 사진을 찍는 편. 하지만 센서의 크기가 큰 편이어서 소형 센서로는 구하기 어려움.
> Global shutter / Rolling shutter
: CMOS 같은 경우 움직이면서 촬영 시 밀려보이는 Rolling shutter 문제가 있음. 이 문제를 피하기 위해서는 Global shutter가 가능한 CMOS architecture를 골라야 함.
VSLAM에서 Global shutter를 사용하여 큰 공간을 매핑했을 때 안정적인 결과가 나타남.
> Form factor
: 용도에 따라 크기가 매우 중요
> Power / Cooling requirement
: 성능에 따라 Power interface 와 cable의 양이 달라짐 / 성능이 좋을수록 cooling fan 필수
> Interface / Mount
: 카메라마다 인터페이스가 다름(USB,USB3, USB-C, Gig-E, 10Gig-E,...)
: 또한 인터페이스마다 권장 길이가 있음 ( USB: 5~10m, USB-C: 1~2m, Gig-E : ~100m)
> Pre-precessing / ISP
: 카메라 중 전처리 프로세서, ISP 프로세서 달린 게 있음. 발열이 심함
> Shock resistance / Heat proof
: 충격, 저온, 고온에서 잘 버텨야 함.
> Price
좋은 렌즈 고르는 법
> Sensor Size
> Working Distance
> Resolution
> Depth of Field
> Field of View
이 5가지 각각 어떤 것을 고르냐에 따라
- Spatial resolution (공간 분해능)
- Distortion (왜곡)
- Perspective (시야각)
- Contrast
이 정해지게 됩니다.
Spatial resolution 와 Sensor resolution 차이
Sensor resolution은 센서가 표현할 수 있는 최대 정확도를 뜻하지만,
Spatial resolution은 공간을 얼마나 쪼개서 전달할 수 있는지를 의미합니다.
좋은 Focus를 얻으려면
sensor size + working distance + field of view가 좋은 조화가 이뤄져야 합니다.
렌즈는 비싼 거 쓴다고 모든 카메라에서 다 좋은 결과를 얻는 게 아니기 때문에 조화를 잘 맞춰야 합니다.
Imaging System Parameter Calculator와 같은 프로그램으로 조합을 계산할 수도 있습니다.
하지만 공간 분해능이 잘되는지는 프로그램으로는 알 수 없습니다.
그럼 좋은 공간 분해능을 가진 렌즈를 어떻게 알 수 있을까요?
렌즈 종류에 따라 좋은 공간 분해능을 가진 렌즈 기준이 조금 다릅니다.
1. Wide-view lens (광각 렌즈)
: 넓은 화각을 갖지만, field of view 끝자락에 갈수록 왜곡이 심해지는 단점이 있습니다.
2. Telecentric lens (망원 렌즈)
: field of view 모든 곳에서 비슷한 이미지 퀄리티를 가지지만 정확한 초점거리가 엄청 멀기 때문에 포커스를 맞추기가 쉽지 않다는 단점이 있습니다.
깔끔한 이미지를 주는 렌즈는 MTF chart를 통해 확인
MFT chart는 제대로 된 렌즈 메이커라면 data sheet로 확인이 가능합니다.
MFT chart의 x축은 특정 공간 안에 반복되는 패턴의 수를 나타낸 것입니다.
MFT chart의 y축은 Contrast(구분) 입니다. 공간 분해능과 다이렉트한 연관이 있습니다.
y값이 천천히 내려가는 렌즈가 좋은 렌즈 입니다.
본 내용은 자율주행 데브코스 장형기 강사님의 강의 내용을 정리한 글임을 밝힙니다.
'자율주행 데브코스 4기 TIL > SLAM' 카테고리의 다른 글
RANSAC (0) | 2023.02.28 |
---|---|
Epipolar Geometry (0) | 2023.02.27 |
Camera projection (0) | 2023.02.23 |
Projective geometry (0) | 2023.02.23 |
3D Rigid Body Motion (0) | 2023.02.23 |