:/sorry mais je ne suis pas développeur:
mon projet:détecter la fermeture et l'ouverture des yeux
visage sur écran lecture webcam ou camera
je rame dessus depuis quelques temps.
Donc suivant le tutorial de Peter Kirn sur createdigitalmotion.com et d'autres
j'ai repris la détection sous Open cv du visage :impeccable le rectangle apparait,cadrant le visage
Pour la détection des yeux j'utilise la meme librarie mais le résultat n'est pas probant:les rectangles s'affichent une fois sur deux.
si vous avez des pistes à me proposer pour améliorer ça....
Hors ligne
Yop,
Après vérification, je crois qu'opencv ne gère pas la détection des yeux - juste visage et silhouette d'après ces noms de fichiers trouvés dans la doc, je pense que c'est basé sur des sets d'exemples.
CASCADE_FRONTALFACE_ALT Standard Haar classifier cascade file used for object detection
CASCADE_FRONTALFACE_ALT2 Standard Haar classifier cascade file used for object detection
CASCADE_FRONTALFACE_ALT_TREE Standard Haar classifier cascade file used for object detection
CASCADE_FRONTALFACE_DEFAULT Standard Haar classifier cascade file used for object detection
CASCADE_FULLBODY Standard Haar classifier cascade file used for object detection
CASCADE_LOWERBODY Standard Haar classifier cascade file used for object detection
CASCADE_PROFILEFACE Standard Haar classifier cascade file used for object detection
CASCADE_UPPERBODY Standard Haar classifier cascade file used for object detection
Hors ligne
Mais apparemment, il y a des exemples avec les yeux :
http://www.codeproject.com/KB/library/eyes.aspx
http://nashruddin.com/OpenCV_Eye_Detection
Je crois pas que ce soit fait en java/processing, mais tu peux toujours changer de langage ou regarder si c'est adaptable
Hors ligne
je suis tombé sur ça.. j'ai pas vraiment regardé en détail, mais peut être y trouveras-tu des pistes..
http://thirtysixthspan.com/openEyes/software.html
Hors ligne
22_79 a écrit:
Après vérification, je crois qu'opencv ne gère pas la détection des yeux
je suis pas du tout expérimenté en la matière mais à mon avis opencv il gère la détection d'à peut près n'importe quoi à partir du moment ou on lui donne un modèle 'type' de ce qu'il faut détecter...
Hors ligne
Yep ... je faisais référence à la librairie processing qui ne me semble pas disposer d'un set d'apprentissage avec des yeux cf ci-dessus.
Hors ligne
oups merçi 22_79 j'ai déjà une amélioration concernant la détection des yeux:il suffit que l'image ne soit pas trop petite grace au site de Nash Rudin
_de fait j'ai dans mon dossier data d'Opencv sous processing un fichier xml haarcascades-eyes donc il doit il ya avoir quelque chose à voir de ce coté......
_ sur la base du travail effectué par Kim ,les yeux étant localisés ,je veux pouvoir maintenant déterminé l'iris.....
je retranscris le code:
import hypermedia.video.*;
OpenCV opencv;
// contrast/brightness values
int contrast_value = 0;
int brightness_value = 0;
void setup() {
size( 640, 480 );
opencv = new OpenCV( this );
opencv.capture( width, height );
// open video stream
opencv.cascade( OpenCV.CASCADE_FRONTALFACE_ALT );
// load detection description, here-> front face detection : "haarcascade_frontalface_alt.xml" opencv.cascade( "C:\\Program Files\\OpenCV\\data\\haarcascades\\haarcascade_frontalface_alt.xml" );
// print usage
println( "Drag mouse on X-axis inside this sketch window to change contrast" );
println( "Drag mouse on Y-axis inside this sketch window to change brightness" );
}
public void stop() {
opencv.stop();
super.stop();
}
void draw() {
// grab a new frame
// and convert to gray
opencv.cascade( "C:\\Program Files\\OpenCV\\data\\haarcascades\\haarcascade_frontalface_alt.xml" );
opencv.read();
opencv.convert( GRAY );
opencv.contrast( contrast_value );
opencv.brightness( brightness_value );
// display the image
image( opencv.image(), 0, 0 );
// draw face area(s)
noFill();
stroke(255,0,0);
// proceed face detection
Rectangle[] faces = opencv.detect( 1.2, 2, OpenCV.HAAR_DO_CANNY_PRUNING, 40, 40 );
if ( faces.length > 0 ) {
opencv.ROI( faces[0].x, faces[0].y+(faces[0].height/5), faces[0].width, faces[0].height/3 );
opencv.cascade( "C:\\Program Files\\OpenCV\\data\\haarcascades\\haarcascade_eye.xml");
Rectangle[] eyes = opencv.detect();
opencv.ROI(null);
for( int i=0; i<faces.length; i++ ) {
rect( faces[i].x, faces[i].y, faces[i].width, faces[i].height );
}
stroke(0,255,0);
fill(0);
for( int i=0; i<eyes.length; i++ ) {
rect( eyes[i].x+faces[0].x, eyes[i].y+faces[0].y+(faces[0].height/5), eyes[i].width, eyes[i].height );
}
}
delay(100);
}
/** * Changes contrast/brigthness values */
void mouseDragged() {
contrast_value = (int) map( mouseX, 0, width, -128, 128 );
brightness_value = (int) map( mouseY, 0, width, -128, 128 );
}
Hors ligne
Pages: 1