Skip to content

Détection vs classification : mise en situation

Les modules précédents classaient une observation entière (une facture, un client, une image complète au module 6). Ce module aborde un problème différent : localiser se trouvent plusieurs objets dans une image, et identifier ce qu’ils sont — deux réponses, pas une seule.

Une ligne de production dépose des pièces (cercles, carrés, triangles, étoiles) sur un tapis de convoyeur, pour un tri automatique par une caméra. L’objectif : détecter chaque pièce individuellement, avec sa position exacte (une boîte englobante) et sa forme.

Un jeu de données généré, pas téléchargé

Section titled “Un jeu de données généré, pas téléchargé”

Plutôt que de dépendre d’un jeu de données externe volumineux, ce module génère ses propres images :

from PIL import Image, ImageDraw
import numpy as np
def generate_shape_image(size=160, n_shapes_range=(2, 4), seed=None):
"""Genere une image avec plusieurs formes, et retourne
(image, boxes [x1,y1,x2,y2], labels [0..3])."""
rng = np.random.default_rng(seed)
# ... dessine un fond texture + 2 a 4 formes (cercle, carre, triangle, etoile)
# de couleur, taille et position aleatoires, sans chevauchement excessif
return img, boxes, labels

Cette approche a un avantage direct : aucune dépendance externe fragile (pas de compte, pas de téléchargement de plusieurs gigaoctets), un jeu de données entièrement reproductible (une graine aléatoire fixe régénère exactement les mêmes images), et un contrôle total sur la difficulté du problème.

train: 200 images, val: 40 images

Chaque image est accompagnée d’une liste de boîtes englobantes ([x1, y1, x2, y2], en pixels) et d’un label par boîte (0 = cercle, 1 = carré, 2 = triangle, 3 = étoile) — le format standard utilisé par la plupart des bibliothèques de détection d’objets, dont torchvision.

👉 Le détecteur pré-entraîné, tel quel


Junior TSAFACK – 12/09/2026