“ID + Selfie” – AWS PlatoBlockchain Veri Zekası kullanılarak dijital kimlik doğrulamanın iyileştirilmesi. Dikey Arama. Ai.

"Kimlik + Selfie" – AWS kullanarak dijital kimlik doğrulamasını iyileştirme

COVID-19 küresel salgını, finansal hizmetler, sigorta ve sağlık gibi çeşitli sektörlerde kullanıcıları çevrimiçi olarak doğrulama ve dahil etme ihtiyacını hızlandırdı. Kullanıcı deneyimi söz konusu olduğunda, kimlik doğrulaması için yüksek bir standardı korurken sorunsuz bir işlem sağlamak çok önemlidir. Soru şu ki, dijital dünyadaki gerçek insanları nasıl doğrularsınız?

Amazon Rekognisyon bankacılık, avantajlar, e-ticaret ve çok daha fazlası gibi çevrimiçi uygulamalarınıza kimlik doğrulaması için önceden eğitilmiş yüz tanıma ve analiz yetenekleri sağlar.

Bu gönderide, “ID + Selfie” kimlik doğrulama tasarım desenini sunuyoruz ve basit kod kendi kimlik doğrulama REST uç noktanızı oluşturmak için kullanabilirsiniz. Bu, yüz tabanlı kimlik doğrulaması gerektiren mevcut veya yeni çözümlere dahil edebileceğiniz yaygın bir tasarım modelidir. Kullanıcı, ehliyet veya pasaport gibi bir kimlik formu sunar. Kullanıcı, uygulama ile gerçek zamanlı bir selfie daha yakalar. Ardından belgedeki yüzü, cihazlarında çekilen gerçek zamanlı özçekimle karşılaştırırız.

Amazon Rekognition CompareFaces API'si

"Kimlik + Selfie" tasarım deseninin temelinde, selfie'deki yüzün kimlik belgesindeki yüzle karşılaştırılması yer alır. Bunun için Amazon Rekognition kullanıyoruz CompareFaces API. API, kaynak giriş görüntüsündeki bir yüzü, hedef giriş görüntüsünde algılanan bir yüz veya yüzlerle karşılaştırır. Aşağıdaki örnekte, örnek bir sürücü belgesini (solda) bir selfie (sağda) ile karşılaştırıyoruz.

Kaynak Hedef
“ID + Selfie” – AWS PlatoBlockchain Veri Zekası kullanılarak dijital kimlik doğrulamanın iyileştirilmesi. Dikey Arama. Ai.

API kodunun bir örneği aşağıdadır:

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'])

içinde birkaç değer döndürülür. CompareFaces API yanıtı. Odaklanıyoruz Similarity döndürülen değer FaceMatches Selfie'nin sağlanan kimlikle eşleştiğini doğrulamak için.

Anahtar ayar parametrelerini anlama

SimilarityThreshold varsayılan olarak %80'e ayarlanmıştır ve yalnızca benzerlik puanı %80'e eşit veya daha büyük olan sonuçları döndürür. belirterek değeri ayarlayın. SimilarityThreshold parametre.

QualityFilter gerekli kalite çubuğunu karşılamayan algılanan yüzleri filtrelemek için bir giriş parametresidir. Kalite çubuğu, çeşitli yaygın kullanım durumlarına dayanmaktadır. Kullanmak QualityFilter belirterek kalite çubuğunu ayarlamak için LOW, MEDIUMya da HIGH. Düşük kaliteli yüzleri filtrelemek istemiyorsanız, NONE. Varsayılan değer NONE.

Çözüme genel bakış

Aşağıdaki bileşenleri dağıtarak dijital kimlik doğrulaması için bir "Kimlik + Selfie" API'si oluşturabilirsiniz:

  • Selfie ve tanımlama yükünü göndermemize izin veren ve bu durumda benzerlik puanı olan bir yanıt veren POST yöntemine sahip bir REST API
  • Yükü alma, görüntüleri uygun biçime dönüştürme ve Amazon Rekognition'ı çağırma işlevi compare_faces API.

Uygulıyoruz Amazon API Ağ Geçidi REST API işlevi için ve AWS Lambda işlev için.

Aşağıdaki şema, çözüm mimarisini ve iş akışını göstermektedir.

“ID + Selfie” – AWS PlatoBlockchain Veri Zekası kullanılarak dijital kimlik doğrulamanın iyileştirilmesi. Dikey Arama. Ai.

İş akışı aşağıdaki adımları içerir:

  1. Kullanıcı, gerekli kimlik belgesini ve bir selfie yükler.
  2. İstemci kimlik belgesini ve özçekimi REST uç noktasına gönderir.
  3. REST uç noktası, istemciye bir benzerlik puanı döndürür.
  4. Uygulamanızda iş mantığı üzerinden bir değerlendirme yapılır. Örneğin benzerlik puanı %80'in altındaysa dijital kimlik kontrolünden geçemez; aksi takdirde dijital kimlik kontrolünden geçer.
  5. İstemci durumu kullanıcıya gönderir.

