2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Gradioを使ってWatson Studio上で画像認識の仕組みを10分で作る手順

Last updated at Posted at 2022-10-11

ここで作るもの

IBM Cloudから、画像認識を行う「Visual Recognition」が無くなってから、もうすぐ1年が経ちます。廃止後、GoogleのTeachable Machineなど様々な手段で画像認識の仕組みを作ってきました。
最近、機械学習アプリを手軽に作れる「Gradio」が人気ですので、IBM CloudのWatson Studioの「Jupyterノートブック」を使い、画像認識の仕組みを、10分くらいで立ち上げてみましょう。

<画面ショット>
猫の写真をアップロードし、「送信」ボタンをクリックすることで、画像認識結果が右側に表示されます。
スクリーンショット 2022-10-11 14.02.20.png

猫の写真は、「ぱくたそ」のものを使いました。https://www.pakutaso.com/photo/81501.html

元ネタ

Python上で機械学習アプリをサクッと作れる「Gradio」の以下のチュートリアルにあるサンプルコードそのままでは、Watson Studio上のノートブックではエラーになるため、アレンジしています。なお、画像認識モデルは、Hugging Face Hub のモデルを使っています。

Image Classification with Vision Transformers
https://gradio.app/image_classification_with_vision_transformers/

Gradioに限らず、公開されているサンプルコードがお使いの環境でそのまま動かないことがあるため、必要に応じてアレンジを加えることが必要です。

環境用意

IBM Cloudのアカウント作成を行い、Watson Studio環境の用意しましょう。

IBM Cloudの用意

https://www.ibm.com/jp-ja/cloud/free にアクセスし、アカウント作成を行います。クレジットカードもしくはデビットカードが必要です。デビットカードは、色々試した結果、Visaデビット推奨です。ゆうちょ銀行など身近なところで作れます。

Watson Studioの起動

Watson Studioのライトプランの環境を作ります。

  1. IBM Cloudのカタログにアクセスします。
  2. 画面左側の「カテゴリ」の「AI/機械学習」をクリックします。
  3. 「Watson Studio」 をクリックします。
  4. 「ライトプラン」をクリックします。ライトプランは、1人のユーザーに対して、毎月、最小スペックで20時間分のデータ分析やアプリ実行環境を利用することができます。
  5. 「以下のご使用条件を読み、同意します」にチェックを入れます。
  6. 「作成」をクリックします。

Watson Studioへのアクセス

  1. リソースリストの「AI/機械学習」に、作成したWatson Studio環境が表示されますので、クリックします。
  2. 「Launch in IBM Cloud Pak for Data」をクリックします。
  3. 「Build and manage ML models」と表示された場合は、「X」もしくは「Cancel(キャンセル)」をクリックします。
  4. 「プロジェクト」を新規作成します。
  5. 「空のプロジェクトを作成」をクリックします。
  6. 「新規プロジェクト」画面で、「プロジェクト名」の入力、ストレージの指定を行い、「作成」をクリックします。

「資産」の新規作成による、ノートブックの作成

プロジェクト画面で、「資産」タブに移動し、「新規資産」をクリックします。
スクリーンショット 2022-10-11 13.44.31.png
「コード・エディター」 >> 「Jupyter ノートブック・エディター」をクリックします。
スクリーンショット 2022-10-11 13.44.49.png
「新規 Notebook」画面で、下図のように「ブランク」を選び、「名前」を入力します。「ランタイムの選択」では、4GB RAMの仮想マシンを選ぶことで、無料枠を最大時間で利用することができます。(月20時間)
スクリーンショット 2022-10-11 13.45.15.png

Notebook上で、画像認識の仕組みを作る

Jupyte Notebook環境では、コードを書く場所を「セル」と言います。Jupyter Notebookの基本操作については、東京大学のPythonプログラミング入門等の教材をご覧になると良いかと思います。

下図のように、Notebookにコードを記述します。
スクリーンショット 2022-10-11 15.04.21.png

1つ目のセル

!pip install --upgrade gradio

2つ目のセル

import gradio as gr

demo = gr.Interface.load("huggingface/google/vit-base-patch16-224")
demo.launch(share=True)

セルにコードを書いた後、上から順に「▶︎Run」ボタンをクリックし、実行します。
実行することで、「Running on public URL」に、gradio.appを表示されたURLが表示されるのでクリックしましょう。このURLは、「Sharing demos」と言い、72時間有効な共有URLで、xxxxx.gradio.app となっていますが、プロキシになっており、今回の場合はGradioを実行している、「IBM Cloud」の「Watson Studio」で処理が実行されます。

画像をアップロードし、「送信」をクリックすることで、読み込んだモデル「huggingface/google/vit-base-patch16-224」による画像認識結果が画面右側に表示されます。

スクリーンショット 2022-10-11 15.18.31.png

Gradioの「Sharing demos」に簡単な認証機能を追加する

いわば、ベーシック認証のようなものを追加することができます。

2つ目のセルを次のように改造します。share=Trueの後に、auth=("ユーザー名","パスワード") として追加しています。

import gradio as gr

demo = gr.Interface.load("huggingface/google/vit-base-patch16-224")
demo.launch(share=True, auth=("my", "password"))

表示された、「Running on public URL」のURLをクリックします。

ログイン画面が表示されます。
スクリーンショット 2022-10-11 15.24.09.png
ここでは、USERNAMEにはmy、PASSWORDにはpassword と入力し、「送信」をクリックすることで、アプリの画面が表示されます。
スクリーンショット 2022-10-11 15.18.31.png

まとめ

Gradioを使うことで、Watson StudioでもWebアプリをささっと手軽に作ることができ、動作確認やデモンストレーションができることを確認しました。Watson Studioでモデルを開発し、GradioでWebアプリとして動作確認やデモンストレーションを行うと良いでしょう。

最終的には、サービスとして常時稼働させる場合は、IBM Cloud Virtual Server for VPC等で仮想サーバーを用意し、その上で開発したモデルとGradioでWebアプリとして動かす方が良いです。

ランタイムの停止

Watson Studioでは、一度動かしたまま放置するとランタイム(仮想環境)が動き続けるため、用が無くなり次第、ランタイムを停止する必要があります。そうしないとあっという間に、無料枠を使い切ってしまいます。

プロジェクト画面の「管理」タブで、下図のように「環境」をクリックし、稼働中のランタイムを選び、「ランタイムの停止」をクリックします。ランタイムを停止すれば、無料枠を放置して使い切ることを防ぐことができますし、課金した場合でも、不要な課金を防ぐことができます。
スクリーンショット 2022-10-11 15.41.28.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?