トランプ画像で物体検知AI開発を学ぼう!|第1回:ノーコードで判別AIを作る
こんにちは!ヒューマノーム研究所・インターンの塩谷です。
今回の連載では、誰もが知っているトランプを題材に、物体検知AI(ものを見つけるAI)の構築の流れや実用的な知識などについて、実践を交えながらお伝えしていきます。
第1回目であるこの記事では、実際にトランプのスート(ハートやスペードなどのマーク)を判別する物体検知AIを構築します。AI構築には、プログラミングなしで簡単に物体検知AIを作れるツール「Humanome Eyes(以下Eyes)」を使います。パソコン操作が苦手という方もぜひ一緒にAI作りを体験してみてください!
Eyesは以下からご登録いただけます。この記事は全て無料で試せます。
人間の学習と何が違う?物体検知AI構築の流れ
実践に移る前に、これから行う物体検知AI構築の流れについてお話しします。
そもそも「物体検知AI」とはどのようなものなのでしょうか。物体検知AIとは画像や動画に写る物体を検知し、その位置(画像のどこに写っているのか)と名前(物体の種類や状態)を教えてくれるAIのことです。つまり、今回構築するトランプのスートを判別する物体検知AIは、画像の中のトランプを検知し、その位置とスートを教えてくれるAIということになります。
このように、AIが物体を検知できるようになるには、AIを学習させる行程が必要です。学習させるまでには以下の3つの工程があります。
画像を集める
アノテーション
学習
複雑そうに思えるかもしれませんが、実はAIも人間と同じような方法で学習しています。学生時代、同じ問題集を解いては答え合わせをしてを繰り返すうちに段々と解けるようになったという経験はありませんか? AIも同じように反復して学習することで、徐々に精度を高めていきます。
AIの学習にもやはり問題集と解答集が必要です。この記事では、問題集の準備が「1.画像を集める」、解答集の準備が「2.アノテーション」にあたります。このイメージを持ちながら、物体検知AIを作っていきましょう!
トランプのスート判別AIを作る
1. 画像を集める【問題集作り】
まずは問題集作りです。今回はトランプのスートを判別する物体検知AIを作りたいので、問題作成の材料としてトランプの画像データが必要です。とはいってもトランプが手元にないという方もいらっしゃるかと思うので、今回は画像をご用意しました。こちらからダウンロードしていただけます。
ダウンロードしていただいたファイルの中には画像が12枚入っており、2から10までのトランプ計36枚が写っています。これで1冊分の問題集を作ります。
画像だけでは問題集は完成しません。このままでは、トランプの画像に対して「トランプ」「スペードの7」「表」など、正解が何通りもありえます。
そこで必要なのが、回答の選択肢を設けることです。今回はトランプのスートを学習させたいので、ダイヤ、ハート、スペード、クラブが選択肢となります。このような回答の選択肢、つまりはAIに教えたいものの名前をラベルと呼びます。
ここから、Eyesを使って、実際にAIを作成していきます。まずはじめに、ラベルの設定と、先程ダウンロードした画像のアップロードを行います。
Eyesにログイン後、タスク一覧画面からタスクの作成をクリックします。画面が変わったら、以下のような操作をします(図1)。
アップロード完了の通知を確認したら、問題集の完成です!
では、タスク一覧からタスク詳細画面に移りましょう。次のような画面が表示されたらアノテーション画面に移動します(図2)。
2. アノテーション【解答集作り】
どんな問題集にも解答集が必要です。アノテーションとは、問題「画像の中で何がどこにあるか?」に対する解答「ここに〇〇(ラベル名)という物体がある!」を入力していくことです。以下の操作でアノテーションを行いましょう(図3)。
1枚目の画像のアノテーションが終わったら、以下の操作で次の画像に進みます(図4)。
マウスでいちいちクリックするのも大変だな、、、と思い始めたら、以下の便利機能も使ってみてください!(図5)
Nキーを使って画像内のトランプを全て囲んでから、右のメニューでラベルの変更を行うと手早くアノテーションができます。
全ての画像へのアノテーションが終わったら、以下の操作でアノテーションを保存しタスク詳細画面に移動します(図6)。
これでAIの学習に必要な解答集ができました!
3. 学習
さて、問題集と解答集にあたるデータができあがりました。ここから、それらをAIに学習させていきます。冒頭では、AIも人間と同じように反復して学習することで賢くなるという説明をしました。Eyesはこの学習回数を自分で設定することができます。以下の操作で学習回数を「300」に設定し、学習を開始しましょう(図7)。
学習モデルの状態が「学習中」から「完了」に変わったらAIの完成です!以下の操作でモデル詳細画面に移動しましょう(図8)。
モデル詳細画面では完成したAIの精度をみることができます。縦に3つ並ぶグラフの真ん中、Precisionのグラフを見てみましょう(図9)。このグラフは横軸が学習回数、縦軸が正答率(正確には適合率)の値を表しています。今回作成したAIでは以下のように、学習回数150回の時点では0.4にも満たないのが300回の学習を終えたときには0.64あたりの値を示しています。AIは学習を繰り返すことで、少しずつ正答率を高めていったことがわかります。
完成したAIを利用する
自分が作成したAIを実際に利用してみましょう。試しに、10枚のトランプが含まれる画像に対して、何枚のトランプのスートを判定できるか確認してみます。画像は以下をお使いください。
モデル詳細画面の「オブジェクト検出テスト」セクションから、図10のような手順で画像を登録します。
しばらくすると、図11のような画像を含む判定結果が表示されます。結果を見てみましょう!
今回作成したモデルでは、10枚中、6枚のトランプのスートを正しく判別することができました。1枚はダイヤの7をハートと間違っています。ダイヤとハートは色が同じなので、人間でも見間違いやすいといえます。この精度は、利用用途によってはまだまだ不十分な精度かもしれませんが、確実に学習の成果が表れました!
あとがき
この記事では、実際にHumanome Eyesを操作しながら、物体検知AI構築の流れを解説しました。AIも実はシンプルで、身近なものであることを感じていただけていたら嬉しいです。次回は、学習させる画像の枚数を変えると精度がどのように変わるのか?について検証していきます。どうぞお楽しみに!
「表データでAIを作りたい!」という方向けテキスト
ペンギンについて調べた表データを使って、一連のAI構築・データ解析の流れを学べる無料テキストをnoteで公開しています。AI学習の最初の一歩にぜひお役立て下さい。
---
AI・DX・データサイエンスについてのご質問・共同研究等についてはお気軽にお問い合わせ下さい!