pythonを用いたRandomForest画像認識part.2 動物画像分類編【プログラムあり】

python活用 python

機械学習手法を用いて画像認識してみたいです。

このような要望にお応えします。

画像認識は、教師あり学習手法を用いて行います。
教師あり学習については、下記の記事を参照してみてください。

今回は、RandomForestを用いて動物画像の分類を行いたいと思います。
分類の対象は、以下になります。

・犬
・猫
・リス

RandomForestは、機械学習モデルのひとつです。複数の決定木を用いて各決定木の予測結果の多数決で結果を求める方法になります。

このように、複数のモデルを用いて性能を向上させる学習方法をアンサンブル学習と呼ばれたりします。RandomForestもアンサンブル学習ということになります。

RandomForestによる画像認識の準備をします。

RandomForestの準備

pythonライブラリsklearnを用いることで簡単にRandomForestを使用することができます。

pythonプロンプトを起動し、下記のプログラムが実行できればインストール成功です。

データは、スクレイピングを実施して、犬、猫、リスに関する画像データを収集しています。以下のようにcsvファイルに書き出しています。

このcsvファイルを読み込み、画像データをPythonライブラリcv2, numpyを用いて、各画像をRamdomForestの学習に使用できるように変換します。

データの準備は、これで完了です。

次に、RandomForestによる学習を行っていきます。
今回の問題は、犬、猫、リスのうち、どれに相当するのかを学習するマルチクラス分類の問題になります。

学習モデル定義

学習は、以下のように実施します。

学習モデルによる予測

学習したモデルを用いた予測は以下のように行っています。

画像下に出力したラベル色が青の場合、正解データと予測値が一致し、赤色の場合は、一致しないことを表現するように処理します。

出力結果は、以下になります。

結果を見ると、一部赤色になっており、誤分類していることが確認できます。

ソースコード全体を載せます。

どうでしょうか?このように、sklearnを用いることで、様々なデータに対して機械学習を適用できますし、精度を高めるために、パラメータの調整等、様々試すことができますので是非活用してみましょう。

タイトルとURLをコピーしました