# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Dtection de visage / des yeux

## Nheo_

Bonjour,

Je viens vous consulter car j'ai remarqu que beaucoup de personnes navigant sur ce forum semblent bien connatre le traitement d'images ainsi que la dtection de visage.

Je vous explique mon soucis : j'aimerai savoir si une image contient "une personne" ou non (je ne souhaite pas connatre le nombre de personnes).

J'ai donc tout d'abord effectu une dtection par couleur (espace YCrCb), les rsultats sont plutt bon mais videmment pas suffisant pour dire si c'est un visage.

J'ai donc binaris mon image, effectu des rosions/dilatations pour combler les trous et limin les petits objets. J'ai donc mon visage en blanc, avec les yeux et la bouche en noir.

C'est la qu'arrivent les soucis  ::mrgreen:: . J'aimerai pouvoir "dtecter" ces trous, mais surtout savoir si ce sont effectivement des yeux, mais comment ?
J'ai fait pas mal de recherche sur la dtection de visages, mais la plupart du temps ils ne s'attardent pas sur la dtection des yeux prcisment.

Si quelqu'un peut ventuellement me donner des pistes, des liens sur lesquels c'est expliqu, j'en serais ravi  :;): .

Si ma dmarche est vraiment mauvaise, merci de me l'indiquer aussi, et pourquoi pas m'orienter vers une nouvelle piste  ::mouarf:: .

----------


## maleaume

just en tappant Detection visage yeux dans google
code detection visage yeux nez bouche
a voir si ca t'aidera

----------


## Nheo_

> just en tappant Detection visage yeux dans google
> code detection visage yeux nez bouche
> a voir si le code source t aidera


Merci pour ce lien, et effectivement je l'avais dj parcouru. Mais si je comprends bien son code (je peux me tromper, a m'tonnerai pas  ::mrgreen:: ), il utilise des "modles" pour sa dtection, or moi j'ai juste mon image noir & blanc. Je vais quand mme m'y plonger dedans, mais  premire vue je ne pense pas qu'il ait utilis la mme approche.

----------


## math_lab

Tu peux regarder du cot de l'algorithme Viola & Jones, qui est cens tre rapide et efficace. Comme c'est un peu la galere a programmer, je conseillerai d'utiliser la bibliothque OpenCV qui fourni une implmentation facile a utiliser ainsi que des dtecteurs dj prts pour plusieurs parties du corps humain (dont le visage, les yeux, la bouche).

----------


## Nheo_

> Tu peux regarder du cot de l'algorithme Viola & Jones, qui est cens tre rapide et efficace. Comme c'est un peu la galere a programmer, je conseillerai d'utiliser la bibliothque OpenCV qui fourni une implmentation facile a utiliser ainsi que des dtecteurs dj prts pour plusieurs parties du corps humain (dont le visage, les yeux, la bouche).


