JavaScriptを有効にしてください

【Python】Google Colab上での顔検出

 ·  ☕ 2 分で読めます

【Python】Google Colab上での顔検出

Pythonを利用してGoogle Colab上で顔検出をしてみました。

Google Colabを使用して画像に顔検出を行い、検出された顔に四角を描画する方法について説明します。

Google Colab上での顔検出と画像加工

必要なライブラリのインストール

まず、画像処理に必要なopencv-python-headlessとグラフィカルな出力にmatplotlibをインストールします。

1
!pip install opencv-python-headless matplotlib

顔検出用のデータの取得

OpenCVには顔検出に使える事前学習済みの分類器があります。以下のコマンドで、そのうちの1つhaarcascade_frontalface_default.xmlをダウンロードします。

1
!wget https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml

画像のアップロード

次に、処理を行う画像をGoogle Colabにアップロードします。

1
2
from google.colab import files
uploaded = files.upload()

画像に顔検出を行い、四角を追加

以下のスクリプトで、アップロードされた画像に対して顔検出を行い、検出された顔の位置に赤い四角を描画します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import cv2
from matplotlib import pyplot as plt

# 画像ファイルのパス(アップロードした画像の名前に置き換えてください)
image_path = 'your_uploaded_image.jpg'

# OpenCVを使用して画像を読み込む
image = cv2.imread(image_path)

# OpenCVではデフォルトで画像がBGRで読み込まれるため、RGBに変換
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 顔検出用の分類器をロード
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 顔検出実行
faces = face_cascade.detectMultiScale(image_rgb, 1.1, 4)

# 検出された顔の位置に四角を描画
for (x, y, w, h) in faces:
    cv2.rectangle(image_rgb, (x, y), (x+w, y+h), (255, 0, 0), 2)

# 図を描画
plt.figure(figsize=(8, 6))
plt.imshow(image_rgb)
plt.axis('off')  # 軸を非表示にする
plt.show()

実行結果

実行前の画像はこちら

before

実行すると以下のように顔の判定をして四角で囲まれます。

after

アニメ画像などで試してみましたが顔検出のデータが 実写以外には対応できていない ためお気をつけてください。

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer