顔認識は、コンピュータ ビジョンの分野における重要なアプリケーションです。コンピューターアルゴリズムを使用して顔の特徴を識別および検証し、セキュリティ認証、ビデオ監視、顔の比較などでよく使用されます。近年、深層学習技術の発展により顔認識の性能が大幅に向上し、インテリジェント認識アプリケーションの重要な部分となっています。この記事では、アプリケーションにも IntelliSense を搭載できるように、Python を使用して顔認識テスト コードを作成します。
1. 環境整備
始める前に、Python 環境と関連する依存ライブラリを準備する必要があります。使用する必要がある主なライブラリは次のとおりです。
OpenCV: さまざまな画像およびビデオ処理関数を提供するコンピューター ビジョン ライブラリ;
NumPy: 配列と行列を効率的に処理するための数値計算ライブラリ;
face_recognition: トレーニングされた顔の検出および識別モデルを提供する深層学習に基づく顔認識ライブラリ。
インストール方法は pip コマンドを使用して完了できます。具体的なコマンドは次のとおりです。
pip install opencv-python numpy face_recognition
2. 顔検出
顔認識を実行する前に、まず画像内の顔を検出する必要があります。この記事では、face_recognition ライブラリの顔検出アルゴリズムを使用しています。このアルゴリズムは深層学習に基づいており、画像内の人間の顔を迅速かつ正確に検出できます。
以下は、顔検出に face_recognition ライブラリを使用する方法を示す簡単なコード例です。
import face_recognition
import cv2
# 加载图像
image = cv2.imread('test.jpg')
# 将图像从BGR格式转换为RGB格式
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 检测图像中的所有人脸
face_locations = face_recognition.face_locations(rgb_image)
# 在图像中绘制人脸框
for (top, right, bottom, left) in face_locations:
cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)
# 显示结果图像
cv2.imshow('Image', image)
cv2.waitKey(0)
コードを実行すると、元の画像がウィンドウに表示され、検出された顔の枠が画像内でマークされます。
3. 顔認識
顔認識は、検出された顔を既知の顔と比較して、その顔を特定するプロセスです。この記事では、face_recognition ライブラリの顔認識アルゴリズムを使用しています。このアルゴリズムは深層学習テクノロジーを使用して、顔を効率的に認識し、身元を比較します。
以下は、顔認識に face_recognition ライブラリを使用する方法を示す簡単なコード例です。
import face_recognition
import cv2
# 加载已知人脸图像和对应的身份信息
known_faces = [
face_recognition.load_image_file("person1.jpg"),
face_recognition.load_image_file("person2.jpg"),
face_recognition.load_image_file("person3.jpg"),
]
known_names = ["Person 1", "Person 2", "Person 3"]
# 加载测试图像
image = cv2.imread('test.jpg')
# 将图像从BGR格式转换为RGB格式
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 检测图像中的所有人脸
face_locations = face_recognition.face_locations(rgb_image)
face_encodings = face_recognition.face_encodings(rgb_image, face_locations)
# 遍历所有检测到的人脸,进行比对
for face_encoding in face_encodings:
# 与已知人脸进行比对
matches = face_recognition.compare_faces(known_faces, face_encoding)
name = "Unknown"
# 找到最佳匹配的人脸
if True in matches:
match_index = matches.index(True)
name = known_names[match_index]
# 在图像中绘制人脸框和身份信息
top, right, bottom, left = face_locations[0]
cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)
cv2.putText(image, name, (left + 6, bottom - 6), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 255, 0), 1)
# 显示结果图像
cv2.imshow('Image', image)
cv2.waitKey(0)
コードを実行すると、元の画像がウィンドウに表示され、検出された顔フレームと対応する ID 情報が画像内にマークされます。
4. まとめ
この記事では、Python を使用して顔検出と顔認識のテスト コードを作成し、face_recognition ライブラリを使用してこれらの関数を実装する方法を示します。顔認識技術は、顔認識アクセス制御、顔比較、顔認識支払いなど、最新のインテリジェント認識アプリケーションで広く使用されています。Python を使用して顔認識コードを作成すると、インテリジェントな認識を備えたアプリケーションを迅速に開発できます。