Zephyrnet Logosu

Amazon Rekognition Kullanılarak Kimlik Doğrulaması Nasıl Uygulanır?

Tarih:

Giriş

Günümüzün dijital ortamında Müşterinizi Tanıyın (KYC) düzenlemelerine uymak, finansal hizmetler, çevrimiçi pazarlar ve kullanıcı kimliğinin belirlenmesini gerektiren diğer sektörlerde faaliyet gösteren işletmeler için çok önemlidir. Geleneksel olarak KYC süreçleri, zaman alıcı ve hataya açık bir yaklaşım olan manuel belge doğrulamaya dayanıyordu. Bu kılavuz, yüz tanıma ve analiz konusunda uzmanlaşmış, AWS'nin güçlü bir bulut tabanlı yapay zeka hizmeti olan Amazon Rekognition'ın çevrimiçi KYC stratejinizde nasıl devrim yaratarak onu basit, güvenli ve uygun maliyetli bir sürece dönüştürebileceğini ele alıyor.

AWS'nin Amazon Tanıma Özelliğine Sahip KYC

Öğrenme hedefleri

  • Çeşitli sektörlerdeki Müşterinizi Tanıyın (KYC) düzenlemelerinin önemini ve manuel doğrulama süreçleriyle ilgili zorlukları anlayın.
  • Yüz tanıma ve analiz konusunda uzmanlaşmış, bulut tabanlı bir yapay zeka hizmeti olan Amazon Rekognition'ın yeteneklerini keşfedin.
  • Kullanıcı katılımı da dahil olmak üzere Amazon Rekognition'ı kullanarak kimlik doğrulamanın uygulanmasına ilişkin adımları öğrenin, metin çıkarma, canlılık tespiti, yüz analizi ve yüz eşleştirme.
  • Güvenlik önlemlerini geliştirmek, kullanıcı kimlik doğrulama süreçlerini kolaylaştırmak ve kullanıcı deneyimlerini iyileştirmek için yapay zeka destekli kimlik doğrulamadan yararlanmanın önemini anlayın.

Bu makale, Veri Bilimi Blogatonu.

İçindekiler

KYC Zorluklarını Anlamak

KYC düzenlemeleri, işletmelerin kullanıcılarının kimliğini doğrulamasını zorunlu kılmaktadır. dolandırıcılığı azaltmak, kara para aklama ve diğer mali suçlar. Bu doğrulama genellikle devlet tarafından verilen kimlik belgelerinin toplanmasını ve doğrulanmasını içerir. Bu düzenlemeler güvenli bir finansal ekosistemi sürdürmek için gerekli olsa da manuel doğrulama süreçleri zorluklar yaratır:

  • Pandemi Etkisi: Pandemi sırasında finans sektörü, hareket kısıtlılığı nedeniyle yeni müşteri kazanma konusunda önemli zorluklarla karşılaştı. Bu nedenle toplu olarak manuel doğrulama mümkün değildir. Yani çevrimiçi KYC'yi uygulayarak işletmeniz gelecekteki bu tür etkinliklere hazır olur.
  • İnsan Hataları: Manuel doğrulama hatalara karşı hassastır ve potansiyel olarak sahte kayıtların gözden kaçmasına neden olabilir.
  • Kimlikleri yönetme: Dokümantasyon basılı bir kopya olduğundan, aynısını yönetmek giderek artan bir zorluktur. Kopyalar kaybolabilir, yanabilir, çalınabilir, kötüye kullanılabilir vb.

Amazon Tanıma nedir?

Amazon Rekognition, Amazon Web Services (AWS) tarafından sunulan güçlü bir görüntü ve video analiz hizmetidir. Görüntülerdeki ve videolardaki görsel içeriği analiz etmek için gelişmiş makine öğrenimi algoritmalarını kullanarak geliştiricilerin değerli bilgiler elde etmesine ve nesne algılama, yüz tanıma ve kimlik doğrulama gibi çeşitli görevleri gerçekleştirmesine olanak tanır. Aşağıdaki basit şema, ilgili özellikler ve hizmetler hakkında iyi bir fikir vermektedir.

