web-dev-qa-db-fra.com

Library de reconnaissance d'image / API pour le code iPhone

J'ai besoin de faire une application iOS avec ces fonctionnalités:

  • Utilisez la caméra capture une image.
  • Reconnaître cette image: correspond-il avec une image d'échantillon ou pas?

Y a-t-il une API en ligne à faire cela (de Google, Yahoo, ...)? Par exemple, puis-je télécharger une image et obtenir une URL d'image et après cette demande une URL de comparer une nouvelle image avec un existence?

24
Kiem Duong

Essayez les deux API suivantes:

10
Jan

OpenCV Bibliothèque ( pour iPhone ) contient de nombreux algorithmes. Vous pouvez simplement comparer les histogrammes de couleur des images ou utiliser des trucs plus compliqués. Quel type de correspondance voulez-vous dire? Trouver des doublons ou calculer la mesure de la similitude d'images?

Si vous souhaitez correspondre à un modèle simple pour trouver des objets, essayez l'algorithme Viola & Jones et appelé Haar Cascades. OPENCV a formé une collection de modèles dans des fichiers XML pour détecter les visages par exemple. OPENCV contient une utilité pour la formation ainsi que vous êtes en mesure de générer des cascades pour d'autres types d'objets.

17
Andrey Sboev

Vous pouvez également consulter - Modystocks , ils fournissent une grande API et iOS SDK à implémenter la reconnaissance de l'image dans votre application en quelques minutes.

14
MartinMoizard

Juste pour prolonger la liste:

14
tilo

J'ai trouvé iqengines, cela fonctionne bien.

3
Kiem Duong

Pastec est une source ouverte (LGPL) alternative au service déjà mentionné.

Son simple API HTTP permet d'ajouter facilement, supprimer et rechercher des images correspondantes dans l'index. Il est basé sur OPENCV et utilise le descripteur Orb, qui est sans brevets.

1
MagSoft

J'ai examiné humultstocks , qui semble avoir perfectionné un système de reconnaissance d'image avec un service de rémunération par mois. Ils ont un excellent système (je l'ai testé pour ma propre usage et c'est fantastique) mais c'est extrêmement cher pour moi, c'est pourquoi je ne l'utilise pas. Au moment de moi, le service d'image "jusqu'à 100 000" est d'environ 12 000 $/an. Pour mon projet, j'ai près de 4 millions d'images que je dois faire correspondre. Yikes.

Ainsi, après de nombreux mois de recherche sur et hors de plusieurs mois, je suis arrivé à la conclusion que si vous allez comparer contre 1000 d'images ou plus (dans mon cas 1 million +), vous devrez faire la comparaison d'images Off de l'appareil. Les utilisateurs Les appareils mobiles ne disposent pas de l'espace, de la vitesse et de la puissance d'effectuer de grandes quantités de calculs pour faire ce genre de travail.

Ce que cela signifie vraiment, c'est que vous devez configurer un serveur de reconnaissance d'image sur une machine haute performance et le rendre public à votre application. Sur l'application, demandez à l'utilisateur de prendre une photo d'un objet (ou vous pouvez saisir des cadres à partir de la vidéo de la caméra), demandez-le de comparer votre serveur à votre serveur, puis lorsque une correspondance est trouvée, indiquez les résultats à l'application.

Vous pouvez utiliser un cadre comme - accord.net ou Emgucv pour créer une application ou un service C # Desktop qui s'exécute sur une boîte de serveur Windows pour le faire, par exemple.

Qu'est-ce que l'application Amazon iOS pour la reconnaissance d'images à partir de ce que je peux deviner, c'est qu'ils semblent localiser les points de surf en temps réel et envoient les données au serveur lors de la numérisation au lieu de toute l'image. Je suppose qu'ils utilisent OpenCV sur le périphérique pour le faire. Mais ils utilisent toujours un logiciel de serveur pour renvoyer le produit de produit assorti.

Voici un point de blog génial par un gars qui voulait faire l'image correspondant à .NET et il traverse chaque étape, y compris comment cela fonctionne, comment le faire, comment faire tout son code dans une demande d'échantillon. Poste incroyable: https://sbrakl.wordpress.com/2015/01/30/love-affair-with-cbir-par-3/comment-page-1/

De ce que j'ai pu apprendre, c'est que l'algorithme de localisation effectue le meilleur et le plus rapide avec de grandes quantités d'images, mais prend également des heures, des jours et éventuellement des semaines (selon le nombre d'images que vous avez) pour créer des indices massifs pour chercher. Je pense que quand il s'agit d'une correspondance de l'image, j'ai trouvé que la vitesse de création d'un indice solide est par rapport à la vitesse de recherche des matchs des requêtes.

1
Ethan Allen