IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

SVM : apprentissage et détection


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut SVM : apprentissage et détection
    Bonjour,
    Je voudrais utiliser SVM pour faire un apprentissage.
    Pourriez-vous m'aider ? merci

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut Opencv svm
    salut
    je suis passé par plusieurs documents sur la façon d'utiliser LIBSVM de formation et de classification. Mais je suis incapable d'appliquer ces méthodes de formation. S'il vous plaît m'aider à résoudre ce problème.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut Erreur SVM
    Bonjour,

    J'essaie de compiler le projet:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include <cv.h>
    #include <highgui.h>
    #include <ml.h>
    #include <stdio.h>
     
     
    int
    main (int argc, char **argv)
    {
      int i, j, ii, jj;
      int width = 28, height = 30;
      int image_dim = width * height;
      int pimage_num = 1;
      int nimage_num = 1;
      int all_image_num = pimage_num + nimage_num;
      IplImage *img_org;
      IplImage *sample_img;
      int res[all_image_num];
      float data[all_image_num * image_dim];
      CvMat data_mat, res_mat;
      CvTermCriteria criteria;
      CvSVM svm = CvSVM ();
      CvSVMParams param;
      char filename[64];
     
      for (i = 0; i < pimage_num; i++) {
        sprintf (filename, "positive/%03d.jpg", i);
        img_org = cvLoadImage (filename, CV_LOAD_IMAGE_GRAYSCALE);
        sample_img = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 1);
        cvResize (img_org, sample_img);
        cvSmooth (sample_img, sample_img, CV_GAUSSIAN, 3, 0, 0, 0);
        for (ii = 0; ii < height; ii++) {
          for (jj = 0; jj < width; jj++) {
            data[i * image_dim + (ii * width) + jj] =
              float ((int) ((uchar) (sample_img->imageData[ii * sample_img->widthStep + jj])) / 255.0);
          }
        }
        res[i] = 1;
      }
     
      j = i;
      for (i = j; i < j + nimage_num; i++) {
        sprintf (filename, "negative/%03d.jpg", i - j);
        img_org = cvLoadImage (filename, CV_LOAD_IMAGE_GRAYSCALE);
        sample_img = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 1);
        cvResize (img_org, sample_img);
        cvSmooth (sample_img, sample_img, CV_GAUSSIAN, 3, 0, 0, 0);
        for (ii = 0; ii < height; ii++) {
          for (jj = 0; jj < width; jj++) {
            data[i * image_dim + (ii * width) + jj] =
              float ((int) ((uchar) (sample_img->imageData[ii * sample_img->widthStep + jj])) / 255.0);
          }
        }
        res[i] = 0;
      }
     
      cvInitMatHeader (&data_mat, all_image_num, image_dim, CV_32FC1, data);
      cvInitMatHeader (&res_mat, all_image_num, 1, CV_32SC1, res);
      criteria = cvTermCriteria (CV_TERMCRIT_EPS, 1000, FLT_EPSILON);
      param = CvSVMParams (CvSVM::C_SVC, CvSVM::RBF, 10.0, 0.09, 1.0, 10.0, 0.5, 1.0, NULL, criteria);
     
     
      svm.train (&data_mat, &res_mat, NULL, NULL, param);
      svm.save ("svm_image.xml");
     
      cvReleaseImage (&img_org);
      cvReleaseImage (&sample_img);
     
      return 0;
    }
    mais je trouve des erreurs :

    undefined reference to `CvSVM::CvSVM()'

    undefined reference to `CvSVMParams::CvSVMParams()'

    undefined reference to `CvSVMParams::CvSVMParams(int, int, double, double, double, double, double, double, CvMat*, CvTermCriteria)'

    undefined reference to `CvSVM::train(CvMat const*, CvMat const*, CvMat const*, CvMat const*, CvSVMParams)'

    undefined reference to `CvStatModel::save(char const*, char const*) const'

    undefined reference to `CvSVM::~CvSVM()'
    Quelqu'un peut m'aider s'il vous plait.

    Merci

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CvSVM svm = new CvSVM();
    ca serait pas plutot comme ca pour créer l'objet ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut Erreur SVM
    salut
    même problème avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CvSVM svm = new CvSVM();
    j'ai pas trouvé la solution, normalement les fonctions de SVM sont connues dans la bibliothèque ML !!!

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut
    Bonjour,

    Est-ce qu'il faut ajouter la classe CvSVM ? ou bien c déjà connu dans la bibliothèque ML ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    class CvSVM : public CvStatModel
    {
    public:
        // SVM type
        enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };
     
        // SVM kernel type
        enum { LINEAR=0, POLY=1, RBF=2, SIGMOID=3 };
     
        // SVM params type
        enum { C=0, GAMMA=1, P=2, NU=3, COEF=4, DEGREE=5 };
     
        CvSVM();
        virtual ~CvSVM();
     
        CvSVM( const CvMat* _train_data, const CvMat* _responses,
               const CvMat* _var_idx=0, const CvMat* _sample_idx=0,
               CvSVMParams _params=CvSVMParams() );
     
        virtual bool train( const CvMat* _train_data, const CvMat* _responses,
                            const CvMat* _var_idx=0, const CvMat* _sample_idx=0,
                            CvSVMParams _params=CvSVMParams() );
     
        virtual bool train_auto( const CvMat* _train_data, const CvMat* _responses,
            const CvMat* _var_idx, const CvMat* _sample_idx, CvSVMParams _params,
            int k_fold = 10,
            CvParamGrid C_grid      = get_default_grid(CvSVM::C),
            CvParamGrid gamma_grid  = get_default_grid(CvSVM::GAMMA),
            CvParamGrid p_grid      = get_default_grid(CvSVM::P),
            CvParamGrid nu_grid     = get_default_grid(CvSVM::NU),
            CvParamGrid coef_grid   = get_default_grid(CvSVM::COEF),
            CvParamGrid degree_grid = get_default_grid(CvSVM::DEGREE) );
     
        virtual float predict( const CvMat* _sample ) const;
        virtual int get_support_vector_count() const;
        virtual const float* get_support_vector(int i) const;
        virtual CvSVMParams get_params() const { return params; };
        virtual void clear();
     
        static CvParamGrid get_default_grid( int param_id );
     
        virtual void save( const char* filename, const char* name=0 );
        virtual void load( const char* filename, const char* name=0 );
     
        virtual void write( CvFileStorage* storage, const char* name );
        virtual void read( CvFileStorage* storage, CvFileNode* node );
        int get_var_count() const { return var_idx ? var_idx->cols : var_all; }
     
    protected:
        ...
    };
    merciii

Discussions similaires

  1. apprentissage automatique en utilisant SVM
    Par maya 22 dans le forum Général Python
    Réponses: 0
    Dernier message: 11/06/2011, 21h08
  2. svm en apprentissage non supervisé?!
    Par benz25 dans le forum Statistiques, Data Mining et Data Science
    Réponses: 2
    Dernier message: 29/03/2007, 16h16
  3. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  4. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25
  5. apprentissage du C est-il necessaire pour C++ ?
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 02/05/2002, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo