¿Cuál es el mejor software / bibliotecas / api para el reconocimiento facial (enfoque principal), detección?

Por el momento, su objetivo de una aplicación para iOS lo hace más difícil porque iOS y MacOS no atraen a proveedores de reconocimiento facial de nivel profesional. Hay kits de herramientas de desarrollador de código abierto, como OpenCV. Sin embargo, debe ser un desarrollador de visión por computadora para lograr su objetivo.

La mayoría del software profesional de reconocimiento facial es Windows y Linux. Simplemente porque los puntos fuertes del reconocimiento facial residen en las instalaciones: coloque cámaras y observe un área. Tales necesidades tienden a querer hardware rentable, que no son los productos de Apple. Es completamente posible mover bases de código a iOS o MacOS, pero los incentivos financieros simplemente no existen.

Descargo de responsabilidad: trabajo para CyberExtruder, un proveedor de reconocimiento facial competitivo a nivel mundial, con las principales patentes globales necesarias para las expectativas del reconocimiento facial moderno, específicamente en las áreas de detección y reconocimiento. Ofrecemos versiones de nuestros productos para Windows y Linux.

Dependiendo de su situación, le sugiero que busque que su FR se realice en su backend, no en el dispositivo portátil, donde puede elegir entre múltiples proveedores de alta calidad. Puede usar el buscador de caras levemente útil de Apple para localizar una cara inicialmente, y luego pasarla a su backend para la detección de grado profesional (bloqueando todas las características faciales, en lugar de solo la cara en general).

Esta es la técnica que utilicé para la Tienda de avatares 3D, que ya no existe, pero puede visitar la página de Twitter [1] y ver la notable calidad de los resultados que pude producir utilizando la tecnología de CyberExtruder. (Siendo una persona que impulsó su tecnología al máximo, me contrataron).

Notas al pie

[1] Tienda de avatar 3D (@ 3DAvatarStore) | Gorjeo

Apple en realidad tiene un conjunto de API de detección de rostros como parte de la Colección de referencia de imágenes principales, especialmente la clase CIDetector . Esto debería ayudarte a comenzar. Dependiendo de lo que finalmente intente lograr, es posible que pueda salirse con la suya utilizando el conjunto de clases de la Biblioteca Estándar de Apple.

A partir de sus datos, parece que lo que está buscando estaría mejor servido con OpenCV. Parece que es más difícil trabajar con OpenCV en iOS. Si ajusta o encuentra una fundición de contenedor / OpenCVSwiftStitch, entonces podría ser más fácil dependiendo de lo que desee hacer con el patrón detectado.

También podría ser mejor crear un servicio web que use OpenCV u otra API para procesar aún más la imagen. También es posible que desee ver Metal u OpenCL para su posterior procesamiento. OpenCV usará sombreadores OpenCL, si están disponibles para la plataforma, para acelerar el procesamiento de imagen / video. Puede mirar el código fuente de OpenCV y experimentar con el resultado deseado.

EDITAR: Disculpas, no había leído los detalles cuando di la respuesta por primera vez.

¡Hay tantas API de reconocimiento facial por ahí que es importante asegurarse de seleccionar la mejor para su programa! Le daré una lista más completa de API de reconocimiento facial para usted y luego profundizaré en lo que recomendaría dependiendo de su caso de uso. Aquí hay algunas API de reconocimiento facial con las que he tenido una buena experiencia últimamente y que recomendaría:

  • Trueface.ai
  • EmoVu
  • Clarifai
  • Kairos
  • Microsoft Computer Vision
  • Reconocimiento facial de Animetrics

Cada API de reconocimiento facial es un poco diferente y manejará ciertos casos de uso mejor que otras API. Por ejemplo:

  • Si está buscando identificar caras, pero necesita asegurarse de que sea una cara real y no una imagen de una cara, Trueface.ai será ideal para usted porque incluye detección de falsificaciones.
  • Clarifai le permite entrenar sus propios modelos, lo que resultará útil cuando desee identificar características específicas en una imagen.
  • Si su aplicación necesita no solo encontrar una cara, sino también identificar los sentimientos en una cara, entonces recomendaría la API EmoVu. Hace un gran trabajo al identificar las emociones en las imágenes.

Trabajo para RapidAPI, un mercado de API en línea que le permite encontrar, probar y conectarse a miles de API desde un mercado centralizado. Al usar RapidAPI, puede comparar estas API diferentes, ver cuál funciona mejor para su caso de uso e implementar la API en su programa en minutos. Haga clic aquí para obtener más información: RapidAPI

Si está buscando una solución basada en API, puede consultar Sightengine.com

Es posible analizar 2,000 imágenes gratis por mes.

Es una solución automatizada para detectar cosas como contenido para adultos, violencia, rostros y celebridades en imágenes y videos .

