1

OpenCV で CvBoost 分類子を更新しようとしているときにエラーが発生しました。エラーは次のとおりです。

OpenCV エラー: CvDTreeTrainData::set_data、ファイル /home/bsoni/Downloads/OpenCV-2.4.1/modules の引数が正しくありません (新しいトレーニング データには、同じ型、入力変数と出力変数、およびカテゴリ変数の同じカテゴリが必要です) /ml/src/tree.cpp、172行目

基本的に私は 2 クラスの問題に取り組んでおり、最初は一連の SURF 機能を使用して分類器をトレーニングします。そのため、一連のサーフ記述子を使用して最初に分類器をトレーニングするというプロセスがあります。

data.surf_features は、128 ビットの SURF 記述子のセットです。 data.surf_classes は、+1 または -1 のいずれかであるクラス ラベルのセットです。

最初に、次を使用して分類子をトレーニングします

void train()
{
    CvBoostParams params(CvBoost::REAL,80,0.95,2,false,0);
    aSurfBoost.train(data.surf_features,CV_ROW_SAMPLE,data.surf_classes,Mat(),Mat(),Mat(),Mat(),params,false);

}

それに続いて、以下のコードを使用して分類子を再トレーニングしようとします

void train()
{
    CvBoostParams params(CvBoost::REAL,80,0.95,2,false,0);
    aSurfBoost.train(data.surf_features,CV_ROW_SAMPLE,data.surf_classes,Mat(),Mat(),Mat(),Mat(),params,true);

}

私が変更していると思うのは、更新パラメーターをtrueに設定することだけです。

記述子の Mat.type を確認しましたが、どちらの場合もまったく同じです。

提案の解決策や回避策さえあれば大歓迎です。

4

0 に答える 0