インターンシップ_KUT version1.0.2 スパイスDeep Learning

インターンシップ_KUT version1.0.2 スパイスDeep Learning

 

こんちにわ!
Nextremer高知インターン生の甲原,小松,藤田です。

 

遅くなりましたが、ひと段落いたしましたので、
今回、インドでのインターンの中間報告part1という形でブログを書かせていただきます!

 

インドでのプロジェクトは、Caffeを使用したDeep Learningによる画像認識です。
画像認識の題材は「スパイス」に決定しました!

 

 

インドのインターン生に有名なスパイスを10種類ほど教えていただいたので、
その中から以下の4つのスパイスを使って画像認識に挑戦します。

  • CROVE

IMG_2207

  • BLACK PEPPER

IMG_2108

  • FENNEL SEEDS

IMG_2215

  • JEERA

IMG_2239

少し似た形のFENNELとJEERAを正しく認識してくれるのか、、、結果が楽しみです。

 

Caffeを使ってわたしたちが行なう画像認識の流れをざっくり述べると、

識別させたい対象の様々な画像を用意(輝度や角度が異なる画像)
・Data augumentation(データ増幅:画像を増やす処理)
・データセットの用意(学習用とテスト用)
・学習させる画像を入れるデータベースを作成(学習用とテスト用)
・用意した画像とその画像のファイル名とカテゴリ番号の対応表をデータベースにつっこむ
・学習させる画像の平均画像を作成
・ネットワークモデルを定義する
・画像の特徴やパターンを学習させる(training)
・できたモデルで動作テスト

 

という感じになってます。


 

今回のブログでは、最初のステップである
識別させる画像の準備段階をご紹介します!

 

まずは、スパイスを買いにマガルパッタシティにあるショッピングモールへGO!

 

ここで、ちょっと小話、、、
インドでは建物に入る前にセキュリティチェックを受けます。
かばんの中身を見せて何も怪しいものが入っていないこと、また身に付けていないことを確認してもらってから中に入ることができます。テロ対策のためですね。

 

無事にセキュリティチェックをクリアし、スーパーへ向かいます。

DSC_0765

 

スパイスコーナーにて、インドのインターン生が教えてくれた10種類のスパイスのうち最初にご紹介した、

「CROVE」 「BLACK PEPPER」 「FENNEL SEEDS」 「JEERA」

の4種類を見つけることに成功!

なので、この4種類を使って画像認識を行うことにしました。
残りのスパイス達には申し訳ないですが、、、

 

学習用に使用する画像の枚数は200枚ぐらいと言われておりましたので、3人で分担して各スパイスごとに200枚写真をパシャパシャ撮りました。

輝度や角度のパターンを変えて撮ると良いとアドバイスをいただいていたので、輝度の変化は朝、昼、晩の自然光でまかないました。

 

続いて、画像をトリミングします。
学習させるのならスパイスが大々的に写っている画像が良いのではないかということで、撮った写真のうち、スパイスが写っている部分を切り抜く作業を行うことにしました。

 

しかしながら、各写真ごとにスパイスの写っている位置は異なります。
プログラムでスピーディーにトリミングできれば良かったのですが、迫り来る締め切り、そして焦り、、、

プログラムを書く時間と人力でやる時間を天秤にかけた結果、、、人力でやるか!という結論に至りました。

合計800枚の画像を人力でトリミングするという暴挙に出たことには自分達でも笑ってしまいますが、とにかくやらねば!という思いのもとひたすら無心でトリミングを行いました。

この作業はもうしたくないですね(笑)

 

続いて、全ての画像を256 × 256サイズに変更し、Data Augmentation(データ増幅)を行います。

このData Augmentationは、画像を増やすことが目的で、
これにはいろいろな方法があるのですが、
私たちは、左右反転、上下反転、コントラストの変更(0.5倍と1.5倍)を行いました。

こんな感じです!

オリジナル

IMG_2215s

左右反転

reverse1

上下反転

rot1

 

コントラスト0.5倍

contrast051

コントラスト1.5倍

contrast151

 

 

なので、スパイスの写真200枚 ×4 種類× 5パターン = 4000枚

学習用の画像を生成しました!

 


 

画像の準備は以上で終わりです。

あとはこの画像をWinSCPを使ってサーバに送ります。

 

 

画像を集める作業は地味に大変でした。
単純に飽きます(笑)
また、どういう風に撮ればいいのか、どんな画像を学習させればいいのか、
初めて行なうことに頭を悩ませました、、、
結局、各々自分の直感で撮ったのですが、果たして成功するのかどうか。

 

次回は、データベースを作成し、学習用ネットワークモデル定義を行ない、画像を学習させるステップを紹介します!

 

 

banner_1

 

会社HPページはこちら!

会社ホームページへ