Logo Zephyrnet

Cara Menerapkan Verifikasi Identitas menggunakan Amazon Rekognition

Tanggal:

Pengantar

Dalam lanskap digital saat ini, mematuhi peraturan Kenali Pelanggan Anda (KYC) adalah hal yang sangat penting bagi bisnis yang beroperasi di bidang jasa keuangan, pasar online, dan sektor lain yang memerlukan identifikasi pengguna. Secara tradisional, proses KYC mengandalkan verifikasi dokumen manual, sebuah pendekatan yang memakan waktu dan rawan kesalahan. Panduan ini menggali bagaimana Amazon Rekognition, layanan AI berbasis cloud yang kuat dari AWS, yang berspesialisasi dalam pengenalan dan analisis wajah, dapat merevolusi strategi KYC online Anda, mengubahnya menjadi proses yang efisien, aman, dan hemat biaya.

KYC dengan Pengakuan Amazon AWS

Tujuan Pembelajaran

  • Memahami pentingnya peraturan Kenali Pelanggan Anda (KYC) di berbagai industri dan tantangan yang terkait dengan proses verifikasi manual.
  • Jelajahi kemampuan Amazon Rekognition sebagai layanan AI berbasis cloud yang berspesialisasi dalam pengenalan dan analisis wajah.
  • Pelajari langkah-langkah dalam penerapan verifikasi identitas menggunakan Amazon Rekognition, termasuk orientasi pengguna, ekstraksi teks, deteksi keaktifan, analisis wajah, dan pencocokan wajah.
  • Memahami pentingnya memanfaatkan verifikasi identitas berbasis AI untuk meningkatkan langkah-langkah keamanan, menyederhanakan proses otentikasi pengguna, dan meningkatkan pengalaman pengguna.

Artikel ini diterbitkan sebagai bagian dari Blogathon Ilmu Data.

Daftar Isi

Memahami Tantangan KYC

Peraturan KYC mengamanatkan bahwa bisnis memverifikasi identitas penggunanya untuk mengurangi penipuan, pencucian uang, dan kejahatan keuangan lainnya. Verifikasi ini biasanya melibatkan pengumpulan dan validasi dokumen identifikasi yang dikeluarkan pemerintah. Meskipun peraturan ini penting untuk menjaga ekosistem keuangan yang aman, proses verifikasi manual menimbulkan tantangan:

  • Dampak Pandemi: Selama pandemi, sektor keuangan menghadapi tantangan besar dalam menerima nasabah baru karena terbatasnya pergerakan. Oleh karena itu, verifikasi manual secara massal tidak dapat dilakukan. Jadi dengan menerapkan KYC online, bisnis Anda siap menghadapi acara serupa di masa depan.
  • Kesalahan Manusia: Verifikasi manual rentan terhadap kesalahan, yang berpotensi menyebabkan pendaftaran palsu lolos.
  • ID Pengelola: Karena dokumentasinya berupa salinan cetak, pengelolaannya merupakan tantangan yang semakin besar. Salinannya bisa hilang, terbakar, dicuri, disalahgunakan, dll.

Apa itu Pengakuan Amazon?

Amazon Rekognition adalah layanan analisis gambar dan video canggih yang ditawarkan oleh Amazon Web Services (AWS). Ini menggunakan algoritme pembelajaran mesin canggih untuk menganalisis konten visual dalam gambar dan video, memungkinkan pengembang mengekstrak wawasan berharga dan melakukan berbagai tugas seperti deteksi objek, pengenalan wajah, dan verifikasi identitas. Diagram sederhana di bawah ini memberikan gambaran bagus tentang fitur dan layanan yang terlibat.

Sumber AWS: Layanan Berbeda di bawah Rekogni

Verifikasi Identitas dengan Amazon Rekognition

Sebelum saya membawa Anda ke penerapannya, izinkan saya memberi Anda ide tingkat tinggi dan langkah-langkah yang terlibat dalam penerapan verifikasi identitas untuk KYC Online kami.

  1. Orientasi Pengguna: Proses ini akan dikhususkan untuk bisnis. Namun minimal, bisnis tersebut memerlukan Nama Depan, Nama Tengah, Nama Belakang, Tanggal Lahir, Tanggal Kedaluwarsa KTP, dan Foto ukuran Paspor. Semua informasi ini dapat dikumpulkan dengan meminta pengguna mengunggah gambar KTP.
  2. Ekstrak Teks: Layanan AWS Textract dapat dengan rapi mengekstraksi semua informasi di atas dari kartu ID yang diunggah. Tidak hanya itu, kami juga dapat menanyakan Textract untuk mengambil informasi spesifik dari kartu ID.
  3. Keaktifan dan Pengenalan Wajah: Untuk memastikan bahwa pengguna yang mencoba melakukan KYC-nya aktif di layar dan aktif saat sesi keaktifan dimulai. Amazon Rekognition dapat secara akurat mendeteksi dan membandingkan wajah dalam gambar atau aliran video.
  4. Analisis Wajah: Setelah wajah diambil, ini memberikan wawasan mendetail tentang atribut wajah seperti usia, jenis kelamin, emosi, dan landmark wajah. Tidak hanya itu, ini juga akan memvalidasi apakah pengguna memakai kacamata hitam atau wajahnya tertutup benda lain.
  5. Pencocokan Wajah: Setelah memverifikasi Liveness, kami dapat melakukan pencocokan wajah untuk memverifikasi identitas individu berdasarkan gambar referensi yang diambil dari KTP dan gambar terkini dari sesi Liveness.