Lambda kodu

Lambda işlevi, her görüntü için gelen yükü base64'ten bayta dönüştürür ve ardından kaynağı (selfie) ve hedefi (tanımlama) Amazon Rekognition'a gönderir compare_faces API ve API yanıtının gövdesinde alınan benzerlik puanını döndürür. Aşağıdaki koda bakın:

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

  }

Projeyi dağıtın

Bu proje aracılığıyla dağıtılabilir AWS Örnekleri ile AWS Bulut Geliştirme Kiti (AWS CDK'sı). Depoyu klonlayabilir ve AWS hesabınıza dağıtmak için aşağıdaki AWS CDK işlemini kullanabilirsiniz.

  1. AWS CDK aracılığıyla çözüm kaynaklarını programlı olarak dağıtma izinlerine sahip bir kullanıcı ayarlayın.
  2. Ayarla AWS Komut Satırı Arayüzü (AWS CLI). Talimatlar için bkz. AWS CLI'yi yapılandırma.
  3. AWS CDK'yi ilk kez kullanıyorsanız, şu bölümde listelenen ön koşulları tamamlayın: Python'da AWS CDK ile çalışma.
  4. klonlamak GitHub deposu.
  5. Sanal ortamı oluşturun. Kullandığınız komut işletim sisteminize bağlıdır:
    1. Windows kullanıyorsanız, klonlanmış deponun kaynağından terminal pencerenizde aşağıdaki komutu çalıştırın:
      ..venvScriptsactivate

    2. Mac veya Linux kullanıyorsanız, klonlanmış deponun kaynağından terminal pencerenizde aşağıdaki komutu çalıştırın:
      .venv/bin/activate

  6. Sanal ortamı etkinleştirdikten sonra uygulamanın standart bağımlılıklarını yükleyin:
    python -m pip install -r requirements.txt

  7. Artık ortam kurulduğuna ve gereksinimler karşılandığına göre, bu projeyi AWS'ye dağıtmak için AWS CDK dağıtım komutunu verebiliriz:
    CDK Deploy

API çağrıları yapın

Yükü base64 formatında REST uç noktasına göndermemiz gerekiyor. Kaynak ve hedef dosyaları açmamıza, bunları base64'e dönüştürmemize ve yükü API Gateway'e göndermemize izin veren API çağrısını yapmak için bir Python dosyası kullanıyoruz. Bu kod depoda mevcuttur.

Unutmayın SOURCE ve TARGET dosya konumları yerel dosya sisteminizde olacaktır ve URL, projenin oluşturulması sırasında oluşturulan API Ağ Geçidi URL'sidir.

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())

Temizlemek

Bu projeyi oluşturmak için AWS CDK'yı kullandık, böylece projemizi yerel olarak açabilir ve kaynakları temizlemek için aşağıdaki AWS CDK komutunu verebiliriz:

CDK Destroy

Sonuç

İşte karşınızda, dijital kimlik doğrulaması gerçekleştirmek için uygulamanızla entegre edebileceğiniz basit bir API'ye sahip “ID + Selfie” tasarım deseni. Serimizdeki bir sonraki gönderide, kimlik belgesinden metin çıkararak ve yinelemeyi önlemek için bir yüz koleksiyonunu arayarak bu kalıbı daha da genişleteceğiz.

Daha fazla bilgi edinmek için Amazon Tanıma Geliştirici Kılavuzu yüzleri algılama ve analiz etme üzerine.


Yazarlar Hakkında

“ID + Selfie” – AWS PlatoBlockchain Veri Zekası kullanılarak dijital kimlik doğrulamanın iyileştirilmesi. Dikey Arama. Ai. Mike Ames AWS'li Temel Uygulamalı Yapay Zeka/ML Çözümleri Mimarıdır. Şirketlerin dolandırıcılık, israf ve kötüye kullanımla mücadele etmek için makine öğrenimi ve yapay zeka hizmetlerini kullanmasına yardımcı olur. Boş zamanlarında onu dağ bisikleti sürerken, kickboks yaparken veya 90'ların metal grubunda gitar çalarken bulabilirsiniz.

“ID + Selfie” – AWS PlatoBlockchain Veri Zekası kullanılarak dijital kimlik doğrulamanın iyileştirilmesi. Dikey Arama. Ai.Nuh Donaldson AWS'de federal finans kuruluşlarını destekleyen bir Çözüm Mimarıdır. Manuel süreçleri azaltabilen, müşteri deneyimlerini iyileştirebilen ve ilginç sorunların çözülmesine yardımcı olabilen AI/ML teknolojisi konusunda heyecanlı. İş dışında, oğluyla buzda hokey oynamayı, en büyük kızıyla avlanmayı ve en küçük kızıyla çember atmayı seviyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi