“ID + 셀카” – AWS PlatoBlockchain 데이터 인텔리전스를 사용하여 디지털 신원 확인을 개선합니다. 수직 검색. 일체 포함.

"ID + Selfie" – AWS를 사용하여 디지털 신원 확인 개선

COVID-19의 세계적 대유행은 금융 서비스, 보험, 의료와 같은 여러 산업 분야에서 온라인으로 사용자를 확인하고 온보딩해야 할 필요성을 가속화했습니다. 사용자 경험과 관련하여 높은 수준의 신원 확인 기준을 유지하면서 마찰 없는 거래를 제공하는 것이 중요합니다. 문제는 디지털 세계에서 실제 사람을 어떻게 확인하느냐는 것입니다.

아마존 인식 뱅킹, 복리후생, 전자상거래 등과 같은 온라인 애플리케이션에 대한 신원 확인을 위해 사전 훈련된 얼굴 인식 및 분석 기능을 제공합니다.

이번 포스팅에서는 '신분증+셀카' 본인인증 디자인 패턴과 샘플 코드 고유한 신원 확인 REST 엔드포인트를 생성하는 데 사용할 수 있습니다. 이것은 얼굴 기반 신원 확인이 필요한 기존 또는 새로운 솔루션에 통합할 수 있는 일반적인 디자인 패턴입니다. 사용자는 운전 면허증이나 여권과 같은 신분증을 제시합니다. 사용자는 애플리케이션으로 실시간 셀카를 캡처합니다. 그런 다음 문서의 얼굴과 장치에서 찍은 실시간 셀카를 비교합니다.

Amazon Rekognition CompareFaces API

"ID + 셀카" 디자인 패턴의 핵심은 셀카의 얼굴과 신분증의 얼굴을 비교하는 것입니다. 이를 위해 Amazon Rekognition을 사용합니다. CompareFaces API. API는 소스 입력 이미지의 얼굴을 대상 입력 이미지에서 감지된 얼굴과 비교합니다. 다음 예에서는 샘플 운전 면허증(왼쪽)과 셀카(오른쪽)를 비교합니다.

출처 목표
“ID + 셀카” – AWS PlatoBlockchain 데이터 인텔리전스를 사용하여 디지털 신원 확인을 개선합니다. 수직 검색. 일체 포함.

다음은 API 코드의 예입니다.

response = client.compare_faces(SimilarityThreshold=80,
                              SourceImage={'Bytes': s_bytes},
                              TargetImage={'Bytes': t_bytes})

for faceMatch in response['FaceMatches']:
    position = faceMatch['Face']['BoundingBox']
    similarity = str(faceMatch['Similarity'])

여러 값이 CompareFaces API 응답. 우리는 초점 Similarity 반환된 값 FaceMatches 셀카가 제공된 ID와 일치하는지 확인합니다.

주요 조정 매개변수 이해

SimilarityThreshold 기본적으로 80%로 설정되어 있으며 유사도 점수가 80% 이상인 결과만 반환합니다. 다음을 지정하여 값을 조정합니다. SimilarityThreshold 매개 변수입니다.

QualityFilter 필수 품질 막대를 충족하지 않는 감지된 얼굴을 필터링하는 입력 매개변수입니다. 품질 표시줄은 다양한 일반적인 사용 사례를 기반으로 합니다. 사용 QualityFilter 지정하여 품질 막대를 설정하려면 LOW, MEDIUMHIGH. 저품질 얼굴을 필터링하지 않으려면 다음을 지정하십시오. NONE. 기본값은입니다. NONE.

솔루션 개요

다음 구성 요소를 배포하여 디지털 신원 확인을 위한 "ID + Selfie" API를 생성할 수 있습니다.

  • 셀카 및 식별 페이로드를 보내고 응답(이 경우 유사성 점수)을 반환할 수 있는 POST 메서드가 있는 REST API
  • 페이로드를 수신하고 이미지를 적절한 형식으로 변환하고 Amazon Rekognition을 호출하는 함수 compare_faces API.

우리는 구현 아마존 API 게이트웨이 REST API 기능 및 AWS 람다 기능을 위해.

다음 다이어그램은 솔루션 아키텍처와 워크플로를 보여줍니다.

“ID + 셀카” – AWS PlatoBlockchain 데이터 인텔리전스를 사용하여 디지털 신원 확인을 개선합니다. 수직 검색. 일체 포함.

워크 플로에는 다음 단계가 포함됩니다.

  1. 사용자는 필요한 신분증과 셀카를 업로드합니다.
  2. 클라이언트는 식별 문서와 셀카를 REST 끝점에 제출합니다.
  3. REST 끝점은 클라이언트에 유사성 점수를 반환합니다.
  4. 평가는 애플리케이션의 비즈니스 로직을 통해 수행됩니다. 예를 들어 유사도 점수가 80% 미만이면 디지털 신원 확인에 실패합니다. 그렇지 않으면 디지털 신원 확인을 통과합니다.
  5. 클라이언트는 상태를 사용자에게 보냅니다.

Lambda 코드

Lambda 함수는 수신 페이로드를 base64에서 각 이미지의 바이트로 변환한 다음 소스(셀카)와 대상(식별)을 Amazon Rekognition으로 보냅니다. compare_faces API 및 API 응답 본문에서 수신된 유사성 점수를 반환합니다. 다음 코드를 참조하십시오.

import boto3
import sys
import json
import base64


