OpenCV 機械学習 - eiichiromomma/CVMLAB GitHub Wiki

(OpenCV) 機械学習

ml.hで提供されている機械学習について

関連サイト

導入 (旧)

機械学習を使えるようにする

インクルードパス

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 に豊富に存在する。サンプルもここのデータが必要になる。

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__;