AI画像判別プログラムの使い方

2018/09/05

1. 緒言

我らが伊藤先生は「コンデンサ判別プログラム」や「お天気判別『ともひろくん』」などで数々の画像をAIに学習させ、判別させている。 いわば画像判別のプロである(なので画像判別の詳しい仕組みは伊藤先生に聞くといい)。 2020年から義務教育にも取り入れられるプログラミングだが、何も知らない人が一からプログラミングを勉強するというのも中々に大変だ(と思う)。 そこで、多くの人にプログラミングに慣れ親しんでもらおうということで(伊藤先生の真意がそうなのかは知らないが)、学習させる画像のサイズと 画像のURL、それが0か1(正か誤)かであることを入力するだけで簡単に画像判別の学習をしてくれる大変便利なプログラムを書いてくれた。
ここでは、伊藤先生が書いたプログラムの使い方を、なるべく簡単に説明しようと思う。

2. 実験方法

2.1. 準備するもの

準備するものは、PC, インターネット環境, 学習させる画像, 何事も楽しむ強い心。

2.2. 実験手順

はじめに学習させる画像をweb上に上げておく。今回は「仁科先生の在室判別」を例にとって考える。

今回学習させる画像には仁科研究室に設置されたライブカメラの画像を使った。
ライブカメラwebページ 教授はいるか
仁科先生が在室しているときと在室していないときのライブカメラの画像を保存し、以下の場所に保存した。
場所:\\yzdn\dfs\share6\www\Public\54299\2015\tss33545\AI_hanbetsu\hanbetsu_nishi
仁科在室 https://edu.yz.yamagata-u.ac.jp/Public/54299/2015/tss33545/AI_hanbetsu/hanbetsu_nishi/hanbetsu_nishina_201808281455.jpg
仁科不在 https://edu.yz.yamagata-u.ac.jp/Public/54299/2015/tss33545/AI_hanbetsu/hanbetsu_nishi/hanbetsu_nishina_201808281545.jpg

次に以下のURLを開く。ここがAIプログラム登録ページとなっている。
https://b.yamagata-u.ac.jp/amenity/Laboratory/DeepLearning/TensorflowCodeForm.aspx
なんかいろいろ書いてあるページが開かれただろうか。このページで書き換えるのは「キャプション」「定数定義」「教師データのCSVファイルの内容」「行列のサイズ」の4項目である。
はじめにキャプションに記入するのは、コードの簡単な表題つまりタイトルである。今回は「仁科先生の在室判別」とでもしよう。
次に定数定義である。ここで入力するのは、IMG_SIZEX, IMG_SIZEY, CHANNELSの三つである。デフォルトでは IMG_SIZEX = 480, IMG_SIZEY = 480, CHANNELS =3 となっているが、ここは画像のサイズ・色によって変える必要がある。今回教師データに用いたライブカメラの画像サイズは160×120ピクセル、RGBの カラーで学習させるので、 IMG_SIZEX = 160, IMG_SIZEY = 120, CHANNELS =3 と定数を定義した。

図1 学習させる画像のサイズ
図2 定数定義
次は教師データのCSVファイルの内容である。CSVファイルとは...まぁ自分で調べてくれたまえ。 入力する内容は「教師データとして用いた画像のURL,判別した結果(0か1)」となる。今回は仁科先生の不在を0、 仁科先生の在室を1と学習させた。
図3 教師データのCSVファイル
ここで注意しなければならないのが「最後の行は改行しない」ということだ。もし改行してしまうと何か良くないことが起こるらしい。
最後に入力するのが行列のサイズだ。「IMG_SIZEX * IMG_SIZEY * CHANNELS * LABEL_CNT * 行列の数」を計算し、その値を入力する。 今回は、160×120×3(RGB)×2×1=115,200ということで「115,200」と入力した。
そして最後に全体をもう一度チェックして、登録をクリックすると学習が始まる(ローカルPC用の〜ではコードがダウンロードできる)。 図4に機械学習の学習履歴を示す。正しく学習できていれば、誤差がだんだんと少なくなる
図4 機械学習の学習履歴
とりあえず今回はここまで。Accessを使った画像判別はまた今度ということで。

戻る