8

Dans leur document décrivant Viola-Jones object detection cadre (robuste de détection en temps réel du visage par Viola et Jones), il est dit:Comment normaliser une couleur d'image?

Tous les exemples de sous-fenêtres utilisées pour la formation ont été variance normalisée à minimiser l'effet de l'éclairage différent conditions.

Ma question est « Quel genre d'outils ont-ils utilisé pour normaliser les images? »

Je ne suis pas à la recherche de l'outil spécifique que Viola & Jones utilisé mais un semblable qui produit presque la même sortie. J'ai suivi beaucoup de tutoriels de formation de haar (essayant de détecter une main) mais pas encore capable de sortir un bon détecteur (xml).

J'ai essayé de contacter les auteurs, mais toujours pas de réponse pour le moment.

Répondre

5

Une méthode possible consiste à appliquer une normalisation simple et simple en supposant une distribution normale à tous les éléments.

d'abord trouver la moyenne (Mu) et standard deviation (S):

Mu = 1/N * Sum(a[i][j]) for each i,j 
S = sqrt(1/(N-1) * Sum((a[i][j] - Mu)^2)) for each i,j 
     (in here N is the number of pixels, 20*20 in the viola jones case) 

De là, nous pouvons normaliser la valeur de chaque pixel en utilisant la formule de distribution normale (par standardizing all values):

a'[i][j] = (a[i][j] - Mu)/S 

Une autre méthode est vector normalization, qui dit essentiellement:

  • Trouver la longueur du vecteur: |a| = sqrt(sum (a[i][j]*a[i][j])) for each i,j
  • Assign: a'[i][j] = a[i][j]/|a|
+0

Merci pour la réponse. Cela m'a vraiment beaucoup aidé! Cette méthode peut être implémentée dans MATLAB à droite? –

+1

@KojiIkehara: Oui. Aussi, je crois qu'il est déjà implémenté dans matlab. Quand je reviens du travail je peux vérifier comment l'implémenter en octave (variante open source de matlab) si vous voulez (ce ne sera que beaucoup plus tard aujourd'hui) – amit

+0

Oui bien sûr, ce serait génial! Je vais faire des recherches à ce sujet aussi. Merci beaucoup! –