Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Las tecnologías y modelos para nuestro futuro sistema de visión por computadora se crearon y mejoraron gradualmente y en diferentes proyectos de nuestra empresa: en Mail, Cloud, Search. Maduraron como un buen queso o un buen coñac. Un día nos dimos cuenta de que nuestras redes neuronales muestran excelentes resultados de reconocimiento y decidimos combinarlas en un único producto b2b, Vision, que ahora utilizamos nosotros mismos y le ofrecemos su uso.

Hoy en día, nuestra tecnología de visión por computadora en la plataforma Mail.Ru Cloud Solutions funciona con éxito y resuelve problemas prácticos muy complejos. Se basa en una serie de redes neuronales que se entrenan con nuestros conjuntos de datos y se especializan en la resolución de problemas aplicados. Todos los servicios se ejecutan en nuestras instalaciones de servidor. Puede integrar la API pública Vision en sus aplicaciones, a través de la cual todas las capacidades del servicio están disponibles. La API es rápida: gracias a las GPU del servidor, el tiempo de respuesta promedio dentro de nuestra red es de 100 ms.

Vaya al gato, hay una historia detallada y muchos ejemplos del trabajo de Vision.

Un ejemplo de un servicio en el que nosotros mismos utilizamos las tecnologías de reconocimiento facial mencionadas es Eventos. Uno de sus componentes son los stands fotográficos Vision, que instalamos en varias conferencias. Si se acerca a un stand fotográfico de este tipo, toma una foto con la cámara incorporada e ingresa su correo electrónico, el sistema encontrará inmediatamente entre la variedad de fotografías aquellas en las que fue capturado por los fotógrafos del personal de la conferencia y, si lo desea, le enviará las fotografías encontradas por correo electrónico. Y no estamos hablando de retratos en escena: Vision te reconoce incluso en el fondo, entre una multitud de visitantes. Por supuesto, no son los stands fotográficos los que se reconocen, son simplemente tabletas en hermosos stands que simplemente toman fotografías de los invitados con sus cámaras incorporadas y transmiten información a los servidores, donde ocurre toda la magia del reconocimiento. Y hemos visto más de una vez lo sorprendente que resulta la eficacia de la tecnología incluso entre los especialistas en reconocimiento de imágenes. A continuación hablaremos de algunos ejemplos.

1. Nuestro modelo de reconocimiento facial

1.1. Red neuronal y velocidad de procesamiento.

Para el reconocimiento, utilizamos una modificación del modelo de red neuronal ResNet 101. La agrupación promedio al final se reemplaza por una capa completamente conectada, similar a como se hace en ArcFace. Sin embargo, el tamaño de las representaciones vectoriales es 128, no 512. Nuestro conjunto de entrenamiento contiene alrededor de 10 millones de fotografías de 273 personas.

El modelo se ejecuta muy rápidamente gracias a una arquitectura de configuración de servidor cuidadosamente seleccionada y a la computación GPU. Se necesitan desde 100 ms para recibir una respuesta de la API en nuestras redes internas; esto incluye la detección de rostros (detectar una cara en una foto), el reconocimiento y la devolución de PersonID en la respuesta de la API. Con grandes volúmenes de datos entrantes (fotos y vídeos), llevará mucho más tiempo transferir los datos al servicio y recibir una respuesta.

1.2. Evaluación de la eficacia del modelo.

Pero determinar la eficiencia de las redes neuronales es una tarea muy ambigua. La calidad de su trabajo depende de en qué conjuntos de datos se entrenaron los modelos y de si fueron optimizados para trabajar con datos específicos.

Comenzamos a evaluar la precisión de nuestro modelo con la popular prueba de verificación LFW, pero es demasiado pequeña y simple. Después de alcanzar el 99,8% de precisión, ya no es útil. Existe una buena competencia para evaluar modelos de reconocimiento: Megaface, en la que gradualmente alcanzamos el 82% del puesto 1. La prueba Megaface consta de un millón de fotografías (distractores) y el modelo debería poder distinguir bien varios miles de fotografías de celebridades del Facescrub. conjunto de datos de distractores. Sin embargo, después de haber superado los errores de la prueba Megaface, descubrimos que con la versión superada logramos una precisión del 98% en el rango 1 (las fotos de celebridades generalmente son bastante específicas). Por eso, crearon una prueba de identificación separada, similar a Megaface, pero con fotografías de personas “normales”. Luego mejoramos la precisión del reconocimiento en nuestros conjuntos de datos y avanzamos mucho. Además, utilizamos una prueba de calidad de agrupamiento que consta de varios miles de fotografías; simula el etiquetado de rostros en la nube del usuario. En este caso, los clusters son grupos de individuos similares, un grupo por cada persona reconocible. Verificamos la calidad del trabajo en grupos reales (verdadero).

Por supuesto, los errores de reconocimiento ocurren con cualquier modelo. Pero estas situaciones a menudo se resuelven ajustando los umbrales para condiciones específicas (para todas las conferencias utilizamos los mismos umbrales, pero, por ejemplo, para los sistemas de control de acceso tenemos que aumentar considerablemente los umbrales para que haya menos falsos positivos). La gran mayoría de los asistentes a la conferencia fueron reconocidos correctamente por nuestros fotomatones Vision. A veces alguien miraba la vista previa recortada y decía: "Su sistema cometió un error, no fui yo". Luego abrimos la foto en su totalidad, y resultó que realmente había este visitante en la foto, solo que no lo estábamos fotografiando a él, sino a otra persona, la persona simplemente estaba en el fondo en la zona de desenfoque. Además, la red neuronal a menudo reconoce correctamente incluso cuando una parte de la cara no es visible, o la persona está de perfil o incluso medio vuelta. El sistema puede reconocer a una persona incluso si el rostro se encuentra en el área de distorsión óptica, por ejemplo, al disparar con una lente gran angular.

1.3. Ejemplos de pruebas en situaciones difíciles.

A continuación se muestran ejemplos de cómo funciona nuestra red neuronal. Se envían fotografías a la entrada, que debe etiquetar con PersonID, un identificador único de una persona. Si dos o más imágenes tienen la misma identificación, entonces, según los modelos, estas fotografías representan a la misma persona.

Notemos de inmediato que al realizar pruebas, tenemos acceso a varios parámetros y umbrales del modelo que podemos configurar para lograr un resultado particular. La API pública está optimizada para lograr la máxima precisión en casos comunes.

Empecemos por lo más sencillo, el reconocimiento facial frontal.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Bueno, eso fue demasiado fácil. Compliquemos la tarea, añadimos barba y un puñado de años.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Algunos dirán que esto tampoco fue demasiado difícil, porque en ambos casos toda la cara es visible y el algoritmo dispone de mucha información sobre la cara. Bien, pongamos a Tom Hardy de perfil. Este problema es mucho más complejo y dedicamos mucho esfuerzo a resolverlo con éxito manteniendo una baja tasa de error: seleccionamos un conjunto de entrenamiento, pensamos en la arquitectura de la red neuronal, perfeccionamos las funciones de pérdida y mejoramos el preprocesamiento. de fotografías.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Pongámosle un tocado:

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Por cierto, este es un ejemplo de una situación particularmente difícil, ya que la cara está muy oscurecida y en la foto inferior también hay una sombra profunda que oculta los ojos. En la vida real, las personas muy a menudo cambian su apariencia con la ayuda de gafas oscuras. Hagamos lo mismo con Tom.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Bien, intentemos incluir fotografías de diferentes edades y esta vez experimentaremos con un actor diferente. Tomemos un ejemplo mucho más complejo, donde los cambios relacionados con la edad son especialmente pronunciados. La situación no es descabellada, ocurre con bastante frecuencia cuando es necesario comparar la fotografía del pasaporte con el rostro del portador. Después de todo, la primera fotografía se agrega al pasaporte cuando el propietario tiene 20 años, y a la edad de 45 años una persona puede cambiar mucho:

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

