Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Le tecnologie e i modelli per il nostro futuro sistema di visione artificiale sono stati creati e migliorati gradualmente e in diversi progetti della nostra azienda: in Mail, Cloud, Search. Maturavano come un buon formaggio o un cognac. Un giorno ci siamo resi conto che le nostre reti neurali mostrano ottimi risultati nel riconoscimento e abbiamo deciso di unirle in un unico prodotto b2b - Vision - che ora utilizziamo noi stessi e vi offriamo l'utilizzo.

Oggi, la nostra tecnologia di visione artificiale sulla piattaforma Mail.Ru Cloud Solutions funziona con successo e risolve problemi pratici molto complessi. Si basa su una serie di reti neurali addestrate sui nostri set di dati e specializzate nella risoluzione di problemi applicati. Tutti i servizi vengono eseguiti sulle nostre strutture server. Puoi integrare nelle tue applicazioni l'API pubblica Vision, attraverso la quale sono disponibili tutte le funzionalità del servizio. L'API è veloce: grazie alle GPU del server, il tempo di risposta medio all'interno della nostra rete è di 100 ms.

Vai dal gatto, c'è una storia dettagliata e molti esempi del lavoro di Vision.

Un esempio di servizio in cui noi stessi utilizziamo le citate tecnologie di riconoscimento facciale è Eventi. Uno dei suoi componenti sono i supporti fotografici Vision, che installiamo in varie conferenze. Se ti avvicini a uno stand fotografico di questo tipo, scatti una foto con la fotocamera integrata e inserisci la tua email, il sistema troverà immediatamente tra la serie di fotografie quelle in cui sei stato catturato dai fotografi dello staff della conferenza e, se lo desideri, ti invierà le fotografie trovate via e-mail. E non stiamo parlando di ritratti messi in scena: Vision ti riconosce anche sullo sfondo in mezzo a una folla di visitatori. Naturalmente non sono gli stand fotografici in sé ad essere riconosciuti, si tratta semplicemente di tablet posizionati in bellissimi stand che semplicemente scattano foto degli ospiti con le loro fotocamere integrate e trasmettono le informazioni ai server, dove avviene tutta la magia del riconoscimento. E abbiamo visto più di una volta quanto sia sorprendente l’efficacia della tecnologia anche tra gli specialisti del riconoscimento delle immagini. Di seguito parleremo di alcuni esempi.

1. Il nostro modello di riconoscimento facciale

1.1. Rete neurale e velocità di elaborazione

Per il riconoscimento, utilizziamo una modifica del modello di rete neurale ResNet 101. Il pooling medio alla fine viene sostituito da uno strato completamente connesso, simile a come viene fatto in ArcFace. Tuttavia, la dimensione delle rappresentazioni vettoriali è 128, non 512. Il nostro set di formazione contiene circa 10 milioni di foto di 273 persone.

Il modello funziona molto velocemente grazie ad un'architettura di configurazione del server e al GPU computing accuratamente selezionati. Sono necessari circa 100 ms per ricevere una risposta dall'API sulle nostre reti interne: questo include il rilevamento del volto (rilevamento di un volto in una foto), il riconoscimento e la restituzione di PersonID nella risposta dell'API. Con grandi volumi di dati in arrivo - foto e video - ci vorrà molto più tempo per trasferire i dati al servizio e ricevere una risposta.

1.2. Valutazione dell'efficacia del modello

Ma determinare l’efficienza delle reti neurali è un compito molto ambiguo. La qualità del loro lavoro dipende da quali set di dati sono stati addestrati i modelli e se sono stati ottimizzati per lavorare con dati specifici.

