Mediapipeを使ってみた
Mediapipeで顔認識をする話
インストール
まずはmediapipeのインストールから。pipインストールでok。
pip install mediapipe
MediaPipeでできること
- 顔検出
- 顔認識
- 虹彩の追跡
- 手、上半身、全身の骨格推定
- 髪のセグメンテーション
- 物体検出
- トラッキング
- 立体的な物体検出
- KNIFT
今回行うのは上記の中にある顔検出です。
コード
import mediapipe
import cv2
import numpy
import mediapipe as mp
import math
import matplotlib.pyplot as plt
mp_drawing = mp.solutions.drawing_utils
img = cv2.imread('顔検出したい画像のpath')
mp_face_detection = mp.solutions.face_detection
face_detection=mp_face_detection.FaceDetection(min_detection_confidence=0.1, model_selection=1)
results = face_detection.process(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
DESIRED_HEIGHT = 480
DESIRED_WIDTH = 480
def resize_and_show(image):
h,w = image.shape[:2]
if h < w:
img = cv2.resize(image, (DESIRED_WIDTH, math.floor(h/(w/DESIRED_WIDTH))))
else:
img = cv2.resize(image, (math.floor(w/(h/DESIRED_HEIGHT)), DESIRED_HEIGHT))
img=cv2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
annotated= img.copy()
for detection in results.detections:
annotated_image=mp_drawing.draw_detection(annotated, detection)
resize_and_show(annotated)
このコードの実行時間は0.2321150302886963でした。なかなかの速度だと思います。
実行結果
色々試したい
pip install ではなくgit cloneをしてコードを取得して現在遊んでいます。
顔の座標が入力されて矩形を書いているのがここの関数なので、この関数をいじって顔にモザイクをかけようとしています。
簡単にできるのですが、動画で試したらエラーが出たので、うまく動いたらだします。
Author And Source
この問題について(Mediapipeを使ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/jaguar2801/items/113187e8819f257c9116著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .