[COMPUTER VISION] 영상 처리 연산 1

목차

  1. 영상 처리 연산
    1. 점 연산(Point operation)
    2. 영역 연산(Spatial/Neighborhood operation, Filtering)
      1. 상관(correlation) vs 컨볼루션(convolution)
      2. 컨볼루션 연산의 대수적 성질
      3. 대표 필터와 효과

영상 처리 연산

1. 점 연산(Point operation)

  • 정의: 한 픽셀의 새 값이 오직 그 픽셀 자신의 명암값만으로 결정되는 변환
    • \[f_{out}(i, j) = t(f_1(i, j), \, f_2(i, j), \, ..., \, f_k(i, j))\]
  • 형태
    • 선형 점 연산: 밝기·대비 조절 등
      • Alt Images
      • \[f_{out}(i, j) = t(f(i, j)) = \begin{cases} min(f(i, j) + a, \, L-1), \quad \text{(밝게)} \\ max(f(i, j) - a, \, 0), \quad \text{(어둡게)} \\ (L-1) - f(i, j), \quad \text{(반전)} \end{cases}\]
    • 비선형 점 연산: 감마 수정(표시 장치 보정 등)
      • Alt Images
      • \[f_{out}(i, j) = (L-1) \times (\hat f(i, j))^\gamma \quad \text {이때} \; \hat f(i, j) = \frac {f(i, j)}{L-1}\]
    • 디졸브(dissolve): 두 영상 섞기(점 연산이지만 (k=2) 입력) e.g. fade in/out
      • Alt Images
      • \[f_{out}(i, j) = \alpha f_1(i, j) + (1 - \alpha)f_2(i, j)\]
  • 특징/용도 요약: 국소 문맥을 보지 않으므로 빠르고 단순, 명암 재매핑(밝기/대비/감마), 영상 간 블렌딩에 효과적.

2. 영역 연산(Spatial/Neighborhood operation, Filtering)

  • 정의: 한 픽셀의 새 값이 이웃 화소들의 명암값 함수로 정해짐.
  • 무엇에 쓰나?
    • 향상(노이즈 감소(denoise), 사이즈 조정(resize), 대조 강화(contrast))
    • 정보 추출(texture, edges, keypoints)
    • 패턴 검출(템플릿 매칭)

2.1. 상관(correlation) vs 컨볼루션(convolution)

  • 상관: “원시적인 매칭 연산(윈도우 형태 템플릿으로 물체 검출)”
  • 컨볼루션: 커널을 좌우·상하 뒤집은 후 상관을 적용 → 내가 원하는 윈도우와 동일하게 출력시키기 위해 적용
  • “컨볼루션은 커널을 뒤집어 적용, 상관/컨볼루션은 유사도 최대 위치를 찾는 동일한 맥락”.
  • Alt Images
  • 수식
    • 상관: \(g(i) = u \otimes f = \sum_{x=-\frac{(w-1)}{2}}^{\frac{(w-1)}{2}} u(x)\,f(i+x)\)
    • 컨볼루션: \(g(i) = u \ast f = \sum_{x=-\frac{(w-1)}{2}}^{\frac{(w-1)}{2}} u(x)\,f(i-x)\)
  • Alt Images
  • 수식
    • 상관: \(g(j,i) = u \otimes f = \sum_{y=-\frac{(h-1)}{2}}^{\frac{(h-1)}{2}} \sum_{x=-\frac{(w-1)}{2}}^{\frac{(w-1)}{2}} u(y,x)\,f(j+y,i+x)\)
    • 컨볼루션: \(g(j,i) = u \ast f = \sum_{y=-\frac{(h-1)}{2}}^{\frac{(h-1)}{2}} \sum_{x=-\frac{(w-1)}{2}}^{\frac{(w-1)}{2}} u(y,x)\,f(j-y,i-x)\)

2.2. 컨볼루션 연산의 대수적 성질

  • 선형성: $filter(f_1 + f_2) = filter(f_1) + filter(f_2)$
  • 이동 불변성: $filter(shift(f)) = shift(filter(f))$
  • 교환 법칙: $a \times b = b \times a$
  • 결합 법칙: $a \times (b \times c) = (a \times b) \times c$
  • 분배 법칙: $a \times (b + c) = (a \times b) + (a \times c)$
  • 스칼라 결합: $ka \times b = a \times kb = k (a \times b)$
  • 항등원: $e = [0, 0, 1, 0, 0], a \times e = a$
  • 결론: 여러 필터를 연속 적용 ≡ 하나의 등가 필터(성능·설계 단순화).

