juuuding

[Open SW Project] Lec01_Fundamentals 본문

인공지능/컴퓨터비전 기초

[Open SW Project] Lec01_Fundamentals

jiuuu 2025. 1. 19. 20:44

💡 Image

이미지는 2차원 좌표를 가진 함수로 표현 할 수 있다. 이미지 중 grayscale 이미지는 1개의 채널을 가진 1D 스칼라로 가능하고, color image는 3개의 RGB 채널을 가진 3D 벡터로 표현 가능하다. 여기서 각 채널의 범위는 모두 0~255(정규화 한다면 0~1)다. x,y 좌표를 가진 이미지에 시간적 정보가 있으면 비디오를 표현할 수 있고, 시간 대신 z축 좌표를 추가하면 3차원 객체 표현이 가능하다. 만약 이 둘을 모두 합쳐 x,y,z 좌표에 시간적 정보를 포함한다면 움직이는 영상 3차원 객체를 표현할 수 있다. 실제 세계의 밝기는 continous한 값을 가지지만, 이 실제 세계를 컴퓨터 안 이미지로 표현하기 위해서는 0~255(or 0~1)로 quantized 해야한다. Quantization은 이미지를 2차원 그리드 (x,y) 픽셀로 표현하는 것이다. 각 픽셀은 0~255(0~1)에 해당하는 color(intensity) 정보를 저장하고 있다. 

 

<Color Image>

RGB 3개의 채널을 가진 color image는 각 채널 당 8bit(0~255) 씩해서, 각 픽셀에 총 24bit 정보를 저장하고 있다.

 

<Binary Image>

1개의 채널을 가진 binary image는 각 픽셀에 총 1bit(0 or 255) 정보를 저장하고 있다. 그래서 이 이미지는 흰색 또는 검정색으로만 표시된다.

 

 

💡 Image Sampling

real-world에서는 장면이 continous 1D signal로 존재한다. 이 장면을 컴퓨터에 이미지로 표현하기 위해서는 이를 샘플링해야하는데, 완벽하게 샘플링하는 oversampling과 완벽하지 않게 조금의 정보를 모아 장면을 재구성하는 undersampling이 있다.

oversampling의 기준은 sampling frequency > 2*signal's frequency인데, real-world의 signal's freq은 정확히 알 수 없다. 하지만 이 개념에 대한 이해를 돕기 위해 whitewall 장면과 일반 풍경 장면이 있다고 가정하자. whitewall은 아무 것도 존재하지 않는 흰 벽이고 이 장면에서 샘플링을 진행한다고 하면, 2x2의 크기로 샘플링 하였을 때나 1000x1000의 크기로 샘플링 하였을 때 아무런 차이가 없다. 모두 흰색일 것이기 때문이다. 

반면 일반 풍경 장면을 2x2로 샘플링 하고 1000x1000로 샘플링한다고 하면 분명 여기선 차이가 발생한다. 따라서 whitewall 장면의 freq는 낮고, 일반 풍경 장면의 freq은 상대적으로 높다고 할 수 있다.

정확히 이해하기 어렵지만 나는 한 장면에 더 세부적으로 많은 정보가 있는 것이 높은 freq를 가진다고 간단히 이해했다. 

 

undersampling & oversampling

 

 

💡2D Image sampling (Quantization)

Quantization은 spatial에서 한 번, intensity에서 한 번 총 두 번 발생한다. real-world 장면을 한 번에 모두 sampling 할 수 없으니, 공간적으로 어디서부터 어디까지 샘플링할 것인지를 정하고(1번), 공간을 특정지어 줬으면 그 안에서 밝기의 강도를 샘플링 해주어야 한다(1번). real-world에서 밝기는 연속적인 값이지만, 우리가 이미지로 이를 표현하려면 discrete한 값으로 표현해야하기 때문이다. 예를 들어 real-world의 장면에서 crop 형식으로 공간을 sampling(quantization) 하고, 각 픽셀마다의 intensity를 특정 값의 범위로 sampling(quantization) 해야한다. 따라서 sampling(quantization)은 spatial, intensity domain에서 각 1번씩 총 2번 해주어야 한다. 

 

<Sampling on Spatial Domain>

Spatial domain에서 샘플링 할 때는 Field of View, CCD(or CMOS) sensor size, Pixel number 등 다양한 요소를 고려해야한다. 예를 들자면 3차원 현실 세계 장면에서 시점으로부터 특정 각도 안에 속하는 부분을 x inch 크기인 CCD 화면에 표현할 때, 몇개의 pixel로 표현할지를 생각해서 sampling 해야하는 것이다, 

 

<Sampling on Intensity Domain>

Intensity domain에서 샘플링 할 때도 각 픽셀을 몇 개의 채널로 표현할 것인지 정해주어야 한다. 만약 grayscale이면 하나의 채널, color면 RGB 3개의 채널이 필요하다. 각 채널의 intensity 값은 0~255(or 0~1)로 표현(discrete value로 표현)할 수 있다. 

그런데 real-world의 장면에서는 밝기의 범위가 아주 넓다. 이를 화면에 표현할 때는 256개의 밝기 만으로 이를 제한적으로 표현할 수밖에 없는데, 이러한 한계를 넘기 위해 HDR이라는 기술을 사용할 수 있다. 한 장면을 다양한 노출 정도로 여러장 찍어 이를 합치는 것이다. 그러면 밝기의 256개 범위보다 더 넓은 범위를 가진 real-world에 가까운 사진을 얻을 수 있다. 

 

 

📝ETC

* RGB 대신 Yuv, Lab, Luv 와 같은 채널도 있다. Y와 L은 밝기(brightness)를 나타내고, uv와 ab는 채도(color chromacity)를 나타내는 값들이다.