Bonjour et merci. Concernant OpenCV, j'y ai dj travaill deu et effectivement il pourrait m'tre utile. Le seul soucis, c'est que je fais mon traitement en PHP (oui je sais, pas trs optimis). 
Lorsqu'un utilisateur envoie une image, je la traite afin de dterminer si elle contient une personne.
J'aimerai pouvoir le faire en PHP, mais ventuellement je me tournerai vers OpenCV et j'inclurai le script dans PHP (mais la aussi, bon courage pour la mise en place d'OpenCV pour PHP  ::(: ).

Je vais regarder Viola&Jones, j'ai dja vu quelques documentations sur cet algorithme il me semble.

----------


## Nheo_

Je viens de regarder comment fonctionne l'algo de Viola & Jones, et il fonctionne galement par apprentissage (trs long, pour cela que j'aimerai l'viter).

J'aimerai trouver un moyen de dtecter les yeux directement sur une image, en utilisant les formes, les couleurs par exemple (je sais bien que le % de russite sera bien plus faible, mais je prends le risque).

----------


## Nheo_

Je crois que j'ai mal exprim mon problme.

On va dire qu'aprs mes traitements d'images j'ai deux "types" diffrents : 
Le premier type d'image reprsente un visage blanc (opaque) avec deux ellipses noirs pour les yeux.
Le second type reprsentera un objet quelconque blanc et peut contenir des taches noirs.

Ce que j'aimerai c'est diffrencier ces deux types d'images afin de dire si c'est un visage ou non.

Bon, aprs je sais pas ce que ca vaut et si les rsultats seront bons  ::aie:: .

----------


## pseudocode

> J'aimerai pouvoir le faire en PHP, mais ventuellement je me tournerai vers OpenCV et j'inclurai le script dans PHP (mais la aussi, bon courage pour la mise en place d'OpenCV pour PHP ).


En cherchant "PHP face detection" dans google, je tombe sur un portage de l'algo en PHP.   ::ccool::

----------


## Nheo_

> En cherchant "PHP face detection" dans google, je tombe sur un portage de l'algo en PHP.


Bonjour,

Oui je l'ai test (si on parle bien du mme) (Face detection in pure PHP) et l'algo n'a dtect aucun visage sur les images dont je dispose pour l'instant. Et d'aprs le code, il ne cherche pas  dtecter les yeux.

J'en avais galement trouv un utilisant OpenCV (avec adaptation  PHP).
Le soucis, c'est que la encore il est dure de s'inspirer du code puisqu'il utilise un systme d'apprentissage.

Oui je sais je suis chiant  ::?:  et malheureusement je n'ai rien trouv en PHP (un peu normal d'ailleurs). De plus, OpenCV utilisant des fonctions propre  lui mme, il est dur d'en adapter les algos. Et les documentations sur lesquelles je me suis inspir ne dtaillent pas l'tape pour la dtection des yeux.

Je pense qu'il est possible de les dtecter grce  leur position : je pensais par exemple les "situer" dans ma forme blanche (reprsentant la tte), et donc de pouvoir dire si cela correspond  l'emplacement des yeux. (Je sais pas si c'est trs clair, mme moi j'ai du mal  me comprendre  ::mrgreen:: ).

----------


## cs_ntd

Comme tu cherche a savoir si une image reprsente grosso-modo une image, j'ai pens que tu pouvais peut etre faire ca :

1) une dtection des contours sur l'image qui t'est soumise. Il existe plein de facon de faire ca, le plus simple et le plus rapide selon moi serait peut etre d'appliquer un filtre passe-bas sur l'image, ou peut etre une convolution...

2) ensuite, compare ce que tu a obtenu avec un contour de rfrence, avec toutes les parties que tu ne souhaite pas comparer en transparence. Je pensais notement a l'interieur du visage : histoire que l'algo ne refuse pas les personnes avec une peau mat ou noire  ::aie:: 

Le but de la partie 2 est d'etablir une distance, ou plusieurs distances, entre les 2 images. Je ne suis pas du tout spcialiste des distances (distance de Haussdorff et cie), mais peut etre que les autres pourront t'aider si ils sont d'accord avec mon ide de base.

----------


## math_lab

Tu n'as pas besoin de te taper la phase d'apprentissage, beaucoup de gens l'ont dj fait et on mis leurs rsultats en ligne. Il y a plus que ce qu'il te faut de fourni avec OpenCV (le programme a juste a charger un fichier xml). 
De plus, que tu cherches a dtecter des yeux, ou un visage entier, ca ne fait aucune diffrence pour le Viola & Jones, tu lui donnes juste les donnes rsultantes de l'apprentissage et il te dit s'il voit quelque chose qui y ressemble.

Apres, si tu veux vraiment pas utiliser cet algo, tu peux essayer un systme a base de descripteurs de formes (genre trouver des ovales pour les yeux dans un grand ovale du qui est le visage), mais ca me semble pas super robuste.

----------


## Nheo_

> Comme tu cherche a savoir si une image reprsente grosso-modo une image, j'ai pens que tu pouvais peut etre faire ca :
> 
> 1) une dtection des contours sur l'image qui t'est soumise. Il existe plein de facon de faire ca, le plus simple et le plus rapide selon moi serait peut etre d'appliquer un filtre passe-bas sur l'image, ou peut etre une convolution...
> 
> 2) ensuite, compare ce que tu a obtenu avec un contour de rfrence, avec toutes les parties que tu ne souhaite pas comparer en transparence. Je pensais notement a l'interieur du visage : histoire que l'algo ne refuse pas les personnes avec une peau mat ou noire 
> 
> Le but de la partie 2 est d'etablir une distance, ou plusieurs distances, entre les 2 images. Je ne suis pas du tout spcialiste des distances (distance de Haussdorff et cie), mais peut etre que les autres pourront t'aider si ils sont d'accord avec mon ide de base.


