Share via


Oktatóanyag: Élőség észlelése az arcokban

Az arcélesség-észleléssel megállapítható, hogy egy bemeneti videóstreamben lévő arc valós (élő) vagy hamis (hamis). Ez egy kulcsfontosságú építőelem a biometrikus hitelesítési rendszerekben, hogy megakadályozza a hamis támadásokat azoktól a támadóktól, amelyek egy fénykép, videó, maszk vagy más módon próbálnak hozzáférni a rendszerhez egy másik személy megszemélyesítéséhez.

Az élőség-észlelés célja annak biztosítása, hogy a rendszer a hitelesítés időpontjában fizikailag jelen lévő élő személlyel kommunikáljon. Az ilyen rendszerek egyre fontosabbá váltak a digitális finanszírozás, a távelérés-vezérlés és az online identitás-ellenőrzési folyamatok növekedésével.

Az élőségészlelési megoldás sikeresen véd a különböző hamisítási típusok ellen, kezdve a papírnyomatoktól, a 2d/3d maszkoktól és a hamis bemutatóktól a telefonokon és laptopokon. Az élőségészlelés a kutatás aktív területe, és folyamatosan fejlesztenek, hogy ellensúlyozzák az egyre kifinomultabb hamisítási támadásokat. Folyamatosan fejlesztjük az ügyfelet és a szolgáltatás összetevőit, mivel az általános megoldás robusztusabbá válik az új típusú támadásokhoz.

Fontos

A Face ügyféloldali SDK-k az élőséghez kapus funkciók. A Face Recognition beviteli űrlap kitöltésével hozzáférést kell kérnie az élőség funkcióhoz. Amikor az Azure-előfizetése hozzáférést kap, letöltheti a Face liveness SDK-t.

Előfeltételek

  • Az Azure-fiókjához Cognitive Services-közreműködői szerepkörrel kell rendelkeznie ahhoz, hogy ön elfogadja a felelős AI-feltételeket, és létrehozhasson egy erőforrást. Ha hozzá szeretné rendelni ezt a szerepkört a fiókjához, kövesse a Szerepkörök hozzárendelése dokumentáció lépéseit, vagy forduljon a rendszergazdához.
  • Miután megkapta az Azure-előfizetését, hozzon létre egy Face-erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez. Az üzembe helyezés után válassza az Ugrás az erőforrásra lehetőséget.
    • Az alkalmazás a Face szolgáltatáshoz való csatlakoztatásához szüksége van a létrehozott erőforrás kulcsára és végpontjára. A rövid útmutató későbbi részében illessze be a kulcsot és a végpontot a kódba.
    • Az ingyenes tarifacsomag (F0) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.
  • Hozzáférés az Azure AI Vision Face Ügyféloldali SDK mobileszközökhöz (IOS és Android). Első lépésként alkalmaznia kell a Face Recognition korlátozott hozzáférésű funkcióit az SDK-hoz való hozzáféréshez. További információt a Face Limited Access oldalán talál.

Élőség-észlelés végrehajtása

Az élőségi megoldás integrációja két különböző összetevőt foglal magában: egy mobilalkalmazást és egy alkalmazáskiszolgálót/vezénylőt.

Az élőség integrálása mobilalkalmazásba

Miután hozzáfér az SDK-hoz, kövesse az azure-ai-vision-sdk GitHub-adattár utasításait a felhasználói felület és a kód natív mobilalkalmazásba való integrálásához. Az liveness SDK támogatja az AndroidHoz készült Java/Kotlin és az iOS-alapú Swift mobilalkalmazásokat is:

  • Swift iOS esetén kövesse az iOS-mintában szereplő utasításokat
  • Kotlin/Java Android esetén kövesse az Android-minta utasításait

Miután hozzáadta a kódot az alkalmazáshoz, az SDK kezeli a kamera indítását, a végfelhasználó irányítását a helyzetük módosításához, az élőségi hasznos adatok összeállításához, valamint az Azure AI Face felhőszolgáltatás meghívásához az élőségi hasznos adatok feldolgozásához.

