HOG, Histogram of Oriented Gradient
HOG 알고리즘으로 사람들의 얼굴을 탐지해보자. HOG는 HaarCascade보다 더 복잡한 연산을 해 성능을 좀 더 끌어올린다.
먼저, dlib 라이브러리가 필요하다. d lib는 OpenCV와 유사하게 이미지 프로세싱 커뮤니티에서 폭넓게 도입하고 있는 강력한 라이브러리이다.
import cv2
import dlib
# for colab
from google.colab.patches import cv2_imshow
image = cv2.imread(".jpg")
cv2_imshw(image)
이제 얼굴 탐지를 위해 사전에 학습된 모델을 가져오자.
face_detector_hog = dlib.get_frontal_face_detector()
# 1보다 큰 값을 줄수록, 작은 경계 상자로 만든다.
detections = face_detector_hog(image, 1)
알아둬야 할 점은, face_detector_hog 함수 내 숫자를 크게할수록, 작은 경계 상자를 만든다. 결국, 작은 얼굴까지 찾는다.
몇 개의 얼굴이 탐지되었을까? 14개의 얼굴을 탐지했다.
len(detections) # 14
경계 상자를 직접 그려서 확인해보자.
detections 변수에는 좌표가 찍혀있다.
for face in detections:
l, t, r, b = face.left(), face.top(), face.right(), face.bottom()
cv2.rectangle(image, (l,t), (r,b), (0, 255, 255), thickness=2)
cv2_imshow(image)
결론
HOG는 dlib 라이브러리를 통해 사용하고, face_detector_hog 함수 내 숫자를 바꿔가며 얼굴 탐지가 잘 되었는지 튜닝하면 된다.
'DL > Computer Vision' 카테고리의 다른 글
Computer Vision - [얼굴 인식 2 (Face Recogintion using dlib, shape predictor 68 face landmarks)] (0) | 2024.02.07 |
---|---|
Computer Vision - [얼굴 인식 (Face Recogintion)] (1) | 2024.02.01 |
Computer Vision - [Fruit and Vegetable Classification] (1) | 2024.01.29 |
Computer Vision - [CNN (Convolutional Neural Network)] (1) | 2024.01.26 |
Computer Vision - [하르 캐스케이드 얼굴 탐지 (Haar Cascade Face Detection)] (1) | 2024.01.25 |