Aller au contenu


Photo

Analyse d'image côté serveur


  • Please log in to reply
43 réponses à ce sujet

#1 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 08:46

Salut !

 

Je n'ai pas encore fait de recherche, mais je me demandais si l'analyse d'image sur un serveur pour comparer à une base existante demandait des algorithmes surpuissants...

 

Concrètement: scanner une image, l'envoyer sur le serveur, et comparer à disons 500.000 enregistrements. J'imagine que ça doit demander une puissance de dingue. 

 

Mais il doit y avoir des astuces pour gagner du temps de traitement.

 

-------------------

 

EDIT: en réfléchissant un peu, il ne s'agit pas de comparer à des milliers d'images. Pour mon cas, il s'agit plutôt de détecter toutes les chaînes de caractères présentes dans l'image (et donc côté serveur OU coté client) et de comparer à la base côté serveur qui contient 500.000 enregistrements (donc uniquement de la comparaison de chaînes avec de la fuzzy search par exemple).

 

Comparer l'image elle-même me paraît infaisable niveau puissance.


Mes applications iOS: VinoCell

#2 yoann

yoann

    Brasseur de pâte à cacao

  • Membre
  • PipPipPipPipPipPipPip
  • 2 141 messages
  • LocationMarseille

Posté 20 août 2013 - 09:42

Si tu cherche les images exactement identique, utilise des hash md5 ça sera plus simple.

 

Si tu cherche des images qui montrent la même chose mais sont différentes (en présentation, compression, format…) t'es bon pour faire un OCR et comparer le texte avec tout le coté approximatif que cela représente.


Développeur & Consultant Mac
Apple Certified Trainer

#3 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 10:01

L'idée serait de comparer des étiquettes (de vin) donc oui, le même graphisme mais avec des axes de prises de vues et de qualités différentes et des arrière-plans éventuellement différents...

 

Donc, l'OCR paraît plus viable, mais bonjour la fiabilité.

Je viens de tester Tessaract, mais mes premiers tests sont très mauvais.

 

J'ai un concurrent qui fait de la comparaison d'étiquette et ça marche très bien. Je ne sais pas quelle techno il utilise (OCR ou comparaison d'images).


Mes applications iOS: VinoCell

#4 yoann

yoann

    Brasseur de pâte à cacao

  • Membre
  • PipPipPipPipPipPipPip
  • 2 141 messages
  • LocationMarseille

Posté 20 août 2013 - 10:05

Perso je n'ai jamais vu d'OCR marcher correctement.

 

Quel est l'objectif de la photo ? Compléter ta base ou rechercher un élément dans la base ?


Développeur & Consultant Mac
Apple Certified Trainer

#5 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 10:14

Perso je n'ai jamais vu d'OCR marcher correctement.

 

Quel est l'objectif de la photo ? Compléter ta base ou rechercher un élément dans la base ?

 

L'objectif est de scanner une étiquette et rappatrier toutes les infos du vin, donc rechercher un élément dans la base à partir de son étiquette. Considère que l'étiquette serait le code-barre de la bouteille. ;)


Mes applications iOS: VinoCell

#6 yoann

yoann

    Brasseur de pâte à cacao

  • Membre
  • PipPipPipPipPipPipPip
  • 2 141 messages
  • LocationMarseille

Posté 20 août 2013 - 10:15

Et est-ce que tu ne peux pas utiliser le vrai code barre de la bouteille pour ça ?


Développeur & Consultant Mac
Apple Certified Trainer

#7 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 10:31

Et est-ce que tu ne peux pas utiliser le vrai code barre de la bouteille pour ça ?

 

Non.

1) Plein de bouteilles n'ont pas de code-barre (2/3 ?)

2) Des bouteilles de millésimes différents ont le même code-barre.

3) Je n'ai pas de base de données avec code-barre et je n'en ai pas trouvé.

 