Kaynak AWS: Rekogni Kapsamındaki Farklı Hizmetler

Amazon Rekognition ile Kimlik Doğrulama

Sizi uygulamaya götürmeden önce, size Çevrimiçi KYC'miz için kimlik doğrulamanın uygulanmasıyla ilgili üst düzey bir fikir ve adımlar vermeme izin verin.

  1. Kullanıcı Ekleme: Bu süreç işletmeye özel olacaktır. Ancak işletmenin en azından Ad, İkinci Ad, Soyadı, Doğum Tarihi, Kimlik Kartının Son Geçerlilik Tarihi ve Pasaport boyutunda Fotoğrafa ihtiyacı olacaktır. Tüm bu bilgiler, kullanıcıdan Ulusal Kimlik kartının resmini yüklemesi istenerek toplanabilir.
  2. Metni Çıkart: AWS Texttract hizmeti, yukarıdaki bilgilerin tümünü yüklenen kimlik kartından düzgün bir şekilde çıkarabilir. Sadece bu değil, aynı zamanda kimlik kartından belirli bilgileri almak için Texttract'ı da sorgulayabiliriz.
  3. Canlılık ve Yüz Tanıma: KYC'sini yapmaya çalışan kullanıcının canlılık oturumu başladığında ekranda aktif olduğundan ve canlı olduğundan emin olmak. Amazon Rekognition, görüntülerdeki veya video akışlarındaki yüzleri doğru bir şekilde algılayıp karşılaştırabilir.
  4. Yüz Analizi: Bir yüz yakalandığında yaş, cinsiyet, duygular ve yüz işaretleri gibi yüz özelliklerine ilişkin ayrıntılı bilgiler sağlar. Sadece bu değil, aynı zamanda kullanıcının güneş gözlüğü olup olmadığını veya yüzünün başka nesnelerle örtülü olup olmadığını da doğrulayacak.
  5. Yüz Eşleştirme: Canlılığı doğruladıktan sonra, Nüfus Cüzdanından alınan referans görseller ve Canlılık oturumundaki güncel görsele dayanarak bireylerin kimliğini doğrulamak için yüz eşleştirme gerçekleştirebiliyoruz.
AWS'nin Amazon Tanıma özelliği ile çevrimiçi KYC nasıl yapılır?

Gördüğünüz gibi Rekognition, çekilen bir selfieyi analiz ederek ve bunu kullanıcı tarafından yüklenen devlet tarafından verilmiş bir kimlikle karşılaştırarak hızlı kullanıcı kaydını kolaylaştırıyor. Rekognition'daki canlılık algılama yetenekleri, kullanıcıları göz kırpma veya başlarını çevirme gibi belirli eylemleri gerçekleştirmeye yönlendirerek sahtekarlık girişimlerini engellemeye yardımcı olur. Bu, kaydolan kullanıcının akıllıca gizlenmiş bir fotoğraf veya sahte bir fotoğraf değil, gerçek bir kişi olmasını sağlar. Bu otomatik süreç, katılım sürelerini önemli ölçüde azaltarak kullanıcı deneyimini geliştirir. Tanıma, manuel doğrulamanın doğasında olan insan hatası olasılığını ortadan kaldırır. Üstelik Yüz tanıma algoritmaları yüksek doğruluk oranlarına ulaşarak güvenilir kimlik doğrulama sağlar.

Artık bunu çalışırken görmekten çok heyecanlandığınızı biliyorum, o yüzden hemen konuya geçelim.

Kimlik Doğrulamanın Uygulanması: Otomatik KYC Çözümü

1. Adım: AWS Hesabını Kurma

Başlamadan önce etkin bir AWS hesabınızın olduğundan emin olun. Henüz yapmadıysanız, AWS web sitesinden bir AWS hesabına kaydolabilirsiniz. Kaydolduktan sonra Tanıma hizmetlerini etkinleştirin. AWS, bu süreci kolaylaştırmak için kapsamlı belgeler ve eğitimler sağlar.

