La classification automatique

Qu'est-ce que c'est la classification automatique ?

La classification (automatique) des images fait référence à la tâche d'extraction des classes d'informations d'une image. Elle est un problème fondamental en vision par ordinateur, qui a de nombreuses applications concrètes. On retrouve ainsi la classification d’objets, de scènes, de textures, la reconnaissance de visages, d’empreintes digitale et de caractères. Elle est une application de la reconnaissance de formes consistant attribuer automatiquement une classe a une image à l’aide d’un système de classification.

Vous avez généralement le choix entre deux approches : la classification non-supervisée et supervisé.

La classification non-supervisée consiste à laisser l'ordinateur calculer automatiquement les classes sur la base de plusieurs (en tout cas plus d'une). Cela vous laisse la tâche d'identifier le bon nombre et la nature réelle des classes obtenues.

Dans l’approche supervisée, chaque image est associée à une étiquette qui décrit sa classe d’appartenance. Dans notre travail on s’intéresse uniquement sur l’approche supervisée.

Approche Non supervisée
Approche supervisée

Et le deep learning en tout ça ?

Le problème de l’approche classique de la reconnaissance des images est qu’un bon extracteur de caractéristiques est très difficile à construire, et qu’il doit être repensé pour chaque nouvelle application. C’est là qu’intervient l’apprentissage profond ou deep learning en anglais. C’est une classe de méthodes dont les principes sont connus depuis la fin des années 1980, mais dont l’utilisation ne s’est vraiment généralisée que depuis 2012, environ. L’idée est très simple : le système entraînable est constitué d’une série de modules, chacun représentant une étape de traitement. Chaque module est entraînable, comportant des paramètres ajustables similaires aux poids des classifieurs linéaires. Le système est entraîné de bout en bout : à chaque exemple, tous les paramètres de tous les modules sont ajustés de manière à rapprocher la sortie produite par le système de la sortie désirée. Le qualificatif profond vient de l’arrangement de ces modules en couches successives.

Pour pouvoir entraîner le système de cette manière, il faut savoir dans quelle direction et de combien ajuster chaque paramètre de chaque module. Pour cela il faut calculer un gradient, c’est-à-dire pour chaque paramètre ajustable, la quantité par laquelle l’erreur en sortie augmentera ou diminuera lorsqu’on modifiera le paramètre d’une quantité donnée.

Ce qui fait l’avantage des architectures profondes, c’est leur capacité d’apprendre à représenter le monde de manière hiérarchique. Comme toutes les couches sont entraînables, nul besoin de construire un extracteur de caractéristiques à la main. L’entraînement s’en chargera. De plus, les premières couches extrairont des caractéristiques simples (présence de contours) que les couches suivantes combineront pour former des concepts de plus en plus complexes et abstraits : assemblages de contours en motifs, de motifs en parties d’objets, de parties d’objets en objets, etc.