Google Cloud の視覚認識 AI のいま
この記事は Google Cloud Japan Customer Engineer Advent Calendar 2020 の 16日目の記事です。
Ax です。寒さが身に染みるようになって、みかんとこたつの季節がやってまいりましたが、我が家ではこたつは人を駄目にするので導入しておりません。皆様、いかがお過ごしでしょうか?
TL;DR
本記事では Google Cloud での視覚認識 AI ということで、Vision AI や Video AI の概要を Google Cloud Next’20: OnAir ネタを織り交ぜながらご紹介します。
はじめに
現在、Google Cloud では AI/ML 関連のプロダクトとしては Ease of Use の観点で大別すると、以下のように 3 種類のプロダクトがあります。
AI Platform については Tensorflow を使った独自モデルを作るなど機能が多岐にわたるため、本記事では 機械学習 API と AutoML に絞って話を進めます。
視覚認識のための AI としては、画像と動画を対象としたプロダクト(Vision AI、及び Video AI)があります。今回はこれらのプロダクトで何ができるのかを Google Cloud Next’20: OnAir ネタなどを織り交ぜながらご紹介します。
(余談)AI Platform ですが AI Platform (Unified) というものが、つい先日 Preview で登場しています。何者ぞ、というのを一言で表現すると Next Generation な AI Platform となります。こちらについてもどこかでご紹介できればと思います。
Vision AI
Vision AI としては Vision API と AutoML Vision があります。
先に紹介したとおり、トレーニング済みのモデルをクイックに使いたいときは Vision API を、独自モデルをコーディングレスで利用したい場合は AutoML Vision を利用する形となります。
ユースケースとしては例えば、
(例1)画像からメタデータを抽出してあとから検索できるようにする。
(例2)画像のなかの特定のオブジェクトの位置を検出する。
(例3)画像中のランドマークから地図上の位置を特定する。
・・・などなど、人間も視覚からたくさんの情報を得ているということもあり、様々な用途に応用できます。
What
それぞれ提供されている機能は 2020/12/16 時点ではざっくりと以下となっています。
Vision API の方が機能が多く見えがちですが、AutoML Vision でカバーしている分類とオブジェクト検出がそもそも画像処理の中でもかなり汎用的なタスクとなるので使い方次第かな、というところです。また AutoML Vision で作ったカスタムモデルは Google Cloud 上でホストすることも出来ますし、Coral 等のエッジデバイス、MLキット をつかって Firebase で利用したりと様々な場所で利用できます。
Google Cloud Next’20: OnAir の中では後述の Video AI の方にアップデートが多くあった印象ですが、実は AI Principle に則って Vision API もモデルのアップデートが行われております。どういったアップデートが行われたのか気になる方は、こちらの Responsible AI: from Theory to Practice のセッションをご覧いただければと思います。
尚、上記の OCR の機能については Google Cloud Next'20: OnAir でも業界に特化した機能やソリューションとして Document AI が紹介されていました。この Document AI については Google Cloud Japan Customer Engineer Advent Calendar 2020 の 4日目の記事にて紹介されています。
How
ここまで文章だけで説明してきましたが、実際に動かした方が理解しやすいと思います。実は Vision API については Vision AI のトップページで簡単にお試しいただけます。AutoML については簡単ですが、以前お弁当の具材を検知するデモを作成したのでその時のスクリーンショットを交えて説明します。
デモの内容としては下の図のようにお弁当の様子、今回は具材(おにぎり、たまごやき、ウィンナなど)を画像から学習させ、新しいお弁当の画像が与えられたときに何が、何処に入っているのかを推論させるというもので、オブジェクト検知(カスタムラベル)というタスクに分類されます。このときは子供のおもちゃを拝借してモデルを作成しています。
ステップとしては
1.学習データ(画像)の用意
2.教師データの作成
3.学習(トレーニング)
4.推論
となります。2 の教師データの作成では予め CSV の形式でおにぎり等の具材の場所を指定して教師データを用意することも出来ますが、下の図ように GUI でおにぎり等の具材の場所を指定することもできます。
いかがでしょうか? Cloud Console を使えば GUI ベースでこれらの操作を行うことが出来るので簡単にご利用いただけるかと思います。
(余談)Vision API 等をつかった PDF 読み上げ(オーディブルみたいなやつ)を実装した面白い話が YouTube に上がっていますので、合わせて視聴いただけるとイメージが湧きやすいかもしれません。
Video AI
Video AI としては Video Intelligence API と AutoML Video Intelligence があります。
先に紹介したとおり、トレーニング済みのモデルをクイックに使いたいときは Video Intelligence API を、独自モデルをコーディングレスで利用したい場合は AutoML Video Intelligence を利用する形となります。
ユースケースとしては例えば、
(例1)動画の中のシーンの切り替わりに CM 等の挿入
(例2)動画に写っている企業ロゴなど、適切なロゴが写っている確認
(例3)動画字幕の自動生成
・・・などなど、Vision AI 同様に様々な用途に応用できます。
なお、この Video AI については第 2 回 Google Cloud INSIDE Media の Dan-san のセッション でも取り上げられています。こちらも合わせてご確認いただければと思います。
What
それぞれ提供されている機能は 2020/12/16 時点ではざっくりと以下となっています。
先にご紹介した Inside Media でも触れられていますが、新たに「顔検出」と「姿勢推定機能付き人感センサー」というものが追加されています。
How
Vision AI と同様に実際に動かした方が理解しやすいと思います。しかし、Vision API と違い残念ながら Video Intelligence API についてはプロダクトのトップページでのお試し機能がありません(以前はあったのですが…)。
Google Cloud の公式ドキュメントのほうに Quick Start があるのでまずはこちらをお試しいただくのが良いかと思います。最近だと AI/ML 講座みたいな形で Google Colabratory を使ったことがある、という方が増えていると思いますので、GitHub のこちらのリポジトリの方が取っ掛かりとっかりとしてはいいかもしれません。
例えば Video Intelligence API のオブジェクト検出の結果を整形するとこんな感じになります。人物と眼鏡を認識しています(ちょうど風邪をひいていたので死んだ魚の眼になってます…)。
AutoML Vision Intelligence については公式 Doc の方にチュートリアルがあるので、まずはこちらをご確認いただければと思います。
ちょうどいいデモが手元にないのですが、娘が最近テニスを始めたので振り返り用に動画を撮影して、ショットごとに動画を分類して振り返りができるような仕組みを今度作ってみようかなと思います(サンプル集めきるまでかなり時間がかかりそうですがw)。
まとめ
いかがでしたでしょうか? ここまで Google Cloud での視覚認識 AI ということで、Vision AI や Video AI の概要をお伝えしました。これまであまり AI/ML に馴染みのなかった方にも少しでも興味をもっていただき、Google Cloud の各種ハンズオン系のイベントやセルフペースでの実験を行ってもらえると幸いです。
明日は takasato さんから「自宅と Google Cloud を VPN でつなぎマネージド DB と通信してみた」をお届け予定です。もと自宅サーバ民としては自宅とクラウドをつなぐ話、とても楽しみです。