La API analiza imágenes y videos más rápido que los humanos. La API puede analizar varios millones de imágenes por día.

Digamos que quieres subir esta imagen y detectar caras:

Aquí hay un ejemplo en Python, usando el SDK:

cliente = SightengineClient (‘{api_user}’, ‘{api_secret}’)
output = client.check (‘face-atributos’). set_url (‘ https://d3m9459r9kwism.cloudfront.net/img/examples/example-coup-1000.jpg&#039 😉

La salida devolverá la clasificación. Un ejemplo:

“status”: “éxito”,
“solicitud”: {
“id”: “req_1VmdzS10f628UBstXdc8c”,
“marca de tiempo”: 1510757582.1956,
“operaciones”: 1
},
“caras”: [
{
“x1”: 0.5698,
“y1”: 0.24,
“x2”: 0.6773,
“y2”: 0.492,
“caracteristicas”: {
“ojo izquierdo”: {
“x”: 0.6507,
“y”: 0.3533
},
“Ojo derecho”: {
“x”: 0.6276,
“y”: 0.328
},
“punta de la nariz”: {
“x”: 0.6391,
“y”: 0.3773
},
“left_mouth_corner”: {
“x”: 0.6222,
“y”: 0.4307
},
“right_mouth_corner”: {
“x”: 0.5964,
“y”: 0.412
}
},
“atributos”: {
“hembra”: 0,14,
“hombre”: 0.86,
“menor”: 0.04,
“gafas de sol”: 0.2
}
},
{
“x1”: 0.6516,
“y1”: 0.3173,
“x2”: 0,7529,
“y2”: 0.5693,
“caracteristicas”: {
“ojo izquierdo”: {
“x”: 0.7493,
“y”: 0.4453
},
“Ojo derecho”: {
“x”: 0,7067,
“y”: 0.4253
},
“punta de la nariz”: {
“x”: 0.7404,
“y”: 0.4787
},
“left_mouth_corner”: {
“x”: 0.7342,
“y”: 0,52
},
“right_mouth_corner”: {
“x”: 0.6951,
“y”: 0.5027
}
},
“atributos”: {
“hembra”: 0,97,
“hombre”: 0.03,
“menor”: 0,37,
“gafas de sol”: 0.01
}
}
],
“medios”: {
“id”: “med_1Vmd6qHpJNWZy053MOT0L”,
“uri”: ” https://d3m9459r9kwism.cloudfront.net/img/examples/example-coup-1000.jpg&quot ;
}
}

Aquí hay un ejemplo del resultado:

Puedes probar la página de demostración: Demo

(descargo de responsabilidad: yo trabajo allí)

Para la parte de captura [detección] de iOS , ¿ha revisado este SDK? Ayudará a acelerar ese proceso y enviará imágenes a la API elegida para su análisis [similitud] -> kairosinc / Kairos-SDK-iOS

El método de inscripción registra una cara para reconocimientos posteriores . Aquí hay un ejemplo de inscripción de una cara (sujeto) usando uno de los métodos de captura de imágenes. Este método muestra una vista de captura de imagen en su aplicación, captura una imagen de una cara y la inscribe:

[KairosSDK imageCaptureEnrollWithSubjectId: @ “12”
galleryName: @ “gallery1”
éxito: ^ (respuesta NSDictionary *, imagen UIImage *) {

NSLog (@ “% @”, respuesta);
}
falla: ^ (respuesta NSDictionary *, imagen UIImage *) {

NSLog (@ “% @”, respuesta);
}];

También puede probar rápidamente esta función aquí usando esta demostración web

Además, si está investigando servicios de reconocimiento facial, creé una comparación de los servicios más populares en el mercado hoy -> Reconocimiento facial: Kairos vs Microsoft vs Google vs Amazon vs OpenCV

Descargo de responsabilidad: trabajo para Kairos 😉

En cuanto a la detección de rostros, apostaría por la API de Google Vision (todavía en versión beta).

Página oficial de API: Vision API – Análisis de contenido de imagen

Algunas pruebas que realicé: API de Google Vision: análisis de imágenes como servicio

1-Dlib

2-OpenCV

No son suficientes solos, también debe saber qué HOG o Viola Jones para una mejor detección. También el conocimiento de LBP al menos también es bueno para la parte de reconocimiento. No sé cómo funcionan los pagos, ya que también trabajamos en problemas similares.

Para la detección de rostros, también puede usar la API de detección de rostros IOS o Android. IOS también te da una estimación de pose que es muy importante para la parte de reconocimiento.

También puede probar VisageCloud: el reconocimiento facial se encuentra con Big Data.

A diferencia de otras API existentes, VisageCloud le permite mantener los vectores de características para cada cara, para que sus datos no estén bloqueados en la plataforma.