¿Crees que el principal especialista en misiones imposibles no ha cambiado mucho con la edad? Creo que incluso algunas personas combinarían las fotos de arriba y de abajo, el niño ha cambiado mucho a lo largo de los años.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Las redes neuronales experimentan cambios de apariencia con mucha más frecuencia. Por ejemplo, a veces las mujeres pueden cambiar mucho su imagen con la ayuda de cosméticos:

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Ahora compliquemos aún más la tarea: supongamos que distintas partes de la cara aparecen cubiertas en distintas fotografías. En tales casos, el algoritmo no puede comparar muestras completas. Sin embargo, Vision maneja bien situaciones como esta.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Por cierto, en una fotografía pueden haber muchas caras; por ejemplo, en una fotografía general de una sala caben más de 100 personas. Esta es una situación difícil para las redes neuronales, ya que muchas caras pueden iluminarse de forma diferente, algunas desenfocadas. Sin embargo, si la foto se toma con suficiente resolución y calidad (al menos 75 píxeles por cuadrado que cubre el rostro), Vision podrá detectarla y reconocerla.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

La peculiaridad de las fotografías de reportaje y las imágenes de las cámaras de vigilancia es que las personas suelen aparecer borrosas porque estaban desenfocadas o se estaban moviendo en ese momento:

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Además, la intensidad de la iluminación puede variar mucho de una imagen a otra. Esto también se convierte a menudo en un obstáculo: muchos algoritmos tienen grandes dificultades para procesar correctamente imágenes demasiado oscuras y demasiado claras, por no hablar de hacerlas coincidir con precisión. Permítanme recordarles que para lograr este resultado es necesario configurar los umbrales de cierta manera; esta característica aún no está disponible públicamente. Usamos la misma red neuronal para todos los clientes; tiene umbrales que son adecuados para la mayoría de las tareas prácticas.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Recientemente lanzamos una nueva versión del modelo que reconoce rostros asiáticos con alta precisión. Esto solía ser un gran problema, que incluso se llamaba racismo de “aprendizaje automático” (o “red neuronal”). Las redes neuronales europeas y americanas reconocían bien los rostros caucásicos, pero con los mongoloides y negroides la situación era mucho peor. Probablemente, en China la situación era exactamente la contraria. Se trata de entrenar conjuntos de datos que reflejen los tipos dominantes de personas en un país en particular. Sin embargo, la situación está cambiando; hoy este problema no es tan grave. La visión no tiene problemas con personas de diferentes razas.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

El reconocimiento facial es sólo una de las muchas aplicaciones de nuestra tecnología; la visión se puede entrenar para reconocer cualquier cosa. Por ejemplo, las matrículas, incluso en condiciones difíciles para los algoritmos: en ángulos agudos, matrículas sucias y difíciles de leer.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

2. Casos de uso prácticos

2.1. Control de acceso físico: cuando dos personas utilizan el mismo pase

Con la ayuda de Vision, puede implementar sistemas para registrar la llegada y salida de los empleados. El sistema tradicional basado en pases electrónicos tiene desventajas obvias: por ejemplo, es posible adelantar a dos personas con una sola tarjeta. Si el sistema de control de acceso (ACS) se complementa con Vision, registrará honestamente quién entró/salió y cuándo.

2.2. Seguimiento del tiempo

Este caso de uso de Vision está estrechamente relacionado con el anterior. Si complementa el sistema de acceso con nuestro servicio de reconocimiento facial, no solo podrá detectar violaciones del control de acceso, sino también registrar la presencia real de empleados en el edificio o instalación. En otras palabras, Vision le ayudará a tener en cuenta honestamente quién vino a trabajar y a qué hora se fue, y quién faltó al trabajo por completo, incluso si sus colegas lo cubrieron frente a sus superiores.