Az élőségi megoldás vezénylése

Az élőség-vezénylés magas szintű lépéseit az alábbiakban szemléltetjük:

Az Azure AI Face élőségi munkafolyamatának diagramja.

  1. A mobilalkalmazás elindítja az élőség-ellenőrzést, és értesíti az alkalmazáskiszolgálót.

  2. Az alkalmazáskiszolgáló létrehoz egy új élő munkamenetet az Azure AI Face Service-vel. A szolgáltatás létrehoz egy élő munkamenetet, és egy munkamenet-engedélyezési jogkivonattal válaszol vissza.

    Request:
    curl --location '<insert-api-endpoint>/face/v1.1-preview.1/detectliveness/singlemodal/sessions' \
    --header 'Ocp-Apim-Subscription-Key:<insert-api-key>
    --header 'Content-Type: application/json' \
    --data '{
      "livenessOperationMode": "passive",
      "deviceCorrelationId": "723d6d03-ef33-40a8-9682-23a1feb7bccd",
      "sendResultsToClient": "false"
    }'
     
    Response:
    {
        "sessionId": "a6e7193e-b638-42e9-903f-eaf60d2b40a5",
        "authToken": <session-authorization-token>
    }
    
  3. Az alkalmazáskiszolgáló visszaadja a munkamenet-engedélyezési jogkivonatot a mobilalkalmazásnak.

  4. A mobilalkalmazás biztosítja a munkamenet-engedélyezési jogkivonatot az Azure AI Vision SDK inicializálása során.

    mServiceOptions?.setTokenCredential(com.azure.android.core.credential.TokenCredential { _, callback ->
        callback.onSuccess(com.azure.android.core.credential.AccessToken("<INSERT_TOKEN_HERE>", org.threeten.bp.OffsetDateTime.MAX))
    })
    
    serviceOptions?.authorizationToken = "<INSERT_TOKEN_HERE>"
    
  5. Az SDK ezután elindítja a kamerát, helyes pozícióba irányítja a felhasználót, majd előkészíti a hasznos adatokat az élőség-észlelési szolgáltatás végpontjának meghívására.

  6. Az SDK meghívja az Azure AI Vision Face szolgáltatást az élőség-észlelés végrehajtásához. Miután a szolgáltatás válaszol, az SDK értesíti a mobilalkalmazást, hogy az élőség-ellenőrzés befejeződött.

  7. A mobilalkalmazás továbbítja az élőség-ellenőrzés befejezését az alkalmazáskiszolgálónak.

  8. Az alkalmazáskiszolgáló mostantól lekérdezheti az Azure AI Vision Face szolgáltatásból származó élőség-észlelési eredményeket.

    Request:
    curl --location '<insert-api-endpoint>/face/v1.1-preview.1/detectliveness/singlemodal/sessions/a3dc62a3-49d5-45a1-886c-36e7df97499a' \
    --header 'Ocp-Apim-Subscription-Key: <insert-api-key>
    
    Response:
    {
        "status": "ResultAvailable",
        "result": {
            "id": 1,
            "sessionId": "a3dc62a3-49d5-45a1-886c-36e7df97499a",
            "requestId": "cb2b47dc-b2dd-49e8-bdf9-9b854c7ba843",
            "receivedDateTime": "2023-10-31T16:50:15.6311565+00:00",
            "request": {
                "url": "/face/v1.1-preview.1/detectliveness/singlemodal",
                "method": "POST",
                "contentLength": 352568,
                "contentType": "multipart/form-data; boundary=--------------------------482763481579020783621915",
                "userAgent": ""
            },
            "response": {
                "body": {
                    "livenessDecision": "realface",
                    "target": {
                        "faceRectangle": {
                            "top": 59,
                            "left": 121,
                            "width": 409,
                            "height": 395
                        },
                        "fileName": "video.webp",
                        "timeOffsetWithinFile": 0,
                        "imageType": "Color"
                    },
                    "modelVersionUsed": "2022-10-15-preview.04"
                },
                "statusCode": 200,
                "latencyInMilliseconds": 1098
            },
            "digest": "537F5CFCD8D0A7C7C909C1E0F0906BF27375C8E1B5B58A6914991C101E0B6BFC"
        },
        "id": "a3dc62a3-49d5-45a1-886c-36e7df97499a",
        "createdDateTime": "2023-10-31T16:49:33.6534925+00:00",
        "authTokenTimeToLiveInSeconds": 600,
        "deviceCorrelationId": "723d6d03-ef33-40a8-9682-23a1feb7bccd",
        "sessionExpired": false
    }
    
    

