Détection d’objets
Philippe XU
ENSTA Paris - Institut Polytechnique de Paris
Classification d’images
Exemples positifs
Exemples négatifs
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Détection d’objets
![]()
Méthode par fenêtre glissante
- Transformer un problème de détection en plusieurs problèmes de classification.
- Parcourir de manière exhaustive l’image en termes de position et d’échelle.
- On impose la forme des “boîtes englobantes” :
- Exemples :
- personnes : \(H = 2\times L\)
- visages : \(H=L\)
- En pratique, on improse souvent une taille fixe :
- Exemples :
- personnes : \(128 \times 64\) pixels
- visages : \(64 \times 64\) pixels
Pyramides d’images
Au lieu de changer la taille de la fenêtre glissante, il est plus efficace de redimensionner l’image d’origine et garder une fenêtre de taille fixe.
Pyramides d’images
Au lieu de changer la taille de la fenêtre glissante, il est plus efficace de redimensionner l’image d’origine et garder une fenêtre de taille fixe.
Suppression des non-maxima
- Aire de recouvrement : \[
A_{ij} = \frac{\text{Aire}{\left( B_i \cap B_j \right)}}{\text{Aire}{\left( B_i \cup B_j \right)}}
\]
- Critère de décision : \[
A_{ij} > 1/2
\]
Suppression des non-maxima
- Parcourir l’ensemble des boîtes par ordre décroissant de score.
- Pour chaque paire de boîtes ayant un recouvrement suffisant, supprimer la boîte avec le plus faible score.
Suppression des non-maxima
- Parcourir l’ensemble des boîtes par ordre décroissant de score.
- Pour chaque paire de boîtes ayant un recouvrement suffisant, supprimer la boîte avec le plus faible score.
Exemples négatifs
- Générer aléatoirement un ensemble d’exemples négatifs.
- Apprendre un premier classifieur utilisant ces exemples.
- Utiliser le classifieur sur l’ensemble des images d’apprentissage.
- Prendre tous les faux positifs comme exemples négatifs supplémentaires.
- Recommencer l’apprentissage.
Précision / rappel
\(+\) |
Vrai positif (VP) |
Faux négatif (FN) |
\(-\) |
Faux positif (FP) |
Vrai négatif (VN) |
\[
\text{Précision} = \frac{VP}{VP+FP}
\]
\[
\text{Rappel} = \frac{VP}{VP+FN}
\]
Courbe précision / rappel
- Trier les détections par ordre décroissant de score.
- En ajoutant une à une les détections, on calcule à chaque pas un point de la courbe.
- On peut utiliser la moyenne de toutes les précisions comme mesure unique (\(\approx\) aire sous la courbe).
Overfeat
Overfeat
Recherche sélective
![]()
Groupement hiérarchique
- Calculer une segmentation de l’image, on obtient les régions initiale \(R = \{r_1,\ldots,r_n\}\)
- Calculer l’ensemble des similarités entre régions voisines : \[
S = \left\{ s{\left( r_i,r_j \right)} | \forall i\neq j,\ r_i, r_j \in R \right\}
\]
- Tant que \(S\neq\emptyset\)
- Trouver les deux régions avec la plus grande similarité : \(s{\left( r_i, r_j \right)} = \max{\left( S \right)}\)
- Fusionner ces deux régions : \(r_t = r_i \cup r_j\)
- Supprimer les régions \(r_i, r_j\) des similarités : \(S = S\backslash\{s(r_i , r_*) \cup s(r_j, r_*)\}\)
- Calculer les similarités \(S_t\) entre la nouvelle région \(r_t\) et ses voisines : \(S = S \cup S_t\), \(R = R \cup r_t\)
- Calculer les fenêtres autour de toutes les régions de \(R\).
Similarité
- imilarité entre histogrammes de couleurs : \(s_{\text{colour}} (r_i, r_j) = \sum_{k=1}^n \min(c_{i}^k, c_{j}^k)\)
- Similarité entre textures (SIFT) : \(s_{\text{texture}}(r_i, r_j) = \sum_{k=1}^n \min(t_i^k, t_j^k)\)
- Fusionner en priorité les régions de petite taille : \(s_{\text{size}}(r_i, r_j) = 1 − \frac{\text{taille}(r_i)+\text{taille}(r_j)}{\text{taille}(im)}\)
- Fusionner les régions qui sont consistantes géométriquement : \(s_{\text{fill}}(r_i, r_j) = 1 − \frac{\text{taille}(BB_{ij})\text{taille}(r_i)\text{taille}(r_j)}{\text{taille}(im)}\)
- Similarité finale comme une combinaison linéaire : \[
s(r_i, r_j) = a_1s_{\text{colour}}(r_i, r_j) + a_2s_{\text{texture}}(r_i, r_j) + a_3s_{\text{size}}(r_i, r_j) + a_4s_{\text{fill}}(r_i, r_j)
\]
R-CNN
- Image d’entrée de taille arbitraire.
- Génération de fenêtres candidates (recherche sélective).
- Redimensionnement des fenêtres à une taille fixe.
- Calcul des caractéristiques par un réseau convolutif.
- Classification des fenêtres.
- Régression des coordonnées des fenêtres.
R-CNN
- Image d’entrée de taille arbitraire.
- Génération de fenêtres candidates (recherche sélective).
- Redimensionnement des fenêtres à une taille fixe.
- Calcul des caractéristiques par un réseau convolutif.
- Classification des fenêtres.
- Régression des coordonnées des fenêtres.
R-CNN
- Image d’entrée de taille arbitraire.
- Génération de fenêtres candidates (recherche sélective).
- Redimensionnement des fenêtres à une taille fixe.
- Calcul des caractéristiques par un réseau convolutif.
- Classification des fenêtres.
- Régression des coordonnées des fenêtres.
R-CNN
- Image d’entrée de taille arbitraire.
- Génération de fenêtres candidates (recherche sélective).
- Redimensionnement des fenêtres à une taille fixe.
- Calcul des caractéristiques par un réseau convolutif.
- Classification des fenêtres.
- Régression des coordonnées des fenêtres.
R-CNN
- Image d’entrée de taille arbitraire.
- Génération de fenêtres candidates (recherche sélective).
- Redimensionnement des fenêtres à une taille fixe.
- Calcul des caractéristiques par un réseau convolutif.
- Classification des fenêtres.
- Régression des coordonnées des fenêtres.
R-CNN
- Image d’entrée de taille arbitraire.
- Génération de fenêtres candidates (recherche sélective).
- Redimensionnement des fenêtres à une taille fixe.
- Calcul des caractéristiques par un réseau convolutif.
- Classification des fenêtres.
- Régression des coordonnées des fenêtres.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Fast R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Projection des fenêtres candidates (recherche sélective sur l’image d’entrée) dans l’espace des caractéristiques.
- Calcul d’un tenseur de taille fixe par max-pooling.
- Calcul de couches fully-connected pour chaque candidat.
- Classification et régression.
- Un seul apprentissage avec un objectif multi-tâches.
Faster R-CNN
- Image d’entrée de taille fixe.
- Calcul des caractéristiques globales par un réseau convolutif.
- Proposition de fenêtres candidates par un réseau.
- Classification et régression.
Region Proposal Network
Boîte d’ancrage : \[
t_x = (x-x_a) / w_a
\] \[
t_y = (y-y_a) / h_a
\] \[
t_w = w / w_a
\] \[
t_h = h / h_a
\]
SSD : Single Shot MultiBox Detector
SSD : Single Shot MultiBox Detector
YOLO : You only look once
![]()