検出モデルの設定
人物正面のフェイスを検出するモデルは以下のGitHubから取得できる。
opencv/haarcascade_frontalface_alt.xml at master · opencv/opencv · GitHub
import cv2 cascade_file = "haarcascade_frontalface_alt.xml" cascade = cv2.CascadeClassifier(cascade_file)
正面フェイスの検出
こちらもモノクロGRAYをベースに検出を行う。
img = cv2.imread("img/people-looking-in-laptop-5069842_640.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY) face_list = cascade.detectMultiScale(gray) for (x, y, w, h) in face_list: color = (255,0,0) pen_w = 3 cv2.rectangle(img, (x, y), (x+w, y+h), color,thickness=pen_w) plt.imshow(img) plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis plt.show()
検出結果のプロット
コード全文
import cv2 cascade_file = "haarcascade_frontalface_alt.xml" cascade = cv2.CascadeClassifier(cascade_file) img = cv2.imread("img/people-looking-in-laptop-5069842_640.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY) face_list = cascade.detectMultiScale(gray) for (x, y, w, h) in face_list: color = (255,0,0) pen_w = 3 cv2.rectangle(img, (x, y), (x+w, y+h), color,thickness=pen_w) plt.imshow(img) plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis plt.show()
リンク