Bagaimana KYC online dilakukan dengan Amazon Rekognition AWS

Seperti yang Anda lihat, Rekognition memfasilitasi pendaftaran pengguna secara cepat dengan menganalisis foto selfie yang diambil dan membandingkannya dengan tanda pengenal resmi yang diunggah oleh pengguna. Kemampuan deteksi keaktifan dalam Rekognition membantu menggagalkan upaya spoofing dengan meminta pengguna melakukan tindakan tertentu seperti berkedip atau memutar kepala. Hal ini memastikan pengguna yang mendaftar adalah orang asli dan bukan foto yang disamarkan dengan cerdik atau palsu. Proses otomatis ini secara signifikan mengurangi waktu orientasi, sehingga meningkatkan pengalaman pengguna. Pengakuan menghilangkan potensi kesalahan manusia yang melekat pada verifikasi manual. Selain itu, algoritma pengenalan wajah mencapai tingkat akurasi yang tinggi, memastikan verifikasi identitas yang andal.

Saya tahu Anda sekarang sangat bersemangat untuk melihatnya beraksi, jadi mari kita langsung ke sana.

Menerapkan Verifikasi Identitas: Solusi KYC Otomatis

Langkah 1: Menyiapkan Akun AWS

Sebelum memulai, pastikan Anda memiliki akun AWS yang aktif. Anda dapat mendaftar akun AWS di situs web AWS jika Anda belum melakukannya. Setelah mendaftar, aktifkan layanan Pengakuan. AWS menyediakan dokumentasi dan tutorial komprehensif untuk memfasilitasi proses ini.

Langkah 2: Menyiapkan izin IAM

Jika Anda ingin menggunakan Python atau AWS CLI maka langkah ini diperlukan. Anda perlu memberikan izin untuk mengakses Rekognition, S3, dan Textract. Hal ini dapat dilakukan dari konsol.

Langkah 3: Unggah ID Nasional Pengguna

Saya akan mendemonstrasikannya melalui CLI, Python, dan antarmuka grafis. Jika Anda mencari kode untuk antarmuka grafis maka AWS telah mengunggah yang bagus contoh di git. Artikel ini telah menerapkan kode yang sama untuk menampilkan antarmuka grafis.

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
                    }
                }

Perintah di atas menggunakan perintah analisa-id AWS Textract untuk mengekstrak informasi dari gambar yang sudah diunggah di S3. Output JSON juga berisi kotak pembatas, jadi saya telah memotongnya untuk menampilkan informasi penting saja. Seperti yang Anda lihat, ini telah mengekstraksi semua informasi yang diperlukan bersama dengan tingkat kepercayaan nilai teks.

Menggunakan fungsi Python

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

Menggunakan Antarmuka Grafis

ID Nasional diekstraksi menggunakan AWS Textract | pengenalan wajah untuk KYC
ID Nasional diekstraksi menggunakan AWS Textract | pengenalan wajah untuk KYC

Seperti yang Anda lihat, Textract telah mengambil semua informasi yang relevan dan juga menunjukkan tipe ID. Informasi ini dapat digunakan untuk mendaftarkan pelanggan atau pengguna. Namun sebelum itu mari kita lakukan pengecekan Liveness untuk memverifikasi bahwa itu adalah orang sungguhan.

Pemeriksaan Keaktifan

Setelah pengguna mengklik mulai periksa pada gambar di bawah, pengguna akan mendeteksi wajah terlebih dahulu, dan jika hanya satu wajah yang ada di layar maka sesi Liveness akan dimulai. Untuk alasan privasi, saya tidak dapat menampilkan sesi Liveness secara penuh. Namun, Anda dapat memeriksanya tautan video demo. Sesi Liveness akan memberikan hasil dengan tingkat kepercayaan %. Kami juga dapat menetapkan ambang batas di mana sesi Liveness akan gagal. Untuk aplikasi kritis seperti ini, ambang batas harus dijaga hingga 95%.

Pemeriksaan Keaktifan di Pengakuan Amazon | pengenalan wajah untuk KYC

Selain rasa percaya diri, sesi Liveness juga akan memberikan emosi dan benda asing yang terdeteksi di wajah. Jika pengguna memakai kacamata hitam atau menunjukkan ekspresi seperti marah, dll., aplikasi dapat menolak gambar tersebut.

Kode Python

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)

Perbandingan Wajah