L'app de ce site http://www.vivino.com/app/ scanne les photos d'éqtiquette et fait de la reconnaissance à partir de l'image et je suis bleuffé par le résultat et la vitesse. Je ne sais pas quelle est leur techno.

 

Dans mon app, il faut actuellement saisir le nom du vin pour avoir les infos (ce n'est pas aussi rapide qu'un scan).


Mes applications iOS: VinoCell

#8 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 10:47

Donc ils feraient bien de l'OCR et pas de la comparaison d'images:

http://www.prnewswir...-208668491.html

 

Enfin un mix...

 

"The new solution combines optical character and image recognition that enables higher accuracy and better differentiates mixed fonts on colored backgrounds and curved surfaces, all of which are technical hurdles that we've been able to overcome."


Mes applications iOS: VinoCell

#9 yoann

yoann

    Brasseur de pâte à cacao

  • Membre
  • PipPipPipPipPipPipPip
  • 2 141 messages
  • LocationMarseille

Posté 20 août 2013 - 10:52

Non.

1) Plein de bouteilles n'ont pas de code-barre (2/3 ?)

2) Des bouteilles de millésimes différents ont le même code-barre.

3) Je n'ai pas de base de données avec code-barre et je n'en ai pas trouvé.

 

L'app de ce site http://www.vivino.com/app/ scanne les photos d'éqtiquette et fait de la reconnaissance à partir de l'image et je suis bleuffé par le résultat et la vitesse. Je ne sais pas quelle est leur techno.

 

Dans mon app, il faut actuellement saisir le nom du vin pour avoir les infos (ce n'est pas aussi rapide qu'un scan).

 

T'as pas essayé de faire un reverse sur leur application ? Voir s'ils ne passent pas par un service tiers par hasard.


Développeur & Consultant Mac
Apple Certified Trainer

#10 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 10:56

T'as pas essayé de faire un reverse sur leur application ? Voir s'ils ne passent pas par un service tiers par hasard.

 

Si je suis en train de trouver des infos justement !

http://venturebeat.c...find-that-wine/

 

Swiss company Kooaba provides the image recognition technology. Kooaba can match against an image-set of 2 million labels in less than a second. Wine labels shot from different angles or in different lighting conditions can be matched; an important feature when dealing with images taken in restaurants or low-lit rooms.

 

 

Apparemment, ils passent par ce service:

http://www.kooaba.com


Mes applications iOS: VinoCell

#11 yoann

yoann

    Brasseur de pâte à cacao

  • Membre
  • PipPipPipPipPipPipPip
  • 2 141 messages
  • LocationMarseille

Posté 20 août 2013 - 11:02

Bah voilà :-)


Développeur & Consultant Mac
Apple Certified Trainer

#12 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 11:06

Bah voilà :-)

 

Je vais voir comment marche leur API.

Les prix sont chauds... ;)


Mes applications iOS: VinoCell

#13 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 11:32

Je viens de tester leur API avec une app démo.

Pour ceux que ça intéresse:

 

1) On envoit des items sur leur serveur. Un item = 1 id + x images associées + un bloc de json associé dans lequel on met ce qu'on veut. Ces items sont la base de données qui sert à la comparaison.

 

2) On envoie une image à comparer avec leur API (les clés).

 

3) On récupère l'ID + le json si un item est trouvé.

 

Je me suis amusé à uploader quelques étiquettes puis à comparer avec d'autres.

Je dois dire que ça marche bien.

 

C'est puissant.


Mes applications iOS: VinoCell

#14 yoann

yoann

    Brasseur de pâte à cacao

  • Membre
  • PipPipPipPipPipPipPip
  • 2 141 messages
  • LocationMarseille

Posté 20 août 2013 - 11:49

Ils sont vraiment cher en effet. Par contre t'as déjà une database de vin dedans.


Développeur & Consultant Mac
Apple Certified Trainer

#15 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 20 août 2013 - 13:13