def lambda_handler(event, context):

  client = boto3.client('rekognition')

  payload_dict = json.loads(json.loads(event['body']))
  selfie = payload_dict['selfie']
  dl = payload_dict['dl']

  # convert text to base64
  s_base64 = dl.encode('utf-8')
  t_base64 = selfie.encode('utf-8')
  #convert base64 to bytes
  s_bytes = base64.b64decode(s_base64)
  t_bytes = base64.b64decode(t_base64)
  response = client.compare_faces(SimilarityThreshold=80,
                                SourceImage={'Bytes': s_bytes},
                                TargetImage={'Bytes': t_bytes})

  for faceMatch in response['FaceMatches']:
      position = faceMatch['Face']['BoundingBox']
      similarity = str(faceMatch['Similarity'])

  return {

    'statusCode': response['ResponseMetadata']['HTTPStatusCode'],

    'body': similarity

  }

프로젝트 배포

이 프로젝트는 다음을 통해 배포할 수 있습니다. AWS 샘플 와 더불어 AWS 클라우드 개발 키트 (AWS CDK). 리포지토리를 복제하고 다음 AWS CDK 프로세스를 사용하여 AWS 계정에 배포할 수 있습니다.

  1. AWS CDK를 통해 솔루션 리소스를 프로그래밍 방식으로 배포할 수 있는 권한이 있는 사용자를 설정합니다.
  2. 설정 AWS 명령 줄 인터페이스 (AWS CLI). 지침은 다음을 참조하십시오. AWS CLI 구성.
  3. AWS CDK를 처음 사용하는 경우에 나열된 사전 요구 사항을 완료하십시오. Python에서 AWS CDK 작업.
  4. 클론 GitHub 저장소.
  5. 가상 환경을 만듭니다. 사용하는 명령은 OS에 따라 다릅니다.
    1. Windows를 사용하는 경우 복제된 리포지토리의 소스에서 터미널 창에서 다음 명령을 실행합니다.
      ..venvScriptsactivate

    2. Mac 또는 Linux를 사용하는 경우 복제된 리포지토리의 소스에서 터미널 창에서 다음 명령을 실행합니다.
      .venv/bin/activate

  6. 가상 환경을 활성화한 후 앱의 표준 종속성을 설치합니다.
    python -m pip install -r requirements.txt

  7. 이제 환경이 설정되고 요구 사항이 충족되었으므로 AWS CDK 배포 명령을 실행하여 이 프로젝트를 AWS에 배포할 수 있습니다.
    CDK Deploy

API 호출하기

base64 형식의 페이로드를 REST 끝점에 보내야 합니다. Python 파일을 사용하여 API 호출을 수행하여 소스 및 대상 파일을 열고 base64로 변환하고 페이로드를 API 게이트웨이로 보낼 수 있습니다. 이 코드는 저장소에서 사용할 수 있습니다.

참고로 SOURCETARGET 파일 위치는 로컬 파일 시스템에 있으며 URL은 프로젝트 생성 중에 생성된 API 게이트웨이 URL입니다.

import requests
from base64 import b64encode
from json import dumps

TARGET = '.png'
SOURCE = .png'
URL = "https://.execute-api..amazonaws.com//ips"
ENCODING = 'utf-8'
JSON_NAME = 'output.json'

# first: reading the binary stuff
with open(SOURCE, 'rb') as source_file:
    s_byte_content = source_file.read()
with open(TARGET, 'rb') as target_file:
    t_byte_content = target_file.read()

# second: base64 encode read data
s_base64_bytes = b64encode(s_byte_content)
t_base64_bytes = b64encode(t_byte_content)

# third: decode these bytes to text
s_base64_string = s_base64_bytes.decode(ENCODING)
t_base64_string = t_base64_bytes.decode(ENCODING)

# make raw data for json
raw_data = {
    " dl ": s_base64_string,
    " selfie ": t_base64_string
}

# now: encoding the data to json
json_data = dumps(raw_data, indent=2)

response = requests.post(url=URL, json=json_data)
response.raise_for_status()

print("Status Code", response.status_code)
print("Body ", response.json())

정리

AWS CDK를 사용하여 이 프로젝트를 빌드했으므로 로컬에서 프로젝트를 열고 다음 AWS CDK 명령을 실행하여 리소스를 정리할 수 있습니다.

CDK Destroy

결론

디지털 신원 확인을 수행하기 위해 애플리케이션과 통합할 수 있는 간단한 API가 포함된 "ID + 셀카" 디자인 패턴이 있습니다. 이 시리즈의 다음 게시물에서는 신분증에서 텍스트를 추출하고 중복을 방지하기 위해 얼굴 모음을 검색하여 이 패턴을 더욱 확장합니다.

자세한 내용은 Amazon Rekognition 개발자 안내서 얼굴을 감지하고 분석합니다.


저자에 관하여

“ID + 셀카” – AWS PlatoBlockchain 데이터 인텔리전스를 사용하여 디지털 신원 확인을 개선합니다. 수직 검색. 일체 포함. 마이크 에임스 AWS의 주요 응용 AI/ML 솔루션 아키텍트입니다. 그는 기업이 기계 학습 및 AI 서비스를 사용하여 사기, 낭비 및 남용을 방지하도록 돕습니다. 여가 시간에는 90년대 메탈 밴드에서 산악 자전거, 킥복싱, 기타 연주를 볼 수 있습니다.

“ID + 셀카” – AWS PlatoBlockchain 데이터 인텔리전스를 사용하여 디지털 신원 확인을 개선합니다. 수직 검색. 일체 포함.노아 도날드슨 연방 금융 조직을 지원하는 AWS의 솔루션 아키텍트입니다. 그는 수동 프로세스를 줄이고 고객 경험을 개선하며 흥미로운 문제를 해결하는 데 도움이 될 수 있는 AI/ML 기술에 대해 흥분하고 있습니다. 직장 밖에서는 아들과 아이스하키를 하고, 큰 딸과 사냥을 하고, 막내 딸과 농구를 하는 것을 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습