Je vais essayer de regarder a, mais la comparaison avec une autre image risque d'tre longue (PHP :/), je te tiens au courant.




> Tu n'as pas besoin de te taper la phase d'apprentissage, beaucoup de gens l'ont dj fait et on mis leurs rsultats en ligne. Il y a plus que ce qu'il te faut de fourni avec OpenCV (le programme a juste a charger un fichier xml). 
> De plus, que tu cherches a dtecter des yeux, ou un visage entier, ca ne fait aucune diffrence pour le Viola & Jones, tu lui donnes juste les donnes rsultantes de l'apprentissage et il te dit s'il voit quelque chose qui y ressemble.
> 
> Apres, si tu veux vraiment pas utiliser cet algo, tu peux essayer un systme a base de descripteurs de formes (genre trouver des ovales pour les yeux dans un grand ovale du qui est le visage), mais ca me semble pas super robuste.



J'ai bien compris qu'OpenCV pouvait faire tout ce que je veux en un claquement de doigt ou presque, mais j'aurais aim tout faire en PHP mme si c'est moins robuste, je le conois tout  fait.

Concernant ta 2me solution, c'est tout  fait  a que je pensais, mais je ne vois vraiment pas comment l'implanter.

Comment je peux "dtecter" mon premier ovale blanc ? Et surtout comment effectuer la recherche des ovales noir DANS le blanc ? J'ai vraiment du mal  me le reprsenter.

J'avais dj vu quelques docs sur les "descripteurs", je vais donc me pencher la dessus. Si je vois que je n'obtient pas des rsultats assez rapidement, je me tournerai vers OpenCV  ::aie:: .

----------


## Nheo_

> Comme tu cherche a savoir si une image reprsente grosso-modo une image


Justement, je cherche  dtecter si une image contient une personne ou non (ou plusieurs, peut importe), mais les images peuvent tre totalement diffrentes.

image 1 : personne de face en gros plan.
image 2 : personne debout en arrire plan.

Pour cela que j'essaie de faire une recherche par couleur tout d'abord (comme ca au moins, pas de soucis d'chelle), mais bon il m'arrive de dtecter des objets de la couleur de la peau alors que je ne voudrais pas.

----------


## pseudocode

> Oui je l'ai test (si on parle bien du mme) (Face detection in pure PHP) et l'algo n'a dtect aucun visage sur les images dont je dispose pour l'instant. Et d'aprs le code, il ne cherche pas  dtecter les yeux.


Oui, on parle bien du meme. Je l'ai test rapidement et il a march sur les images que j'ai utilises. 

Effectivement, pour la detection des yeux il faut faire un travail supplmentaire. Mais connaitre l'emplacement des visages est un avantage indniable.

----------


## Nheo_

> Oui, on parle bien du meme. Je l'ai test rapidement et il a march sur les images que j'ai utilises. 
> 
> Effectivement, pour la detection des yeux il faut faire un travail supplmentaire. Mais connaitre l'emplacement des visages est un avantage indniable.


Les images que j'utilise ne prsentent pas des personnes parfaitement de face, peut tre pour cela que l'algo ne marche pas.

Malgr avoir fait encore quelques recherches, je ne vois toujours pas comment "localiser" mes yeux :/. C'est vraiment un casse tte la dtection de visage :o

----------


## ToTo13

Bonjour,

tu as un rsum de tous les derniers algorithmes que tu cherches ici.

----------


## ToTo13

> Je viens de regarder comment fonctionne l'algo de Viola & Jones, et il fonctionne galement par apprentissage (trs long, pour cela que j'aimerai l'viter).
> 
> J'aimerai trouver un moyen de dtecter les yeux directement sur une image, en utilisant les formes, les couleurs par exemple (je sais bien que le % de russite sera bien plus faible, mais je prends le risque).


Viola et au contraire extrmement rapide. C'est lui qui tait (et qui est toujours) implment dans les appareils photos et qui entoure les visages  la vole.
C'est une mthode d'apprentissage derrire, mais qui a dj t entraine.

Si tu regardes l'algoritme Predator qui permet vraisemblablement de dtecter et traquer n'importe quel objet qu'on lui passe, c'est aussi une mthode de boosting.

----------


## pseudocode

> Les images que j'utilise ne prsentent pas des personnes parfaitement de face, peut tre pour cela que l'algo ne marche pas.
> 
> Malgr avoir fait encore quelques recherches, je ne vois toujours pas comment "localiser" mes yeux :/. C'est vraiment un casse tte la dtection de visage :o


Le detecteur de Viola & Jones (VJ) est pourtant trs bien adapt pour ce genre de dtection. Comme on te l'a suggr, tu peux entrainer toi mme le detecteur avec tes propres images (de visages entiers , ou meme seulement des yeux). 

Cette partie d'apprentissage est longue mais elle se fait a priori et une fois pour toute. Tu peux utiliser des logiciels/librairies spcialises pour construire le fichier de configuration du detecteur (=le fichier 'detection.dat' dans le source PHP). Par la suite, tu utilises directement le code PHP existant avec ton propre fichier de configuration.

----------


## Nheo_

> Bonjour,
> 
> tu as un rsum de tous les derniers algorithmes que tu cherches ici.


Merci pour le lien  :;): .
EDIT : Je l'avais visit, et c'est sur site ou j'avais vu la dtection par couleur :p




