DÉTECTION DE VISAGE (YEUX, NEZ, BOUCHE) AVEC OPENCV EN TEMPS RÉEL
nadin1307
Messages postés1Date d'inscriptionsamedi 26 janvier 2008StatutMembreDernière intervention15 octobre 2010
-
15 oct. 2010 à 00:15
afefdouziafef -
5 mai 2013 à 01:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Bonjour
quand j'exécute le code de code source détection yeux bouche nez il mm'affiche toujours ce messages: 1>c:\users\poste\documents\visual studio 2010\projects\vendredi\vendredi.cpp(3): fatal error C1010: fin de fichier inattendue lors de la recherche d'un en-tête précompilé. N'auriez-vous pas oublié d'ajouter '#include "StdAfx.h"' à votre source ?
mon environnement de travail: Windows 7 , Visual studio 2010 , opencv 2.3.1
merci
mhkh
Messages postés1Date d'inscriptionsamedi 16 juin 2012StatutMembreDernière intervention16 juin 2012 16 juin 2012 à 23:45
SVP qu'elles sont les étapes pour le compilé et comment faire pour créer un répertoire
data/haarcascades/ et y ajouter toutes les cascades d'OpenCV ??
redvella
Messages postés19Date d'inscriptiondimanche 13 décembre 2009StatutMembreDernière intervention25 février 2013 23 mai 2012 à 15:35
Bonjour,
j'ai utilisé votre code mais malhereusement il ne marche pas, il m'affiche erreur en include "lib/webcome.h"
pouvez vous m'aidez SVP à resoudre ce problème
Merci
dania511
Messages postés3Date d'inscriptionvendredi 5 avril 2013StatutMembreDernière intervention 2 mai 2012 24 mars 2012 à 11:27
salut , j'ai un problème au niveau de l'installation de l'opencv2.3.0.
lorsque je compile, je reçois un message "opencv_highgui230d.dll not found, malgré que j'ai bien ajouter C:\OpenCV2.3\build\x86\vc9\bin à l'environment path,et aussi j'ai vérifier l'existence de"opencv_highgui230d.dll" . aidez-moi s'il vous plait !!!!
ttjtheo
Messages postés4Date d'inscriptionmardi 30 avril 2013StatutMembreDernière intervention30 avril 2013 3 mars 2012 à 15:51
salut
je suis novice en opencv et ayant lus le tutoriel sur la face detection je crois n'avoir pas compris a quoi serve certaine ligne de code pour la realisation della face detection, come par exemple celle ci:1) vector<Rect> facesRect;
2)vector<Face*>* faces = new vector<Face*>();
jai des doutes mais ces vecteur servent a sauvegarder temporairement en memoire les images qui seront traiter par la fonction de classification?
en plus la fonction "detectMultiScale" serait elle la mm que celle utilise dans la version opencv 2.1 c.a.d "cvHaarDetectObjects "?
merci d'avance pour l'aide
didoumila
Messages postés1Date d'inscriptionvendredi 28 octobre 2011StatutMembreDernière intervention 8 février 2012 8 févr. 2012 à 07:41
bonjour
je travaille sous code blocks et opencv 2.2 (sous win);j'ai télécharger le zip mais je n'arrive pas à le compiler et j' ai l'erreur suivante E:\c++\cppfrance_DETECTION-VISAGE-YEUX-NEZ-BOUCHE-AVEC-OPENCV-TEMPS___Page\lib\Webcam.h|20|error: extra qualification 'Webcam::' on member 'getImage'|
merci de m'aider
marwamaissa
Messages postés1Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention10 février 2011 10 févr. 2011 à 12:54
bonjour,
pour ma part, la compilation est vrai, mais quand je passe à l'exécution une erreur est trouvé dans le fichier Webcam.cpp à la ligne 24 : frame = iplImg; !!!!!!!!
je crois que le deux types de donnée frame et iplImg ne sont pas compatibles, est ce que ce vrai ou non ???
cs_Warrior9
Messages postés4Date d'inscriptionmercredi 26 janvier 2011StatutMembreDernière intervention 2 février 2011 2 févr. 2011 à 15:17
Salut,
J'ai un amis qui a testé tes sources sur sa machine.
Il a l'erreur suivante : ( je ne voie pas trop )
main.cpp: In function ‘int main(int, const char**)’:
main.cpp:91: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
main.cpp:96: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
main.cpp:103: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
main.cpp:110: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
Une idées ?
Merci d'avance
cs_Warrior9
Messages postés4Date d'inscriptionmercredi 26 janvier 2011StatutMembreDernière intervention 2 février 2011 31 janv. 2011 à 21:59
Salut,
Ok merci je vais voir sa.
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 31 janv. 2011 à 21:43
Non je ne vois pas trop, dans ce cas je te conseille d'essayer avec l'exemple de base d'openCV, on ne sait jamais.
cs_Warrior9
Messages postés4Date d'inscriptionmercredi 26 janvier 2011StatutMembreDernière intervention 2 février 2011 31 janv. 2011 à 21:40
Salut,
Merci sa fonctionne maintenant. J'ai pas les .xml avec ma version opencv .....
J'ai adapter pour le faire sur une image passée en paramètre. Avec un visage en 418x508 px en png sa fonctionne bien aussi.
J'ai testé avec un visage bien cadré de la base ORL face database. Mais sa ne fonctionne pas.
Pour infos les images sont de types : The size of each image is 92x112, 8-bit grey levels.
Tu vois d'où pourrai venir le problème ?
Merci d'avance
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 31 janv. 2011 à 21:01
Ces fichiers contiennent les définitions des parties du visage à détecter. Tu peux les trouver dans OpenCV.
cs_Warrior9
Messages postés4Date d'inscriptionmercredi 26 janvier 2011StatutMembreDernière intervention 2 février 2011 31 janv. 2011 à 20:10
Bonjour,
J'ai compiler avec la commande :
g++ -o dect main.cpp Detection.cpp Face.cpp Webcam.cpp -lcv -lhighgui
Sa compile mais lorsque je lance dect j'ai une fenêtre qui se lance avec le flux video de la webcam mais à un moment j'ai des erreurs :
Lancement 1:
ERROR: Could not load face cascade
ERROR: Could not load eyes cascade
ERROR: Could not load eyes cascade 2
ERROR: Could not load mouth cascade
ERROR: Could not load nose cascade
Erreur de segmentation
Lancement 2:
ERROR: Could not load face cascade
ERROR: Could not load eyes cascade
ERROR: Could not load eyes cascade 2
ERROR: Could not load mouth cascade
ERROR: Could not load nose cascade
Corrupt JPEG data: 5 extraneous bytes before marker 0xd6
Je suis novice en OpenCV. Mais je me demande a quoi servent ces .xml ( que j'ai pas ).
String cascadeNameFace = "data/haarcascades/haarcascade_frontalface_alt.xml";
String cascadeNameEyes = "data/haarcascades/haarcascade_eye.xml";
String cascadeNameEyes2 = "data/haarcascades/haarcascade_eye_tree_eyeglasses.xml";
String cascadeNameMouth = "data/haarcascades/haarcascade_mcs_mouth.xml";
String cascadeNameNose = "data/haarcascades/haarcascade_mcs_nose.xml";
Merci d'avance pour ton aide.
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009 10 déc. 2010 à 04:00
vadech
Messages postés8Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention13 novembre 2005 10 déc. 2010 à 00:26
Bonjour,
j'essai d'utiliser votre source mais impossible de linker.
Je ne comprend pas pkoi.
Voici le log:
g++ main.cpp -Wall -lserial -o go `pkg-config --cflags opencv` `pkg-config --libs opencv`
/tmp/cc8SlkML.o: In function `main':
main.cpp:(.text+0x40): undefined reference to `Webcam::Webcam()'
main.cpp:(.text+0x69): undefined reference to `Detection::Detection()'
main.cpp:(.text+0xc7): undefined reference to `Webcam::getImage(cv::Mat&)'
main.cpp:(.text+0xdc): undefined reference to `Detection::detectFaces(cv::Mat&)'
main.cpp:(.text+0x25f): undefined reference to `Face::getRect()'
main.cpp:(.text+0x361): undefined reference to `Face::hasEyes()'
main.cpp:(.text+0x37a): undefined reference to `Face::getLeftEye()'
main.cpp:(.text+0x3b2): undefined reference to `Face::getRightEye()'
main.cpp:(.text+0x3f6): undefined reference to `Face::hasMouth()'
main.cpp:(.text+0x40f): undefined reference to `Face::getMouth()'
main.cpp:(.text+0x447): undefined reference to `Face::hasNose()'
main.cpp:(.text+0x460): undefined reference to `Face::getNose()'
collect2: ld returned 1 exit status
make: *** [all] Erreur 1
Merci d'avance pour votre aide.
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 9 déc. 2010 à 11:30
Ah peut être. Après ça dépend peut être du fichier haarcascade utilisé. J'ai aussi modifié l'algorithme utilisé par défaut dans l'exemple lors de l'appel à la fonction de détection, car celui que j'utilise est plus rapide (peut être que ça change ça aussi).
Content que ça marche en tout cas.
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009 9 déc. 2010 à 06:18
bref laissons la compilation je vais faire un copier coller du main.cpp.
sinon comment tu fais pour avoir aussi peu de faux visage?
est-ce parceque tu n'utilises pas la fonction cvHaarDetectObjects? en effet c'est celle que moi j'utilise et honetement j'ai tres trop souvent des truc detecte qui n'ont rien avoir avec des faces.
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009 9 déc. 2010 à 06:11
currieusement j'ai pas eu de main.cpp dans le zip :)
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 8 déc. 2010 à 10:18
Il y'a un main dans main.cpp ? (je ne suis pas sur de te suivre)
Concernant le Webcam::, je crois que c'est un réflexe d'autre langage, et de ce que j'ai compris c'est autorisé sur d'anciennes versions de g++, donc c'est pour ça que je n'ai pas eu d'erreur. Je corrigerai ça quand j'aurai le temps de me remettre sur le projet.
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009 8 déc. 2010 à 09:29
maintenant je me rend compte qu'il y avait pas de main.
et justement pourquoi avoir mis un Webcam:: dans la definition de la class?
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 7 déc. 2010 à 11:20
Et si tu retires "Webcam::" ?
lilington
Messages postés158Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention12 mars 2009 7 déc. 2010 à 08:48
bon la compilation sous linux avec gcc donne l'erreure suivante:
In file included from Webcam.cpp:8:0:
Webcam.h:20:7: error: extra qualification ‘Webcam::’ on member ‘getImage’
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 11 nov. 2010 à 10:31
Attention ici il s'agit de la dernière version d'OpenCV (2.2 je crois), et les noms des librairies ont changés.
(enfin je pense que ce code reste compatible à condition de renommer les include je pense).
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 11 nov. 2010 à 09:08
Les parametres passés à g++ me smeblesn étrange... Perso, sous linux, je compile mes progs opencv comme ça:
gcc main.cpp -lstdc++ -lm -lcv -lhighgui -lcvaux
Dans la version de THOB31, on dirait qu'il manque les ldflags...
thob31
Messages postés17Date d'inscriptionmercredi 20 janvier 2010StatutMembreDernière intervention21 février 2012 20 oct. 2010 à 18:28
Oui, c'est bizarre, pourtant, tout les samples marchent, je ne comprend pas...
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 20 oct. 2010 à 18:15
Il semble que toutes les erreurs viennent d'OpenCV. C'est seulement dans les dernières lignes qu'il y'a 4 erreurs dans main.cpp, qui correspondent à l'appel d'une fonction opencv.
Je ne pense pas que ça vienne du code dans ce cas.
thob31
Messages postés17Date d'inscriptionmercredi 20 janvier 2010StatutMembreDernière intervention21 février 2012 20 oct. 2010 à 17:51
J'obtiens des erreurs lors de la compilation (j'ai ajouté tout les fichiers d'OpenCV nécessaires), voici le log ( sous dev-c++ ) :
5 mai 2013 à 01:47
What is the solution?
24 mars 2013 à 14:24
svp je suis un étudient et je besoin de code source de détection des doigts de la main avec open cv ou c++
17 févr. 2013 à 12:31
quand j'exécute le code de code source détection yeux bouche nez il mm'affiche toujours ce messages: 1>c:\users\poste\documents\visual studio 2010\projects\vendredi\vendredi.cpp(3): fatal error C1010: fin de fichier inattendue lors de la recherche d'un en-tête précompilé. N'auriez-vous pas oublié d'ajouter '#include "StdAfx.h"' à votre source ?
mon environnement de travail: Windows 7 , Visual studio 2010 , opencv 2.3.1
merci
16 juin 2012 à 23:45
data/haarcascades/ et y ajouter toutes les cascades d'OpenCV ??
23 mai 2012 à 15:35
j'ai utilisé votre code mais malhereusement il ne marche pas, il m'affiche erreur en include "lib/webcome.h"
pouvez vous m'aidez SVP à resoudre ce problème
Merci
24 mars 2012 à 11:27
lorsque je compile, je reçois un message "opencv_highgui230d.dll not found, malgré que j'ai bien ajouter C:\OpenCV2.3\build\x86\vc9\bin à l'environment path,et aussi j'ai vérifier l'existence de"opencv_highgui230d.dll" . aidez-moi s'il vous plait !!!!
3 mars 2012 à 15:51
je suis novice en opencv et ayant lus le tutoriel sur la face detection je crois n'avoir pas compris a quoi serve certaine ligne de code pour la realisation della face detection, come par exemple celle ci:1) vector<Rect> facesRect;
2)vector<Face*>* faces = new vector<Face*>();
jai des doutes mais ces vecteur servent a sauvegarder temporairement en memoire les images qui seront traiter par la fonction de classification?
en plus la fonction "detectMultiScale" serait elle la mm que celle utilise dans la version opencv 2.1 c.a.d "cvHaarDetectObjects "?
merci d'avance pour l'aide
8 févr. 2012 à 07:41
je travaille sous code blocks et opencv 2.2 (sous win);j'ai télécharger le zip mais je n'arrive pas à le compiler et j' ai l'erreur suivante E:\c++\cppfrance_DETECTION-VISAGE-YEUX-NEZ-BOUCHE-AVEC-OPENCV-TEMPS___Page\lib\Webcam.h|20|error: extra qualification 'Webcam::' on member 'getImage'|
merci de m'aider
10 févr. 2011 à 12:54
pour ma part, la compilation est vrai, mais quand je passe à l'exécution une erreur est trouvé dans le fichier Webcam.cpp à la ligne 24 : frame = iplImg; !!!!!!!!
je crois que le deux types de donnée frame et iplImg ne sont pas compatibles, est ce que ce vrai ou non ???
2 févr. 2011 à 15:17
J'ai un amis qui a testé tes sources sur sa machine.
Il a l'erreur suivante : ( je ne voie pas trop )
g++ -o dect main.cpp Detection.cpp Face.cpp -lcv -lhighgui
main.cpp: In function ‘int main(int, const char**)’:
main.cpp:91: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
main.cpp:96: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
main.cpp:103: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
main.cpp:110: error: conversion from ‘cv::Rect_’ to non-scalar type ‘cv::Point’ requested
Une idées ?
Merci d'avance
31 janv. 2011 à 21:59
Ok merci je vais voir sa.
31 janv. 2011 à 21:43
31 janv. 2011 à 21:40
Merci sa fonctionne maintenant. J'ai pas les .xml avec ma version opencv .....
J'ai adapter pour le faire sur une image passée en paramètre. Avec un visage en 418x508 px en png sa fonctionne bien aussi.
J'ai testé avec un visage bien cadré de la base ORL face database. Mais sa ne fonctionne pas.
Pour infos les images sont de types : The size of each image is 92x112, 8-bit grey levels.
Tu vois d'où pourrai venir le problème ?
Merci d'avance
31 janv. 2011 à 21:01
31 janv. 2011 à 20:10
J'ai compiler avec la commande :
g++ -o dect main.cpp Detection.cpp Face.cpp Webcam.cpp -lcv -lhighgui
Sa compile mais lorsque je lance dect j'ai une fenêtre qui se lance avec le flux video de la webcam mais à un moment j'ai des erreurs :
Lancement 1:
ERROR: Could not load face cascade
ERROR: Could not load eyes cascade
ERROR: Could not load eyes cascade 2
ERROR: Could not load mouth cascade
ERROR: Could not load nose cascade
Erreur de segmentation
Lancement 2:
ERROR: Could not load face cascade
ERROR: Could not load eyes cascade
ERROR: Could not load eyes cascade 2
ERROR: Could not load mouth cascade
ERROR: Could not load nose cascade
Corrupt JPEG data: 5 extraneous bytes before marker 0xd6
Je suis novice en OpenCV. Mais je me demande a quoi servent ces .xml ( que j'ai pas ).
String cascadeNameFace = "data/haarcascades/haarcascade_frontalface_alt.xml";
String cascadeNameEyes = "data/haarcascades/haarcascade_eye.xml";
String cascadeNameEyes2 = "data/haarcascades/haarcascade_eye_tree_eyeglasses.xml";
String cascadeNameMouth = "data/haarcascades/haarcascade_mcs_mouth.xml";
String cascadeNameNose = "data/haarcascades/haarcascade_mcs_nose.xml";
Merci d'avance pour ton aide.
10 déc. 2010 à 04:00
g++ main.cpp lib/Webcam.c lib/leshautres.c -Wall -lserial -o go `pkg-config --cflags opencv` `pkg-config --libs opencv`
10 déc. 2010 à 00:26
j'essai d'utiliser votre source mais impossible de linker.
Je ne comprend pas pkoi.
Voici le log:
g++ main.cpp -Wall -lserial -o go `pkg-config --cflags opencv` `pkg-config --libs opencv`
/tmp/cc8SlkML.o: In function `main':
main.cpp:(.text+0x40): undefined reference to `Webcam::Webcam()'
main.cpp:(.text+0x69): undefined reference to `Detection::Detection()'
main.cpp:(.text+0xc7): undefined reference to `Webcam::getImage(cv::Mat&)'
main.cpp:(.text+0xdc): undefined reference to `Detection::detectFaces(cv::Mat&)'
main.cpp:(.text+0x25f): undefined reference to `Face::getRect()'
main.cpp:(.text+0x361): undefined reference to `Face::hasEyes()'
main.cpp:(.text+0x37a): undefined reference to `Face::getLeftEye()'
main.cpp:(.text+0x3b2): undefined reference to `Face::getRightEye()'
main.cpp:(.text+0x3f6): undefined reference to `Face::hasMouth()'
main.cpp:(.text+0x40f): undefined reference to `Face::getMouth()'
main.cpp:(.text+0x447): undefined reference to `Face::hasNose()'
main.cpp:(.text+0x460): undefined reference to `Face::getNose()'
collect2: ld returned 1 exit status
make: *** [all] Erreur 1
Merci d'avance pour votre aide.
9 déc. 2010 à 11:30
Content que ça marche en tout cas.
9 déc. 2010 à 06:18
sinon comment tu fais pour avoir aussi peu de faux visage?
est-ce parceque tu n'utilises pas la fonction cvHaarDetectObjects? en effet c'est celle que moi j'utilise et honetement j'ai tres trop souvent des truc detecte qui n'ont rien avoir avec des faces.
9 déc. 2010 à 06:11
8 déc. 2010 à 10:18
Concernant le Webcam::, je crois que c'est un réflexe d'autre langage, et de ce que j'ai compris c'est autorisé sur d'anciennes versions de g++, donc c'est pour ça que je n'ai pas eu d'erreur. Je corrigerai ça quand j'aurai le temps de me remettre sur le projet.
8 déc. 2010 à 09:29
et justement pourquoi avoir mis un Webcam:: dans la definition de la class?
7 déc. 2010 à 11:20
7 déc. 2010 à 08:48
In file included from Webcam.cpp:8:0:
Webcam.h:20:7: error: extra qualification ‘Webcam::’ on member ‘getImage’
11 nov. 2010 à 10:31
(enfin je pense que ce code reste compatible à condition de renommer les include je pense).
11 nov. 2010 à 09:08
gcc main.cpp -lstdc++ -lm -lcv -lhighgui -lcvaux
Dans la version de THOB31, on dirait qu'il manque les ldflags...
20 oct. 2010 à 18:28
20 oct. 2010 à 18:15
Je ne pense pas que ça vienne du code dans ce cas.
20 oct. 2010 à 17:51
http://thobworld.com/log_compilation.txt
20 oct. 2010 à 04:16
19 oct. 2010 à 12:08
19 oct. 2010 à 11:18
19 oct. 2010 à 09:34
19 oct. 2010 à 08:45
Pour ma part, je n'arrive pas à compiler sous windows, les erreurs viendraient de la lib OpenCv...