ルーチン説明 07-Face-Detection->face_recognition顔認識
動画チュートリアル 19 - さまざまな顔を区別する: https://singtown.com/learn/50033/
LBP 機能を使用した顔認識。
AT&T フェイス データベース:\ このカタログには、イギリスのケンブリッジにあるオリベッティ研究所で 1992 年 4 月から 1994 年 4 月までに撮影された顔のコレクションが含まれています。
40 の異なる被写体の 10 の異なる画像があります。 一部の被験者については、照明、顔の表情(目を開けている/閉じている、笑っている/笑っていない)、および顔の詳細(眼鏡をかけている/掛けていない)をわずかに変えて、異なる時間に画像が撮影されました。 すべての画像は、暗い均一な背景に対して、被写体を右上の正面の位置(横方向の動きはある程度許容します)で撮影されています。
これらのファイルは PGM 形式であり、「xv」プログラムを使用して簡単に表示できます。 各画像は 92x112、8 ビット グレースケールです。 画像は sX という名前の 40 個のディレクトリ (トピックごとに 1 つ) に分割されます。
ここで、X はトピック番号 (1 ~ 40) を表します。 各ディレクトリには、選択したテーマの 10 個の異なる画像があり、名前は Y.pgm です。
ここで、Y は特定のトピックの画像を表します (1 ~ 10)。
これらの画像を使用する場合は、Olivetti Research Laboratories のクレジットを明記してください。\ 便利な参考資料は、次の画像の一部を使用した顔認識ジョブです。
F.サマリアとA.ハーター\ 「顔認識のための確率モデルのパラメータ化」\ 第2回IEEEコンピュータビジョンアプリケーションシンポジウム\ ------------------ 1994年12月、サラソタ(フロリダ州)。
# 用LBP特征进行人脸识别。
# 见 Timo Ahonen's "Face Recognition with Local Binary Patterns".
#
# 运行示例之前:
# 1) 下载AT&T faces数据库http://www.cl.cam.ac.uk/Research/DTG/attarchive/pub/data/att_faces.zip
# 2) 提取并复制orl_faces目录到SD卡根目录。
#
# NOTE: This is just a PoC implementation of the paper mentioned above, it does Not work well in real life conditions.
# 注意:这只是上面提到的论文的一个PoC实现,在现实生活中并不适用。
import sensor, time, image
SUB = "s2"
NUM_SUBJECTS = 5
NUM_SUBJECTS_IMGS = 10
img = image.Image("orl_faces/%s/1.pgm"%(SUB))
d0 = img.find_lbp((0, 0, img.width(), img.height()))
img = None
print("")
for s in range(1, NUM_SUBJECTS+1):
dist = 0
for i in range(2, NUM_SUBJECTS_IMGS+1):
img = image.Image("orl_faces/s%d/%d.pgm"%(s, i))
d1 = img.find_lbp((0, 0, img.width(), img.height()))
dist += image.match_descriptor(d0, d1)
print("Average dist for subject %d: %d"%(s, dist/NUM_SUBJECTS_IMGS))