Visual Artificial Intelligence (AI)での予測¶
イメージモデルから予測を行うには、さまざまな方法があります。
方法 | 説明 | 参照... |
---|---|---|
UIでの予測 | プロジェクトの作成時に使用したものと同じデータセット形式を使用します。 | 予測を作成タブ |
モデルデプロイ:API (リアルタイム、小さなデータセット) |
Base64形式を使用します(下記参照)。 | デプロイタブ(UI) 予測API |
モデルデプロイ:バッチ (大きなデータセット) |
Base64形式を使用します(下記参照)。 | バッチ予測スクリプト |
ポータブル予測サーバー | Base64形式を使用します(下記参照)。 | ポータブル予測サーバー |
Base64エンコーディング形式¶
ほとんどの予測方法では、単一のCSVファイルを使用します。トレーニングデータセットがイメージファイルを含むZIPアーカイブで構成されている場合、予測データセットを別の形式に変換して、単一のCSVファイルに完全に格納する必要があります。
サンプルスクリプト¶
ビジュアルデータの変換については、DataRobotコミュニティの以下のリンクを参照してください。
備考
GitHub にログインしてからこれらのGitHub リソースにアクセスしてください。
使用例を以下に示します。
python visualai_data_prep.py pred_dataset.zip pred_dataset.csv image
各パラメーターについて説明します。
pred_dataset.zip
は入力データセット(イメージのZIP)です。pred_dataset.csv
は出力で、予測APIで使用できます。image
はイメージ列名です。
一歩進んだ操作¶
イメージファイルのセットを単一のCSVファイルに変換するには、各イメージをbase64テキストに変換する必要があります。この形式によって、イメージをCSVの通常のテキスト列として埋め込むことができます。バイナリイメージデータをBase64にエンコードするのは、どのプログラミング言語にもある簡単な作業です。
ここでは、Pythonでの例を示します。
import base64
import pandas as pd
from io import BytesIO
from PIL import Image
def image_to_base64(image: Image) -> str:
img_bytes = BytesIO()
image.save(img_bytes, 'jpeg', quality=90)
image_base64 = base64.b64encode(img_bytes.getvalue()).decode('utf-8')
return image_base64
# let's build a CSV with a single row that contains an image
# the same general approach works if you have multiple image rows or columns
image = Image.open('cat.jpg')
image_base64 = image_to_base64(image)
df = pd.DataFrame({'animal_image': [image_base64]})
df.to_csv('prediction_dataset.csv' index=False)
print(df)
備考
バイナリイメージファイル(デコードされたピクセルコンテンツではありません)をBase64にエンコードします。この例ではPIL.Image
を使ってファイルを開いていますが、イメージファイルを直接Base64にエンコードすることもできます。