顔認識と顔認証

python

顔を認識する(blur out a face)

質問者
質問者

写真の顔に印をつけてみたいのですが

回答者
回答者

PythonとRetinaFaceを使って印をつけてみましょう!

RetinaFaceは、顔認識ライブラリで有名なInsightFaceとインペリアル・カレッジ・ロンドンが共同で開発し、2019年5月にリリースされた高精度の顔検出モデルです。

このモデルは、顔の境界ボックスと目や口のキーポイントを計算します。また、高解像度の画像でもサイズ変更なしで問題なく動作し、階層的な検出プロセスを実行するため、画像内の小さな顔をしっかりと検出できるようです。

元の写真

Google ドライブをローカルにマウントする

from google.colab import drive
drive.mount('/content/drive')

ライブラリインストール・インポート

# 必要なライブラリをインストールする
!pip install tensorflow opencv-python retina-face

# ライブラリのインポート
import cv2
import numpy as np
from google.colab.patches import cv2_imshow
from retinaface import RetinaFace
import matplotlib.pyplot as plt

顔を認識する

img_path = "/content/drive/~~~  ~~~~~/faces.jpg"
img = cv2.imread(img_path)
obj = RetinaFace.detect_faces(img_path)
len(obj.keys())

4 (名)

顔を四角で囲う

for key in obj.keys():
  identity = obj[key]
  #print(identity)

  facial_area = identity["facial_area"]

  cv2.rectangle(img,(facial_area[2],facial_area[3]),(facial_area[0],facial_area[1]),(255,255,0),5)

結果を表示

plt.figure(figsize = (5,5))
plt.imshow(img[:,:,::-1])
plt.show()
みほん ( Sample )

コメント

タイトルとURLをコピーしました