olvide - Biblioteca de reconocimiento de imágenes/API para código de iPhone
itunes fotos (8)
Necesito hacer una aplicación para iOS con estas características:
- Usa la cámara para capturar una imagen.
- Reconocer esa imagen: ¿coincide con una imagen de muestra o no?
¿Hay alguna API en línea para hacer eso (de Google, Yahoo, ...)? Por ejemplo, ¿puedo subir una imagen y obtener una imagen URL y luego solicitar una url para comparar una nueva imagen con una existente?
Encontré IQEngines, que funcionan bien.
Prueba las siguientes dos API:
Solo para extender la lista:
- ARLab Image Matching
- intopii
- kooaba
- Moodstocks
- OpenCV
- PointCloud
- recognize.im
- IQ Engines (se unió a Yahoo Inc. y ya no está disponible)
También puedes echarle un vistazo a Moodstocks , que ofrecen una gran API y iOS SDK para implementar el reconocimiento de imágenes en tu aplicación en cuestión de minutos.
Todo el campo del reconocimiento de imágenes ha cambiado con la llegada de Deep Neural Networks. Sin embargo, necesita una poderosa máquina para entrenar su propia red neuronal. También puedes usar vize.it , es una aplicación en línea fácil de usar que te permite definir la tarea y clasificar las imágenes usando http API.
Descargo de responsabilidad: soy un estudiante de doctorado de Inteligencia Artificial que es miembro del equipo vize.it.
OpenCV biblioteca OpenCV ( para iPhone ) contiene muchos algoritmos. Simplemente puede comparar histogramas de color de imágenes, o usar cosas más complicadas. ¿A qué tipo de coincidencia te refieres? ¿Encontrar duplicados o calcular medidas de similitud de imágenes?
Si desea hacer coincidir una plantilla simple para encontrar objetos, pruebe el algoritmo de Viola & Jones y las llamadas cascadas de Haar. OpenCV ha entrenado la colección de plantillas en archivos XML para detectar caras, por ejemplo. OpenCV contiene utilidad para el entrenamiento, por lo tanto, puedes generar cascadas para otros tipos de objetos
Pastec es una alternativa de código abierto (LGPL) al servicio ya mencionado.
Su API HTTP simple permite agregar, eliminar y buscar fácilmente imágenes coincidentes en el índice. Se basa en OpenCV y utiliza el descriptor ORB, que no tiene patente.
Moodstocks en Moodstocks , que parece haber perfeccionado un sistema de reconocimiento de imágenes con un servicio de pago por mes. Tienen un gran sistema (lo he probado para mi propio uso y es fantástico) PERO es EXTREMADAMENTE costoso para mí, y es por eso que no lo estoy usando. En el momento en que escribo esto, el servicio de imágenes "hasta 100,000" es de aproximadamente $ 12,000 / año. Para mi proyecto, tengo casi 4 millones de imágenes con las que necesito comparar. YIKES.
Entonces, después de muchos meses de investigación, he llegado a la conclusión de que si vas a comparar contra miles de imágenes o más (en mi caso, más de 1 millón), necesitarás hacer una comparación de imágenes. del dispositivo. Los dispositivos móviles de los usuarios no tienen el espacio, la velocidad y la potencia para realizar grandes cantidades de cálculos para realizar este tipo de trabajo.
Lo que realmente significa es que necesita configurar un servidor de reconocimiento de imágenes en una máquina de alto rendimiento y hacerlo público para su aplicación. En la aplicación, haga que el usuario tome una fotografía de un objeto (o puede tomar fotogramas del video de la cámara), llévela a su servidor para compararla y luego, cuando encuentre una coincidencia, informe los resultados a la aplicación.
Puede utilizar un marco como Accord.NET o EmguCV para hacer una aplicación de escritorio C o un servicio que se ejecute en un cuadro de servidor de Windows para hacer esto, por ejemplo.
Lo que la aplicación Amazon iOS hace por el reconocimiento de imágenes por lo que puedo adivinar es que parecen localizar los puntos de SURF en tiempo real y envía los datos al servidor mientras escanea en lugar de toda la imagen. Supongo que usan OpenCV en el dispositivo para hacer esto. Pero aún usan el software del servidor para devolver el SKU del producto coincidente.
Aquí hay una publicación de blog impresionante hecha por un tipo que quería hacer una coincidencia de imágenes en .NET y sigue todos los pasos, incluido cómo funciona, cómo hacerlo y luego da todo su código en una aplicación de muestra. Publicación increíble: https://sbrakl.wordpress.com/2015/01/30/love-affair-with-cbir-part-3/comment-page-1/
De lo que he podido aprender es que el algoritmo LoCATe realiza la mejor y la más rápida con grandes cantidades de imágenes, pero también lleva horas, días y posiblemente semanas (dependiendo de la cantidad de imágenes que tenga) crear índices masivos para buscar. Creo que cuando se trata de la coincidencia de imágenes, he encontrado que la velocidad de creación de un índice sólido está relacionada con la velocidad de búsqueda de coincidencias de las consultas.