Ils sont vraiment cher en effet. Par contre t'as déjà une database de vin dedans.

 

Oui, mais il faut payer un supplément conséquent.

C'est toujours pareil, il faudrait savoir combien d'utilisateurs supplémentaires ça peut rapporter.

 

Merci de tes réponses, ça m'a aider à fouiller.


Mes applications iOS: VinoCell

#16 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 21 août 2013 - 16:41

Après tu peux toujours essayer de jouer avec openCV.

Par exemple, essayer de récupérer les points clés de l'étiquettes et mesurer leur distance par rapport à un coin de l'étiquette.

Puis combiner ça avec une comparaison d'histogrammes.

 

http://fr.wikipedia....zones_d'intérêt

 

http://docs.opencv.o...comparison.html



#17 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 21 août 2013 - 18:31

Quelques essais avec OpenCV qui se compile facilement sur Mac.

Il y a même un sample pour trouver des objets dans une scène. Cf ci-joints.

En haut de chaque image il y a le nombre de keypoints qui correspondent.

 

L'image du haut c'est une photo iPhone (réduite!) et en bas une étiquette trouvée sur le web.

 

 

 

EDIT: oups... j'ai matché un muscat avec un riesling... C'est une bonne maison en tous cas, je suppose que les deux sont bons... :cliccool:

Fichier(s) joint(s)

  • Fichier joint  res2.jpg   75,97 Ko   1 téléchargement(s)
  • Fichier joint  res1.jpg   105,82 Ko   0 téléchargement(s)
  • Fichier joint  res3.jpg   73,06 Ko   0 téléchargement(s)


#18 AliGator

AliGator

    Mouleur de chocolats

  • Contrôleur d'arômes
  • 13 621 messages
  • LocationRennes (France)

Posté 21 août 2013 - 19:05

J'ai lu je sais plus où sur le site de Kooaba qu'ils se vantaient de leur algo de matching en disant justement que c'était un algo de leur invention (du nom de "SURF" de mémoire) mais qui était tellement bien qu'il avait été intégré à OpenCV…

Donc si ça se trouve y'a de quoi faire dans OpenCV encore plus directement que ce qu'a proposé FKDEV, directement en demandant d'utiliser leur algo?

[EDIT]Voilà le lien : http://www.kooaba.co...ng/ip_licensing
La Doc, c'est moi — Devise Shadok : S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !
CocoaPods : Getting StartedLe Blog CocoaPodsCherchez des podsDocs de pods
Mon GitHub: OHHTTPStubs, SwiftGen…
Mon Blog: Crunchy Development

#19 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 21 août 2013 - 19:24

Dans le code source que j'ai utilisé :bravo!: :

static void help()
{
    printf(
        "This program demonstrated the use of the SURF Detector and Descriptor using\n"
        "either FLANN (fast approx nearst neighbor classification) or brute force matching\n"
        "on planar objects.\n"
        "Usage:\n"
        "./find_obj <object_filename> <scene_filename>, default is box.png  and box_in_scene.png\n\n");
    return;
}

  • AliGator aime ceci

#20 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 22 août 2013 - 09:04

J'avais loupé vos derniers posts.

 

1) J'ai testé la base de données d'étiquette louée par Kooaba, mais ça coûte 600 euros par mois + 300 euros de forfait de requests.... Je dois dire que ça marche bien et que leur API est efficace. Hormis le prix, le problème est que je récupère des données sur le vin qui ne correspondront pas à ma base personnelle et qui sont parfois absentes (nom de région...).

 

2) Même si j'arrivais à faire de la reconnaissance d'étiquette à partir d'OpenCV et de SURF, je n'aurais jamais la puissance nécessaire pour comparer les résultats à mes 300.000 vins synchronisés. Je suppose qu'ils doivent stocker des données une fois l'image parsée, comme les "extractions de caractéristiques" ou des vecteurs.


Mes applications iOS: VinoCell




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)