Élőség-észlelés végrehajtása arcellenőrzéssel

Az arc-ellenőrzés és az élőség-észlelés kombinálása lehetővé teszi egy adott érintett személy biometrikus ellenőrzését egy hozzáadott garanciával, hogy a személy fizikailag jelen van a rendszerben. Az élőség ellenőrzéssel való integrálásának két része van:

  1. Válasszon egy jó referenciaképet.
  2. Az élőség vezénylésének beállítása ellenőrzéssel.

Az Azure AI Face élősségi és ellenőrzési munkafolyamatának ábrája.

Jó referenciakép kiválasztása

Az alábbi tippek segítségével győződjön meg arról, hogy a bemeneti képek a legpontosabb felismerési eredményeket adják.

Technikai követelmények:

  • A támogatott bemeneti képformátumok: JPEG, PNG, GIF (az első képkocka), BMP.
  • A képfájl mérete nem lehet nagyobb 6 MB-nál.
  • Az attribútumot az qualityForRecognitionarcfelismerési műveletben akkor használhatja, ha az alkalmazható észlelési modelleket használja általános útmutatóként, hogy a kép valószínűleg megfelelő minőségű-e ahhoz, hogy megkísérelje az arcfelismerést. Azonosítási forgatókönyvek esetében csak "high" minőségi képek használata ajánlott a személyregisztrációhoz, és a minőség a fenti vagy annál magasabb "medium" szinten javasolt.

Összetételi követelmények:

  • A fénykép tiszta és éles, nem homályos, képpontos, torz vagy sérült.
  • A fénykép nem módosul az archibák és az arc megjelenésének eltávolításához.
  • A fényképnek RGB-színben támogatott formátumban kell lennie (JPEG, PNG, WEBP, BMP). Az ajánlott arcméret 200 képpont x 200 képpont. A 200 képpontnál x 200 képpontnál nagyobb arcméretek nem eredményeznek jobb AI-minőséget, és nem nagyobbak 6 MB-nál.
  • A felhasználó nem visel szemüveget, maszkot, kalapot, fejhallgatót, fejvédőt vagy arcvédőt. Az arcnak mentesnek kell lennie minden akadálytól.
  • Arc ékszer megengedett, feltéve, hogy nem rejtik el az arcát.
  • Csak egy arc legyen látható a fényképen.
  • Az arcnak semleges, elülső pózban kell lennie, nyitott szemmel, zárt szájjal, szélsőséges arckifejezések és fejdöntés nélkül.
  • Az arcnak mentesnek kell lennie az árnyéktól vagy a vörös szemtől. Ha ezek bármelyike bekövetkezik, akkor a fényképet újra meg kell ismételni.
  • A háttérnek egységesnek és egyszerűnek kell lennie, árnyéktól mentesnek kell lennie.
  • Az arcnak a kép közepén kell lennie, és ki kell töltenie a kép legalább 50%-át.

Az élőség vezénylésének beállítása ellenőrzéssel.