> Viola et au contraire extrmement rapide. C'est lui qui tait (et qui est toujours) implment dans les appareils photos et qui entoure les visages  la vole.
> C'est une mthode d'apprentissage derrire, mais qui a dj t entraine.
> 
> Si tu regardes l'algoritme Predator qui permet vraisemblablement de dtecter et traquer n'importe quel objet qu'on lui passe, c'est aussi une mthode de boosting.





> Le detecteur de Viola & Jones (VJ) est pourtant trs bien adapt pour ce genre de dtection. Comme on te l'a suggr, tu peux entrainer toi mme le detecteur avec tes propres images (de visages entiers , ou meme seulement des yeux). 
> 
> Cette partie d'apprentissage est longue mais elle se fait a priori et une fois pour toute. Tu peux utiliser des logiciels/librairies spcialises pour construire le fichier de configuration du detecteur (=le fichier 'detection.dat' dans le source PHP). Par la suite, tu utilises directement le code PHP existant avec ton propre fichier de configuration.



Bon, je vais regarder de plus prs ces algorithmes mais je vous avouerais qu'ils me semblent assez difficiles  comprendre.

J'tais en train d'essayer d'implmenter la transforme de Hough pour les ellipses (pour dtecter les yeux), mais de toute faon le temps d'excution en PHP est abominable :/.

Je vais tenter de mieux cerner l'algo de Viola & Jones et je vous tiens au courant.

----------


## maleaume

JE ne suis pas du tout un pro en PHP, mais je pense que rien ne t empeche de faire appelle a un petit programme en C/C++ bcp plus performant en terme de vitesse de traitement, qui te retourne dans un fichier les coordonnes/tailles de ta bouche, de tes yeux  que tu pourrai aller lire  apres depuis ton main programme.

----------


## Nheo_

> JE ne suis pas du tout un pro en PHP, mais je pense que rien ne t empeche de faire appelle a un petit programme en C/C++ bcp plus performant en terme de vitesse de traitement, qui te retourne dans un fichier les coordonnes/tailles de ta bouche, de tes yeux  que tu pourrai aller lire  apres depuis ton main programme.


Oui en effet c'est tout  fait possible, et je pense que je vais faire a, car le temps d'excution est vraiment long avec PHP (en mme temps c'est pas bien recommand de faire du traitement d'image avec PHP :p).

----------


## pseudocode

> Bon, je vais regarder de plus prs ces algorithmes mais je vous avouerais qu'ils me semblent assez difficiles  comprendre.
> 
> (...)
> 
> Je vais tenter de mieux cerner l'algo de Viola & Jones et je vous tiens au courant.


Tu n'as pas besoin de "comprendre" la thorie de l'algorithme. Il faut entrainer le detecteur, c'est  dire :
- construire des images d'exemples avec pour chacune un critre "oui/non" (selon que ca doit tre dtect ou ignor).
- faire tourner un algo d'apprentissage pour gnrer le fichier de parametrage (detection.dat).

Bien sur, c'est intressant de savoir comment fonctionne le detecteur (ca permet notamment de comprendre le format du fichier "detection.dat"  ::D: ).

----------


## Nheo_

> Tu n'as pas besoin de "comprendre" la thorie de l'algorithme. Il faut entrainer le detecteur, c'est  dire :
> - construire des images d'exemples avec pour chacune un critre "oui/non" (selon que ca doit tre dtect ou ignor).
> - faire tourner un algo d'apprentissage pour gnrer le fichier de parametrage (detection.dat).
> 
> Bien sur, c'est intressant de savoir comment fonctionne le detecteur (ca permet notamment de comprendre le format du fichier "detection.dat" ).


