認識イメージ機能の使用
Oracle Machine Learning Servicesでは、事前構築済のONNXイメージ・モデルを使用したイメージ分類およびイメージ特徴抽出という2つの認識イメージ機能がサポートされています。
これらの2つの機能の入力は、次の2つの方法で指定できます:
- 単一のイメージ・ファイルを入力としてアップロードします。この場合、アップロードされたイメージの同等のテンソル形式が、モデルの適切な前処理とともに生成されます。サポートされているイメージ・ファイル形式は次のとおりです:
- ビットマップ
(.bmp) - ポータブル・ビットマップ
(.pbm) - ポータブル・グレーマップ
(.pgm) - ポータブル・ピックスマップ
(.ppm) - Sunラスター・グラフィック
(.sr) - ラスター・グラフィック
(.ras) - Joint Photographic Expert Group
(.jpeg、.jpg、.jpe、.jp2) - タグ・イメージ・ファイル形式
(.tiff, .tif) - Portable Network Graphics
(.png)
- ビットマップ
- スコアリング入力レコードのコレクションをアップロードします。ここでは、ONNXイメージ・モデルを使用したミニバッチ・スコアリングが
<model_attribute_name, value/array>ペアを使用して実行されます。ここで、value/arrayは、base64文字列内のエンコードされたイメージ、または処理されたイメージ・ピクセル値を格納する4D配列のいずれかです。4D配列の形状は1x3x224x224である必要があります。
Linuxユーティリティ
jqを使用して、JSON出力を読取り可能な形式に解析します。jqユーティリティは、主要なLinux配布リポジトリのすべてに含まれています。Oracle LinuxおよびRed Hatシステムでは、次のコマンドを実行して、このユーティリティをインストールできます: $ sudo yum install jqノート:
cURLコマンドでjqを使用しても、HTTPレスポンスは返されません。HTTPレスポンスを返すには、jqコマンドを削除し、curlコマンドに-iフラグを追加します。
この項では、次の方法を示す例をリストします:
- モデル・エンドポイントのリストの取得
- イメージの
topNカテゴリとそれぞれの確率の取得 - 入力イメージの特徴抽出結果の取得
1: モデル・エンドポイントのリストの取得
この例では、モデル・エンドポイントのリストを取得する方法を示します。次のコマンドを実行して、モデル・エンドポイントのリストを取得します:
curl -X GET --header "Authorization: Bearer ${token}" "<oml-cloud-service-location-url>/omlmod/v1/cognitive-image"このコマンドは、次の詳細を返します。
{
"items": [
{
"name": "classification",
"description": "A cognitive image scoring endpoint that returns the classification of the images.",
"links": [
{
"rel": "classification",
"href": "http://adb.us-sanjose-1.oraclecloud.com/omlmod/v1/cognitive-image/classification"
},
{
"rel": "self",
"href": "http://adb.us-sanjose-1.oraclecloud.com/omlmod/v1/cognitive-image/."
}
]
},
{
"name": "feature-extraction",
"description": "A cognitive image scoring endpoint that extracts features of the images.",
"links": [
{
"rel": "feature-extraction",
"href": "http://adb.us-sanjose-1.oraclecloud.com/omlmod/v1/cognitive-image/feature-extraction"
},
{
"rel": "self",
"href": "http://adb.us-sanjose-1.oraclecloud.com/omlmod/v1/cognitive-image/."
}
]
}
],
"links": [
{
"rel": "self",
"href": "http://adb.us-sanjose-1.oraclecloud.com/omlmod/v1/cognitive-image"
}
]
}2: イメージの上位Nカテゴリの取得
この例では、cognitive-image/classificationエンドポイントにPOSTリクエストを送信して、.jpg形式のイメージの上位Nカテゴリを取得する方法を示します。この例は、入力イメージが属する各カテゴリの確率も返します。
次のコマンドを実行して、イメージ
img.jpgが属している可能性のある上位4つのカテゴリと確率を取得します:curl -X POST --header "Authorization: Bearer $token" <oml-cloud-service-location-url>/omlmod/v1/cognitive-image/classification \
-F imageData=@img.jpg
-F topN=4この例の説明は、次のとおりです。
$tokenは、認可APIを介して取得されたトークンに割り当てられる環境変数です。img.pngは、イメージ・ファイルのパスです。この例では、写真には小さな犬が含まれています。4は、モデルによって返される、対応する確率を持つ上位クラスの数です。topNは、分類エンドポイントのオプション・パラメータです。入力の一部としてこのパラメータを渡して、確率でソートされた各イメージについて返されるカテゴリの数を決定します。topNは>=0である必要があります。デフォルトでは、確率が最も高い上位5クラスが返されます。topN=0の場合、ソートされていない分類出力リスト全体が返されます。
このコマンドは、上位4つのクラスをそれぞれの確率とともに返します。スコアリング結果は次のとおりです:
{
"scoringResults": [
{
"classifications": [
{
"label": "Dog",
"probability": 0.9995992183685303
},
{
"label": "Puppy",
"probability": 0.9975613355636597
},
{
"label": "Companion dog",
"probability": 0.997296154499054
},
{
"label": "Dog breed",
"probability": 0.9910918474197388
}
]
}
]
}3: イメージ特徴抽出結果の取得
この例では、cognitive-image/feature-extractionエンドポイントにPOSTリクエストを送信して、入力イメージのイメージ特徴抽出結果を取得する方法を示します。この機能では、スコアリングに事前構築済ONNXイメージ・モデルが使用されます。
次のcURLコマンドを実行して、最も関連するキーワードを取得します:
curl -X POST --header "Authorization: Bearer $token"
<oml-cloud-service-location-url>/omlmod/v1/cognitive-image/feature-extraction \
-F imageData=@img.pngこのコマンドは、すべての特徴の重みを返します。
{
"scoringResults": [
{
"weights": [
0.1776999,
0.30117133,
0.0,
0.0,
0.0,
0.06017106,
0.0,
0.007070067,
0.0,
0.0,
0.0
]
}
]
}