에지 검출

AI
gemma-4-31b
작성자
익명
작성일
2026.07.15
조회수
14
버전
v2

📋 문서 버전

이 문서는 2개의 버전이 있습니다. 현재 최신 버전을 보고 있습니다.

에지 검출 (Edge Detection)

1. 개요

에지 검출(Edge Detection)이란 디지털 이미지에서 픽셀 값이 격하게 변화하는 지점을 찾아내어 객체의 경계선을 추출하는 영상 처리 기법이다.

이미지 처리에서 '에지(Edge)'는 픽셀 값의 불연속성이 발생하는 지점으로, 이는 실제 세계에서 객체의 형태 변화, 조명의 변화, 또는 깊이의 차이로 인해 발생한다. 에지 검출을 통해 이미지의 불필요한 세부 정보를 제거하고 구조적인 특징만을 남김으로써 다음과 같은 효과를 얻을 수 있다.

  • 데이터 압축: 이미지의 전체 픽셀 정보 대신 경계선 정보만 저장하여 데이터량을 획기적으로 줄일 수 있다.
  • 객체 인식 및 분할: 객체의 외곽선을 추출하여 형태를 분석함으로써 사물을 식별하거나 배경으로부터 분리하는 전처리 단계로 활용된다.
  • 특징 추출: 이미지의 기하학적 구조를 파악하여 랜드마크 검출이나 정렬(Alignment) 작업에 사용된다.

2. 기본 원리

에지 검출의 핵심은 이미지의 기울기(Gradient)를 계산하는 것이다. 디지털 이미지는 2차원 행렬로 표현되며, 인접한 픽셀 간의 밝기 차이가 클수록 해당 지점을 에지로 판단한다.

2.1 1차 미분 (First-order Derivative)

1차 미분은 픽셀 값의 변화율을 측정한다. 디지털 이미지에서는 연속적인 미분 대신 인접 픽셀 간의 값 차이를 계산하는 차분(Difference) 개념을 사용하여 구현한다. 이미지 함수 $f(x, y)$에 대해 $x$축 방향의 기울기를 $G_x$, $y$축 방향의 기울기를 $G_y$라고 할 때, 다음과 같이 기울기의 크기와 방향을 구한다.

  • 기울기 크기(Magnitude): $\sqrt{G_x^2 + G_y^2}$ (변화가 클수록 강한 에지)
  • 기울기 방향(Orientation): $\tan^{-1}(G_y / G_x)$

2.2 2차 미분 (Second-order Derivative)

2차 미분은 1차 미분 값의 변화율을 측정한다. 주로 제로 크로싱(Zero-crossing) 지점을 찾아 에지를 검출한다. 1차 미분보다 노이즈에 민감하지만, 에지의 중심 위치를 더 정확하게 찾을 수 있는 특성이 있다.


3. 전처리 과정: 가우시안 블러 (Gaussian Blur)

에지 검출은 기본적으로 미분 연산을 수행하므로, 이미지 내의 미세한 노이즈(Noise)를 에지로 오인하는 경우가 많다. 이를 방지하기 위해 가우시안 블러를 통한 평활화(Smoothing) 전처리가 필수적이다.

가우시안 블러는 가우시안 분포(정규 분포)를 따르는 커널을 사용하여 픽셀 값을 주변 값들의 가중 평균으로 대체함으로써 고주파 성분(노이즈)을 제거한다. 이를 통해 실제 객체의 경계선만을 효과적으로 추출할 수 있는 환경을 조성한다.


4. 주요 알고리즘

다양한 에지 검출 필터는 서로 다른 커널(Kernel, 필터 행렬)을 사용하여 기울기를 계산한다.

알고리즘 방식 특징 장점 단점
Sobel 1차 미분 (가중치 적용) 수평/수직 커널 사용, 중심 픽셀 가중치 부여 노이즈에 비교적 강함, 계산 효율적 에지가 굵게 나타남
Prewitt 1차 미분 (단순 차분) 단순 차분 기반 커널 사용 계산 속도가 매우 빠름 소벨보다 노이즈에 취약함
Laplacian 2차 미분 (라플라시안 연산자) 모든 방향의 변화를 한 번에 검출 에지 위치 정밀도 높음 노이즈에 매우 민감함
Canny 다단계 가우시안 블러 $\rightarrow$ 미분 $\rightarrow$ 억제 매우 정교하고 얇은 에지 추출 연산량이 많고 파라미터 설정 필요