Setelah pengguna berhasil menyelesaikan sesi Liveness, aplikasi harus membandingkan wajah dengan wajah yang terdeteksi dari ID. Ini adalah bagian paling penting dari aplikasi kita. Kami tidak ingin mendaftarkan pengguna yang wajahnya tidak sesuai dengan ID. Wajah yang terdeteksi dari ID yang diunggah sudah disimpan di S3 dengan kode yang akan bertindak sebagai gambar referensi. Demikian pula wajah dari sesi keaktifan juga disimpan di S3. Mari kita periksa implementasi CLI terlebih dahulu.

perintah CLI

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

Keluaran

{
              "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
              }
          }

Seperti yang Anda lihat di atas, terlihat tidak ada wajah yang tidak cocok dan wajah tersebut cocok dengan tingkat kepercayaan 99%. Itu juga mengembalikan kotak pembatas sebagai keluaran tambahan. Sekarang mari kita lihat implementasi Python.

Kode Python

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

Kode di atas akan membandingkan wajah yang terdeteksi dari KTP dan sesi Liveness yang menjaga ambang batas hingga 90%. Jika wajahnya cocok maka variabel IsMatch akan disetel ke True. Jadi hanya dengan satu pemanggilan fungsi kita bisa membandingkan kedua wajah tersebut, keduanya sudah diupload di bucket S3.

Akhirnya, kami dapat mendaftarkan pengguna yang valid dan menyelesaikan KYC-nya. Seperti yang Anda lihat, ini sepenuhnya otomatis dan dimulai oleh pengguna, dan tidak ada orang lain yang terlibat. Proses ini juga mempersingkat orientasi pengguna dibandingkan dengan proses manual saat ini.

Langkah 4: Dokumen Kueri seperti GPT

Saya menyukai salah satu fitur Textract yang sangat berguna, Anda dapat mengajukan pertanyaan spesifik, misalnya "Apa itu Nomor Identitas". Izinkan saya menunjukkan cara melakukan ini menggunakan AWS CLI.

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

Harap dicatat bahwa sebelumnya, saya menggunakan fungsi analisa-id sementara sekarang saya telah menggunakan dokumen analisis untuk menanyakan dokumen. Ini sangat berguna jika ada field tertentu di ID card yang tidak diekstraksi oleh fungsi analisa-id. Fungsi analisa-id berfungsi dengan baik untuk semua kartu identitas AS, namun fungsi ini juga berfungsi baik dengan kartu identitas pemerintah India. Namun, jika beberapa bidang tidak diekstraksi maka fitur kueri dapat digunakan.

AWS menggunakan layanan cognito untuk mengelola identitas Pengguna, ID pengguna, dan ID wajah yang disimpan di DynamoDB. Kode sampel AWS juga membandingkan gambar dari database yang ada sehingga pengguna yang sama tidak dapat mendaftar ulang menggunakan ID atau nama pengguna yang berbeda. Validasi semacam ini adalah suatu keharusan untuk sistem KYC otomatis yang kuat.

Kesimpulan

Dengan menerapkan AWS Rekognition for Automated Self KYC, Anda dapat mengubah proses orientasi pengguna Anda dari rintangan yang melelahkan menjadi pengalaman yang lancar dan aman. Amazon Rekognition memberikan solusi tangguh untuk menerapkan sistem verifikasi identitas dengan kemampuan pengenalan wajah tingkat lanjut. Dengan memanfaatkan fitur-fiturnya, pengembang dapat meningkatkan langkah-langkah keamanan, menyederhanakan proses otentikasi pengguna, dan memberikan pengalaman pengguna yang lancar di berbagai aplikasi dan industri.

Dengan panduan komprehensif yang diuraikan di atas, Anda diperlengkapi dengan baik untuk memulai perjalanan Anda menerapkan verifikasi identitas menggunakan Amazon Rekognition secara efektif. Manfaatkan kekuatan verifikasi identitas berbasis AI dan buka kemungkinan baru di bidang manajemen identitas digital.

Pengambilan Kunci

  • Amazon Rekognition menawarkan kemampuan pengenalan dan analisis wajah tingkat lanjut, memfasilitasi proses verifikasi identitas yang efisien dan aman.
  • Hal ini memungkinkan orientasi pengguna otomatis dengan mengambil informasi penting dari kartu identitas yang dikeluarkan pemerintah dan melakukan pemeriksaan keaktifan.
  • Langkah-langkah implementasi termasuk menyiapkan layanan AWS, mengonfigurasi izin IAM, dan memanfaatkan fungsi Python atau antarmuka grafis untuk ekstraksi teks dan perbandingan wajah.
  • Pemeriksaan keaktifan secara real-time meningkatkan keamanan dengan memastikan pengguna hadir selama verifikasi, sementara perbandingan wajah memvalidasi identitas terhadap gambar referensi.

Media yang ditampilkan dalam artikel ini bukan milik Analytics Vidhya dan digunakan atas kebijaksanaan Penulis.

tempat_img

Intelijen Terbaru

tempat_img