Mon but n'est pas de "pomper" un code tout fait, donc j'aimerai bien le comprendre  ::P: . Mais a  l'air assez costaud, donc je vais voir. ::koi::

----------


## Nheo_

En fait j'ai compris le principe : on "apprend" au programme  l'aide d'images, et ensuite il pourra reconnatre si l'image appartient  telle classe ou non ("visage" ou "non visage") : mme principe que les rseaux de neurones ?

Mais j'ai encore du mal  cerner comment un programme peut "apprendre" (l'histoire des poids est encore trs (trs, trs ...) floue)  ::aie:: .

----------


## pseudocode

> En fait j'ai compris le principe : on "apprend" au programme  l'aide d'images, et ensuite il pourra reconnatre si l'image appartient  telle classe ou non ("visage" ou "non visage") : mme principe que les rseaux de neurones ?
> 
> Mais j'ai encore du mal  cerner comment un programme peut "apprendre" (l'histoire des poids est encore trs (trs, trs ...) floue) .


Oui, c'est ca. Le detecteur de VJ utilise 160.000 features (= des motifs positifs/ngatifs dans un quadrillage 24*24). Pour chaque image on a donc un vecteur de 160.000 valeurs. L'apprentissage permet de construire une sorte de perceptron minimal qui diffrencie au mieux les images acceptes/refuses.

Ce perceptron n'utilise au final qu'une petite partie des 160.000 features. 

C'est la raison pour laquelle il est rapide lors de son utilisation : on n'a besoin de calculer les valeurs que pour les features utilises, et il suffit de faire la somme pondre des valeurs pour savoir si l'image est accepte/refuse.

----------


## ToTo13

Bonjour,

pour tre juste un peu plus prcis, les caractristiques utilises sont des ondelettes de Haar (les plus simples et rapides).
Ensuite une il y a une TRES grande quantit de classifieurs faibles (weak classifiers) dont le but est uniquement de dire s'ils pensent que la probabilit qu'un visage se trouve dans un zone (grossire au dbut) est suprieure  0.5.
Si oui, alors on rduit la zone et on applique d'autres classifieurs du mme type.

Le principe de tous ces classifieurs est en fait de faire du boosting (trs  la mode, voir Predator).

----------


## Nheo_

Merci pour les prcisions, je commence  comprendre  ::): . Il faut que je me mette au boulot maintenant et que j'arrive  le faire fonctionner  ::):

----------


## Nheo_

Bonjour, 

Je reviens vers vous aprs avoir tester la dtection avec OpenCV et les fonctions intgres (utilisation de haarcascade[...].xml) et les rsultats sont vraiment ... mdiocres.

Seulement 1 visage / 5 sur mes images de tests sont dtects, la dtection des yeux me donnent n'importe quoi, enfin bref je suis du.

Que dois-je faire pour amliorer a ? Crer mon propre fichier XML ?

Je me demande si c'est possible d'avoir de bons rsultats  ::cry:: .

----------


## pseudocode

> Que dois-je faire pour amliorer a ? Crer mon propre fichier XML ?


Si aucun fichier XML fourni avec OpenCV ou dispo sur Internet ne convient, alors oui, il va falloir que tu entraines toi mme le dtecteur avec tes images.

----------


## Nheo_

> Si aucun fichier XML fourni avec OpenCV ou dispo sur Internet ne convient, alors oui, il va falloir que tu entraines toi mme le dtecteur avec tes images.


Bon je vais regarder a alors. C'est incroyable, plus j'avance et plus j'ai l'impression que je vais jamais y arriver  ::roll:: .

----------


## pseudocode

> Bon je vais regarder a alors. C'est incroyable, plus j'avance et plus j'ai l'impression que je vais jamais y arriver .


Il se peut aussi que tes images soient trop/peu contrastes/lumineuses. Il faut peut tre simplement les galiser avant de lancer la dtection.

----------


## Nheo_

Bonjour,

Me revoil aprs quelques tentatives sous OpenCV. J'ai donc test avec les diffrentes fichiers XML fournis (et plusieurs trouvs sur la toile), mais malheureusement toujours aucun rsultat fiable (j'ai bien videmment essay avec quelques pr-traitements).

