• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

HOG Feature / Descriptor

전공관련/기타 etc. 2014. 12. 10. 18:23






일반적으로 보행자 검출이나 사람의 형태에 대한 검출에 많이 사용되는  HOG Feature


Histogram of Oriented Gradients 의 줄임말로 image의 지역적 gradient를 해당영상의 특징으로 사용하는 방법이다.


cell 이니 block 이니 하면서 가끔 다시보면 햇갈릴떄도 있는 개념. 정리해두자.


HOG feature 를 계산하는 순서는 일단 다음과 같다.


영상에서 Gradient를 계산

Gradient 를 이용하여 Local Histogram 생성

Local Histogram 을 이어붙여 1D vector 생성(HOG Feature)


순서만 보면 참 심플한 방식이다.


각 순서를 보기전에 일단 몇가지 개념을 짚고 넘어가자.

Cell, Block 의 구분정도만 해 주면 되겠다. 일단.


영상은 기본적으로 픽셀들의 집합인건 잘 알고있지.


이런 픽셀들을 몇개 묶어서 소그룹을 만들면 그게 cell 이되는거다.

또 다시 셀들을 몇개 묶어서 그룹을 만들면 그게 block 이 되는거고.


아래 그림을 보면 쉽게 이해가 가겠지. 

한칸한칸이 픽셀, 같은색으로 묶인 픽셀들이 하나의 셀 (2x2 pixel)

또 네개의 셀들이 묶인 그룹하나가 block(2x2 cell, 4x4 pixel)


paper에서 얘기한 크기는 64x128크기를 가지겠지만 그건 그리기 너무 크니까 보기쉽게 간략화 해서 본다고 생각하자.




뭐 이런 개념이 있다는거 짚고 넘어가기로 하자. 



이제 제일 먼저 영상에서 gradient를 계산해야 한다.

gradient 를 계산하기위해 먼저 영상에서 edge를 계산한다.


일반적으로 아래와 같은 많이쓰는 다양한 edge kernel 이 있다.


실제 edge 검출에서는 sobel kernel을 많이 사용하는데 본 paper에서는 성능이 좋지 않다고 얘기한다.



그럼 edge를 검출하기위해 어떤 방식을 쓰냐 하면 


아래와 같은 가장 심플한 1D kernel 을 사용한다.



그냥 쉽게 말해서 양옆에 픽셀값을 빼준단 얘기다.

간단하다.


x축 방향 edge와 y축 방향 edge를 계산했으면 이 두 값을 이용하여 

orientation을 계산한다.


삼각함수 중에서 arctan 함수를 이용하면 두 edge에 의해 발생하는 orientation을 구할 수 있다. 


이러한 orientation을 그냥 다쓰면 histogram의 bin 이 int 형태로 사용한다 해도 360개나 된다.

너무많아.


그래서 적당히 quantization 해주도록 하자. 40도 단위로 나누는 9개의 bin 이나 24도 단위로 나누는 15개 bin 을 사용해도 좋고

사용자 맘대로 나눠도 된다.


성능은 논문에서 말하는게 제일 좋다고 하겠지! 


자 이러면 이제 영상으로부터 orientation map 을 만들어 낸거다.


얘를 histogram으로 만들고 적당히 이어붙이면 HOG feature 가 되는거지.



이제 여기서 앞에서 봤던 cell 과 block 의 개념이 들어온다.

 histogram은 cell 단위로 생성하고 얘를 이어붙이는 방식이 block의 움직임에 의해 결정된다.


각 셀별로 histogram 을 만드는데 위에서 orientation 을 몇개의 bin으로 나눴는지가 histogram 의 index가 된다.

해당 index에 속하는 pixel의 개수가 histogram의 높이가 되는거고.


이런식으로 모든 cell에 대하여 histogram을 생성.





이제 이런 histogram을 이어붙이는 방법에 대한 문제다 


block 을 움직일떄 overlap 하냐 마냐의 경우도 사용자의 선택에 따라 달라질수 있다.


일반적으로 overlap 하는 경우에 는 아래의 그림과 같이 적당히 overlap 하면서 shift 한다.


paper 에서는 하나의 block 이 16x16 pixel 로 이루어 져 있고 8 pixel 씩 overlap 하면서 shift 한다.







앞서 메모해뒀던 글[ [Function] HoG Destriptor in OpenCV ] 에서도 언급했지만


아래의 사이트에서는 이미지를 업로드 하면 해당하는 HOG Feature의 시각화 된 모습을 볼 수 있다.


http://web.mit.edu/vondrick/ihog/


학교 simbol 을 이용하여 테스트 해 본 결과.

정리할라고 시작했지만 하다보니 귀찮아져서 급마무리.. 





저작자표시 비영리 (새창열림)

'전공관련 > 기타 etc.' 카테고리의 다른 글

[pycharm] ctrl + 휠로 폰트 크기를 조절하자  (0) 2023.01.10
해시 / MD5 / SHA / 무결성검사 에 관한 정리  (0) 2017.07.18
[LibSVM] libsvm을 이용한 2-class classifier (3) - Optimal parameter를 찾고 자동으로 학습하자!  (14) 2014.02.14
[LibSVM] libsvm을 이용한 2-class classifier (2) - Training/Test (exe파일 이용)  (14) 2014.02.13
[LibSVM] libsvm을 이용한 2-class classifier (1) - SVM이란 무엇인가.  (5) 2014.02.12
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

카테고리

  • 살다보니.. (448)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (118)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (58)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • review
  • portugal
  • SVM
  • ColorMeRad
  • utility
  • matlab function
  • 매트랩 함수
  • 큐슈
  • matlab
  • 일본
  • function
  • ReadString
  • 딥러닝
  • 에누리닷컴
  • 포르투갈
  • 크롬
  • CStdioFile
  • 오봉자싸롱
  • DeepLearning
  • Convolutional Neural Networks
  • Computer Tip
  • LIBSVM
  • 스마트체험단
  • 갤럭시노트3
  • Deep Learning
  • 후쿠오카
  • random variable
  • 매트랩
  • DSLR
  • 칼로리 대폭발

달력

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
05-27 17:35

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바