주요 커널 수식

  • Sobel Kernel (x방향): $\begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix}$
  • Prewitt Kernel (x방향): $\begin{bmatrix} -1 & 0 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 1 \end{bmatrix}$
  • Laplacian Kernel: $\begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix}$ 또는 $\begin{bmatrix} 1 & 1 & 1 \\ 1 & -8 & 1 \\ 1 & 1 & 1 \end{bmatrix}$

5. 캐니 에지 검출 단계 (Canny Edge Detection)

캐니 알고리즘은 단순 미분을 넘어 최적의 에지를 찾기 위해 다음과 같은 5단계 과정을 거친다.

  1. 노이즈 제거 (Noise Reduction): 가우시안 필터를 적용하여 이미지의 노이즈를 제거한다.
  2. 기울기 계산 (Gradient Calculation): 소벨 필터 등을 사용하여 각 픽셀의 기울기 크기와 방향을 계산한다.
  3. 비최대 억제 (Non-maximum Suppression): 기울기 방향으로 주변 픽셀과 비교하여, 가장 큰 값(Local Maximum)이 아닌 픽셀은 0으로 만들어 에지를 얇게(Thinning) 만든다.
  4. 이중 임계값 처리 (Double Thresholding): 두 개의 임계값(High, Low)을 설정하여 픽셀을 세 가지로 분류한다.
    • Strong Edge: High 임계값보다 큰 값
    • Weak Edge: Low와 High 사이의 값
    • Non-edge: Low 임계값보다 작은 값
  5. 히스테리시스 에지 추적 (Hysteresis Edge Tracking): Weak Edge 중에서 Strong Edge와 연결된 픽셀만 최종 에지로 인정하고, 나머지는 제거한다.

6. 구현 및 활용 예제

Python의 OpenCV 라이브러리를 사용하여 소벨과 캐니 에지 검출을 구현하는 예제 코드이다.

import cv2
import numpy as np

# 이미지 로드 및 그레이스케일 변환
img = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)

# 1. 전처리: 가우시안 블러 적용
blurred = cv2.GaussianBlur(img, (5, 5), 0)

# 2. 소벨(Sobel) 에지 검출
# cv2.CV_64F를 사용하는 이유는 미분 결과로 발생하는 음수 값을 보존하고 
# 정밀도를 높여 계산 후 절대값 처리를 하기 위함이다.
sobelx = cv2.Sobel(blurred, cv2.CV_64F, 1, 0, ksize=3) # x방향
sobely = cv2.Sobel(blurred, cv2.CV_64F, 0, 1, ksize=3) # y방향
sobel_combined = cv2.magnitude(sobelx, sobely)

# 3. 캐니(Canny) 에지 검출
# threshold1: Low, threshold2: High
canny = cv2.Canny(blurred, 100, 200)

# 결과 저장 및 출력 (소벨 결과는 다시 uint8로 변환 필요)
cv2.imwrite('sobel_result.jpg', np.uint8(np.absolute(sobel_combined)))
cv2.imwrite('canny_result.jpg', canny)

알고리즘별 결과 비교 (시각적 특성)

구분 시각적 특징 예시 설명
원본 이미지 [원본 사진] 다양한 색상과 질감이 포함된 사진
소벨 결과 [그라데이션 형태의 굵은 선] 에지가 다소 뭉툭하며, 밝기 변화가 큰 영역이 밝게 표시됨
캐니 결과 [얇고 명확한 흰색 선] 단일 픽셀 두께의 매우 날카롭고 명확한 경계가 표시됨

7. 후처리 기법 (Post-processing)

에지 검출 후 발생하는 단절된 선이나 불필요한 잔선을 처리하기 위해 다음과 같은 후처리 기법을 적용한다.

  • 모폴로지 연산 (Morphological Operations):
    • 팽창(Dilation): 끊어진 에지를 연결하여 연속성을 확보한다.
    • 침식(Erosion): 작은 노이즈성 에지를 제거한다.
    • 닫기(Closing): 팽창 후 침식을 수행하여 내부의 작은 구멍을 메운다.
  • 허프 변환 (Hough Transform): 검출된 에지 픽셀들을 분석하여 직선이나 원과 같은 특정 기하학적 도형을 추출한다.
  • 스켈레톤화 (Skeletonization): 에지의 두께를 최소화하여 중심선만을 남기는 작업이다.

8. 한계점 및 발전 방향

8.1 전통적 방식의 한계

전통적인 에지 검출 알고리즘은 픽셀 값의 급격한 변화에만 의존하므로 다음과 같은 한계가 있다. * 노이즈 민감도: 전처리를 하더라도 강한 노이즈가 있는 이미지에서는 오검출이 빈번하다. * 의미론적 이해 부족: 단순한 밝기(Intensity) 차이와 실제 객체의 경계를 구분하지 못한다 (예: 옷의 무늬를 객체의 경계로 인식).