Abbiamo iniziato a valutare l'accuratezza del nostro modello con il popolare test di verifica LFW, ma è troppo piccolo e semplice. Dopo aver raggiunto la precisione del 99,8%, non è più utile. Esiste una buona concorrenza per la valutazione dei modelli di riconoscimento - Megaface, su cui abbiamo gradualmente raggiunto l'82% del rango 1. Il test Megaface è composto da un milione di fotografie - distrattori - e il modello dovrebbe essere in grado di distinguere bene diverse migliaia di fotografie di celebrità dal Facescrub set di dati dai distrattori. Tuttavia, dopo aver eliminato gli errori dal test Megaface, abbiamo scoperto che con la versione cancellata otteniamo una precisione del 98% di grado 1 (le foto delle celebrità sono generalmente abbastanza specifiche). Pertanto, hanno creato un test di identificazione separato, simile a Megaface, ma con fotografie di persone “comuni”. Quindi abbiamo migliorato la precisione del riconoscimento sui nostri set di dati e siamo andati molto avanti. Inoltre, utilizziamo un test di qualità del clustering composto da diverse migliaia di foto; simula il tagging dei volti nel cloud dell'utente. In questo caso i cluster sono gruppi di individui simili, un gruppo per ogni persona riconoscibile. Abbiamo verificato la qualità del lavoro su gruppi reali (vero).

Naturalmente, con qualsiasi modello si verificano errori di riconoscimento. Ma tali situazioni vengono spesso risolte adattando le soglie a condizioni specifiche (per tutte le conferenze utilizziamo le stesse soglie, ma, ad esempio, per i sistemi di controllo degli accessi dobbiamo aumentare notevolmente le soglie in modo che ci siano meno falsi positivi). La stragrande maggioranza dei visitatori della conferenza è stata riconosciuta correttamente dalle nostre cabine fotografiche Vision. A volte qualcuno guardava l'anteprima ritagliata e diceva: "Il tuo sistema ha commesso un errore, non sono stato io". Poi abbiamo aperto la foto per intero e si è scoperto che nella foto c'era davvero questo visitatore, solo che non stavamo fotografando lui, ma qualcun altro, quella persona si trovava per caso sullo sfondo nella zona sfocata. Inoltre, la rete neurale spesso riconosce correttamente anche quando una parte del viso non è visibile, o la persona è di profilo, o addirittura girata a metà. Il sistema è in grado di riconoscere una persona anche se il viso si trova nell'area della distorsione ottica, ad esempio quando si scatta con un obiettivo grandangolare.

1.3. Esempi di test in situazioni difficili

Di seguito sono riportati esempi di come funziona la nostra rete neurale. Le foto vengono inviate all'input, che deve etichettare utilizzando PersonID, un identificatore univoco di una persona. Se due o più immagini hanno lo stesso ID, allora, a seconda dei modelli, queste foto raffigurano la stessa persona.

Notiamo subito che durante i test abbiamo accesso a diversi parametri e soglie del modello che possiamo configurare per ottenere un determinato risultato. L'API pubblica è ottimizzata per la massima precisione sui casi comuni.

Cominciamo con la cosa più semplice, con il riconoscimento facciale frontale.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Beh, era troppo facile. Complichiamo il compito, aggiungiamo la barba e una manciata di anni.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Alcuni diranno che anche questo non è stato troppo difficile, perché in entrambi i casi è visibile l'intero volto e l'algoritmo ha a disposizione molte informazioni sul volto. Ok, trasformiamo Tom Hardy nel profilo. Questo problema è molto più complesso e abbiamo dedicato molti sforzi per risolverlo con successo mantenendo un basso tasso di errore: abbiamo selezionato un set di addestramento, pensato attraverso l'architettura della rete neurale, affinato le funzioni di perdita e migliorato la pre-elaborazione di fotografie.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Mettiamogli un copricapo:

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

A proposito, questo è un esempio di una situazione particolarmente difficile, poiché il viso è fortemente oscurato e nella foto in basso c'è anche un'ombra profonda che nasconde gli occhi. Nella vita reale, le persone molto spesso cambiano aspetto con l'aiuto di occhiali scuri. Facciamo lo stesso con Tom.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Ok, proviamo a inserire foto di epoche diverse e questa volta sperimenteremo con un attore diverso. Facciamo un esempio molto più complesso, in cui i cambiamenti legati all'età sono particolarmente pronunciati. La situazione non è inverosimile, si verifica abbastanza spesso quando è necessario confrontare la foto sul passaporto con il volto del portatore. Dopotutto, la prima fotografia viene aggiunta al passaporto quando il proprietario ha 20 anni e all'età di 45 anni una persona può cambiare notevolmente:

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Pensi che il principale specialista in missioni impossibili non sia cambiato molto con l'età? Penso che anche poche persone combinerebbero le foto in alto e in basso, il ragazzo è cambiato tantissimo nel corso degli anni.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Le reti neurali riscontrano cambiamenti nell'aspetto molto più spesso. Ad esempio, a volte le donne possono cambiare notevolmente la propria immagine con l'aiuto dei cosmetici:

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Ora complichiamo ancora di più il compito: supponiamo che diverse parti del viso siano coperte in fotografie diverse. In questi casi, l’algoritmo non può confrontare interi campioni. Tuttavia, Vision gestisce bene situazioni come questa.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

