Serhii Maksymenko,
Data Science Solution Architect
Az arcfelismerő technológia ma már más fényben tűnik fel. A felhasználási esetek között a bűnözés felderítésétől a genetikai betegségek azonosításáig széleskörűen alkalmazható.
Míg a kormányok világszerte befektetnek az arcfelismerő rendszerekbe, egyes amerikai városok, mint Oakland, Somerville és Portland, polgárjogi és adatvédelmi aggályok miatt betiltották azt.
Miről van szó – időzített bomba vagy technológiai áttörés? Ez a cikk megnyitja, mi az arcfelismerés technológiai szempontból, és hogyan növeli a mélytanulás a képességeit. Csak akkor érthetjük meg, mire képes az arcfelismerő technológia, ha belülről kifelé tekintve felismerjük, hogyan működik.
Frissítve: 2020. 06. 09. 06: Maszkolt arcfelismerés és felismerés
How Deep Learning Can Modernize Face Recognition Software
Download PDF
Hogyan működik az arcfelismerés?
Az arcfelismerő szoftver számítógépes algoritmusa egy kicsit hasonlít az emberi vizuális felismeréshez. De ha az emberek vizuális adatokat tárolnak az agyban, és automatikusan felidézik a vizuális adatokat, ha szükség van rájuk, akkor a számítógépeknek egy adatbázisból kellene adatokat kérniük és összevetni őket az emberi arc azonosításához.
Dióhéjban, egy kamerával felszerelt számítógépes rendszer érzékeli és azonosítja az emberi arcot, kivonja az arcvonásokat, például a szemek közötti távolságot, az orr hosszát, a homlok és az arccsontok alakját. Ezután a rendszer felismeri az arcot, és összeveti egy adatbázisban tárolt képekkel.
A hagyományos arcfelismerő technológia azonban még nem tökéletes. Erősségei és gyengeségei egyaránt vannak:
Erőssége
Egy érintkezés nélküli biometrikus azonosítás Egy másodpercig tartó adatfeldolgozás A legtöbb kamerával való kompatibilitás A könnyű integrálhatóság |
Gyengeségei
Twins és faji torzítás Adatvédelemmel kapcsolatos problémák Prezentációs támadások (PA) Nagyon alacsony pontosság rossz fényviszonyok mellett |
Az arcfelismerő rendszerek gyengeségeinek felismerése, az adattudósok tovább léptek. Hagyományos számítógépes látási technikák és mélytanulási algoritmusok alkalmazásával finomhangolták az arcfelismerő rendszert a támadások megelőzése és a pontosság növelése érdekében. Így működik az arcmásolás elleni technológia.
How Deep Learning Upgrades Face Recognition Software
A mélytanulás az egyik legújszerűbb módja az arcfelismerő technológia fejlesztésének. Az ötlet lényege, hogy az arcokat tartalmazó képekből arcbeágyazásokat vonnak ki. Az ilyen arcbeágyazások különböző arcok esetében egyediek lesznek. A mély neurális hálózat képzése pedig a legoptimálisabb módja ennek a feladatnak az elvégzésére.
A feladattól és az időkerettől függően két általános módszer létezik a mély tanulás alkalmazására az arcfelismerő rendszerekhez:
Előtanított modellek használata, mint például a dlib, DeepFace, FaceNet és mások. Ez a módszer kevesebb időt és erőfeszítést igényel, mivel az előre betanított modellek már rendelkeznek az arcfelismerés céljára szolgáló algoritmusok készletével. Az előre betanított modelleket is finomhangolhatjuk, hogy elkerüljük a torzításokat, és az arcfelismerő rendszer megfelelően működjön.
Neurális hálózatot fejleszthetünk a semmiből. Ez a módszer olyan összetett arcfelismerő rendszerekhez alkalmas, amelyek többcélú funkcionalitással rendelkeznek. Több időt és erőfeszítést igényel, és több millió képet igényel a képzési adathalmazban, ellentétben az előre betanított modellel, amely transzfer tanulás esetén csak több ezer képet igényel.
De ha az arcfelismerő rendszer egyedi jellemzőket tartalmaz, hosszú távon optimális módszer lehet. A legfontosabb pontok, amelyekre érdemes odafigyelni:
- A CNN-architektúra és a veszteségfüggvény helyes kiválasztása
- A következtetési idő optimalizálása
- A hardver teljesítménye
A hálózati architektúra kialakításakor ajánlott a konvolúciós neurális hálózatok (CNN) használata, mivel ezek bizonyítottan hatékonyak a képfelismerési és osztályozási feladatokban. A várt eredmények elérése érdekében jobb, ha egy általánosan elfogadott neurális hálózati architektúrát veszünk alapul, például a ResNet-et vagy az EfficientNet-et.
Az arcfelismerő szoftverek fejlesztésére szolgáló neurális hálózat képzésekor a legtöbb esetben minimalizálnunk kell a hibákat. Itt döntő fontosságú a valós és a megjósolt kimenet közötti hiba kiszámításához használt veszteségfüggvények figyelembevétele. Az arcfelismerő rendszerekben leggyakrabban használt függvények a triplet veszteség és az AM-Softmax.
- A triplet veszteségfüggvény azt jelenti, hogy két különböző ember három képével rendelkezünk. Az egyik személynek két képe – horgony és pozitív – van, a harmadik – negatív – pedig egy másik személynek. A hálózati paramétereket úgy tanuljuk meg, hogy az azonos embereket közelebb hozzuk egymáshoz a jellemzőtérben, és elkülönítsük a különböző embereket.
- Az AM-Softmax függvény a standard softmax függvény egyik legújabb módosítása, amely egy sajátos, additív margón alapuló regularizációt használ. Ez lehetővé teszi az osztályok jobb szeparálhatóságának elérését, és ezáltal javítja az arcfelismerő rendszer pontosságát.
Egy neurális hálózat javítására is számos megközelítés létezik. Az arcfelismerő rendszerekben a legérdekesebbek a tudásdesztilláció, a transzfer tanulás, a kvantálás és a mélységszeparálható konvolúciók.
- A tudásdesztilláció két különböző méretű hálózatot foglal magában, amikor egy nagy hálózat tanítja a saját kisebb változatát. A kulcsérték az, hogy a betanítás után a kisebb hálózat gyorsabban működik, mint a nagy, és ugyanazt az eredményt adja.
- A transzfer tanulás megközelítése lehetővé teszi a pontosság javítását a teljes hálózat vagy csak bizonyos rétegek betanításával egy adott adathalmazon. Például, ha az arcfelismerő rendszernek faji torzítási problémái vannak, vehetünk egy adott képhalmazt, mondjuk kínai emberek képeit, és a hálózatot úgy képezhetjük, hogy nagyobb pontosságot érjünk el.
- A kvantálásos megközelítés javítja a neurális hálózatot, hogy nagyobb feldolgozási sebességet érjen el. A lebegőpontos számokat használó neurális hálózatot kis bitsebességű számokból álló neurális hálózattal közelítve csökkenthetjük a memória méretét és a számítások számát.
- A mélységben szeparálható konvolúciók a rétegek egy olyan osztálya, amely lehetővé teszi a CNN építését a hagyományos CNN-ekhez képest sokkal kisebb paraméterkészlettel. A kis számításszám mellett ez a tulajdonság javíthatja az arcfelismerő rendszert, így alkalmassá teheti azt mobil látó alkalmazásokhoz.
A mélytanulási technológiák kulcseleme a nagy teljesítményű hardverek iránti igény. A mély neurális hálózatok alkalmazásakor az arcfelismerő szoftverek fejlesztésénél nemcsak a felismerési pontosság növelése a cél, hanem a válaszidő csökkentése is. Ezért például a GPU alkalmasabb a mélytanulással működő arcfelismerő rendszerekhez, mint a CPU.
Hogyan valósítottuk meg a mélytanulással működő arcfelismerő alkalmazást
A MobiDevnél a Big Brother (egy demókamerás alkalmazás) fejlesztése során a célunk az volt, hogy valós idejű videostreaminggel rendelkező biometrikus ellenőrző szoftvert hozzunk létre. Mivel a Big Brother egy helyi konzolos alkalmazás Ubuntu-hoz és Raspbianhoz, Golang nyelven íródott, és a JSON konfigurációs fájlon keresztül konfiguráltuk a helyi kamera azonosítóját és a kameraolvasó típusát. Ez a videó leírja, hogyan működik a Big Brother a gyakorlatban:
A Big Brother alkalmazás működési ciklusa belülről a következőket tartalmazza:
1. Arcfelismerés
Az alkalmazás felismeri az arcokat a videófolyamban. Miután az arcot rögzítette, a képet levágja, és HTTP űrlap-adatkérésen keresztül elküldi a back endnek. A back end API elmenti a képet egy helyi fájlrendszerbe, és elment egy rekordot az észlelési naplóba egy személyazonosítóval.
A back end a Golang és a MongoDB gyűjtemények segítségével tárolja az alkalmazottak adatait. Minden API-kérés RESTful API-n alapul.
2. Azonnali arcfelismerés
A back end rendelkezik egy háttérmunkással, amely új, nem osztályozott rekordokat talál, és a Dlib segítségével kiszámítja az arcjellemzők 128 dimenziós leíró vektorát. Valahányszor egy vektor kiszámításra kerül, azt több referencia arcképpel hasonlítja össze az adatbázisban szereplő minden egyes személy minden egyes jellemzővektorához tartozó euklideszi távolság kiszámításával, és talál egyezést.
Ha a felismert személyhez tartozó euklideszi távolság kisebb, mint 0,6, a munkás beállít egy personID-t a felismerési naplóba, és osztályozottnak jelöli. Ha a távolság meghaladja a 0,6-ot, új személyazonosítót hoz létre a naplóban.
3. Utánkövetési műveletek: riasztás, hozzáférés engedélyezése és egyéb
A nem azonosított személyről készült képeket az üzenetküldőkben található chatbotokon keresztül értesítésekkel küldi el a megfelelő menedzsernek. A Big Brother alkalmazásban a Microsoft Bot Frameworket és a Python-alapú Errbotot használtuk, ami lehetővé tette, hogy öt nap alatt megvalósítsuk a riasztási chatbotot.
Ezek után ezeket a rekordokat az Admin Panel segítségével lehet kezelni, amely a fényképeket azonosítókkal együtt tárolja az adatbázisban. Az arcfelismerő szoftver valós időben működik, és azonnal elvégzi az arcfelismerési feladatokat. A Golang és a MongoDB gyűjtemények felhasználásával az alkalmazottak adatainak tárolására, beírtuk az azonosítók adatbázisát, amely 200 bejegyzést tartalmaz.
Íme a Big Brother arcfelismerő alkalmazás felépítése:
A 10 000 bejegyzésre történő skálázás esetén javasolnánk az arcfelismerő rendszer fejlesztését a magas felismerési sebesség megtartása érdekében a háttérben. Ennek egyik optimális módja a párhuzamosítás alkalmazása. Egy terheléskiegyenlítő felállításával és több webmunkás létrehozásával biztosíthatjuk egy back end rész megfelelő működését és a teljes rendszer optimális sebességét.
Más mélytanulás alapú felismerési felhasználási esetek
Az arcfelismerés nem az egyetlen olyan feladat, ahol a mélytanulás alapú szoftverfejlesztés javíthatja a teljesítményt. További példák:
Maszkolt arcfelismerés és felismerés
Mióta a COVID-19 miatt az emberek sok országban arcmaszkot viselnek, az arcfelismerési technológia egyre fejlettebbé vált. A konvolúciós neurális hálózatokon alapuló mélytanulási algoritmus használatával a kamerák már képesek felismerni a maszkkal fedett arcokat. Az adattudományi mérnökök olyan algoritmusokat használnak, mint az arcszem-alapú többszemcsés és periocularis felismerési modellek, hogy fokozzák az arcfelismerő rendszer képességeit. Az olyan arcvonások, mint a homlok, az arckontúr, a szem- és szemkörnyéki részletek, a szemöldök, a szemek és az arccsontok azonosításával ezek a modellek lehetővé teszik a maszkos arcok akár 95%-os pontosságú felismerését.
Egy ilyen rendszerre jó példa az egyik kínai vállalat által létrehozott arcfelismerő technológia. A rendszer két algoritmusból áll: mélytanuláson alapuló arcfelismerésből és infravörös hőkamerás hőmérsékletmérésből. Amikor az arcmaszkban lévő emberek a kamera elé állnak, a rendszer kivonja az arcvonásokat, és összehasonlítja azokat az adatbázisban meglévő képekkel. Ezzel egyidejűleg az infravörös hőmérsékletmérő mechanizmus méri a hőmérsékletet, így felismeri a rendellenes hőmérsékletű embereket.
Hibák felismerése
Az elmúlt néhány évben a gyártók mesterséges intelligencia alapú vizuális ellenőrzést használtak a hibák felismerésére. A mélytanulási algoritmusok fejlesztése lehetővé teszi, hogy ez a rendszer a legapróbb karcolásokat és repedéseket is automatikusan meghatározza, elkerülve az emberi tényezőt.
A test rendellenességeinek felismerése
Az Aidoc izraeli székhelyű vállalat mélytanuláson alapuló megoldást fejlesztett ki a radiológia számára. Ez a rendszer orvosi képek elemzésével észleli a mellkas, a gerinc, a fej és a has rendellenességeit.
Hangszóróazonosítás
A Phonexia cég által létrehozott hangszóróazonosítási technológia szintén a metrikus tanulás módszerét felhasználva azonosítja a hangszórókat. A rendszer a hang alapján ismeri fel a beszélőket, az emberi beszéd matematikai modelljeit, a voiceprinteket állítja elő. Ezeket a hangmintákat adatbázisokban tárolják, és amikor egy személy megszólal, a beszélőtechnológia azonosítja az egyedi hangmintát.
Emotiofelismerés
Az emberi érzelmek felismerése ma már megvalósítható feladat. Az arc mozgásának kamerán keresztül történő követésével az érzelemfelismerő technológia kategorizálja az emberi érzelmeket. A mélytanuló algoritmus azonosítja az emberi arc tájékozódási pontjait, felismeri a semleges arckifejezést, és méri az arckifejezések eltéréseit, felismerve a pozitívabb vagy negatívabb arckifejezéseket.
Akciók felismerése
Visual One vállalat, amely a Nest Cams egyik szállítója, AI-val támogatta termékét. A mélytanulási technikák felhasználásával finomhangolták a Nest Cams-t, hogy ne csak a különböző tárgyakat, például embereket, háziállatokat, autókat stb. ismerje fel, hanem a cselekvéseket is felismerje. A felismerendő cselekvések halmaza testre szabható, és a felhasználó választhatja ki. A kamera például képes felismerni az ajtót kaparó macskát, vagy a kályhával játszó gyereket.
Összefoglalva, a mély neurális hálózatok hatalmas eszközt jelentenek az emberiség számára. És csak az ember dönti el, hogy milyen technológiai jövő következik.
How Deep Learning Can Modernize Face Recognition Software
Download PDF