OpenCV には機械学習の実装がいくつか(単純ベイズ、k 近傍、SVM、決定木…)用意されていて、画像処理に限らず汎用目的で便利に使うことができます。実装ごとにクラス化されていて、学習(train)→ 予想(predict)という似たようなメソッドが用意されているため、学習結果がイマイチなら他に切り替える、ということも比較的簡単にできるようです。 この便利な機能は、Java 版ラッパーである JavaCV にもポーティングされています。そこで、とりあえず 5 次元ベクトル群を 2 つのクラスに分類するコードを書いてみました。下の画像では、5 次元中 2 次元を可視化しています。他のパラメタで実行してみた画面キャプチャやコード全体は記事末尾にあります。JavaCV のインストールなどに関しては前の記事「OpenCV を Java から使う」をどうぞ。 準備 // Parameters fo