見出し画像

ニラとスイセンを見分けるAIをiPadで開発してみた

新学期を迎え、街の木々にも新緑が目立ち始めました。皆様いかがお過ごしでしょうか。私はヒノキが本気で花粉を放出する季節を迎え、息苦しい今日この頃です。多数派のスギ花粉に敏感な方々はそろそろ店じまいされるご様子ですが、ヒノキ花粉はこれからが本番なのです(ゴゴゴゴゴゴ

改めましてこんにちは。ヒューマノーム研究所 次世代先端教育特命研究員の辻敏之です。普段は中学校と高校で教員をしています。

そんなわけで、春のうららかな日を堪能しております。ところでこの時期にしばしば起こる事故をご存知でしょうか? 春の交通安全運動が実施される背景となる交通事故、行楽地での事故、どちらも大変なことですが、本稿で取り上げたいものではありません。

この季節に起こる事故、それは「ニラとスイセンの誤食による食中毒」です。先日も京都で起こった食中毒がニュースになりました。

ニラとスイセンはその葉の形状・色・大きさなど、どれをとっても良く似ており、間違って食べてしまう事故がしばしば起こっています。どちらも無毒なら良いのですが、スイセンにはリコリンなどアルカロイド系の物質や、シュウ酸カルシウムが含まれており、どこを食べても有毒なので誤食は大変危険です。

厚生労働省のまとめによると、2008〜17年に有毒植物による食中毒は188件発生しており、そのうちスイセンによるものは47件で最も多いケースだったということです。消費者庁もTwitterで注意喚起をしています

これはなんとかせねばならないやつです!
スイセンがニラに似ていて、かつ毒を持っているのが悪いんですが、そうも言っていられません。経験値の高い農家の方や野草採取が趣味の方であれば一目見て判断がつくのでしょうが、なんの知識も無い私は写真を見ても違いは分かりません(図1)。

図1. ニラとスイセン(消費者庁Twitterより引用)

そこで本稿では、当社の開発するノーコード物体検知AI構築ツール、Humanome Eyes(以下 Eyes)を用いて、ニラとスイセンを見分けるAIを構築してみます。もしAIで区別することができたら、経験値の高い方々が持つ「見極める力」を誰でも持つことができるようになります。これは画期的なことです。

だれでも安心してニラを食べられる世界を求めて、我々はこのAIを作らなくてはならないのです!

1. 画像の準備

それでは、世界平和のために、ニラとスイセンの画像データを集めます。もちろん自分で写真を撮影しても良いのですが、本稿では「だれでもできる」を目指してGoogle検索を使うことにしました。

著作権の関係で収集したファイルをこちらで再配布することはできませんが、図1のような束になっていない、地面から抜いた後のニラとスイセンの画像を35枚集めました。

内訳は以下の通りです。

  • ニラとスイセンが両方写っている画像:28枚

  • ニラのみ:3枚

  • スイセンのみ:4枚

学習データとして、ニラとスイセン28枚、ニラのみ1枚、スイセンのみ1枚を用い、残りのニラのみ2枚、スイセンのみ3枚をテストデータとしました。

2. EyesをiPadで使う【β版機能のご紹介】

これまでの連載では、MacやWindowsといったデスクトップマシンを用いてEyesを使ってきましたが、今回は「だれでもできる」を目指し、Eyesのβ版機能として新たに搭載された「iPad上からGoogle ChromeでAI構築する」機能を試してみました。とはいえ特別な操作は必要なく、Google Chrome上での操作はほぼ同じです。皆さんの環境に合わせて読み替えていただければと思います。

EyesをiPad上から操作する機能は、現在テスト運用中です。バグ・不具合等を発見されましたら、ぜひ当社問い合わせページ当社Twitter宛にご連絡下さい。開発チームが非常に喜びます。何卒よろしくお願いいたします。

図2. タスク作成画面

Eyesへログイン後、図2のようにタスク名とラベル名を入力します。ラベル名は検知したい物体の名前を入力します。ここでは「ニラ」と「スイセン」になります。

次に学習用のデータをアップロードします。図2の下部にある「クリックするか、ここにファイルをドラッグしてください」という灰色の領域をタップしてください。すると、図3のようにアップロード元を聞かれます。

図3. アップロード元の選択

ここで「フォトライブラリ」を選ぶと、フォトライブラリ内にある画像を選択できます(図4)。AI構築に使う画像データは、アップロードする前にあらかじめフォトライブラリに入れておいてください。ネットからダウンロードした画像、MacからAirDropで転送された画像、自分で撮った写真などの場合はここに保存されます。

図4. アップロードする画像の選択

画像のアップロードが終わると、自動的にタスクが作成されます。

iPadで直接写真撮影する場合の設定

自分で画像を撮影する場合は、撮影前にiPadの「設定」アプリから「カメラ」を選択し、「フォーマット」メニューで「高効率」になっているのを「互換性優先」に変更して下さい。すると、写真の保存形式がjpeg形式になるので、その後に撮影を開始してください(図5)。

図5. iPadでjpeg形式の写真を撮影するための設定

3. 画像にラベルをつける

次に、AIの学習の核になる「アノテーション」を行います。アノテーションとは、物体検知AIに「なんという物体」が「どこにあるのか」を教えるための行程です。具体的には、物体を四角で囲んで、物体名のラベルをつけるという作業をします。

タスク詳細画面のアノテーションセクションにある「アノテーションの確認/編集」というリンクから、アノテーションを施すアノテーションエディタへ入ります。

図6に示したように、アイコンメニューから四角いアイコンをタップしてから、Shapeをタップすることでアノテーションができるようになります。よく、マウスで四角い範囲を指定する時に「ドラッグして良い大きさのところで離す」という操作をしますが、iPadの場合はドラッグ開始点と離す点をタップするイメージです。

図6. アノテーションエディタによるアノテーション

図7のように物体、ここではニラ(左)とスイセン(右)を四角で囲ってラベルをつけています。右側のカラムにあるオブジェクトが示している赤枠のニラが右側の赤い四角、スイセンが黄色い四角と対応していることが分かります。

図7. アノテーションの例

このような手順で、全てのニラとスイセンの写真にアノテーションを施してください。全てのアノテーションが終了したら左上の「保存」ボタンを押してアノテーションを保存します。

アノテーション終了後、タスク詳細画面に戻ってきたら、アノテーション数が変化していることを確認してください(図8)。アノテーション数に問題が無ければ、学習を開始します。

「開始」ボタンを押すと学習が始まります。時間がかかりますという確認のダイアログが出ますが、「OK」を押して進めてください。今回の場合、デフォルトの値、学習回数は100、学習率は0.0001で30分ほどかかりました。

図8. アノテーション後のタスク画面

学習が終了すると学習モデルが作成されます(図9)。この学習モデルのリンクをタップすると学習モデルの詳細ページへ行くことができます。

図9. 学習モデルの完成画面

詳細ページではモデルの学習の過程と、学習モデルと学習モデルを予測した例が示されます。こちらのページについては以下のページで詳しく解説していますので、ぜひご覧ください。

4. AIは本当にニラとスイセンを見分けられるのか?

では、実際にこのモデルがどのくらい未知のニラとスイセンを予測できるのか試していきます。最初にとっておいた5枚の画像をテストデータとして使います。あたらしくタスクを作成し、学習データの時と同じようにタスク名とラベル名を入力し、テスト用画像をアップロードします。ラベルは学習したときとおなじ「ニラ」と「スイセン」にしましょう。

Eyesの無料版ではタスクは一つしか作れません。最初に作ったタスクは消してください。いらないタスクは、タスク詳細画面の右上にあるメニューから削除することができます。モデルは消えないので安心してください。

次に、新しいタスクの詳細画面へ移動し、右上のメニューから「AIアノテーション」を選択します。これは先ほど人間が手動で行ったアノテーション作業をAIモデルにお任せするというモードです(図10)。

図10. AIアノテーションの実施

アノテーションを行うAIモデルを選択して、アノテーションを開始します。こちらもしばらく時間がかかりますが、終了するとアノテーションセクションのアノテーション数が変化します。その後、アノテーションエディタに移動すると学習モデルが行った予測結果をみることができます。

今回の学習データでは、学習についてのハイパーパラメータ(学習回数と学習率)を初期値のままにした場合、あまり良いAIモデルを得ることができませんでした。学習過程をみると、これから精度が向上しそうな右上がりのグラフになっていたので、学習回数を300回、学習率を0.0005として学習を行いました。

学習過程の見方などについてはこちらの記事をご覧ください。

作成したモデルで画像の予測をした結果の一部を図11と図12に示しました。図11は学習データに入っている画像を改めて予測した結果、図12は学習データに含まれない画像を予測した結果です。

  • ある程度物体検知が行われていること

  • スイセンは「ニラ」「スイセン」の両方に予測されることがあること

  • スイセンという予測精度が結構良いこと

がわかりました。

図11. AIモデルによる学習データの予測結果

図12に示したようにスイセンの画像に「ニラ」と「スイセン」、両方の予測をしています。スイセンだけを「スイセン」と予測して、ニラの画像を「スイセン」だと誤予測しなければ、スイセンを誤って食べることはないわけです。

図12. AIモデルによるテストデータの予測結果
上図はニラ(ニラと黄ニラ)を予測した結果、下図ではスイセン(ふたつともスイセン)を予測した結果を示している。

学習データに含まれていない、つまりAIモデルが知らない黄ニラはスイセンと予測されていました。AIモデルは学習することで様々なことができるようになります。それは丸暗記とは違い、そこにある雰囲気やルールのようなものを学ぶことができることが最大の特徴です。しかし、それでも知らないものは知らないわけです。AIを作成する際、予測に用いる際にはこのような点に気をつけて設計をする必要があります。

5. あとがき

スイセンを誤食しないようにするために作られたAIモデルとしては、なかなか良いものができました。もちろん、テストデータが少なすぎるのでこれだけで判断するのは危険です。より予測を正確なものにするためにはデータをしっかりと収集し、厳密にアノテーションすること、もしかしたら専門家の意見を聞くことも必要かもしれません。

しかしながら、この結果はとても示唆的なものだと考えられます。ニラとスイセンのことを何も知らないズブの素人がGoogle検索で画像を集めて、ものの1時間ほどで作ったAIモデルがこれだけの予測をしました。

手元で簡単に目的を少しだけ叶える道具をちゃちゃっと短時間で、プログラミングもしないで、手元のiPadで作ることができました。なんならいま、この記事を読んでいただいているかもしれないそのスマホでもつくれちゃうわけです(画面の大きさが小さいので操作が大変ではありますが)。

もちろんAIはなんでもできるわけじゃないですし、ましてや魔法の杖ではありません。それでも、手軽に使えることで、楽しく強力な文房具になると思います。まずその一歩として、Humanome Eyesで気軽にAIを作ってみてはいかがでしょうか。

参考文献と謝辞

この発言を拝見し、社内で「早速ニラスイセン判別AIを作ろう!」という話になったのが本稿作成のきっかけでした。ありがとうございました。

※ 筆者紹介
辻敏之:機械学習やIoTデバイスを用いた先進的な教育活動に興味があります。好きなことは写真撮影と美味しいものを食べること。普段は中高生に理科を教えたり、研究指導したりしています。

6. データ解析・AI構築の初学者向け自習テキスト

表データを利用したAI学習テキスト(Humanome CatData

画像・動画を利用したAI学習テキスト(Humanome Eyes)


AI・DX・データサイエンスについてのご質問・共同研究等についてはお気軽にお問い合わせ下さい!

この記事が気に入ったらサポートをしてみませんか?