Az ellenőrzés vezénylése során az élőség magas szintű lépéseit az alábbi ábra szemlélteti:

  1. Adja meg az ellenőrzési referenciaképet az alábbi két módszer valamelyikével:

    • Az alkalmazáskiszolgáló biztosítja a referenciarendszerképet az élő munkamenet létrehozásakor.

      Request:
      curl --location '<insert-api-endpoint>/face/v1.1-preview.1/detectlivenesswithverify/singlemodal/sessions' \
      --header 'Ocp-Apim-Subscription-Key: <api_key>' \
      --form 'Parameters="{
        \"livenessOperationMode\": \"passive\",
        \"deviceCorrelationId\": \"723d6d03-ef33-40a8-9682-23a1feb7bccd\"
      }"' \
      --form 'VerifyImage=@"test.png"'
      
      Response:
      {
          "verifyImage": {
              "faceRectangle": {
                  "top": 506,
                  "left": 51,
                  "width": 680,
                  "height": 475
              },
              "qualityForRecognition": "high"
          },
          "sessionId": "3847ffd3-4657-4e6c-870c-8e20de52f567",
          "authToken":<session-authorization-token>
      }
      
      
    • A mobilalkalmazás az SDK inicializálásakor biztosítja a referenciarendszerképet.

      val singleFaceImageSource = VisionSource.fromFile("/path/to/image.jpg")
      mFaceAnalysisOptions?.setRecognitionMode(RecognitionMode.valueOfVerifyingMatchToFaceInSingleFaceImage(singleFaceImageSource))
      
      if let path = Bundle.main.path(forResource: "<IMAGE_RESOURCE_NAME>", ofType: "<IMAGE_RESOURCE_TYPE>"),
         let image = UIImage(contentsOfFile: path),
         let singleFaceImageSource = try? VisionSource(uiImage: image) {
          try methodOptions.setRecognitionMode(.verifyMatchToFaceIn(singleFaceImage: singleFaceImageSource))
      }
      
  2. Az alkalmazáskiszolgáló mostantól az élőségi eredmény mellett lekérdezheti az ellenőrzési eredményt.

    Request:
    curl --location '<insert-api-endpoint>/face/v1.1-preview.1/detectlivenesswithverify/singlemodal/sessions/3847ffd3-4657-4e6c-870c-8e20de52f567' \
    --header 'Content-Type: multipart/form-data' \
    --header 'apim-recognition-model-preview-1904: true' \
    --header 'Authorization: Bearer.<session-authorization-token> \
    --form 'Content=@"video.webp"' \
    --form 'Metadata="<insert-metadata>"
    
    Response:
    {
        "status": "ResultAvailable",
        "result": {
            "id": 1,
            "sessionId": "3847ffd3-4657-4e6c-870c-8e20de52f567",
            "requestId": "f71b855f-5bba-48f3-a441-5dbce35df291",
            "receivedDateTime": "2023-10-31T17:03:51.5859307+00:00",
            "request": {
                "url": "/face/v1.1-preview.1/detectlivenesswithverify/singlemodal",
                "method": "POST",
                "contentLength": 352568,
                "contentType": "multipart/form-data; boundary=--------------------------590588908656854647226496",
                "userAgent": ""
            },
            "response": {
                "body": {
                    "livenessDecision": "realface",
                    "target": {
                        "faceRectangle": {
                            "top": 59,
                            "left": 121,
                            "width": 409,
                            "height": 395
                        },
                        "fileName": "video.webp",
                        "timeOffsetWithinFile": 0,
                        "imageType": "Color"
                    },
                    "modelVersionUsed": "2022-10-15-preview.04",
                    "verifyResult": {
                        "matchConfidence": 0.9304124,
                        "isIdentical": true
                    }
                },
                "statusCode": 200,
                "latencyInMilliseconds": 1306
            },
            "digest": "2B39F2E0EFDFDBFB9B079908498A583545EBED38D8ACA800FF0B8E770799F3BF"
        },
        "id": "3847ffd3-4657-4e6c-870c-8e20de52f567",
        "createdDateTime": "2023-10-31T16:58:19.8942961+00:00",
        "authTokenTimeToLiveInSeconds": 600,
        "deviceCorrelationId": "723d6d03-ef33-40a8-9682-23a1feb7bccd",
        "sessionExpired": true
    }
    

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Következő lépések

Tekintse meg az Azure AI Vision SDK-ra vonatkozó hivatkozást az élőségi API-k egyéb lehetőségeiről.

Az élőségi megoldás vezényléséhez elérhető funkciókról a Munkamenet REST API-referenciája nyújt további információt.