Study/머신러닝

Computer Vision-고전 컴퓨터 비전

김 도경 2024. 12. 23. 15:21
고전 컴퓨터 비전

- 고전 컴퓨터 비전: 규칙 기반의 이미지 처리 알고리즘 (e.g. OpenCV)
- 딥러닝: 데이터 학습 기반의 이미지 처리

 

  • 활용
    - 딥러닝으로 해결하기 어려운 문제에 활용 (e.g. 로보틱스, 가상현실)
    - 딥러닝 모델의 결과의 후처리
    - 딥러닝 모델 없이 데이터를 가공 할 때 활용 ( Morphological Transform , Edge & Contour Detection )
Morphological Transform

- 이미지에 기반한 연산이며, 흑백 이미지에서 일반적으로 수행

- 입력: 원본 이미지, 커널(연산자)
- Erosion, Dilation, Opening, Closing, Morphological gradient, Top hat

 

  • 중요성
    - Morphological transform은 이미지 전처리 영역에서 유용하게 사용
    - Ex. opening 연산을 통해 이미지의 노이즈를 제거하는데 사용 가능
  • Erosion
    - 물체의 경계를 침식
    - 이미지의 특징을 축소할 때도 사용 가능

    - 홀수 크기의 커널이 이미지와 컨볼루션 연산을 수행
    - 커널 아래 모든 픽셀이 1이면 1, 그 외에는 0이 됨
    - 경계 근처의 픽셀은 침식

  • Dilation
    - Erosion과는 정반대로 동작
    - 사물의 크기를 팽창할 때도 사용 가능

    - 홀수 크기의 커널이 이미지와 컨볼루션 연산을 수행
    - 커널 아래의 하나 이상의 픽셀이 1이면 1, 그 외에는 0이 됨
    - 경계 근처의 픽셀은 팽창

  • Opening
    - Erosion 커널과 Dilation 커널 순서대로 동작되는 연산
    - 반대로 동작시키면 (Dilation->Erosion), Closing 커널이라고 부름
    - 노이즈를 제거하는데 사용
Contour Detection

  • Contour Detection
    - Contour: 같은 색깔 및 intensity를 가지는 연속적인 경계점들로 이루어진 curve
    - 고전 컴퓨터 비전을 활용하여 raw image에서 객체의 contour를 추출
    - Raw image를 binary image로 변환 -> OpenCV의 findContours() 함수 이용
        - Binary image를 만들 때 edge detection의 결과를 활용

    - 딥러닝 모델 사용 X : 딥러닝 모델 학습을 위한 데이터 가공 시 활용 가능
    - Edge detection -> Dilation (optional) -> Contour detection

  • Canny Edge Detector
    - 컴퓨터 비전에서 가장 널리 사용되는 edge detector 1986년 TPAMI에 발표된 논문으로, John Canny에 의해 개발
    - 정확도 높음
    - 실행 시간 느림, 구현 복잡함

    - (1단계) 노이즈 제거
       - 이미지 내에 노이즈가 있다면, 엣지를 찾는데 어려움이 있음 노이즈 줄이기 위해, 가우시안 필터 이용
       - 가우시안 필터 : 가우시안 분포 함수를 근사하여 생성한 필터 마스크, 가우시안 필터 마스크 행렬은 중앙부에서 큰 값을 가짐, 중앙에서 외곽으로 갈 수록 0에 가까운 작은 값을 가짐

    - (2단계) 이미지 내의 높은 미분값 찾기 - Find the intensity gradient
       - Sobel 커널을 각 방향으로 적용하여 gradient를 추출
       - Sobel 커널 : 행 또는 열의 변화율을 계산하는 마스크, Edge 검출에 특화

    - (3단계) 최대값이 아닌 픽셀 값 0으로 치환 - Non Maximum Suppression
        - 목표: 엣지 검출에 기여하지 않은 픽셀을 제거
        - Gradient 방향으로 gradient의 최대값을 가진 픽셀을 찾음
        - 주변의 값과 비교하여, 엣지가 아닌 픽셀값들을 제거(0으로 치환)함
    - (4단계) 하이퍼파라미터 조정을 통한 세밀한 엣지 검출
        - 2가지의 Threshold (Low Threshold, High Threshold)를 정의

'Study > 머신러닝' 카테고리의 다른 글

컴퓨터 비전 모델 구조  (0) 2024.12.23
Computer Vision  (0) 2024.12.23
PyTorch Hydra  (0) 2024.12.17
PyTorch Lightning  (0) 2024.12.17
PyTorch 전이학습  (3) 2024.12.17