A proposito, ci possono essere molti volti in una fotografia; ad esempio, in una foto generale di una sala possono stare più di 100 persone. Questa è una situazione difficile per le reti neurali, poiché molti volti possono essere illuminati in modo diverso, alcuni fuori fuoco. Tuttavia, se la foto viene scattata con risoluzione e qualità sufficienti (almeno 75 pixel per quadrato che ricopre il viso), Vision sarà in grado di rilevarla e riconoscerla.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

La particolarità delle fotografie di reportage e delle immagini provenienti dalle telecamere di sorveglianza è che le persone spesso risultano sfocate perché in quel momento erano fuori fuoco o si stavano muovendo:

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Inoltre, l'intensità della luce può variare notevolmente da un'immagine all'altra. Anche questo diventa spesso un ostacolo: molti algoritmi hanno grandi difficoltà a elaborare correttamente le immagini troppo scure e troppo chiare, per non parlare poi di abbinarle accuratamente. Ti ricordo che per ottenere questo risultato è necessario configurare le soglie in un certo modo; questa funzionalità non è ancora disponibile pubblicamente. Utilizziamo la stessa rete neurale per tutti i client; ha soglie adatte alla maggior parte delle attività pratiche.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Recentemente abbiamo lanciato una nuova versione del modello che riconosce i volti asiatici con elevata precisione. Questo era un grosso problema, che veniva persino chiamato razzismo da “apprendimento automatico” (o “rete neurale”). Le reti neurali europee e americane riconoscevano bene i volti caucasici, ma con i volti mongoloidi e negroidi la situazione era molto peggiore. Probabilmente in Cina la situazione era esattamente l'opposto. Si tratta di addestrare set di dati che riflettono i tipi di persone dominanti in un particolare paese. Tuttavia, la situazione sta cambiando; oggi questo problema non è così acuto. La vista non ha problemi con persone di razze diverse.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Il riconoscimento facciale è solo una delle tante applicazioni della nostra tecnologia; la vista può essere addestrata a riconoscere qualsiasi cosa. Ad esempio, le targhe, anche in condizioni difficili per gli algoritmi: ad angoli acuti, targhe sporche e difficili da leggere.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

2. Casi d'uso pratici

2.1. Controllo degli accessi fisici: quando due persone utilizzano lo stesso pass

Con l'aiuto di Vision è possibile implementare sistemi per la registrazione dell'arrivo e della partenza dei dipendenti. Il sistema tradizionale basato sugli abbonamenti elettronici presenta evidenti svantaggi, ad esempio è possibile sorpassare due persone utilizzando un unico badge. Se il sistema di controllo degli accessi (ACS) è integrato con Vision, registrerà onestamente chi è entrato/lasciato e quando.

2.2. Monitoraggio del tempo

Questo caso d'uso di Vision è strettamente correlato al precedente. Se integri il sistema di accesso con il nostro servizio di riconoscimento facciale, questo sarà in grado non solo di rilevare le violazioni del controllo degli accessi, ma anche di registrare l'effettiva presenza dei dipendenti nell'edificio o nella struttura. In altre parole, Vision ti aiuterà a tenere conto onestamente di chi è venuto al lavoro e di chi è uscito a che ora e di chi ha saltato del tutto il lavoro, anche se i suoi colleghi lo hanno coperto di fronte ai suoi superiori.

2.3. Analisi video: monitoraggio e sicurezza delle persone

