Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

As tecnoloxías e modelos para o noso futuro sistema de visión por computador foron creadas e melloradas gradualmente e en diferentes proxectos da nosa empresa -en Correo, Nube, Busca. Maduraron como bo queixo ou coñac. Un día decatámonos de que as nosas redes neuronais mostran excelentes resultados en recoñecemento e decidimos combinalas nun único produto B2B, Vision, que agora utilizamos nós mesmos e lle ofrecemos o seu uso.

Hoxe, a nosa tecnoloxía de visión por ordenador na plataforma Mail.Ru Cloud Solutions está funcionando con éxito e resolvendo problemas prácticos moi complexos. Está baseado nunha serie de redes neuronais que están adestradas nos nosos conxuntos de datos e especializadas na resolución de problemas aplicados. Todos os servizos funcionan nas instalacións do noso servidor. Podes integrar a API pública de Vision nas túas aplicacións, a través da cal están dispoñibles todas as capacidades do servizo. A API é rápida: grazas ás GPU do servidor, o tempo medio de resposta na nosa rede é de 100 ms.

Vaia ao gato, hai unha historia detallada e moitos exemplos do traballo de Vision.

Un exemplo de servizo no que nós mesmos empregamos as mencionadas tecnoloxías de recoñecemento facial é eventos. Un dos seus compoñentes son os soportes fotográficos Vision, que instalamos en distintos congresos. Se te achegas a un posto de fotos deste tipo, fai unha foto coa cámara integrada e introduce o teu correo electrónico, o sistema atopará inmediatamente entre a variedade de fotografías aquelas nas que fose capturado polos fotógrafos do persoal da conferencia e, se o desexa, enviarache as fotografías atopadas por correo electrónico. E non estamos a falar de retratos en escena: Vision recoñécete mesmo no fondo nunha multitude de visitantes. Por suposto, non son os propios postos de fotos os que se recoñecen, son só tabletas en fermosos stands que simplemente sacan fotos dos hóspedes coas súas cámaras integradas e transmiten información aos servidores, onde ocorre toda a maxia do recoñecemento. E vimos máis dunha vez o sorprendente que é a eficacia da tecnoloxía incluso entre os especialistas en recoñecemento de imaxes. A continuación falaremos dalgúns exemplos.

1. O noso modelo de recoñecemento facial

1.1. Rede neuronal e velocidade de procesamento

Para o recoñecemento, usamos unha modificación do modelo de rede neuronal ResNet 101. A agrupación media ao final substitúese por unha capa totalmente conectada, de forma similar a como se fai en ArcFace. Non obstante, o tamaño das representacións vectoriais é 128, non 512. O noso conxunto de adestramento contén uns 10 millóns de fotos de 273 persoas.

O modelo funciona moi rápido grazas a unha arquitectura de configuración do servidor coidadosamente seleccionada e á informática GPU. Tarda 100 ms en recibir unha resposta da API nas nosas redes internas; isto inclúe a detección de rostros (detectar un rostro nunha foto), o recoñecemento e a devolución de PersonID na resposta da API. Con grandes volumes de datos entrantes - fotos e vídeos - levará moito máis tempo transferir os datos ao servizo e recibir unha resposta.

1.2. Avaliación da eficacia do modelo

Pero determinar a eficiencia das redes neuronais é unha tarefa moi ambigua. A calidade do seu traballo depende dos conxuntos de datos nos que se adestraron os modelos e de se se optimizaron para traballar con datos específicos.

Comezamos a avaliar a precisión do noso modelo coa popular proba de verificación LFW, pero é demasiado pequeno e sinxelo. Despois de acadar o 99,8% de precisión, xa non é útil. Hai unha boa competencia para avaliar modelos de recoñecemento - Megaface, na que pouco a pouco chegamos ao 82% do posto 1. A proba Megaface consta dun millón de fotografías -distractores- e a modelo debería ser capaz de distinguir ben varios miles de fotografías de famosos do Facescrub. conxunto de datos dos distractores. Non obstante, unha vez eliminada a proba de erros de Megaface, descubrimos que coa versión borrada acadamos unha precisión do 98 % de rango 1 (as fotos de famosos son xeralmente bastante específicas). Por iso, crearon unha proba de identificación separada, similar a Megaface, pero con fotografías de persoas "común". Despois melloramos a precisión do recoñecemento dos nosos conxuntos de datos e avanzamos moito. Ademais, utilizamos unha proba de calidade de agrupación que consta de varios miles de fotos; simula o marcado facial na nube do usuario. Neste caso, os clusters son grupos de individuos similares, un grupo por cada persoa recoñecible. Comprobamos a calidade do traballo en grupos reais (verdadeiro).

Por suposto, os erros de recoñecemento ocorren con calquera modelo. Pero este tipo de situacións adoitan resolverse axustando os limiares para condicións concretas (para todas as conferencias utilizamos os mesmos limiares, pero, por exemplo, para os sistemas de control de acceso temos que aumentar moito os limiares para que haxa menos falsos positivos). A gran maioría dos visitantes da conferencia foron recoñecidos correctamente polas nosas cabinas fotográficas de Vision. Ás veces, alguén miraba a vista previa recortada e dicía: "O teu sistema cometeu un erro, non fun eu". Despois abrimos a foto na súa totalidade, e resultou que realmente había este visitante na foto, só que nós non o estabamos a fotografar, senón a outra persoa, a persoa simplemente estaba ao fondo na zona de desenfoque. Ademais, a rede neuronal adoita recoñecer correctamente mesmo cando parte da cara non é visible, ou a persoa está de pé de perfil, ou incluso a medio volta. O sistema pode recoñecer unha persoa aínda que a cara estea na zona de distorsión óptica, por exemplo, cando se dispara cunha lente gran angular.

1.3. Exemplos de probas en situacións difíciles

A continuación móstranse exemplos de como funciona a nosa rede neuronal. As fotos son enviadas á entrada, que debe etiquetar usando PersonID, un identificador único dunha persoa. Se dúas ou máis imaxes teñen a mesma identificación, entón, segundo os modelos, estas fotos representan a mesma persoa.

Teñamos en conta inmediatamente que ao realizar as probas, temos acceso a varios parámetros e limiares do modelo que podemos configurar para conseguir un resultado determinado. A API pública está optimizada para obter a máxima precisión en casos comúns.

Comecemos polo máis sinxelo, co recoñecemento facial frontal.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Ben, iso foi demasiado fácil. Imos complicar a tarefa, engadir unha barba e un puñado de anos.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Algúns dirán que isto tampouco foi demasiado difícil, porque en ambos os casos é visible toda a cara e o algoritmo ten moita información sobre a cara. Vale, imos converter a Tom Hardy en perfil. Este problema é moito máis complexo e esforzámonos moito para resolvelo con éxito mantendo unha baixa taxa de erro: seleccionamos un conxunto de adestramento, pensado na arquitectura da rede neuronal, melloramos as funcións de perda e melloramos o procesamento previo. de fotografías.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Poñémoslle un tocado:

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Por certo, este é un exemplo dunha situación especialmente difícil, xa que a cara está moi escurecida e na foto inferior tamén hai unha sombra profunda que oculta os ollos. Na vida real, a xente moitas veces cambia a súa aparencia coa axuda de lentes escuras. Fagamos o mesmo con Tom.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Vale, imos tentar botar fotos de diferentes idades, e esta vez experimentaremos cun actor diferente. Poñamos un exemplo moito máis complexo, onde os cambios relacionados coa idade son especialmente pronunciados. A situación non é descabellada; ocorre con bastante frecuencia cando necesitas comparar a foto do pasaporte coa cara do portador. Despois de todo, a primeira fotografía engádese ao pasaporte cando o propietario ten 20 anos, e aos 45 unha persoa pode cambiar moito:

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Cres que o principal especialista en misións imposibles non cambiou moito coa idade? Creo que incluso poucas persoas combinarían as fotos de arriba e de abaixo, o neno cambiou moito ao longo dos anos.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

As redes neuronais atopan cambios de aparencia con moita máis frecuencia. Por exemplo, ás veces as mulleres poden cambiar moito a súa imaxe coa axuda de cosméticos:

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Agora compliquemos aínda máis a tarefa: supoñamos que diferentes partes da cara están cubertas en diferentes fotografías. Nestes casos, o algoritmo non pode comparar mostras enteiras. Non obstante, Vision manexa ben situacións coma esta.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Por certo, nunha fotografía pode haber moitas caras; por exemplo, máis de 100 persoas poden caber nunha fotografía xeral dun salón. Esta é unha situación difícil para as redes neuronais, xa que moitas caras poden iluminarse de forma diferente, algunhas desenfocadas. Non obstante, se a foto se toma cunha resolución e calidade suficientes (polo menos 75 píxeles por cadrado que cobre a cara), Vision poderá detectala e recoñecela.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

A peculiaridade das fotografías de reportaxe e das imaxes das cámaras de vixilancia é que a xente adoita quedar borrosa porque estaba desenfocada ou se movía nese momento:

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Ademais, a intensidade da iluminación pode variar moito dunha imaxe a outra. Isto tamén convértese a miúdo nun obstáculo; moitos algoritmos teñen grandes dificultades para procesar correctamente imaxes demasiado escuras e demasiado claras, sen esquecer para combinalas con precisión. Permíteme lembrarche que para conseguir este resultado cómpre configurar os limiares dunha determinada maneira; esta función aínda non está dispoñible publicamente. Usamos a mesma rede neuronal para todos os clientes; ten limiares axeitados para a maioría das tarefas prácticas.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Recentemente lanzamos unha nova versión do modelo que recoñece caras asiáticas con gran precisión. Este adoitaba ser un gran problema, que mesmo se chamaba racismo de "aprendizaxe automática" (ou "rede neuronal"). As redes neuronais europeas e americanas recoñeceron ben as caras caucásicas, pero coas caras mongoloides e negras a situación era moito peor. Probablemente, en China a situación fose exactamente a contraria. Trátase de conxuntos de datos de formación que reflictan os tipos dominantes de persoas nun determinado país. Non obstante, a situación está cambiando, hoxe este problema non é tan agudo. A visión non ten ningún problema con persoas de diferentes razas.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

O recoñecemento facial é só unha das moitas aplicacións da nosa tecnoloxía; a visión pódese adestrar para recoñecer calquera cousa. Por exemplo, matrículas, incluso en condicións difíciles para os algoritmos: en ángulos agudos, matrículas sucias e difíciles de ler.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

2. Casos de uso práctico

2.1. Control de acceso físico: cando dúas persoas usan o mesmo pase

Coa axuda de Vision, pode implementar sistemas para rexistrar a chegada e saída dos empregados. O sistema tradicional baseado en pases electrónicos ten inconvenientes evidentes, por exemplo, podes pasar dúas persoas usando un distintivo. Se o sistema de control de acceso (ACS) se complementa con Vision, rexistrará honestamente quen veu/marchou e cando.

2.2. Seguimento do tempo

Este caso de uso de Vision está moi relacionado co anterior. Se complementas o sistema de acceso co noso servizo de recoñecemento facial, este poderá non só detectar infraccións do control de acceso, senón tamén rexistrar a presenza real dos empregados no edificio ou instalación. Noutras palabras, Vision axudarache a ter en conta honestamente quen chegou a traballar e a que hora marchou, e quen se saltou o traballo por completo, aínda que os seus compañeiros o cubran fronte aos seus superiores.

2.3. Analítica de vídeo: seguimento de persoas e seguridade

Ao rastrexar as persoas que usan Vision, podes avaliar con precisión o tráfico real de zonas comerciais, estacións de tren, pasadizos, rúas e moitos outros lugares públicos. O noso seguimento tamén pode ser de gran axuda para controlar o acceso, por exemplo, a un almacén ou outras oficinas importantes. E, por suposto, o seguimento de persoas e caras axuda a resolver os problemas de seguridade. Pillaches a alguén roubando na túa tenda? Engade o seu PersonID, que foi devolto por Vision, á lista negra do teu software de análise de vídeo e, a próxima vez, o sistema alertará inmediatamente á seguridade se este tipo aparece de novo.

2.4. No comercio

Comercio polo miúdo e varias empresas de servizos están interesadas no recoñecemento de filas. Coa axuda de Vision, podes recoñecer que non se trata dunha multitude aleatoria de persoas, senón dunha cola e determinar a súa lonxitude. E entón o sistema informa aos responsables sobre unha cola para que poidan descubrir a situación: ou hai afluencia de visitantes e hai que chamar a traballadores adicionais, ou alguén está deixando o seu traballo.

Outra tarefa interesante é separar os empregados da empresa no salón dos visitantes. Normalmente, o sistema está adestrado para separar obxectos que levan determinada roupa (código de vestimenta) ou con algún trazo distintivo (bufanda de marca, distintivo no peito, etc.). Isto axuda a avaliar con maior precisión a asistencia (para que os empregados non "inflen" as estatísticas das persoas no salón pola súa mera presenza).

Mediante o recoñecemento facial tamén podes avaliar a túa audiencia: cal é a fidelidade dos visitantes, é dicir, cantas persoas volven ao teu establecemento e con que frecuencia. Calcula cantos visitantes únicos chegan a ti ao mes. Para optimizar os custos de atracción e retención, tamén se pode coñecer a variación do tráfico en función do día da semana e mesmo da hora do día.

Os franquiciadores e as cadeas de empresas poden encargar unha valoración baseada en fotografías da calidade da marca de varios puntos de venda: presenza de logotipos, letreiros, carteis, pancartas, etc.

2.5. En transporte

Outro exemplo de garantir a seguridade mediante a análise de vídeo é a identificación de elementos abandonados nos vestíbulos de aeroportos ou estacións de tren. A visión pódese adestrar para recoñecer obxectos de centos de clases: mobles, bolsos, maletas, paraugas, diversos tipos de roupa, botellas, etc. Se o teu sistema de análise de vídeo detecta un obxecto sen propietario e o recoñece mediante Vision, envía un sinal ao servizo de seguridade. Unha tarefa similar está asociada coa detección automática de situacións pouco comúns en lugares públicos: alguén se sente mal, ou alguén fuma no lugar equivocado, ou unha persoa cae sobre os raíles, etc. Todos estes patróns poden ser recoñecidos polos sistemas de análise de vídeo. a través da API de Vision.

2.6. Fluxo de documentos

Outra aplicación futura interesante de Vision que estamos a desenvolver actualmente é o recoñecemento de documentos e a súa análise automática en bases de datos. En lugar de introducir manualmente (ou peor aínda) un sinfín de series, números, datas de emisión, números de conta, datos bancarios, datas e lugares de nacemento e moitos outros datos formalizados, pode escanear documentos e envialos automaticamente a través dunha canle segura a través do API á nube, onde o sistema recoñecerá estes documentos sobre a marcha, analizalos e devolverá unha resposta cos datos no formato necesario para a súa entrada automática na base de datos. Hoxe Vision xa sabe como clasificar documentos (incluído PDF) - distingue entre pasaportes, SNILS, TIN, certificados de nacemento, certificados de matrimonio e outros.

Por suposto, a rede neuronal non é capaz de xestionar todas estas situacións fóra da caixa. En cada caso, constrúese un novo modelo para un cliente específico, téñense en conta moitos factores, matices e requisitos, selecciónanse conxuntos de datos e realízanse iteracións de formación, probas e configuración.

3. Esquema de funcionamento da API

A "porta de entrada" de Vision para os usuarios é a API REST. Pode recibir fotos, ficheiros de vídeo e transmisións de cámaras de rede (fluxos RTSP) como entrada.

Para usar Vision, necesitas rexistrar no servizo Mail.ru Cloud Solutions e recibe tokens de acceso (client_id + client_secret). A autenticación do usuario realízase mediante o protocolo OAuth. Os datos de orixe nos corpos das solicitudes POST envíanse á API. E como resposta, o cliente recibe da API un resultado de recoñecemento en formato JSON, e a resposta estrutúrase: contén información sobre os obxectos atopados e as súas coordenadas.

Con barba, lentes escuras e de perfil: situacións difíciles para a visión por ordenador

Exemplo de resposta

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

A resposta contén un parámetro interesante: esta é a "frescura" condicional dunha cara nunha foto, coa súa axuda seleccionamos a mellor toma dunha cara da secuencia. Adestramos unha rede neuronal para predicir a probabilidade de que unha foto lle guste nas redes sociais. Canto mellor sexa a calidade da foto e canto máis sorrinte sexa a cara, maior será a marabilla.

API Vision usa un concepto chamado espazo. Esta é unha ferramenta para crear diferentes conxuntos de caras. Exemplos de espazos son listas en branco e negro, listas de visitantes, empregados, clientes, etc. Para cada token en Vision, podes crear ata 10 espazos, cada espazo pode ter ata 50 mil PersonIDs, é dicir, ata 500 mil. por ficha. Ademais, o número de tokens por conta non está limitado.

Hoxe a API admite os seguintes métodos de detección e recoñecemento:

  • Recoñecer/Establecer: detección e recoñecemento de rostros. Asigna automaticamente un PersonID a cada persoa única, devolve o PersonID e as coordenadas das persoas atopadas.
  • Eliminar: elimina un PersonID específico da base de datos de persoas.
  • Truncar: borra todo o espazo de PersonID, útil se se utilizou como espazo de proba e precisa restablecer a base de datos para a produción.
  • Detectar: ​​detección de obxectos, escenas, matrículas, puntos de referencia, filas, etc. Devolve a clase de obxectos atopados e as súas coordenadas
  • Detectar documentos: detecta tipos específicos de documentos da Federación Rusa (distingue pasaporte, SNILS, número de identificación fiscal, etc.).

Tamén en breve remataremos o traballo sobre métodos para OCR, determinación de xénero, idade e emocións, así como a resolución de problemas de merchandising, é dicir, de control automático da exposición de produtos nas tendas. Podes atopar a documentación completa da API aquí: https://mcs.mail.ru/help/vision-api

4. Conclusión

Agora, a través da API pública, podes acceder ao recoñecemento facial en fotos e vídeos; é compatible coa identificación de varios obxectos, matrículas, puntos de referencia, documentos e escenas enteiras. Escenarios de aplicación - o mar. Ven, proba o noso servizo, configúrao as tarefas máis complicadas. As primeiras 5000 transaccións son gratuítas. Quizais sexa o "ingrediente que falta" para os teus proxectos.

Podes acceder instantáneamente á API despois de rexistrarte e conectarte. Visión. Todos os usuarios de Habra reciben un código promocional para transaccións adicionais. Escríbeme o enderezo de correo electrónico que utilizaches para rexistrar a túa conta!

Fonte: www.habr.com

Engadir un comentario