Histogram of Gradient

‍이세현·2024년 5월 27일
1

전통적인 관점에서의 사물/사람 검출 기술
1. Rule based learning: Deep learning의 Data Driven과 반대되는 개념
2. Hand Craft Feature: 사람이 직접 추출한 feature

HoG 기반 사람 검출 기술

Human Detection

  • 주어진 영상으로부터 사람을 검출하기 위한 연구
  • 다양한 분야에 활용 가능하기 때문에 CV 기술에서 가장 중요한 문제이다.
    • CCTV 등 보안 감시 시스템, 가상현실/증강현실, 사람과 컴퓨터와의 상호작용(HCI)
  • 훈련 시스템 구성
    1. Hand Craft: HOG/SIFT/SURF를 이용하여 feature 추출
      • 추출된 feature는 (x0,x1,,xn)(x_0, x_1, \cdots, x_n) 벡터 형태이다.
    2. Descriptor: 특징이 추출된 vector로 환경 변화가 있어도 특징이 잘 나타나야 한다.
    3. Classifier: SVM을 이용하여 사람인지 아닌지 구분한다.
  • Rule: 사람은 머리, 몸, 팔, 다리로 이루어지고 histogram은 \cdots와 같이 생겼다.

DB 구축

  • 학습 ==== 데이터를 구분하는 경계 찾기
  • 데이터는 특정 class 편향이 없어야 한다.
  • 대용량 데이터에 기반한 영상 검출 방식이 대세이다.
    • 딥러닝 이전에도 대용량 데이터를 수집하기 위한 노력이 있었다.
    • 카메라 보급, 클라우드 시스템, 대용량 저장장치, 병렬처리 기술 발전에 따라 폭발적인 양의 데이터를 처리할 수 있는 환경으로 바뀌었다.

영상으로부터 사람 검출(Test)

  • 입력 영상으로부터 윈도우 sliding 하는 방법
    • 주어진 영상을 일정 크기로 crop 한 후 크기를 정규화 한다.
    • 크기를 정규화한 영상의 특징이 사람과 유사한지 비교한다.
    • 윈도우가 움직이는 stride가 촘촘할수록 정확도는 높아지지만 오래 걸린다.
    • 윈도우가 개체의 scale을 적절히 나타내지 못할 수 있으므로 해상도를 바꾸어가며(pyramid image) sliding 한다.
    • 윈도우마다 feature 추출, classify 과정을 거치기 때문에 시간 소요가 매우 크다.

HoG 특징 검출

  • 영상으로부터 추출할 수 있는 사람의 특징
    1. 컬러: Camera에서 얻을 수 있는 가장 좋은 정보이지만 조명 한경에 매우 민감하기 때문에 Pattern 인식에 좋지 않다.
    2. 형태: 조명 환경에 강인하다.
      다양한 pose에 따른 변화는 대용량 DB로 대응한다.
    3. Scale: 화면에 큰 사람과 작은 사람을 검출하기 어렵다.
      Pyramid image를 통하여 개선하지만 처리 시간이 많이 걸린다.
    4. 움직임: 2장 이상의 영상에서 움직이는 정보를 활용한다.
      안 움직이는 사람을 검출하기 어렵다.
    5. 깊이: 앞에 있는 사람과 뒤에 있는 물체 분류 후 검출
      2대 이상의 카메라가 필요하며 3D, 2D 변환으로 인한 정보 손실이 발생한다.
    • 한 대의 영상으로 조명 환경에 강인한 사람 검출 기술이 필요하다.
      • 사람의 특징을 더 잘 자타내고, 컴퓨터에 부담을 줄여줄 수 있도록 특징을 검출하는 방식을 활용하면 처리 시간을 줄일 수 있다.
  • Histogram of Gradient: 에지 성분 검출 후 이에 대한 히스토그램으로 표현한다.
    • 명암 차이를 벡터화하여 Edge 정보를 사용한다.
    • HoG 특징 검출: Image → Gradient → Cells → Blocks → Descriptor
    • 윤곽선 움직임(Edge Rotation) 방향 정보로 Image를 표현할 수 있다.
    1. Gray Scale Image를 X 축 및 Y 축 방향으로 미분하여 edge를 구한다.
      • [1,0,1],[1,0,1]T[-1, 0, 1], [-1, 0, 1]^T(filter) Sobel edge 또는 canny edge 활용 가능
    2. 8×88 \times 8 셀에서의 gradient 방향을 계산한다.
      • Vote weight = magnitude와 angle 계산 (arctan(dy/dx))
      • HoG는 방향 정보만 사용한다.
    3. Blocks
      • Feature Vector를 classifier에 넣는다.

HoG feature variation

Image Capture

  • Gaussian smoothing: noise를 줄이는 전처리
  • Color vs. Gray
    • Color 영상이 흑백 영상을 사용하는 것보다 성능이 조금 더 우위에 있다.
  • Gradient smoothing
    • 잡음을 줄여 성능에 영상을 미친다.

Gradient

  • Alternative mask
  • 어떤 edge를 활용하는가에 따라 성능에 영향을 미친다.

Cell

  • Cell size

Block

  • Block size
  • Normalization

Classifier

Support Vector Machines

  • 2000년대 초반부터 2010년 초반까지 매우 인기 있던 Classifier
  • 1980년대에 Neural Network는 컴퓨팅 환경, 알고리즘, 데이터의 부족으로 인기가 없었다.

Linear Classifier

  • 주어진 데이터에 대한 직선의 방정식 기반 classifier

Linear Margin

  • Margin에 대한 개념 설정을 통한 classifier에 적용

    • Margin: 직선의 방정식으로부터 거리를 점점 늘렸을 때 처음으로 훈련 데이터를 만날 때까지의 거리
    • Support Vector: Maximum margin으로부터 처음 만나는 데이터
  • 직선의 방정식과 margin의 결정

    h(x)={+1if wx+b11if wx+b1h(x) = \begin{cases} +1 & \text{if } w x + b \ge 1 \\ -1 & \text{if } w x + b \le -1 \end{cases}

Nonlinear Classifier

  • 전통적인 linear classifier로 분류하지 못하는 문제가 있다.
    • Kernel을 이용하여 데이터에 가중치를 부여하여 linear한 공간으로 변환한 후 linear SVM을 적용한다.
    • Non-linear 문제였으나 3D linear로 해결

Overfitting 문제

  • Underfitting: high bias
  • Good compromise: Data의 특성을 모르면 적절한 Kernel을 직접 찾아야 한다.
  • Overfitting: high variance
    • Deep Learning의 가장 큰 문제
profile
Hi, there 👋

0개의 댓글

관련 채용 정보