OpenCV 機械学習 - eiichiromomma/CVMLAB GitHub Wiki
OpenCV) 機械学習
(ml.hで提供されている機械学習について
関連サイト
- UCI Machine Learning Repository
- 機械学習に使えるデータが大量に公開されている
導入 (旧)
機械学習を使えるようにする
インクルードパス
ml.hはWindowsの場合は通常
C:\Program Files\OpenCV\ml\include
に含まれる。パスを追加する。
ライブラリ
ml.libを使う。 プロジェクトのプロパティで[構成プロパティ]-[リンカ]-[入力]-[追加の依存ファイル]にml.libを追加する。
ドキュメント
存在しないのでサンプルを参考にする。
- letter_recog.cpp:Random Trees classifier, Boosting classifier, MLP(所謂Neural Network)
- mushroom.cpp:decision tree(決定木)
各々の説明についてはリファレンス マニュアル - を参照。
サンプルデータ
UCI Machine Learning Repository に豊富に存在する。サンプルもここのデータが必要になる。
- UCI Machine Learning Repository: Letter Recognition Data Set
- UCI Machine Learning Repository: Mushroom Data Set
CvSVMのバグ修正
CvSVMでsave, loadメソッドを使うにはソースの修正が必要。 Yahoo! Groups の修正(+のある行を追加する)を施してC:\Program Files\OpenCV_make\opencv.slnを開いてビルドすれば良い。
直すところ
mlsvm.cppの1724行付近
}
else
CV_ASSERT( sv_count == sv_total );
}
cvEndWriteStruct( fs );
cvEndWriteStruct( fs );
__END__;
へ以下のように1行追加
}
else
CV_ASSERT( sv_count == sv_total );
cvEndWriteStruct( fs ); //←これ
}
cvEndWriteStruct( fs );
cvEndWriteStruct( fs );
__END__;
1928行付近
}
else
df[i].sv_index = 0;
}
create_kernel();
__END__;
へ以下のように1行追加
}
else
df[i].sv_index = 0;
CV_NEXT_SEQ_ELEM(df_node->data.seq->elem_size, reader);//←これ
}
create_kernel();
__END__;