2.3. Análisis de vídeo: seguimiento de personas y seguridad

Al rastrear personas usando Vision, puede evaluar con precisión el tráfico real de áreas comerciales, estaciones de tren, pasajes, calles y muchos otros lugares públicos. Nuestro seguimiento también puede ser de gran ayuda para controlar el acceso, por ejemplo, a un almacén u otras instalaciones importantes de oficina. Y, por supuesto, el seguimiento de personas y rostros ayuda a resolver problemas de seguridad. ¿Atrapaste a alguien robando en tu tienda? Agregue su PersonID, que fue devuelto por Vision, a la lista negra de su software de análisis de video, y la próxima vez el sistema alertará inmediatamente a la seguridad si este tipo aparece nuevamente.

2.4. En comercio

Las empresas minoristas y de servicios diversos están interesadas en el reconocimiento de colas. Con la ayuda de Vision, puedes reconocer que no se trata de una multitud aleatoria de personas, sino una cola, y determinar su longitud. Y luego el sistema informa a los responsables sobre una cola para que puedan entender la situación: o hay una afluencia de visitantes y es necesario llamar a más trabajadores, o alguien está descuidando sus tareas laborales.

Otra tarea interesante es separar a los empleados de la empresa en el vestíbulo de los visitantes. Normalmente, el sistema está entrenado para separar objetos que llevan determinada ropa (código de vestimenta) o con algún rasgo distintivo (bufanda con la marca, insignia en el pecho, etc.). Esto ayuda a evaluar con mayor precisión la asistencia (para que los empleados no "inflen" las estadísticas de personas en la sala con su mera presencia).

Mediante el reconocimiento facial también podrás evaluar a tu audiencia: cuál es la fidelidad de los visitantes, es decir, cuántas personas regresan a tu establecimiento y con qué frecuencia. Calcule cuántos visitantes únicos llegan a usted por mes. Para optimizar los costes de atracción y retención, también puedes conocer la variación del tráfico según el día de la semana e incluso la hora del día.

Los franquiciadores y las cadenas de tiendas pueden solicitar una evaluación basada en fotografías de la calidad de la marca de varios puntos de venta: presencia de logotipos, carteles, carteles, pancartas, etc.

2.5. Por transporte

Otro ejemplo de cómo garantizar la seguridad mediante análisis de vídeo es la identificación de objetos abandonados en los pasillos de aeropuertos o estaciones de tren. Se puede entrenar la visión para reconocer objetos de cientos de clases: muebles, bolsos, maletas, paraguas, diversos tipos de ropa, botellas, etc. Si su sistema de análisis de vídeo detecta un objeto sin propietario y lo reconoce mediante Vision, envía una señal al servicio de seguridad. Una tarea similar está asociada con la detección automática de situaciones inusuales en lugares públicos: alguien se siente mal, alguien fuma en el lugar equivocado, una persona se cae de las vías, etc. Todos estos patrones pueden ser reconocidos por los sistemas de análisis de video. a través de la API de Visión.

2.6. Flujo de documentos

Otra aplicación futura interesante de Vision que estamos desarrollando actualmente es el reconocimiento de documentos y su análisis automático en bases de datos. En lugar de ingresar manualmente (o peor aún, ingresar) series interminables, números, fechas de emisión, números de cuenta, datos bancarios, fechas y lugares de nacimiento y muchos otros datos formalizados, puede escanear documentos y enviarlos automáticamente a través de un canal seguro a través del API a la nube, donde el sistema reconocerá estos documentos sobre la marcha, los analizará y devolverá una respuesta con datos en el formato requerido para su ingreso automático a la base de datos. Hoy en día, Vision ya sabe cómo clasificar documentos (incluido PDF): distingue entre pasaportes, SNILS, TIN, certificados de nacimiento, certificados de matrimonio y otros.