Seul mes photos avec des visages en gros plans et de face sont dtects ...

Je ne sais donc plus vers quoi me diriger : les diffrentes photos  tester sont vraiment diffrentes (de face, de profile, juste la tte, personne debout, etc ...).

----------


## Nheo_

Bonjour,

J'aurais besoin de quelques infos.
Je suis actuellement en train de crer mon propre fichier XML pour la dtection de visages : j'ai mes images positives avec les visages, par contre je ne sais pas quelles images utiliser pour les images dites "ngatives" : faut il qu'elles soient ressemblantes  des visages ? ou totalement quelconques ?

Vu qu'il en faut un bon paquet, ou pourrais-je trouver des images  tlcharger ? (les banques d'images proposent le tlchargement  l'unit, et donc a peut devenir trs long ...)

----------


## pseudocode

> J'aurais besoin de quelques infos.
> Je suis actuellement en train de crer mon propre fichier XML pour la dtection de visages : j'ai mes images positives avec les visages, par contre je ne sais pas quelles images utiliser pour les images dites "ngatives" : faut il qu'elles soient ressemblantes  des visages ? ou totalement quelconques ?


Le mieux serait que ces images ngatives reprsentent au mieux l'environnement (background) de tes futurs chantillons.

----------


## Nheo_

> Le mieux serait que ces images ngatives reprsentent au mieux l'environnement (background) de tes futurs chantillons.


Le soucis c'est que j'ai aucune ide des futurs chantillons (un utilisateur upload une image -> je dtecte un visage ou non).

J'arrive pas  trouv une banque d'images que je puisse tlcharger d'un coup (et non image par image). Pas que je sois fainant, mais plusieurs centaines (voir milliers) d'images a fait beaucoup  ::aie:: .

----------


## pseudocode

> Le soucis c'est que j'ai aucune ide des futurs chantillons (un utilisateur upload une image -> je dtecte un visage ou non).
> 
> J'arrive pas  trouv une banque d'images que je puisse tlcharger d'un coup (et non image par image). Pas que je sois fainant, mais plusieurs centaines (voir milliers) d'images a fait beaucoup .


google : test image database  ::ccool:: 

Par exemple, celle-ci  qui comporte une base de "background".

----------


## Nheo_

> google : test image database 
> 
> Par exemple, celle-ci  qui comporte une base de "background".


Merci beaucoup  ::ccool:: . 

J'avais effectu des recherches mais je tombais toujours sur les banques d'images "classiques".

Je vous tiens au courant de l'avancement  ::): .

----------


## Pseudopode

Si tu sais d'avance quelle va tre la taille moyenne des visages dans les photos, tu peux utiliser le code qui est l (http://nashruddin.com/eyetracking-track-user-eye.html) pour obtenir la position des yeux.
Prend une photo de ton propre visage dans la posture approximative des images ultrieures que tu recevras.
Passe l'image en niveau de gris, et et rcupre une image centre autour de ta pupille. Tu sauvegardes cette image comme template.
L'ide est ensuite d'utiliser cvMatchTemplate(). Quand tu as rcupr la bounding box de la tte (par Viola&Jones, par exemple), tu fais un template matching  l'aide de l'image de la pupille (le fait de passer en niveau de gris permet de s'abstraire de la couleur de l'iris. Comme tu auras rduit la zone de recherche  un visage prsum, il y a une chance trs leve que les matches dtectes  l'intrieur de cette zone soient les yeux de la personne...

----------


## Nheo_

Merci Pseudopode pour tes conseils, j'irai voir a quand j'aurai termin la reconnaissance de visage  ::aie:: .
_______________________

J'ai un petit soucis avec la phase d'entrainement :
J'utilise donc le programme opencv_haartraining (aprs avoir construit mes images positives, ngatives, etc ...).
a  l'air de marcher, seulement le programme bloque :
Hier je lance tout se passe bien jusqu'au 'stage' 11 (j'en demande 20).
Aujourd'hui je re-tente l'opration, et paf a bloque au 15.

Pourtant ce n'est pas une erreur de commande : j'ai bien mes fichiers contenant les caractristiques qui sont crs, et la cration du XML fonctionne aussi. Seulement, je n'ai qu'une partie des donnes.

Do peut provenir le blocage ?

----------


## Nheo_

Me revoil. Aprs une 3me tentative cette nuit je dsespre
Cette fois ci, l'entranement me calcule toujours le mme rsultat pour le stage 6 :