Tracciando le persone tramite Vision, puoi valutare con precisione il traffico reale di aree commerciali, stazioni ferroviarie, passaggi, strade e tanti altri luoghi pubblici. Il nostro tracciamento può essere di grande aiuto anche per controllare l'accesso, ad esempio, a un magazzino o ad altri uffici importanti. E, naturalmente, tracciare persone e volti aiuta a risolvere i problemi di sicurezza. Hai sorpreso qualcuno a rubare dal tuo negozio? Aggiungi il suo PersonID, restituito da Vision, alla lista nera del tuo software di analisi video e la prossima volta il sistema avviserà immediatamente la sicurezza se questo tipo ricompare.

2.4. In commercio

Il commercio al dettaglio e varie imprese di servizi sono interessati al riconoscimento delle code. Con l'aiuto di Visione, puoi riconoscere che non si tratta di una folla casuale di persone, ma di una coda e determinarne la lunghezza. E poi il sistema informa i responsabili della coda in modo che possano capire la situazione: o c'è un afflusso di visitatori e bisogna chiamare altri lavoratori, oppure qualcuno sta rallentando le proprie responsabilità lavorative.

Un altro compito interessante è separare i dipendenti dell'azienda presenti nella hall dai visitatori. In genere, il sistema è addestrato a separare gli oggetti che indossano determinati indumenti (codice di abbigliamento) o con qualche caratteristica distintiva (sciarpa brandizzata, distintivo sul petto e così via). Ciò aiuta a valutare più accuratamente le presenze (in modo che i dipendenti non “gonfiino” le statistiche delle persone in sala con la loro semplice presenza).

Utilizzando il riconoscimento facciale puoi anche valutare il tuo pubblico: qual è la fedeltà dei visitatori, cioè quante persone ritornano nel tuo locale e con quale frequenza. Calcola quanti visitatori unici arrivano da te al mese. Per ottimizzare i costi di attrazione e fidelizzazione, puoi anche scoprire la variazione del traffico a seconda del giorno della settimana e anche dell'ora del giorno.

Franchisor e società di catena possono ordinare una valutazione basata su fotografie della qualità del marchio di vari punti vendita: presenza di loghi, insegne, poster, striscioni e così via.

2.5. Con i trasporti

Un altro esempio di come garantire la sicurezza utilizzando l’analisi video è l’identificazione degli oggetti abbandonati nelle sale degli aeroporti o delle stazioni ferroviarie. La vista può essere allenata a riconoscere oggetti di centinaia di classi: mobili, borse, valigie, ombrelli, vari tipi di indumenti, bottiglie e così via. Se il tuo sistema di analisi video rileva un oggetto senza proprietario e lo riconosce tramite Vision, invia un segnale al servizio di sicurezza. Un compito simile è associato al rilevamento automatico di situazioni insolite in luoghi pubblici: qualcuno si sente male, qualcuno fuma nel posto sbagliato, oppure una persona cade sulle rotaie e così via: tutti questi modelli possono essere riconosciuti dai sistemi di analisi video. tramite l'API Vision.

2.6. Flusso di documenti

Un'altra interessante applicazione futura di Vision che stiamo attualmente sviluppando è il riconoscimento dei documenti e la loro analisi automatica nei database. Invece di inserire manualmente (o peggio inserire) serie infinite, numeri, date di emissione, numeri di conto, coordinate bancarie, date e luoghi di nascita e tanti altri dati formalizzati, puoi scansionare documenti e inviarli automaticamente su un canale sicuro tramite il API al cloud, dove il sistema riconoscerà al volo questi documenti, li analizzerà e restituirà una risposta con i dati nel formato richiesto per l'inserimento automatico nel database. Oggi Vision sa già come classificare i documenti (compresi i PDF): distingue tra passaporti, SNILS, TIN, certificati di nascita, certificati di matrimonio e altri.

Naturalmente, la rete neurale non è in grado di gestire tutte queste situazioni fuori dagli schemi. In ciascun caso, viene creato un nuovo modello per un cliente specifico, vengono presi in considerazione molti fattori, sfumature e requisiti, vengono selezionati set di dati e vengono eseguite iterazioni di formazione, test e configurazione.

3. Schema operativo dell'API

La “porta d’ingresso” di Vision per gli utenti è l’API REST. Può ricevere foto, file video e trasmissioni da telecamere di rete (flussi RTSP) come input.

