2016年10月2日 更新

Juliaで学ぶ画像処理〜ニューラルネットワーク(Neural Network) part2〜

今回は前回に引き続き、プログラミング言語Juliaで機械学習のニューラルネットワークの実装方法についてご紹介します。

1,685 view お気に入り 0
こんにちは、今回は前回に引き続き、プログラミング言語Juliaで機械学習のニューラルネットワークの実装をやってみたいとおもいます。前回の記事は以下を参照ください。

Juliaによる画像処理〜ニューラルネットワークpart1〜

1. 今回すること

 (2068)

今回は前回の続きで手書き文字の識別をやっていきます。前回の内容から以下のように識別機が生成され、ファイルが作られたとおもいます。これを用いて新しい手書き文字に関して識別することが今回の目標です。

2. データの準備

今回は自分の書いた手書き文字の検出をします。白い紙に好きな数字を書いて、それを判別できたら嬉しいですよね!今回は以下のような写真を用意しました。
 (2073)

今回のinputdataは(28,28)の大きさの画像です。なので、これの大きさを変える必要があります。

ImageJでやっていきましょう。なお、画像を得るための方法は以下を参照ください。

30秒でわかる画像処理 #03 画像の切り出し、サイズ調整
https://www.youtube.com/watch?v=LIHC0N4IGEk&feature=youtu.be

まず画像をdrag&dropでImageJから起動します。そのあと、8の周りを四角で囲みcropをし、それをImage->Scaleから変更。さらにImage->Adjust->Thresholdから白黒画像にすればOKです。なお、閾値を決めずにScaleを変えた画像を用いてももちろん識別できます。以下のプログラムでは二つの画像を識別してみました。

これで、下のような画像が得られたと思います!
手書き文字を扱うデータにした。

手書き文字を扱うデータにした。

3. ニューラルネットワークで作られた識別器

前回のプログラムにより、識別器("snapshots/snapshot-010000.jld")ができたと思います。これを用いてまずはうまく作動するかどうかを調べてみましょう。
 (2078)

まずはこれでsnapshotを読み出します。
 (2080)

これにより、HDF5形式で保存されているデータを読み出し、識別器にかけています。今回は200番目のデータの文字が何に属されるのかをチェックしています。

実行してみると、
29 件

関連する記事 こんな記事も人気です♪

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜を終えて

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜を終えて

2016年7月22日に画像処理・画像解析エンジニアMeet Up! #3 ~Lp-tech2周年特集~がありました。様子についてご紹介します。
画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜

画像処理・画像解析エンジニアのミートアップ第3段として、Lp-tech感謝祭を開催します。内容は湖城氏によるImageJの講習会、そしてLp-techの人気のある記事に関してそれの勉強会をする予定です。
Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

プログラミング言語「julia」を用いて画像処理を行います.インストールに続き,今回は画像のセグメンテーションのライブラリを用いて,セグメンテーションを行います.
Deep learningで画像認識③〜ネオコグニトロンとは?〜

Deep learningで画像認識③〜ネオコグニトロンとは?〜

Deep learningは、画像認識において大きな成功を収めています。そこで用いられる多層ネットワークは、畳み込みニューラルネットワーク(convolutional neural network:CNN)と呼ばれており、画像認識に適した独特の構造を持っています。
木田智士 | 22,792 view

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部