2. Adım: IAM izinlerini ayarlama

Python veya AWS CLI kullanmak istiyorsanız bu adım gereklidir. Rekognition, S3 ve Textract'a erişim izni vermeniz gerekir. Bu konsoldan yapılabilir.

3. Adım: Kullanıcı Ulusal Kimliğini Yükleyin

Bunu CLI, Python ve grafiksel bir arayüz aracılığıyla göstereceğim. Grafiksel bir arayüz için bir kod arıyorsanız AWS güzel bir kod yükledi git'teki örnek. Bu makale, grafiksel bir arayüzü göstermek için aynı kodu kullanmıştır.

aws textract analyze-id --document-pages 
'{"S3Object":{"Bucket":"bucketARN","Name":"id.jpg"}}'
"IdentityDocuments": [
        {
            "DocumentIndex": 1,
            "IdentityDocumentFields": [
                {
                    "Type": {
                        "Text": "FIRST_NAME"
                    },
                    "ValueDetection": {
                        "Text": "xyz",
                        "Confidence": 93.61839294433594
                    }
                },
                {
                    "Type": {
                        "Text": "LAST_NAME"
                    },
                    "ValueDetection": {
                        "Text": "abc",
                        "Confidence": 96.3537826538086
                    }
                },
                {
                    "Type": {
                        "Text": "MIDDLE_NAME"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.16631317138672
                    }
                },
                {
                    "Type": {
                        "Text": "SUFFIX"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.16964721679688
                    }
                },
                {
                    "Type": {
                        "Text": "CITY_IN_ADDRESS"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.17261505126953
                    }
                },
                {
                    "Type": {
                        "Text": "ZIP_CODE_IN_ADDRESS"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.17854309082031
                    }
                },
                {
                    "Type": {
                        "Text": "STATE_IN_ADDRESS"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.15782165527344
                    }
                },
                {
                    "Type": {
                        "Text": "STATE_NAME"
                    },
                    "ValueDetection": {
                        "Text": "",
                        "Confidence": 99.16664123535156
                    }
                },
                {
                    "Type": {
                        "Text": "DOCUMENT_NUMBER"
                    },
                    "ValueDetection": {
                        "Text": "123456",
                        "Confidence": 95.29527282714844
                    }
                },
                {
                    "Type": {
                        "Text": "EXPIRATION_DATE"
                    },
                    "ValueDetection": {
                        "Text": "22 OCT 2024",
                        "NormalizedValue": {
                            "Value": "2024-10-22T00:00:00",
                            "ValueType": "Date"
                        },
                        "Confidence": 95.7198486328125
                    }
                },
                {
                    "Type": {
                        "Text": "DATE_OF_BIRTH"
                    },
                    "ValueDetection": {
                        "Text": "1 SEP 1994",
                        "NormalizedValue": {
                            "Value": "1994-09-01T00:00:00",
                            "ValueType": "Date"
                        },
                        "Confidence": 97.41930389404297
                    }
                },
                {
                    "Type": {
                        "Text": "DATE_OF_ISSUE"
                    },
                    "ValueDetection": {
                        "Text": "23 OCT 2004",
                        "NormalizedValue": {
                            "Value": "2004-10-23T00:00:00",
                            "ValueType": "Date"
                        },
                        "Confidence": 96.1384506225586
                    }
                },
                {
                    "Type": {
                        "Text": "ID_TYPE"
                    },
                    "ValueDetection": {
                        "Text": "PASSPORT",
                        "Confidence": 98.65157318115234
                    }
                }

Yukarıdaki komut, S3'e önceden yüklenmiş olan görüntüden bilgi çıkarmak için AWS Textract analyze-id komutunu kullanır. JSON çıktısı da sınırlayıcı kutular içerdiğinden yalnızca temel bilgileri gösterecek şekilde kestim. Gördüğünüz gibi, metin değerinin güven düzeyiyle birlikte gerekli tüm bilgileri çıkarmıştır.

Python işlevlerini kullanma

textract_client = boto3.client('textract', region_name='us-east-1')

def analyze_id(document_file_name)->dict:

  if document_file_name is not None:
       with open(document_file_name, "rb") as document_file:
            idcard_bytes = document_file.read()
  '''
  Analyze the image using Amazon Textract.
  '''
  try:
    response = textract_client.analyze_id(
      DocumentPages=[
        {'Bytes': idcard_bytes},
      ])

    return response
  except textract_client.exceptions.UnsupportedDocumentException:
    logger.error('User %s provided an invalid document.' % inputRequest.user_id)
    raise InvalidImageError('UnsupportedDocument')
  except textract_client.exceptions.DocumentTooLargeException:
    logger.error('User %s provided document too large.' % inputRequest.user_id)
    raise InvalidImageError('DocumentTooLarge')
  except textract_client.exceptions.ProvisionedThroughputExceededException:
    logger.error('Textract throughput exceeded.')
    raise InvalidImageError('ProvisionedThroughputExceeded')
  except textract_client.exceptions.ThrottlingException:
    logger.error('Textract throughput exceeded.')
    raise InvalidImageError('ThrottlingException')
  except textract_client.exceptions.InternalServerError:
    logger.error('Textract Internal Server Error.')
    raise InvalidImageError('ProvisionedThroughputExceeded')

result = analyze_id('id.jpeg')
print(result) # print raw output

Grafik Arayüzü Kullanma

AWS Texttract kullanılarak çıkarılan Ulusal Kimlik | KYC için yüz tanıma
AWS Texttract kullanılarak çıkarılan Ulusal Kimlik | KYC için yüz tanıma

Gördüğünüz gibi Textract tüm ilgili bilgileri getirdi ve aynı zamanda kimlik türünü de gösteriyor. Bu bilgiler müşteriyi veya kullanıcıyı kaydetmek için kullanılabilir. Ancak bundan önce gerçek bir kişi olduğunu doğrulamak için Canlılık kontrolü yapalım.

Canlılık Kontrolü

Kullanıcı aşağıdaki görseldeki start check butonuna tıkladığında ilk olarak yüzü algılayacak ve eğer ekranda sadece bir yüz varsa Liveness oturumunu başlatacaktır. Gizlilik nedeniyle Canlılık oturumunun tamamını gösteremiyorum. Ancak bunu kontrol edebilirsiniz demo video linki. Canlılık seansı % güvenle sonuç verecektir. Ayrıca altında Canlılık oturumunun başarısız olacağı bir eşik de belirleyebiliriz. Bunun gibi kritik uygulamalar için eşiğin %95'te tutulması gerekir.

Amazon Tanıma'da Canlılık Kontrolü | KYC için yüz tanıma

Canlılık seansı güvenin yanı sıra yüzde tespit edilen duyguların ve yabancı cisimlerin de sağlanmasını sağlayacaktır. Kullanıcının güneş gözlüğü varsa veya öfke vb. ifadeler gösteriyorsa uygulama görseli reddedebilir.

Python Kodu

rek_client = boto3.client('rekognition', region_name='us-east-1')
sessionid = rek_client.create_face_liveness_session(Settings={'AuditImagesLimit':1, 
           'OutputConfig': {"S3Bucket": 'IMAGE_BUCKET_NAME'}})
           
session = rek_client.get_face_liveness_session_results(
            SessionId=sessionid)

Yüz Karşılaştırma

Kullanıcı Canlılık oturumunu başarıyla tamamladıktan sonra uygulamanın, yüzü kimlikten tespit edilen yüzle karşılaştırması gerekir. Bu uygulamamızın en kritik kısmıdır. Yüzü kimliğiyle eşleşmeyen bir kullanıcıyı kayıt etmek istemiyoruz. Yüklenen kimlikten tespit edilen yüz, referans görüntü görevi görecek kod tarafından zaten S3'te saklanıyor. Benzer şekilde canlılık oturumundaki yüz de S3'te saklanır. Önce CLI uygulamasını kontrol edelim.

CLI komutu

aws rekognition compare-faces 
      --source-image '{"S3Object":{"Bucket":"imagebucket","Name":"reference.jpg"}}' 
      --target-image '{"S3Object":{"Bucket":"imagebucket","Name":"liveness.jpg"}}' 
      --similarity-threshold 0.9

Çıktı

{
              "UnmatchedFaces": [],
              "FaceMatches": [
                  {
                      "Face": {
                          "BoundingBox": {
                              "Width": 0.12368916720151901,
                              "Top": 0.16007372736930847,
                              "Left": 0.5901257991790771,
                              "Height": 0.25140416622161865
                          },
                          "Confidence": 99.0,
                          "Pose": {
                              "Yaw": -3.7351467609405518,
                              "Roll": -0.10309021919965744,
                              "Pitch": 0.8637830018997192
                          },
                          "Quality": {
                              "Sharpness": 95.51618957519531,
                              "Brightness": 65.29893493652344
                          },
                          "Landmarks": [
                              {
                                  "Y": 0.26721030473709106,
                                  "X": 0.6204193830490112,
                                  "Type": "eyeLeft"
                              },
                              {
                                  "Y": 0.26831310987472534,
                                  "X": 0.6776827573776245,
                                  "Type": "eyeRight"
                              },
                              {
                                  "Y": 0.3514654338359833,
                                  "X": 0.6241428852081299,
                                  "Type": "mouthLeft"
                              },
                              {
                                  "Y": 0.35258132219314575,
                                  "X": 0.6713621020317078,
                                  "Type": "mouthRight"
                              },
                              {
                                  "Y": 0.3140771687030792,
                                  "X": 0.6428444981575012,
                                  "Type": "nose"
                              }
                          ]
                      },
                      "Similarity": 100.0
                  }
              ],
              "SourceImageFace": {
                  "BoundingBox": {
                      "Width": 0.12368916720151901,
                      "Top": 0.16007372736930847,
                      "Left": 0.5901257991790771,
                      "Height": 0.25140416622161865
                  },
                  "Confidence": 99.0
              }
          }

Yukarıda görebileceğiniz gibi eşsiz bir yüz olmadığını ve yüzlerin %99 güven düzeyinde eşleştiğini göstermiştir. Ayrıca ekstra bir çıktı olarak sınırlayıcı kutuları da döndürdü. Şimdi Python uygulamasını görelim.

Python Kodu

rek_client = boto3.client('rekognition', region_name='us-east-1')

response = rek_client.compare_faces(
      SimilarityThreshold=0.9,
      SourceImage={
            'S3Object': {
              'Bucket': bucket,
              'Name': idcard_name
          }
      },
      TargetImage={
          'S3Object': {
              'Bucket': bucket,
              'Name': name
          }
      })

if len(response['FaceMatches']) == 0:
      IsMatch = 'False'
      Reason = 'Property FaceMatches is empty.'
    
facenotMatch = False
for match in response['FaceMatches']:
    similarity:float = match['Similarity']
    if similarity > 0.9:
        IsMatch = True,
        Reason = 'All checks passed.'
    else:
        facenotMatch = True

Yukarıdaki kod, eşik değerini %90'da tutarak kimlik kartından tespit edilen yüz ile Canlılık oturumunu karşılaştıracaktır. Yüz eşleşirse IsMatch değişkeni True olarak ayarlanacaktır. Yani tek bir işlev çağrısıyla iki yüzü karşılaştırabiliriz; her ikisi de zaten S3 klasörüne yüklenmiştir.

Sonunda geçerli kullanıcıyı kaydedebilir ve KYC'sini tamamlayabiliriz. Gördüğünüz gibi bu tamamen otomatiktir ve kullanıcı tarafından başlatılır ve başka hiç kimse olaya karışmaz. Süreç aynı zamanda mevcut manuel süreçle karşılaştırıldığında kullanıcının katılımını da kısalttı.

4. Adım: GPT gibi Belgeyi Sorgulayın

Texttract'ın çok kullanışlı özelliklerinden biri hoşuma gitti; "Kimlik Numarası Nedir" gibi spesifik sorular sorabilirsiniz. AWS CLI kullanarak bunu nasıl yapacağınızı size göstereyim.

aws textract analyze-document --document '{"S3Object":{"Bucket":"ARN","Name":"id.jpg"}}' 
--feature-types '["QUERIES"]' --queries-config '{"Queries":[{"Text":"What is the Identity No"}]}'

Lütfen daha önce analiz kimliği işlevini kullandığımı, şimdi ise belgeyi sorgulamak için analiz belgesini kullandığımı unutmayın. Kimlik kartında analiz kimliği işlevi tarafından çıkarılmayan belirli alanlar varsa bu çok kullanışlıdır. Analiz kimliği işlevi tüm ABD kimlik kartları için iyi çalışır ancak Hindistan hükümeti kimlik kartlarıyla da iyi çalışır. Yine de bazı alanların çıkarılmaması durumunda sorgulama özelliği kullanılabilir.

AWS, DynamoDB'de depolanan Kullanıcı kimliğini, kullanıcı kimliğini ve yüz kimliklerini yönetmek için cognito hizmetini kullanır. AWS örnek kodu aynı zamanda mevcut veritabanındaki görüntüleri de karşılaştırır, böylece aynı kullanıcı farklı bir kimlik veya kullanıcı adı kullanarak yeniden kaydolamaz. Bu tür bir doğrulama, sağlam bir otomatik KYC sistemi için bir zorunluluktur.

Sonuç

Otomatik Kendi Kendine KYC için AWS Rekognition'ı benimseyerek, kullanıcı katılım sürecinizi zahmetli bir engelden sorunsuz ve güvenli bir deneyime dönüştürebilirsiniz. Amazon Rekognition, gelişmiş yüz tanıma özelliklerine sahip kimlik doğrulama sistemlerinin uygulanmasına yönelik güçlü bir çözüm sunar. Geliştiriciler, özelliklerinden yararlanarak güvenlik önlemlerini geliştirebilir, kullanıcı kimlik doğrulama süreçlerini kolaylaştırabilir ve çeşitli uygulamalar ve endüstrilerde kusursuz kullanıcı deneyimleri sunabilir.

Yukarıda özetlenen kapsamlı kılavuzla, Amazon Rekognition'ı etkili bir şekilde kullanarak kimlik doğrulamayı uygulama yolculuğunuza başlamak için iyi donanıma sahipsiniz. Yapay zeka destekli kimlik doğrulamanın gücünü benimseyin ve dijital kimlik yönetimi alanında yeni olanakların kilidini açın.

Önemli Noktalar

  • Amazon Rekognition, gelişmiş yüz tanıma ve analiz yetenekleri sunarak kolaylaştırılmış ve güvenli kimlik doğrulama süreçlerini kolaylaştırır.
  • Devlet tarafından verilen kimlik kartlarından gerekli bilgileri çıkararak ve canlılık kontrolleri gerçekleştirerek otomatik kullanıcı katılımını sağlar.
  • Uygulama adımları arasında AWS hizmetlerinin kurulumu, IAM izinlerinin yapılandırılması ve metin çıkarma ve yüz karşılaştırmaları için Python işlevlerinin veya grafik arayüzlerinin kullanılması yer alır.
  • Gerçek zamanlı canlılık kontrolleri, doğrulama sırasında kullanıcıların orada bulunmasını sağlayarak güvenliği artırırken, yüz karşılaştırmaları da kimlikleri referans görüntülerle doğruluyor.

Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.

spot_img

En Son İstihbarat

spot_img