認識イメージ機能の使用
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
]
}
]
}