Accueil > Forum > Informatique > Programmation > Un probleme sur Face tracking(SOS!!!)

Un probleme sur Face tracking(SOS!!!)

✔ Ce sujet est résolu
Fabrice911 Fabrice911 7 Messages
Bonjour, j'ai un petit problème lors de exécution du programme (Face tracking : implémentation de la méthode de Viola & Jones en C++):
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Null pointer (Invalid classifier cascade) in cvHaarDetectObjectsForROC, file /home/yihao/opencv-2.4.11/modules/objdetect/src/haar.cpp, line 1514
terminate called after throwing an instance of 'cv::Exception'
what(): /home/yihao/opencv-2.4.11/modules/objdetect/src/haar.cpp:1514: error: (-27) Invalid classifier cascade in function cvHaarDetectObjectsForROC
merci d'avance!!!
lobodol lobodol 453 Messages BIG BOSS
Salut, à en juger par le message d'erreur que tu obtiens, il semblerait que le classifier que tu tente de charger ne soit pas bon.

Il est possible que ce soit parce que le fichier en question n'est pas un classifier valide ou encore parce que le path vers ce fichier est incorrecte.
Peux-tu mettre le message d'erreur entre balises [code]ton code ici[/code] stp (plus facile pour la lecture) ? Merci.

On peut voir ton code aussi ? (place-le également entre balises stp).
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
Fabrice911 Fabrice911 7 Messages
Bonjour,

Voici le code d'erreur que j'obtiens :

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Null pointer (Invalid classifier cascade) in cvHaarDetectObjectsForROC, file /home/yihao/opencv-2.4.11/modules/objdetect/src/haar.cpp, line 1514
terminate called after throwing an instance of 'cv::Exception'
what(): /home/yihao/opencv-2.4.11/modules/objdetect/src/haar.cpp:1514: error: (-27) Invalid classifier cascade in function cvHaarDetectObjectsForROC



J'utilise le code donner sur le site :

/*
* FaceDetect.cpp
 *
 *  Created on: Mar 11, 2015
 *      Author: yihao
 */
/*------------------------------------------------*/
#include <stdio.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv/cxcore.h>
/*------ Declaration des variables globales ------*/
char key;
CvHaarClassifierCascade *cascade;
CvMemStorage *storage;
/*---------- Declaration des fonctions -----------*/
void detectFaces(IplImage *img);
/*------------------------------------------------*/
int main(void)
{
    /* Declaration des variables */
    CvCapture *capture;
    IplImage *img;
    const char *filename = "/home/workspace/FaceDetect/src/haarcascade_frontalface_alt.xml";

    /* Chargement du classifieur */
    cascade = (CvHaarClassifierCascade*)cvLoadHaarClassifierCascade( filename, cvSize(24, 24) );

    /* Ouverture du flux video de la camera */
    capture = cvCreateCameraCapture(-1);

    // Ouverture d'un fichier video
    //capture = cvCreateFileCapture("/home/download/video.mp4");

    /* Initialisation de l'espace memoire */
    storage = cvCreateMemStorage(0);

    /* Creation d'une fenetre */
    cvNamedWindow("Window-FT", 1);

    /* Boucle de traitement */
    while(key != 'q')
    {
        img = cvQueryFrame(capture);
        detectFaces(img);
        key = cvWaitKey(10);
    }

    /* Liberation de l'espace memoire*/
    cvReleaseCapture(&capture);
    cvDestroyWindow("Window-FT");
    cvReleaseHaarClassifierCascade(&cascade);
    cvReleaseMemStorage(&storage);

    return 0;
}
/*------------------------------------------------*/
void detectFaces(IplImage *img)
{
    /* Declaration des variables */
    int i;
    CvSeq *faces = cvHaarDetectObjects(img, cascade, storage, 1.1, 3, 0, cvSize(40,40));

    for(i=0; i<(faces?faces->total:0); i++)
    {
        CvRect *r = (CvRect*)cvGetSeqElem(faces, i);
        cvRectangle(img, cvPoint(r->x, r->y), cvPoint(r->x + r->width, r->y + r->height), CV_RGB(255, 0, 0), 1, 8, 0);
    }

    cvShowImage("Window-FT", img);
}

Je vais essayer de relancer le programme avec un autre classifier
lobodol lobodol 453 Messages BIG BOSS
D'après moi le problème se situe ligne 24. Es-tu sûr que ton fichier haarcascade_frontalface_alt.xml existe bien à l'emplacement indiqué ?
Dans un premier temps, donne un nom plus simple au fichier et place-le directement dans /home :
const char *filename = "/home/haar.xml";


[EDIT] question toute bête : tu es bien sous Linux ?
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
Fabrice911 Fabrice911 7 Messages
Mais en fait le problème encore.

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Null pointer (Invalid classifier cascade) in cvHaarDetectObjectsForROC, file /home/yihao/opencv-2.4.11/modules/objdetect/src/haar.cpp, line 1514
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/yihao/opencv-2.4.11/modules/objdetect/src/haar.cpp:1514: error: (-27) Invalid classifier cascade in function cvHaarDetectObjectsForROC


je sais pas le problème, c'est a cause de linux ou le code .
Fabrice911 Fabrice911 7 Messages
Message modéré par un admin. Motif :
Liens vers une image incorrect.
lobodol lobodol 453 Messages BIG BOSS
Pour insérer une image il faut d'abord que tu l'uplaod quelque part et ensuite tu insère l'url du fichier uplaodé.

Ton classifier tu l'as chopé où, sur l'article ?
Tu as bien enregistré le fichier et pas juste fais un copié collé ?
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
lobodol lobodol 453 Messages BIG BOSS
Je viens de me rendre compte que ce sujet n'est pas au bon endroit. Je le déplace.
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
Fabrice911 Fabrice911 7 Messages
le classifier , j'ai chope sur l'article et si ça marche après je vais traduire en java.
MkX3o0x


[url=]https://picasaweb.google.com/109389730081022420719/ProfilePhotos#6128251439862305858[/url]
lobodol lobodol 453 Messages BIG BOSS
Bon, comme je sens que ça va durer une plombe, tu va répondre précisément à ces questions :
1. Que te retourne la commande shell suivante :
ls /home


2. Tu dis que tu a chopé le classifieur sur le site : tu as bien fais Enregistrer et pas un simple copié collé du texte qui apparaissait ?

3. Tu as du te planter dans l'insertion de ton image. Il faut que tu mette l'URL de ton image entre balises [img][/img] et bien évidemment que cet URL corresponde à un fichier image.

4. Sur une échelle de 1 à 10, tu te situe où en terme de programmation C et shell Linux ?
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
Fabrice911 Fabrice911 7 Messages
Merci beaucoup, j'ai réussi la. A cause de
const char *filename = "/home/yihao/haar.xml"; 
lobodol lobodol 453 Messages BIG BOSS
C'était le fichier qui n'était pas au bon endroit c'est ça ?
Pense à mettre ton sujet en Résolu à l'aide du bouton en haut de page
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
Vous devez être connecté pour pouvoir répondre à ce sujet.