face_recognitionに基づく画像認識を実現

顔認識はPythonベースの顔認識ライブラリです。コマンドラインを介して任意のフォルダ内の画像に対して顔認識操作を実行できるコマンドラインツールも提供します。

このライブラリは、dlibの一流の深層学習顔認識技術を使用して構築されており、屋外の顔検出データベースベンチマーク(Labeled Faces in the Wildベンチマーク)で99.38%の正解率を示しています。

このブログ投稿では、face_recognitionを使用して単純な画像認識を実装しています。

認識される写真はunknow_peopleフォルダーにあります:Fan Bingbing、Yang Ying、Liu Yifei、Di Lieba、DengChao。

コンピューターによって認識される写真は、know_peopleフォルダーにあります:LiuYifeiとDiLieba

face_recognitionを使用して、unknow_peopleフォルダー内の画像をknow_peopleフォルダー内の画像と比較して画像を認識します。

import face_recognition
import os

# 获取图片名列表
# 只读取文件名以'.png'或'.jpg'或'.jpeg'结尾的图片
unknow_people_list = [i for i in os.listdir('unknow_people') if (i.endswith('.jpg')) or (i.endswith('.png')) or (i.endswith('.jpeg'))]
know_people_list = [i for i in os.listdir('know_people') if (i.endswith('.jpg')) or (i.endswith('.png')) or (i.endswith('.jpeg'))]


def face_select():
    # 定义flag
    flag = 0
    for unknow_people in unknow_people_list:
        # 读取待识别图片
        unknow = face_recognition.load_image_file('unknow_people/' + unknow_people)
        # 待识别图片转化为特征向量
        unknow_encode = face_recognition.face_encodings(unknow)[0]
        for know_people in know_people_list:
            # 读取计算机已经认识的图片
            know = face_recognition.load_image_file('know_people/'+know_people)
            # 图片转化为特征向量
            know_encode = face_recognition.face_encodings(know)[0]
            # 两张图片进行比较
            # tolerance刻画了比较的难易程度,值越小越难
            res = face_recognition.compare_faces([know_encode],unknow_encode,tolerance=0.5)
            if res[0]:
                flag = 1
                break
            else:
                flag = 0
        if flag == 1:
            print(f'匹配{unknow_people.split(".")[0]}')
        else:
            print(f'未匹配{unknow_people.split(".")[0]}')


if __name__ == '__main__':
    face_select()

結果は次のとおりです。

操作の結果は期待どおりです。know_peopleフォルダーにはLiuYifeiとDiLiebaしか存在しないため、コードはLiuYifeiとDiLiebaにのみ一致し、Deng Chao、Yang Ying、FanBingbingには一致しません。

私もコンピュータービジョンの初心者ですので、これからも皆さんから学び、進歩していきたいと思います〜

おすすめ

転載: blog.csdn.net/gf19960103/article/details/89914024