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 を確認しましたが、どちらの場合もまったく同じです。
提案の解決策や回避策さえあれば大歓迎です。