Traitement parallèle pour la recherche d'images par le contenu

Par Benoît gagnon

Les moteurs de recherche font maintenant partie intégrale de nos vies branchées. Sur Internet, il est extrêmement difficile de s’en passer pour accéder au contenu qui nous intéresse. Aujourd’hui, on dispose d’une quantité de moteurs de recherche de documents textuels dont certains, comme Google, sont très efficaces et accessibles. Pourtant, les médias numériques ne se limitent pas au texte. Comment retrouver efficacement ces autres formes de médias sur Internet?

Il est évident que les solutions basées sur des mots clés ne suffisent pas. Il faut plutôt concevoir des systèmes capables de lire et calculer les similarités entre des images. Pour trouver un texte, on utilise du texte. Pour trouver une image, rien de mieux qu’une autre image.

Dans ce projet, j’ai choisi de reprendre une partie d’une application développé dans le cadre du cours IMN467 - Gestion des médias numériques donné à l’été 2007. L’objectif de ce cours était de comprendre et de mettre en oeuvre les différentes mesure de similarité entre les images. Je trouvais qu’un moteur d’image basé
sur le contenu se porte très bien au traitement parallèle pour plusieurs raisons:

  • l’indexage est une opération intensive en mémoire et temps de calcul
  • la recherche peut être répartie
  • le client de recherche et le serveur peuvent être des processus indépendants
  • le projet est facilement extensible

Mes objectifs pour ce projet d’optimisation parallèle sont les suivants:

  • utiliser une libraire multi-plateforme de programmation multi-fils
  • trouver une façon efficace de répartir l’indexage sur plusieurs processeurs
  • étendre une architecture logicielle orientée objet
  • faire fonctionner efficacement le moteur de recherche avec une librairie de 10,000 images.

Documentation complète du projet

Sources du projet