-
HOG 보행자 검출컴퓨터 비젼(Computer Vision)/영상 분할과 객체 검출 2022. 2. 17. 18:16
HOG(Historgram of Oriented Gradients)
- feature로, 영상의 지역적 그래디언트 방향 정보를 특징 벡터로 사용
- 다양한 객체 인식에서 활용됨
- 논문
HOG 알고리즘 동작 방법
입력 영상 -> Crop -> 크기 정규화 64x128 -> 그라디언트 계산 -> 8x8 크기의 셀 분할 -> 각 셀마다 방향과 크기 성분을 이용하여 방향 히스토그램 계산
블록 히스토그램 구하기
8x8 셀 4개를 하나의 블록으로 지정
즉, 블록 하나의 크기는 16x16
8픽셀 단위로 이동 (stride = 8)
각 블록의 히스토그램 빈(bin) 개수는 4x9=36개
특징 벡터의 차원
하나의 부분 영상 패치에서의 특징 벡터 크기
7x15x36 = 3780
HOG Descriptor 객체 생성 및 보행자 검출을 위해 학습된 분류기 계수 불러오기
cv2.HOGDescriptor() -> <HOGDescriptor obj> cv2.HOGDescriptor_getDefaultPeopleDetector() -> retval
retval: 미리 훈련된 특징 벡터. np.ndarray, shape=(3781, 1), dtype=np.float32)
SVM 분류기 계수 등록하기
cv2.HOGDesciptor.setSVMDetector(svmdetector) -> None
svmdetector: 선형 SVM 분류기를 위한 계수
HOG 멀티스케일 객체 검출 함수
cv2.HOGDescriptor.detectMultiScale(img, hitThreshold=None, winStride=None, padding=None, scale=None, finalThreshold=None, useMeanshiftGrouping=None) -> foundLocations, foundWeights
img: 입력 영상. cv2.CV_8UC1 또는 cv2.CV_8UC3
hitThreshold: 특징 벡터와 SVM 분류 평면까지의 거리에 대한 임계값
winStride: 셀 윈도우 이동 크기. (0, 0) 지정 시 셀 크기와 같게 설정
padding: 패딩 크기
scale: 검색 윈도우 크기 확대 비율. 기본값은 1.05.
finalThreshold: 검출 결정을 위한 임계값
useMeanshiftGrouping: 겹쳐진 검색 윈도우를 합치는 방법 지정 플래그
foundLocations: (출력) 검출된 사각형 영역 정보
foundWeights: (출력) 검출된 사각형 영역에 대한 신뢰도(confidence)
참조
https://docs.opencv.org/4.x/d4/d11/group__objdetect__hog.html
'컴퓨터 비젼(Computer Vision) > 영상 분할과 객체 검출' 카테고리의 다른 글
캐스케이드 분류기 (0) 2022.02.17 템플릿 매칭 (0) 2022.02.17 모벤트 기반 객체 검출 (0) 2022.02.16 영상 분할과 객체 검출 (0) 2022.02.16