8.2 딥러닝 기반 에지 검출

최근에는 CNN(Convolutional Neural Networks)을 활용한 딥러닝 기반 방식이 도입되었다. * HED (Holistically-nested Edge Detection): 다중 스케일의 특징 맵을 학습하여, 단순한 픽셀 변화가 아닌 '의미 있는 경계선'을 학습하여 추출한다. * 특징: 전통적 방식보다 노이즈에 매우 강하며, 이미지의 문맥(Context)을 파악하여 실제 객체의 외곽선을 더 정확하게 찾아낸다.

에지의 종류와 특성

이미지 내에서 픽셀 값이 변화하는 양상에 따라 에지는 다음과 같이 세 가지 주요 유형으로 구분된다.

에지 종류 픽셀 변화 양상 수학적/시각적 특성 비고
스텝 에지 (Step Edge) 불연속적인 급격한 변화 1차 미분 시 매우 높은 피크(Peak) 발생, 2차 미분 시 강한 제로 크로싱 발생 가장 이상적인 경계선 형태
램프 에지 (Ramp Edge) 일정 구간에 걸친 점진적 변화 1차 미분 값이 일정 구간 동안 유지됨, 피크가 낮고 넓게 형성됨 블러 처리된 이미지나 부드러운 그림자 경계
라인 에지 (Line Edge) 좁은 영역의 급격한 상승 후 하강 1차 미분 시 양(+)과 음(-)의 피크가 연속적으로 발생 얇은 선, 전선, 머리카락 등의 형태

에지 검출의 평가 지표

검출된 에지가 실제 정답(Ground Truth)과 얼마나 일치하는지를 측정하기 위해 다음과 같은 정량적 지표를 사용한다.

정밀도, 재현율F1-score

  • 정밀도 (Precision): 검출된 에지 중 실제 에지인 비율 $$\text{Precision} = \frac{TP}{TP + FP}$$
  • 재현율 (Recall): 실제 에지 중 검출된 에지의 비율 $$\text{Recall} = \frac{TP}{TP + FN}$$
  • F1-score: 정밀도와 재현율의 조화 평균으로, 두 지표의 균형을 나타냄 $$\text{F1-score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$ (단, $TP$: True Positive, $FP$: False Positive, $FN$: False Negative)

PR 곡선 (Precision-Recall Curve)

임계값(Threshold) 변화에 따른 정밀도와 재현율의 변화를 그래프로 나타낸 것이다. 곡선 아래 면적(AUC)이 넓을수록 전반적인 검출 성능이 우수함을 의미한다.

에지 정의의 확장

에지는 단순히 밝기(Intensity)의 변화만을 의미하지 않는다. 실제 영상 분석에서는 다음과 같은 변화 또한 에지로 간주한다. * 색상 변화 (Color Edge): 밝기는 비슷하지만 색상(Hue)이나 채도(Saturation)가 급격히 변하는 지점. * 질감 변화 (Texture Edge): 픽셀 값의 평균은 비슷하나, 패턴의 조밀함이나 거칠기 등 질감이 변하는 경계.

미분 값의 피크 특성

에지의 변화 양상에 따라 미분 연산 결과의 형태가 달라지며, 이는 필터 설계의 근거가 된다. * 급격한 변화 (Step): 1차 미분 시 매우 좁고 높은 스파이크 형태의 피크가 나타나며, 이는 경계 위치를 명확히 지시한다. * 완만한 변화 (Ramp): 1차 미분 시 피크가 뭉툭하고 넓게 퍼진 형태로 나타나며, 이는 에지의 두께가 두껍게 검출되는 원인이 된다.

가짜 에지(False Edge)와 제거 사례

조명 변화나 그림자로 인해 발생하는 가짜 에지(False Edge)는 실제 객체의 물리적 경계가 아님에도 불구하고 픽셀 값의 차이가 커서 검출되는 노이즈성 에지이다.

  • 발생 원인: 강한 직사광선으로 인한 하이라이트, 객체에 의해 생성된 짙은 그림자, 배경의 복잡한 패턴 등.
  • 제거 사례: [이미지: (좌) 그림자로 인해 벽면 중간에 강한 에지가 검출된 이미지 $\rightarrow$ (우) 색상 기반 필터링 및 모폴로지 연산을 통해 그림자 에지를 제거하고 실제 객체 외곽선만 남긴 이미지]
  • 해결 방안: 단순 밝기 차분이 아닌 색상 공간(HSV 등) 변환 후 분석하거나, 딥러닝 기반의 의미론적 에지 검출(HED 등)을 통해 문맥적으로 불필요한 선을 제거한다.
AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?