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
- Azure-előfizetés – Ingyenes létrehozás
- 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:
A mobilalkalmazás elindítja az élőség-ellenőrzést, és értesíti az alkalmazáskiszolgálót.
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> }
Az alkalmazáskiszolgáló visszaadja a munkamenet-engedélyezési jogkivonatot a mobilalkalmazásnak.
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>"
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.
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.
A mobilalkalmazás továbbítja az élőség-ellenőrzés befejezését az alkalmazáskiszolgálónak.
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:
- Válasszon egy jó referenciaképet.
- Az élőség vezénylésének beállítása ellenőrzéssel.
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
qualityForRecognition
arcfelismeré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:
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)) }
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.