2.3. 대표 필터와 효과

  • \[h[m, n] = \sum _{k, l} f[m+k, n+l]\]
  • Alt Images
  • Smoothing, 스무딩(저역통과)
    • 박스/가우시안: 노이즈 저감, 부드러워짐.
      • Alt Images
      • Alt Images
    • 박스 특징: 각 픽셀의 인접 픽셀의 평균값으로 교체, 격자 무늬
    • 가우시안 특징: 고주파 제거, 자기 컨볼루션 → 폭 증가($\sigma !\to! \sigma\sqrt{2}$), 분리 가능(2D = 1D×1D).
    • 5×5 가중 커널 예시(중심 가중, 주변 작음).
  • Sharpening, 샤프닝(고주파 강조)
    • Alt Images
    • 특징: 자기 자신의 명암 강조 - 주변의 평균값
    • 지역 평균과의 차를 강조”하는 샤프닝 필터 예시.
  • 에지 검출(1차 미분형)
    • Alt Images
    • Sobel: 수직/수평 마스크로 경계 강조.
    • 미분은 노이즈에 민감 → 스무딩 후 미분이 정석
  • 모션 필터
    • Alt Images
  • 비선형 필터
    • Median: 임펄스(솔트 페퍼) 노이즈에 강함.
      • Alt Images
      • 최소, 최대 제외 후 중앙값 사용

2.5. 패딩

2.5.1. Zero padding (제로 패딩, constant=0)

  • 정의: 영상 밖을 모두 0으로 채워넣고 필터링.
  • 1D 예시: [...] a b c [...] → 제로 패딩 후: [0 a b c 0]
  • 수식(2D): 바깥 좌표 (x,y)가 범위 밖이면 I_padded(x,y)=0.
  • 장단점: 계산이 단순하고 속도가 빠르지만, 가장자리에서 어둡게 끌리는(검게 번짐) 인공물이 생기기 쉽다.

2.5.2. Replicate padding (복제, 클램핑, edge)

  • 정의: 영상 밖의 값을 가장자리 픽셀값으로 복제하여 연장.
  • 1D 예시: 원본 a b c → 패딩 후 [a a b c c] (왼쪽 바깥은 a로, 오른쪽 바깥은 c로 채움)
  • 수식(2D): 범위 밖 좌표를 가장 가까운 유효 좌표로 클램프: $I_padded(x,y)=I(clamp(x,0,W-1), clamp(y,0,H-1)$
  • 장단점: 경계에서 값의 급격한 하락(0으로 가는) 현상을 막아 엣지 보존이 제로 패딩보다 낫다. 다만 긴 평탄대(plateau) 가 생겨 살짝 뭉개질 수 있다.

2.5.3. Reflect padding (미러, 반사)

  • 정의: 영상 바깥을 거울 반사처럼 대칭 확장.
  • 1D 예시(반복 없음, OpenCV의 BORDER_REFLECT_101/NumPy의 reflect):
    • 원본 a b c → 패딩 후 [b a b c b] (가장자리 값은 한 번만 사용하고 그 바깥은 거울처럼 반사)
  • 대안 변형(대칭 포함, 일부 라이브러리 symmetric):
    • a b c[a b a b c c]처럼 가장자리 값을 다시 한 번 포함하는 미러.
  • 장단점: 경계에서 연속적인 그라디언트를 유지해 블러/가우시안 필터 등에서 경계 인공물 최소화. 대개 시각적으로 가장 자연스럽다.

2.5.4. 패딩 사용 예시

  • 블러/가우시안/저주파 필터: reflect 권장(경계 자연스러움).
  • 엣지 검출(소벨/라플라시안): reflect 또는 replicate (제로 패딩은 경계에서 가짜 엣지 유발 가능).
  • 딥러닝 전처리에서 일관성/단순성: 구현·성능 고려해 replicate가 흔함(프레임워크 기본도 자주 이 모드).
  • 수치 안정성/특정 이론 가정(예: 경계=0): zero 선택.

Comments

Newest Posts