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. この記事へのトラックバックはありません。

映像からの物体検出(SSD_Keras)に挑戦 for ubuntu

映像からの物体検出 リアルタイム映像からの物体検出に挑戦してみました。 ただし簡単にはできず、色々ハマってえらく苦労したので、同じ悩…

20178/8

動体撮影に特化した監視カメラの作成方法

動く物体を検知して写真撮影をする監視カメラ OpenCVを使えば動体撮影に特化した監視カメラを作成することができるのではないかと考え、実装…

MNISTって何?数字を識別できる学習モデルの作成方法

MNISTとは MNISTとは手書き数字画像60000枚とテスト画像10000枚を集めた画像データセットになります。 ニューラルネッ…

20177/22

Pepperのカメラ映像からリアルタイムで物体検出する方法

Pepperのカメラからリアルタイムに物体検出してみる 以前からチャレンジしてみたかったPepperに搭載されているカメラ映像からの物体検…

映像物体検出(SSD_Keras)を簡単に実装する方法 for maxOS

簡単に映像物体検出を試す方法 以前の記事で、ubuntuを使った映像検出を紹介しましたが、OpenCVの環境構築等に結構戸惑ったので、もっ…

wikipediaを学習した類義語を話すSlackbotの作成方法

wikipedia日本語全文データから類義語を話すSlackbotを作った話 前回の記事で日本語を学習するマルコフ連鎖を使ったSlackb…

Watson APIを活用した英訳するPepperコントローラー

Python GUIを使ってWatson APIを使用したペッパー用コントローラーの作成方法 Watson APIの「LanguageTr…

wikipedia全文データからWord2Vecで類義語を抽出してみる

自然言語処理の入門、wikipedia全文データを使ってみる 自然言語処理について何から勉強を始めようかと色々模索していたところ、wiki…

YOLOv2のリアルタイム物体検出をTensorFlowとPythonで実装する方法

YOLO v2をどうしてもPythonで使ってみたかったので作ってみた 数多くあるオブジェクト物体検出の中で、処理速度が最も早い?と言われ…

20176/3

簡単にできるOpenCVを使った顔検出

画像からの顔検出は意外と簡単 以前から画像に写っている顔の検出ができたら良いなぁって思っていましたが、そう簡単ではないイメージを持っていま…

ページ上部へ戻る