Il trouve toujours les mmes valeurs et n'avance donc pas ... Le soucis c'est que je ne sais pas d'o peut venir l'erreur, et surtout quelles informations je dois donner ici pour qu'on puisse m'aider =.=

----------


## pseudocode

> Me revoil. Aprs une 3me tentative cette nuit je dsespre
> Cette fois ci, l'entranement me calcule toujours le mme rsultat pour le stage 6 :
> 
> Il trouve toujours les mmes valeurs et n'avance donc pas ... Le soucis c'est que je ne sais pas d'o peut venir l'erreur, et surtout quelles informations je dois donner ici pour qu'on puisse m'aider =.=


Generalement, si ca bloque, c'est que programme ne trouve pas de "weak classifier" qui permette d'amliorer le dtecteur. En d'autres termes, il lui faut plus d'images 'positives' dans la base d'entrainement.

----------


## Nheo_

> Generalement, si ca bloque, c'est que programme ne trouve pas de "weak classifier" qui permette d'amliorer le dtecteur. En d'autres termes, il lui faut plus d'images 'positives' dans la base d'entrainement.


Heu j'ai 10,000 images positives  ::lol::  (sachant que dans les diffrents documents ils prconisent l'utilisation de 5K images minimum), par contre j'ai moins d'images ngatives. Une trop grande diffrence entre positives/ngatives peut causer un soucis ?

Je prcise qu'avec 1000 images je n'avais pas eu ce soucis, mais avec 10,000 a bloque. 

Le soucis avec l'haartraining c'est le temps ... 12h juste pour se rendre compte qu'il y a un bug ... je risque de mettre un moment  avoir de bons rsultats.

----------


## pseudocode

> Heu j'ai 10,000 images positives  (sachant que dans les diffrents documents ils prconisent l'utilisation de 5K images minimum), par contre j'ai moins d'images ngatives. Une trop grande diffrence entre positives/ngatives peut causer un soucis ?


Je ne sais pas trop. C'est surtout que le programme n'arrive pas  amliorer le classifieur. Peut-tre que tu as trop d'images positives qui se ressemblent. Enfin bref, c'est li  la base d'entrainenement (et surement aussi a des problmes dans le programme de opencv  ::aie:: )

----------


## Nheo_

> Je ne sais pas trop. C'est surtout que le programme n'arrive pas  amliorer le classifieur. Peut-tre que tu as trop d'images positives qui se ressemblent. Enfin bref, c'est li  la base d'entrainenement (et surement aussi a des problmes dans le programme de opencv )


Les programmes fournis par OpenCV ne seraient pas fiables ? a va pas m'aider a  ::aie:: .

Bon j'ai relancer avec les 10k images, on va voir ce que a donne ... Sinon j'essaierai de rduire le nombre d'image positive & augmenter les ngatives.
Plus qu' attendre quelques heures ...  ::zen:: .

----------


## Nheo_

Me re-voil !

Alors, j'ai relancer mon petit entranement avec 5K positives et 500 ngatives seulement.

La dtection est pas trop mal mais j'ai normment de faux positifs. Il va falloir donc que je trouve plus d'images ngatives.

a va tre dur de trouver 5k images ngatives mais bon, je ne dsespre pas.

----------


## Pseudopode

Pour gnrer des images ngatives, tu peux concatner des morceaux d'autres images ngatives, pour augmenter le pool...

----------


## Nheo_

> Pour gnrer des images ngatives, tu peux concatner des morceaux d'autres images ngatives, pour augmenter le pool...


Ouai mais, puisque se sont des parties d'images qui servent dj, a ne va pas amliorer la dtection si ?

J'ai trouv quelques centaines d'autres images, je vais tester et je vous tiens au courant.

----------


## Nheo_

Me revoil, avec toujours des rsultats moisis ...

J'ai toujours du mal avec mes images ngatives. J'ai essay avec des textures, un peu plus de 4000, mais la encore les rsultats sont nuls. Je dtecte pas les visages (ou trs rarement), mais par contre je dtecte des trucs qui n'ont rien  voir, et qui ne prsentent mme pas les caractristiques d'un visage.

Je ne sais vraiment plus quoi essayer, surtout que le temps d'apprentissage, est vraiment trs long (plusieurs jours parfois ...) je ne peux donc pas effectuer 50tests :/.

----------

