AI coordinator

人工知能 & ロボティクス

© AI coordinator All rights reserved.

畳み込みニューラルネットワークを使った画像検出モデルの作成方法

深層学習(ディープラーニング)で画像認識に挑戦

以前の記事でMNISTを使った数字画像認識の学習モデルを作成しました。

でも、やっぱり色々な画像を認識できる学習済モデルを作成したいと思い、画像認識モデルで有名なCIFAR-10を使った学習済モデルの作成に挑戦してみました。

で、その学習済みモデルを使って実際に画像認識ができるところまで作成してみたので、その内容を紹介します。

 

参考にした書籍

これからDeep Learningの勉強をするなら、こちらで紹介する書籍が参考になります。

 

開発環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

keras 1.2.2

tensorflow 0.12.1

 

CIFAR-10とは

今回使用する画像データセットCIFAR-10とは、10種類の画像それぞれ6000枚集めた計60000枚の画像データセットのことです。

そのうち訓練用画像が50000枚、テスト用画像が10000枚の構成になった画像データセットです。

 

どんな画像が入っているのかというと、

[“airplane”,”automobile”,”bird”,”cat”,”deer”,

“dog”,”frog”,”horse”,”ship”,”truck”]

です。

 

自分で画像を準備するとなると、ものすごい労力がかかりますが、手頃に画像データの学習を始めるならCIFAR-10がオススメです。

最近ではCIFAR-100とかいう画像データセットもあるようです。

詳細はこちらのサイトで確認してみてください。

 

学習モデルの作成

では早速作成に取り掛かりたいと思います。

深層学習(ディープラーニング)で有名な畳み込みニューラルネットワークの勉強も兼ねて実装しています。

今回は9層で試してみました。

正直、精度の高い学習モデルを作成するためには、どのくらいの層が必要で、過学習を防ぐためには「Dropout」にどんな値を設定すれば良いのか良く分かりません。

この辺については、そのうち色々な実験を繰り返して真面目に勉強していくとして、今回は適当に学習モデルを定義して実装することにします。

学習回数も適当です。

この辺りはお好みで修正してください。

取り敢えず以下のソースそのままでも動きます。

以下学習結果です。

78%の精度となりました。

かなり精度が悪いですね。

畳み込みニューラルネットワークの学習モデルをもう少し工夫するか、学習回数を大幅に増やすなどの対応が必要そうです。

ただ今回は学習済モデルの作成と、その学習済モデルで実際に画像を認識させてみるところが目的なので、学習結果は多少悪くても良しとします。

 

学習済モデルで画像認識に挑戦

学習済みモデルができたら、実際に画像を準備して認識させてみましょう。

今回準備した画像は以下の画像たちです。

適当にネットから拝借してきました。

 

blog_testpicというディレクトリを作成し、そこに認識させたい画像を保存して以下のソースを実行してみましょう。

結果にinputにした画像ファイル名と認識した画像の種類を出力しているようにしています。

以下、実行結果です。

概ね正解していますが、dogをdeerと間違えています。

学習精度が低いのでしょうがない感じですね。

 

ただ、実際に目的としていた画像を認識させてみるところまでは実装できたので、今後はどうやったら学習精度が上がるか模索していきたいと思います。

併せて、自分で集めた画像から学習モデルの作成にも挑戦していくので、成功したら紹介していきたいと思います。

 


その他の物体検出記事はこちらから

 

それではまた。

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

20175/7

綺麗にAnacondaをアンイストールする方法 For macOS

Anacondaのアンインストールメモ macOSにインストールしたAnacondaのアンインストールに手こずったので、忘れないようにする…

20174/29

jupyter notebookのインストールに失敗した時の対処法(MAC)

jupyter notebookのインストールに失敗 簡単にインストールできると思った「jupyter notebook」のインストールに…

20176/1

jupyter notebookの便利な使い方や起動しなくなった時の対処法

便利なショートカットキー jupyter notebookを便利に使用する上で、最低限知っておけば良いショートカットキーを紹介します。 …

リアルタイム映像からの美人女優検出

リアルタイム映像から特定の人物検出 以前からやってみたかった映像からの特定人物検出にチャレンジしてみたので、その内容の紹介です。 S…

DeepLearningを活用した物体検出(SSD_Keras)を可能とするPepper

SSD_KerasをPepperにも 以前紹介したSSD_Kerasによる物体検出を、いつかPepperにも搭載できたら良いなぁなんて思っ…

20174/22

DeepLearningに挑戦!まずはubuntuのインストールから

DeepLearningを始めるならubuntu いよいよDeepLearningにチャレンジしていきます。 DeepLearnin…

20178/15

DeepLearningのモデル可視化方法とmatplotlibで学習の様子を可視化する方法

学習モデルの可視化と学習の様子を可視化してみた 何を今更といった内容の記事です。 DeepLearningにチャレンジしてきた筆者で…

Watosn Speech to Text をPythonで使ってみよう

Watson APIのSpeech to TextをPythonで実装してみましょう WatsonのSpeech to textを使用する…

ディープラーニングで美人女優の顔検出に挑戦

美人女優で学習モデルを作成 以前紹介したcifar10を使った学習モデルのモノマネで、自分で準備した画像から学習モデルを作成することに挑戦…

20177/25

カメラ映像から動く物体の輪郭検出が簡単にできた話

OpenCVを使って動く物体の輪郭検出をやってみた 今更ながらにOpenCVの凄さを実感しました。 まさか物体の輪郭検出までできると…

ページ上部へ戻る