본문 바로가기

Upstage AI Lab 2기

Upstage AI Lab 2기 [Day078] - [Day080] Computer Vision Basic

Upstage AI Lab 2기
2024년 4월 3일 (수) Day_078 - 2024년 4월 5일 (금) Day_080

 

컴퓨터 비전이란?

  • Images are fundamentally tensor
  • 컴퓨터가 이해할 수 있는 형태로 데이터화 된 이미지
    • CV 는 input 이 이미지, CG는 output이 이미지 (점점 교집합이 넓어지고는 있음)
  • Low-level (pixelwise) → Mid-level → High-level (이미지 전반)
  • Low-level : 바로 인접한 픽셀들만 고려 (혹은 아예 고려하지 않기도 e.g. Color Jitter)
    • Image Processing : Resize, Color Jitter
    • Feature Extraction :
      • Edge Detection : 급격한 픽셀값의 변화를 기준으로
      • Segmentation by Color (e.g. watershed) : 여러 low-level feature를 활용하여 image segmentation함. watershed algorithm은 각각의 픽셀값을 참고하여 분할
  • Mid-level
    • Images → Image : Panorama Stitching
    • Images → World : Multiview Stereo (2D → 3D), Depth Estimation, LIDAR (레이저 반사 각도와 시)
  • High-level
    • Semantics - Image Classification, Object Detection, DL 기반 Segmentation.
  • 컴퓨터 비전 활용사례 알아보기 → Computer Vision is Everywhere!
    • Pose Estimation
      • Action Recognition
      • Re-Identification - Action Recognition과 같이 활용되어 성능을 높이기도 함
    • Optical Character Recognition (OCR) - 이미지 to 정형데이터, 문서처리 자동화
    • Medical Image Analysis - 높은 정밀도, 전문성
    • Generative Models - GAN, Virtual Try-On (VITON), Text to Image Generative Model, Image to Video, Text+Image to Video, Modify videos with Texts
    • Neural Randiance Fields (NeRF) - 3D Rendering에 컴퓨터 비전이 접목된 기술
    • Images with other Modalities

 

Preliminary - 고전 컴퓨터 비전

  • 규칙 기반의 이미지 처리 알고리즘 (e.g. OpenCV)
  • 주어진 입력에 따라 정해진 출력 형태가 있음 → 무슨 얘기였는지 기억이 안남
    • why? 로보틱스나 가상현실 등 딥러닝만으로는 어려운 경우가 있어 이를 해결하기 위해 고전 컴퓨터 비전이 활용되기도 함. (e.g. DL 결과 후처리) + DL 자체가 다량의 좋은 퀄리티 데이터를 필요로 하고 데이터 가공이 필요할 수 있으므로 추가적 성능담보를 위해 고전 CV 알고리즘으로 라벨링을 보완하기도 함
    • 규칙 기반이 좋은 성능을 내는 경우 혹은 데이터 양이 부족한 경우
    • 쉽고 비용이 적음
  • Morphological Transform - 이미지 전처리에 유용. 비용증가 없고 효과적
    • Erosion - 물체의 경계 침식 (커널 안 모든 픽셀 1 이면 1, else 0)
    • Dilation - 물체의 경계 팽창 (커널 안 하나라도 픽셀 1 이면 1, else 0)
    • Opening - erosion 후 dilation → noise 제거, 기존 물체 크기 유지 (↔ Closing 물체를 채우는데 사용)
  • Contour Detection - 딥러닝을 사용하지 않음
    • Edge Detection → Dilation(Optional) → Contour Detection
    • Edge Detection
      • Edge Detection의 결과물은 binary, edge이면 1 아니면 0
      • Canny Edge Detector (1986, TPAMI) : 높은 정확도 but 실행시간과 구현복잡도가 높음 (→ 현재는 크게 보완됨)
        1. 노이즈 제거 - 가우시안 필터, 보다 Edge detecting에 용이한 형태로 가공
        2. 이미지 내 높은 미분값 찾기 - Sobel 커널
        3. 최대값이 아닌 픽셀값 0으로 치환 - 대표값(최대값)만 남김
        4. 하이퍼파라미터 조정을 통한 세밀한 엣지 검출 - 적절한 Low/High Threshold 설정 (경우에 따라 매우 어려울 수 있음)
    • Dilation(Optional)
      • 너무 세밀하게 추출된 엣지는 통합
    • Contour Detection (with OpenCV) - findContours() 함수

 

컴퓨터 비전 모델 구조 이해하기

  • 모델 구성
    • Backbone + (Encoder) + Decoder
    • Backbone : 이미지의 중요한 feature(= visual feature)들 추출
      • visual feature : 풀고자 하는 task를 해결하는데 쓰이는 이미지의 여러 특징
      • 여러 레이어로 구성, 다양한 종류의 visual feature를 추출
        • 앞쪽 레이어 - edge 등 low-level feature 들을 추출
        • 후반부 레이어 - 이미지 안의 사물에 따라 좌지우지

[CV Basic] (3-1) 컴퓨터 비전 모델 구조 이해하기 강의자료 중

  • (Optional) Encoder - Backbone과 함께 visual feature를 추출하는 부
    • 추가 가공하는 역할
    • Backbone과 Encoder의 차이로 인해 Encoder의 가공과정이 효과적인 경우가 있음
  • Decoder - Computer Vision Task에 따라 출력 형태가 다름
    • Backbone으로 추출된 visual feature들을 Computer Vision Task에 맞는 결과로 추출
    • Task의 종류 - 각 목적에 맞는 Decoder를 사용해야 함, Decoder의 구조와 출력 형태가 다름
      • Classification Decoder - Fully Connected Layer + softmax (각 클래스별 확률값을 반환)
        • 마지막 출력 결과 B * num of classes
        • input BCWH → output BC

softmax 함수

 

  • Detection Decoder - 물체의 위치를 표현하는 박스의 두 코너 좌표값과 클래스별 예측 확률값 반환
  • Segmentation Decoder - 픽셀 단위로 클래스로 구분하여 출력컴퓨터 비전이란?
      •  

 

 

Image Classification

  • Backbone (CNN) + Classification Head (FC layer + softmax)

[CV Basic] (6-1) Image classification task란 강의자료 중

  • Rule-based → Data-driven : dataset은 (image, class) pair로 구성
  • train 과정에서 preprocessing을 random하게 하였다면, test 시에는 고정시켜야한다는 주의점
  • Confusion Matrix
    • Accuracy = (TP + TN) / (TP + TN + FP + FN)
    • Precision = TP / (TP + FP)
    • Recall = TP / (TP + FN)

https://www.omnicalculator.com/statistics/confusion-matrix
https://en.wikipedia.org/wiki/Precision_and_recall