Per utilizzare Vision, è necessario registro nel servizio Mail.ru Cloud Solutions e ricevi token di accesso (client_id + client_secret). L'autenticazione dell'utente viene eseguita utilizzando il protocollo OAuth. I dati di origine nei corpi delle richieste POST vengono inviati all'API. E in risposta, il client riceve dall'API un risultato di riconoscimento in formato JSON, e la risposta è strutturata: contiene informazioni sugli oggetti trovati e le loro coordinate.

Con barba, occhiali scuri e di profilo: situazioni difficili per la visione artificiale

Risposta di esempio

{
   "status":200,
   "body":{
      "objects":[
         {
            "status":0,
            "name":"file_0"
         },
         {
            "status":0,
            "name":"file_2",
            "persons":[
               {
                  "tag":"person9"
                  "coord":[149,60,234,181],
                  "confidence":0.9999,
                  "awesomeness":0.45
               },
               {
                  "tag":"person10"
                  "coord":[159,70,224,171],
                  "confidence":0.9998,
                  "awesomeness":0.32
               }
            ]
         }

         {
            "status":0,
            "name":"file_3",
            "persons":[
               {
               "tag":"person11",
               "coord":[157,60,232,111],
               "aliases":["person12", "person13"]
               "confidence":0.9998,
               "awesomeness":0.32
               }
            ]
         },
         {
            "status":0,
            "name":"file_4",
            "persons":[
               {
               "tag":"undefined"
               "coord":[147,50,222,121],
               "confidence":0.9997,
               "awesomeness":0.26
               }
            ]
         }
      ],
      "aliases_changed":false
   },
   "htmlencoded":false,
   "last_modified":0
}

La risposta contiene un parametro interessante di suggestione: questa è la "bellezza" condizionale di un volto in una foto, con il suo aiuto selezioniamo lo scatto migliore di un volto dalla sequenza. Abbiamo addestrato una rete neurale a prevedere la probabilità che una foto piaccia sui social network. Migliore è la qualità della foto e più sorridente è il volto, maggiore è la bellezza.

API Vision utilizza un concetto chiamato spazio. Questo è uno strumento per creare diversi set di volti. Esempi di spazi sono liste nere e bianche, elenchi di visitatori, dipendenti, clienti, ecc. Per ogni token in Vision è possibile creare fino a 10 spazi, ogni spazio può avere fino a 50mila PersonID, ovvero fino a 500mila per gettone. Inoltre, il numero di token per account non è limitato.

Oggi l'API supporta i seguenti metodi di rilevamento e riconoscimento:

  • Riconosci/Imposta: rilevamento e riconoscimento dei volti. Assegna automaticamente un PersonID a ogni persona univoca, restituisce il PersonID e le coordinate delle persone trovate.
  • Elimina: elimina un PersonID specifico dal database delle persone.
  • Tronca: cancella l'intero spazio da PersonID, utile se è stato utilizzato come spazio di test ed è necessario reimpostare il database per la produzione.
  • Rileva: rilevamento di oggetti, scene, targhe, punti di riferimento, code, ecc. Restituisce la classe degli oggetti trovati e le relative coordinate
  • Rileva documenti: rileva tipi specifici di documenti della Federazione Russa (distingue passaporto, SNILS, numero di identificazione fiscale, ecc.).

Presto finiremo anche il lavoro sui metodi per l'OCR, per determinare sesso, età ed emozioni, nonché per risolvere i problemi di merchandising, cioè per il controllo automatico dell'esposizione delle merci nei negozi. Puoi trovare la documentazione API completa qui: https://mcs.mail.ru/help/vision-api

4. Заключение

Ora, tramite l'API pubblica, è possibile accedere al riconoscimento facciale in foto e video; è supportata l'identificazione di vari oggetti, targhe, punti di riferimento, documenti e intere scene. Scenari applicativi: il mare. Vieni, prova il nostro servizio, imposta i compiti più complicati. Le prime 5000 transazioni sono gratuite. Forse sarà l’”ingrediente mancante” per i tuoi progetti.

Puoi accedere immediatamente all'API al momento della registrazione e della connessione. Visione. Tutti gli utenti Habra ricevono un codice promozionale per transazioni aggiuntive. Per favore scrivimi l'indirizzo email che hai utilizzato per registrare il tuo account!

Fonte: habr.com

Aggiungi un commento