본문 바로가기

23년 1학기 학교공부/영상처리

[IP] Image fundamentals

목차

    728x90
    반응형
    SMALL

    📁 Image

    digital image란 픽셀들의 집합이고, 즉 픽셀은 디지털 이미지 안에서 가장 작은 유닛이다.

     

    픽셀은 픽셀 좌표(pixel coordinate)픽셀 값(pixel value)으로 이루어져있다.

     

     

    픽셀 좌표는 이산적(discrete), 불연속적이다. 이미지의 모든 곳에 픽셀이 존재하는 것이 아니라, (정수 x 정수) 위치에만 있기 때문이다.

    픽셀 값 또한 이산적(discrete), 불연속적이다.  픽셀 값은 밝기나 색상 등을 표현하는 값으로, 우리가 다루는 이미지에서는 0 ~ 255 범위의 정수 값으로 조건이 정해져있다.

     

     

    이미지는  대중적으로 2차원 함수 f(x, y)라고 표현하며, (x, y) 형태로 좌표를 표현한다.

     

    gray image는 1-D scalar값을 나타내고, color image는 RGB 세 종류가 있으므로 3-D vector 값을 나타낸다.

     

     

    f(x, y, t)비디오를 표현한다. 기존 이미지의 f(x, y)를 그대로 가져오고, t는 몇번째 프레임인지를 나타낸다.

    f(x, y, z)3-D 물체를 표현한다. z는 회전율을 말한다.

    f(x, y, z, t)움직이는 3D 물체를 나타내는데 많이 쓰인다.

     

     

     

     

    📁 Video

     digital video는 이미지의 집합이다.

     

    비디오에서 하나의 이미지를 '프레임(frame)'이라고 말하며,

    Frame rate란 비디오에서 1초에 보여지는 이미지(프레임)의 개수를 말하고, FPS(Frame per second)라고 부른다.

     

     

     

     

     

    📁 Camera Imaging Model

     

    이미지가 생성되는 과정은 이와 같다.

     

    먼저 빛이 surface에 반사되어 Lens를 통과하고, CCD 혹은 CMOS 라고 불리는 센서를 통과하면서 이미지가 만들어진다.

     

     

    이때 센서의 종류에는 두 가지가 있는데,

    CCD(Charge coupled device) camera는 high-end DSLR camera이고

    CMOS(Complementary mental-oxide semiconductor) camera는 휴대폰이다.

     

    두 센서는 서로 다른 이미지 생산 방식을 사용하고, 그 과정을 통해 생산되는 이미지에는 차이가 발생한다.

    위 그래프에서 가로축은 시간, 세로축은 이미지에서의 각 row를 뜻한다.

    이미지에서의 각 row는 위 이미지의 검은색 줄 하나를 말한다.

     

    global shutter는 고가 CCD에서 비디오를 생성하는 방식이다.

    이미지의 모든 row가 생성을 시작하는 시간이 같으므로, 영상의 이미지가 왜곡되지 않는다.

     

    rolling shutter는 저가 CMOS에서 비디오를 생성하는 방식이다.

    모든 row마다 생성되는 시간이 아주 미세하지만 조금씩 다르므로, 이미지에 왜곡이 생길 수 있다.

    예를 들어, line 1을 생성하고, line 2를 생성하는 시간 사이에는 텀이 있는데, 그 텀동안 이미지에 변화가 생기면 이미지에 왜곡(distortion)이 생길수밖에 없다.

     

    rolling shutter로 생성한 비디오는 건물이 기울거나(skew), 기둥이 휘는 등의 왜곡(distortion)이 생긴다.

     

     

     

    위와 같은 왜곡을 해결하기 위해 손떨림방지와 같은 알고리즘적 해결방식이 있긴 하다.

     

    하지만 비디오 안정화(stabilization) 방법을 이용하면 프레임을 억지로 이동시키다보니 범위를 벗어나게 되고, 위와 같이 영상이 확대되는 현상이 일어난다.

     

    이처럼 담고 있는 정보량에 차이가 생길 수 있기 때문에 무조건 강하게 안정화시키는것은 좋은 방법이 아니다.

     

     

     

     

    📁 Image Acquisition Process (이미지 입력 과정)

    현실 세계의 피사체는 왼쪽 그림과 같이 연속적인 모양을 갖고 있다.

    그런 연속적인 형태의 피사체를 디지털화하면 오른쪽 그림과 같이 이미지화된다. 무한한 픽셀을 모두 다 표현할 수 없기 때문에 오른쪽 그림처럼 픽셀에 매핑해줘야하는 것이다.

     

     

     

     

    📁 Sampling and Quantization

     

    그림의 AB 직선을 임의로 그어보자. 이 선의 픽셀값을 x축은 거리, y축은 밝기로 설정한 그래프로 나타내면 오른쪽 그림과 같다.

     

    그림이 시작되고 끝나는 부분은 픽셀 값이 급격히 변하므로 그래프에서도 급격하게 변화하는 부분을 관찰할 수 있으며,

    모든 픽셀이 픽셀값을 가지고 있으므로 선이 끊김 없이 연속적이다.

     

    이것이 실사에서의 정보이고, 이를 디지털화하기 위해 왼쪽 그림과 같은 작업이 이루어진다.

    x축을 따라 특정 위치(해당 그림에서는 정수 위치)에서 값을 가져온다.

    위에서 뽑은 포인트들의 밝기 값인 y축 값도 정수 위치로 조정함으로써 오른쪽 그림과 같이 진행된다.

     

     

     

     

     

    📁 Gray Image

    gray image는 0(black)부터 255(white)의 픽셀 값을 가지고 있다.

    위 숫자 집합은 이미지의 픽셀 값들인데, 각 숫자마다 위 아래 양옆으로 1씩 거리차이를 두고 픽셀들이 표현되고 있다.

    실사를 이미지화 하는 과정에서 x축에서 정수 위치의 값들만 뽑아냈으므로 위와 같이 1씩 거리차이가 있는 것이다.

     

    보편적으로 3x5 neighborhood를 추출하는 것은 특정 위치에서 가까운 세로 3칸, 가로 5칸을 추출하는것을 말한다.

     

     

     

     

    📁 Color Image

    Color 이미지는 위 gray image의 픽셀값을 각각 R, G, B에 한 세트씩 갖고 있다.

    각각 red, green, blue의 밝기를 나타내는 값이다.

     

     

    이미지에서 추출한 작은 네모 영역을 보통 patch라고 말한다.

    이외에 그냥 작은 이미지도 patch라고 말하기도 한다.

     

     

     

     red, green, blue 채널에서 보이는 이미지는 각각의 픽셀값을 가지고 있으므로, 아래 3개의 이미지처럼 gray image로 표현할 수 있다.

    red, green, blue 값이 높을수록 gray image에서는 밝게 표현된다.

     

     

     

     

    📁 색의 표현 방법

    빛의 3원색(Primary Colors of Light)은 Red, Green, Blue이다.

    각 색깔은 3D vector로 표현된다.

    R = (1, 0, 0)

    G = (0, 1, 0)

    B = (0, 0, 1)

     

    gray image의 픽셀값은 0 ~ 255 범위 내의 수인데, 최댓값을 1로 조정하여 표현할 수도 있다.

    즉 R = (1, 0, 0)은 R = (255, 0, 0)과 같은 뜻이다.

     

     

    보조 3원색(Secondary Colors)은 Cyan, Magenta, Yellow이다.

    Cyan은 Green + Blue = (0, 1, 1),

    Magenta는 Blue + Red = (1, 0, 1),

    Yellow는 Red + Green = (1, 1, 0)

     

     

     

     

    📁 Perceptual Aspects of Color(색깔의 인지적 측면)

    밝기를 표현하는 방법은 다양한데, 그 중 하나가 Luminance이다.

    이미지가 RGB 색 기반일 경우, luminance Y를 계산하는 일반적인 방법은 RGB의 평균값을 내는것과 같다.

     

    하지만 인간의 시각적 실험에 따르면 모두 같은 값을 가지더라도 파란색 빛이 빨간색 빛보다 어둡고, 녹색 빛이 가장 밝다.

    이런 실험 데이터에 기초하면 단순히 RGB값을 평균내는 것 보다는 각 값에 다른 weight를 주어 평균내는 것이 더 좋은 방법이고, 이를 토대로 도출한 보다 정확한 Luminance 계산 방법은 다음과 같다.

     

     

    Luminance와 같이 RGB를 평균낸 값을 픽셀값으로 사용하면 위처럼 gray image가 될 수 있다.

     

     

     

    📁 Image colorization (gray2rgb)]

    gray image를 color image로 복원하는 것은 추가적인 조치가 없다면 불가능하다.

     

    image colorization이란 gray image와 유저가 표시한 약간의 색깔 지표(color scribble)를 이용해 color image를 만드는 기술이다.

     

    이처럼 사람이 힌트를 추면 이를 토대로 나머지를 채울 수 있거나, 딥러닝처럼 학습방식을 이용하여 그럴싸하게 색상을 입힐수는 있다.

    하지만 완벽하게 동일한 이전 color image로 돌아가는것은 불가능하다.

     

     

     

     

    📁 Image Files and Formats

    흔히 쓰이는 이미지 확장자에는 GIF, PNG, JPEG 등이 있다.

     

    GIF

    파일 당 여러개의 이미지를 허용하는 확장자이다.

     

    색깔이 color map에 저장되는 color map 방식을 사용한다.

    별 다른 압축 없이 color를 표현하면 0 ~ 255 범위 안의 수이므로 256 x 256 x 256의 경우의 수가 엄청나게 많으며, 이를 전부 표현하기 위해서는 R, G, B 각각 8개씩 총 24비트가 필요하다.

    하지만 color map 방식은 color map 안에 정해둔 특정 색만 사용하겠다는 기능이므로 표현력이 조금 떨어지긴 해도 더욱 효율적으로 이미지 압축이 가능하다.

     

    PNG

    무손실 압축 방식.

    압출력이 떨어지는 대신 손실이 적다.

     

    JPEG

    손실 압축 방식.

    모든 확장자가 이미지를 압축하는 방식이긴 하지만, 그 중 손실이 나는 압축 방식이다.

    때문에 압축 전과 후의 데이터가 다르다.



    728x90
    반응형
    LIST