Por supuesto, la red neuronal no es capaz de manejar todas estas situaciones de forma inmediata. En cada caso, se construye un nuevo modelo para un cliente específico, se tienen en cuenta muchos factores, matices y requisitos, se seleccionan conjuntos de datos y se llevan a cabo iteraciones de capacitación, pruebas y configuración.

3. Esquema de operación API

La "puerta de entrada" de Vision para los usuarios es la API REST. Puede recibir fotografías, archivos de vídeo y transmisiones desde cámaras de red (transmisiones RTSP) como entrada.

Para utilizar Vision, necesita registro en el servicio Mail.ru Cloud Solutions y recibir tokens de acceso (client_id + client_secret). La autenticación de usuarios se realiza mediante el protocolo OAuth. Los datos de origen en los cuerpos de las solicitudes POST se envían a la API. Y en respuesta, el cliente recibe de la API un resultado de reconocimiento en formato JSON, y la respuesta está estructurada: contiene información sobre los objetos encontrados y sus coordenadas.

Con barba, gafas oscuras y de perfil: situaciones difíciles para la visión por ordenador

Respuesta ejemplo

{
   "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 respuesta contiene un parámetro interesante: genialidad: esta es la "frescura" condicional de una cara en una foto, con su ayuda seleccionamos la mejor toma de una cara de la secuencia. Entrenamos una red neuronal para predecir la probabilidad de que una foto guste en las redes sociales. Cuanto mejor sea la calidad de la foto y cuanto más sonriente sea la cara, mayor será la genialidad.

API Vision utiliza un concepto llamado espacio. Esta es una herramienta para crear diferentes conjuntos de caras. Ejemplos de espacios son listas blancas y negras, listas de visitantes, empleados, clientes, etc. Por cada token en Vision, puedes crear hasta 10 espacios, cada espacio puede tener hasta 50 mil PersonID, es decir, hasta 500 mil. por ficha. Además, la cantidad de tokens por cuenta no está limitada.

Actualmente, la API admite los siguientes métodos de detección y reconocimiento:

  • Reconocer/Establecer: detección y reconocimiento de rostros. Asigna automáticamente un PersonID a cada persona única, devuelve el PersonID y las coordenadas de las personas encontradas.
  • Eliminar: eliminar un ID de persona específico de la base de datos de personas.
  • Truncar: borra todo el espacio de PersonID, lo que resulta útil si se utilizó como espacio de prueba y necesita restablecer la base de datos para producción.
  • Detectar: ​​detección de objetos, escenas, matrículas, puntos de referencia, colas, etc. Devuelve la clase de objetos encontrados y sus coordenadas.
  • Detectar documentos: detecta tipos específicos de documentos de la Federación de Rusia (distingue pasaporte, SNILS, número de identificación fiscal, etc.).

Pronto también terminaremos de trabajar en métodos de OCR, determinación de género, edad y emociones, así como en la solución de problemas de merchandising, es decir, en el control automático de la exhibición de productos en las tiendas. Puede encontrar la documentación API completa aquí: https://mcs.mail.ru/help/vision-api

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

Ahora, a través de la API pública, puede acceder al reconocimiento facial en fotos y videos; se admite la identificación de diversos objetos, matrículas, puntos de referencia, documentos y escenas completas. Escenarios de aplicación: el mar. Ven, prueba nuestro servicio y configura las tareas más difíciles. Las primeras 5000 transacciones son gratuitas. Quizás sea el “ingrediente que falta” en tus proyectos.

Puede acceder instantáneamente a la API al registrarse y conectarse. Visión. Todos los usuarios de Habra reciben un código promocional para transacciones adicionales. ¡Escríbame la dirección de correo electrónico que utilizó para registrar su cuenta!

Fuente: habr.com

Añadir un comentario