プログラム未経験の大学生がAI活用、旅行写真の自動識別システムを構築!「写真に映った名所旧跡の名前をLINEに通知」
Ledge.ai編集部でインターンをしている大学4年生の松下です。
旅行が大好きで、国内あちこち出かけたり、海外にも何度か旅行したのですが、ここ2年ほど新型コロナウィルス感染拡大防止のため、なかなか自由に旅行ができない時期が続いてモヤモヤ……。
そこで、過去の旅行写真を見て「旅欲」を満たしているのですが、たまに写真を見ていて「あれ? ここってどこだっけ?」ということがあります。わかりやすく場所の名前が写っていればいいのですが、そうじゃないと昔の写真は詳細を忘れてしまっていることも。
そこで思いついたのが、写真に写っている建物や観光地を認識して、「ここがどこなのか」を教えてくれるAIシステムです。
……そんなAIシステムがあるのか、ですか?
あるかもしれませんが、探すのも大変です。
そこで、今回は自分で作ってみることにしました!
Gravioとネットワークカメラをつなぐ
といっても、私はプログラミングの知識がまったくない文系大学生。そこで今回はアステリアのAI搭載IoT総合エッジウェア「Gravio(グラヴィオ)」を使いました。
Gravioはソースコードを一切書かずにAIを活用した仕組みを作れるのが特徴だとか。
さらに最新バージョンから、AIによる画像推論機能がさらに強化され、プリインストールの推論モデルに加えて、オリジナルの画像推論モデルもノーコードで利用可能になったそうなんです。
まず必要なものは、Gravio Hubと呼ばれるエッジゲートウェイです。Gravioは、カメラやセンサーなどさまざまなデバイスを活用して取り込んだ情報をもとに、アクションと呼ばれるプログラムを実行するのですが、そうした情報を集約するハブとなるのがGravio Hubなのです。
今回の旅行写真認識AIは、ジャンルとしては「画像認識AI」となるので、画像を映すためのデバイス、つまりネットワークカメラを活用します。
ネットワークカメラとGravio Hubを接続する方法については、こちらの記事で詳しく説明されています。👇
新GravioはAI画像推論機能がすごい!ワイン大好きライターが「ワインラベルを自動で読み取るAIシステム」を作ってみた
TensorFlow Hubからダウンロードした学習済みモデルをGravioで利用
次に、「推論モデル」と呼ばれるものをダウンロードします。推論モデルは、AIの“脳”にあたります。
Gravioは最初からいくつもの推論モデルを搭載していますが、それに加えて新しいGravio(バージョン4.5)からは、Google Vision AI上でユーザーが作成したオリジナルAI推論モデル(画像分類、物体検出)もノーコードで利用可能となりました。
さらにGravioの最新バージョンは、Googleの「TensorFlow Lite Ver.1」にも対応。「TensorFlow」とは、Googleが開発した機械学習/ディープラーニングのライブラリで、「TensorFlow Hub」ではトレーニング済みのモデルが公開されています。世界中のユーザーが作成した学習済みモデルを利用できるのです。
今回は、このTensorFlow Hubにある推論モデルをダウンロードして使ってみたいと思います!
今回、使用したのは「TensorFlow Hub」にある「ランドマーク認識モデル(ヨーロッパ向け)」です。
ヨーロッパ各地の有名な観光スポットを学習した推論モデルとなっており、写真をカメラに映すだけで、その場所がどこなのかをAIが教えてくれるのです。
この推論モデルをGravioでノーコードで取り込んで、 旅行写真認識AIを作ってみます。
こんなに簡単!推論モデルの利用設定
まずはGravio HubをPCで動かすためのアプリ「Gravio Studio」をインストールします。
次に、先ほどダウンロードしたランドマーク認識モデルをGravio Studioに取り込みます。「モデルパッケージを作成」から読み込めばいいだけなので簡単です。
ランドマーク認識モデルは「画像分類」なので、そちらを選択。「モデルを配置」のボタンを押すと、推論モデルが取り込まれ、パッケージ作成がスタートします。それほど時間はかかりません。「モデルパッケージ名」は自分がわかりやすい名前をつけておきましょう。
「エリア」と「レイヤー」と「論理デバイス」の3つを設定していきます。この3つの設定だけで、簡単に推論結果をGravioで利用できるようになります。エリアはデバイスそのものを設置している場所で、レイヤーでは先ほど作成した推論モデルパッケージを、論理デバイスでは接続したカメラを選択します。レイヤーはその場所で何のAIを動作させているのか。論理デバイスはそのAIで使用しているデバイスを選択します。
今回はLedge.ai編集部の「オフィス」で、「ヨーロッパのランドマーク認識を行うAI」を「ネットワークカメラ」で活用するので、このように設定しました。
準備はこれだけです。ものすごく簡単!
名古屋城を認識できるのか!?
いつものようにiPadを活用して、過去の旅行の写真を見ていきます。どこなのかがパッと思い出せないときは、すかさずカメラにiPadの画面を見せてあげます!
たとえば、こちらの写真はフランス・パリのエッフェル塔。さすがにエッフェル塔は私も覚えていましたが、カメラに映してみると……。
しっかり「エッフェル塔」だと教えてくれました! すごい!
次に、こちらの大聖堂の写真はどうでしょうか。ヨーロッパの大聖堂って、似ているものが多くて、どこだったか、ぜんぜん思い出せない……。
AIが出した答えは、ドイツの「フランクフルト大聖堂」でした!
たしかに過去の旅行記録を調べると、この写真はフランクフルト大聖堂のようです。すごい! 大正解です!
ではでは、日本国内はどうでしょうか?
今度は、TensorFlow Hubにある「ランドマーク認識モデル(アジア向け)」を使ってみます。先ほどと同じようにGravio Studioで設定を行います。
まずは、これ!
日本のお城も、外観は似ているので、どこだったかわからなくなるんですよね!
AIならどうでしょうか?
ちゃんと名古屋城だと認識されました! このAIのほうが実際に訪れた私よりもずっとお城に詳しいですね(笑)。
他にも日本や海外の写真でいろいろやってみました!
ドイツの「ブランデンブルク門」! 正解! 私はドイツってことしか覚えていませんでした(笑)。
こちらはフランス・パリのカルーゼル広場ですね! すごいな〜!
こちらは、京都の渡月橋。きれいな川に橋がかかっている景色は、日本国内あちこちにあるので、あとで見ると「何橋だっけ!?」ってなりやすいんですよね。
LINEに通知がくるように設定してみた!
以上、旅行写真認識AIシステムを構築してみました。精度も高くて信頼性ばっちり! これなら、旅行の写真を見ているときにどこだかわからなくなっても、すぐ正解にたどりつけて便利ですね。
でも、もっともっと便利にしたい!
たとえば、AIが認識したランドマークの名前がLINEに通知されるような設定ができたら便利じゃないですか? 実は、GravioならそんなLINE通知設定も可能なんです!
さっそくやってみましょう。
LINEに通知するためには、LINE側での設定が必要です。まずは、PCでLINE Notifyにログインして、「アクセストークン」を取得します。
このトークンは後で使用するので、メモ帳などにペーストしておきましょう。
次にアクションと呼ばれるプログラムを設定します。Gravioには、さまざまなアクションが予めプリインストールされており、たとえばLINE以外にもSlackやTeamsに通知を送ったり、特定のタイミングでランプを光らせたり音を鳴らしたり、データをエクセルに自動で送ったりと、本当にいろいろなことをノーコードで設定することができます。工夫とアイデア次第でおもしろいアクションができるというわけです。
今回は「LIINE Notify」を活用するので、アクションの一覧から選んで追加します。
アクションはこんなふうに設定しました。AIが写真に映ったランドマークを認識すると、LINEに「ここは○○です!」というメッセージが届く仕組みです。プロパティ内の「トークン」には先ほどLINE Notifyで取得したものを入力します。
また、今回はメッセージと一緒にスタンプも送ってみます。
まずは、こちらのサイトで送りたいスタンプの「パッケージID」と「スタンプID」を取得します。
送信可能なLINEスタンプリスト
https://developers.line.biz/ja/docs/messaging-api/sticker-list/
この「パッケージID」と「スタンプID」を、先ほどのプロパティに入力することで、メッセージとともにスタンプも届くようになります。
最後にトリガーの設定をします。トリガーとは「アクションが行われる条件」のことです。「エリア」「キーレイヤー」「物理デバイス」を設定し、先ほど設定したLINE通知のアクションを指定します。
これで、「AIが写真のランドマークを認識したらLINEに通知が送られるトリガー」が設定できました!
以上で設定が完了したので、LINEを見てみましょう。無事、通知が来ているでしょうか?
やったー! LINEにメッセージとスタンプの通知が届きました!
LINEに通知を送るための「アクション」と「トリガー」の設定方法については、こちらの記事も参考にしてください。👇
文系の大学生でも簡単にAIシステムを構築できた!
今回、Gravioを使って旅行写真に映った場所がどこなのかを判別する画像認識AIシステムを構築してみました。設定はとても簡単! プログラミングなどが必要ないので、文系大学生の私でも1人でできました。
今回と同じシステムをプログラミングを駆使して構築しようとすると、かなりの知識が必要になると思います。でもGravioならこの記事の手順通りに行えば 、誰でも簡単にAIシステムを実装できます。
ぜひ皆さんもGravioを活用して、便利なAIシステムを作ってみてくださいね。
撮影/山田井ユウキ
「AI:人工知能特化型メディア「Ledge.ai」」掲載のオリジナル版はこちらプログラム未経験の大学生でも旅行写真認識AIを構築できた!写真に映っている名所旧跡の名前をLINEに通知するシステムも作ってみた2022/09/27
ソーシャルもやってます!