Pythonの機械学習モジュール「Keras」でCNN(畳み込みニューラルネット)を実装し、画像を分類する方法をソースコード付きでまとめました。
CNN(畳み込みニューラルネット)で画像の分類
画像に対して深層学習(ディープラーニング)を行う場合は、CNN(畳み込みニューラルネットワーク)を用いるのが一般的です。
そこで、今回は、Python + KerasでCNNを実装し、3種類の画像を分類できる分類器を作成してみました。
動画解説
本ページの内容は以下動画でも解説しています。
【サンプルコード1】データセットを使って分類器を作成
サンプルプログラムのソースコードです。
pillowがインストールされていない場合は「pip3 install pillow」が必要です。
img0, img1, img2ディレクトリに3種類の画像ファイルをたくさん入れます。
例えば、土鍋、マグカップ、やかんを分類したい場合は、車の画像をimg0, 飛行機の画像をimg1, 馬の画像をimg2フォルダにそれぞれ入れます。
【学習用画像の例】
●土鍋の学習用画像(C:\github\sample\python\keras\05_vgg16\ex1_data\img0内に格納)
●マグカップの学習用画像(C:\github\sample\python\keras\05_vgg16\ex1_data\img1に格納)
●やかんの学習用画像(C:\github\sample\python\keras\05_vgg16\ex1_data\img2に格納)
学習結果のグラフは以下のとおりです。
【サンプルコード2】作成した分類器を使う
①で保存した学習データを使って、画像を分類してみます。
学習用データにはない、マグカップ画像(C:/github/sample/python/keras/04_img/ex1_data/test.jpg)を与えて「マグカップ」と分類されたら成功です。
コメント