학생증과 얼굴 인증으로 본인 확인해 본다 [2] ~Face API에 유저를 기억하자~

방금 전에입니다. 접기라고 합니다.
본인 확인하자 녀석의 계속입니다 (잡)

물품 쓰기



· 학생증과 얼굴 인증으로 본인 확인해 본다 [1] ~MS Azure, Face API의 이용 준비를 하자~
・학생증과 얼굴 인증으로 본인 확인해 본다 [2] ~Face API에 유저를 기억하자~ ←지금 여기!
· 학생증과 얼굴 인증으로 본인 확인해 본다 [3] ~Node-RED를 사용해 시스템을 구축하자~ New!
・학생증과 얼굴 인증으로 본인 확인해 본다 [4] ~실제로 사용해 보자~ (가) (집필중)

학습 시간



AI를 사용하는데 있어서 빠뜨릴 수 없다고 하면, 역시 학습이군요.
그래서 Face API를 배웁니다.

Face API 준비



1. PersonGroup 만들기



"PersonGroup", 즉 인물의 그룹을 만들어 그 안에 "PersonGroup Person", 즉 사용자를, 그 안에 얼굴 정보를 기록해 가는 것입니다.

Cognitive Services APIs Reference - PersonGroup - Create 에서 그룹을 만듭니다. 녹색 녀석입니다.
Host에 관해서는 전회대로.
Query parameters - personGroupId에 PersonGroup의 이름을 입력합니다. 영소문자, 숫자 정도 밖에 사용할 수 없는 것 같습니다(예에서는 authlist ).
Headers도 항상 그대로 입력하세요.

이제 body를 편집합니다.
이름 입력란에 표시할 이름을 입력합니다. 거의 사용하지 않지만. (예에서는 大学の学生リスト)
userData는 이번에는 아직 사용하지 않으므로 지워주세요.
recognitionModel 은 recognition_04 로 변경해 주세요. 최신 버전이 더 좋습니다.

"Send"를 누르면 만들 수 있습니다.


2. Person 추가



사용자를 만듭니다. 노란 녀석입니다.
Cognitive Services APIs Reference - PersonGroup Person - Create 에서 만듭니다.
Query parameters - personGroupId에는 방금 만든 그룹의 ID(여기서는 authlist)를 입력합니다.

body 부분의 userData는 다시 할 필요가 없으므로 지워주세요.
이름에 사용자 이름(여기서는 Testuser01)을 입력합니다.

"Send"를 누르면 반환값에 personId 라는 것이 들어 있습니다.

return
{
     "personId": "aa0dadea-a031-45c9-a759-1a5a3fe93cfe"
}

이것이 사용자를 식별하는 UUID이므로 어딘가에 저장합니다.


3. PersistedFace 등록



얼굴 사진을 등록합니다. 오렌지 같은 녀석입니다. 이번에는 반 멤버의 사진을 등록했습니다.
물론 매수가 많은 쪽이 정밀도가 높아집니다만, 실용화하는 것도 아니기 때문에 나의 사진은 우선 100장 준비했습니다.
Cognitive Services APIs Reference - PersonGroup Person - Add Face 에서도 등록할 수 있지만 압도적으로 시간이 걸립니다.
그렇다면, Sakut과 Python으로 코드를 작성하고 자동화합시다.

main.py
import requests, glob, os, time

resourceId = "tsukuru-system-faceapi" # リソースID
personGroup = "authlist" # さっき作ったグループID
personId = "aa0dadea-a031-45c9-a759-1a5a3fe93cfe" # さっきのpersonId
detectionModel = "detection_03" # 最新モデル
subKey = "********************" # サブスクキー

accessCount = 0 # アクセス制限用カウンタ

def main():
    imageList = glob.glob(".\\images\\"+personId+"\\image_*.jpg") # 保存フォルダから画像を選択 (環境によって書き換えてください)
    for image in imageList:
        print("Reading "+os.path.basename(image)+" ... ", end="") # デバッグ
        binData = open(image, "rb").read() # バイナリで読み込む
        print("OK. Uploading ... ", end="") # デバッグ
        response = requests.post(
            "https://"+resourceId+".cognitiveservices.azure.com/face/v1.0/persongroups/"+personGroup+"/persons/"+personId+"/personFaces?detectionModel="+detectionModel,
            headers={"Content-Type": "application/octet-stream", "Ocp-Apim-Subscription-Key": subKey},
            data=binData
        ) # 顔情報を登録する
        op = str(response.status_code)+" OK" if (response.status_code == requests.codes.ok) else str(response.status_code)+" Failed"
        print(op) # デバッグ
        print(response.json) # デバッグ
        accessCount += 1 # アクセスカウント (アクセス制限対策)
        if accessCount >= 20:
            time.sleep(60) # 1分待機
            accessCount = 0 # カウンタをリセット

if __name__ == "__main__":
    main()
py main.py 에서 실행됩니다. 그리고는 등록이 끝날 때까지 기다린다.

4. 훈련하기



드디어 배웁니다. Cognitive Services APIs Reference - PersonGroup - Train 에서 지시합니다.
Query parameters - personGroupId에 그룹 ID(여기서는 authlist)를 입력합니다.


"202 Accepted"가 되면 학습이 시작됩니다.
Cognitive Services APIs Reference - PersonGroup - Get Training Status 에서 학습 상태를 확인할 수 있습니다.

100장 정도라면 1초 정도로 학습할 수 있었습니다. 빠르고 빠른 학습, 내가하지 않으면 놓칠 것입니다.

수고하셨습니다.



학습까지 완료했습니다. 다음은 Node-RED를 이용하면서, 얼굴 인증 테스트와 시스템 구축을 실시해 갑니다.

이전 : 학생증과 얼굴 인증으로 본인 확인해 본다 [1] ~MS Azure, Face API의 이용 준비를 하자~
다음 : 학생증과 얼굴 인증으로 본인 확인해 봅니다 [3] ~Node-RED를 사용하여 시스템을 구축합시다 ~ (가) (집필 중)

좋은 웹페이지 즐겨찾기