事前トレーニングされたイメージ分析モデル
Visionは、イメージ内のオブジェクト、テキストおよびシーン全体を見つけてタグ付けできる事前トレーニング済イメージ分析AIモデルを提供します。
事前トレーニング済モデルを使用すると、データ・サイエンスの経験がなくてもAIを使用できます。イメージをVisionサービスに提供し、独自のモデルを作成することなく、イメージ内のオブジェクト、テキスト、シーンおよびフェースに関する情報を取り戻します。
使用例
ここでは、事前トレーニング済イメージ分析モデルのユースケースをいくつか示します。
- デジタル資産管理
- デジタル・メディアのようなイメージにタグ付けして、より優れた索引付けと取得を実現します。
- シーン・モニタリング
- アイテムが小売棚にあるか、電力線の監視イメージで植生が増加しているか、トラックが配送または出荷のために多く利用可能かどうかを検出します。
- 顔検出
-
- プライバシー: 顔検出機能から返された顔の位置情報を使用して、画像にぼかしを追加して、IDを非表示にします。
- 生体認証の前提条件: 顔の品質スコアを使用して、顔が明確で妨害されていないかどうかを判断します。
- デジタル・アセット管理: イメージに顔の情報でタグ付けして、より優れた索引付けと取得を実現します。
サポートされている形式
Visionは、複数のイメージ分析フォーマットをサポートしています。
- JPG
- PNG
事前トレーニング済モデル
Visionには4つのタイプの事前トレーニング済イメージ分析モデルがあります。
オブジェクト検出
オブジェクト検出は、イメージ内のオブジェクトの検索および識別に使用されます。たとえば、リビングルームのイメージがある場合、Visionは椅子、ソファ、テレビなどのオブジェクトを検索します。次に、各オブジェクトの境界ボックスを提供し、それらを識別します。
Visionは、識別されたオブジェクトごとに信頼度スコアを提供します。信頼度スコアは10進数です。スコアが1に近いとオブジェクト分類の信頼性が高いことを示しますが、スコアが小さいと信頼度スコアが低くなります。各ラベルの信頼度スコアの範囲は0から1です。
- ラベル
- 信頼性スコア
- オブジェクト境界ポリゴン
- 単一のリクエスト
- バッチ・リクエスト
Visionでのオブジェクト検出の使用例。
- 入力イメージ
-
図1. オブジェクト検出の入力イメージ - 出力:
-
図2. オブジェクト検出の出力イメージ
{ "imageObjects":
[ { "name": "Bus",
"confidence": 0.98872757,
"boundingPolygon":
{ "normalizedVertices":
[ { "x": 0.232,
"y": 0.16114457831325302 },
{ "x": 0.407,
"y": 0.16114457831325302 },
{ "x": 0.407,
"y": 0.36596385542168675 },
{ "x": 0.232,
"y": 0.36596385542168675 } ]
} },
}, ... }
イメージ分類
イメージ分類を使用して、イメージ内のシーンベースのフィーチャおよびオブジェクトを識別できます。ユースケースおよびイメージ内のアイテム数に応じて、1つの分類または複数の分類を設定できます。たとえば、実行している個人のイメージがある場合、Visionによって個人、衣類および履物が識別されます。
Visionは、ラベルごとに信頼度スコアを提供します。信頼度スコアは10進数です。スコアが1に近いとラベルの信頼性が高いことを示しますが、スコアが小さいと信頼性が低いことを示します。各ラベルの信頼度スコアの範囲は0から1です。
- ラベル
- 信頼性スコア
- オントロジークラス
- 単一のリクエスト
- バッチ・リクエスト
Visionでのイメージ分類の使用例。
- 入力イメージ
-
図3. イメージ分類の入力イメージ - 出力:
- APIレスポンス:
{ "labels": [ { "name": "Overhead power line", "confidence": 0.99315816 }, { "name": "Transmission tower", "confidence": 0.9927904 }, { "name": "Plant", "confidence": 0.9924676 }, { "name": "Sky", "confidence": 0.9924451 }, { "name": "Line", "confidence": 0.9912027 } ] ...
顔検出
ビジョンは、イメージ内の面を検出して認識できます。
顔検出では、イメージまたはイメージのバッチをVisionに渡して、事前トレーニング済モデルを使用して次のものを検出できます。
- それぞれのイメージにおける顔の存在。
- 各イメージ内の面の位置。
- それぞれの顔の目印。
- それぞれの顔の質。
この事前トレーニング済モデルを使用するために、データ・サイエンスの経験は必要ありません。
Visionにおける顔検出の例。
- 入力イメージ
APIリクエスト:図4. 顔検出用入力画像 { "compartmentId": "ocid1.compartment.oc1..aaaaaaaau3mwjanch4k54g45rizeqy52jcaxmiu4ii3kwy7hvn6pncs6yyba", "image": { "namespaceName": "axwlrwe7tbir", "bucketName": "demo_examples", "objectName": "FaceDetection/FaceDetection1.jpeg", "source": "OBJECT_STORAGE" }, "features": [ { "featureType": "FACE_DETECTION", "maxResults": 50, "shouldReturnLandmarks": true } ] }
- 出力:
-
図5. 顔検出の出力イメージ
{
"ontologyClasses": [],
"detectedFaces": [
{
"confidence": 0.9838427,
"boundingPolygon": {
"normalizedVertices": [
{
"x": 0.48696465492248536,
"y": 0.2889890061576746
},
{
"x": 0.6339863777160645,
"y": 0.2889890061576746
},
{
"x": 0.6339863777160645,
"y": 0.586297366400352
},
{
"x": 0.48696465492248536,
"y": 0.586297366400352
}
]
},
"qualityScore": 0.9043028,
"landmarks": [
{
"type": "LEFT_EYE",
"x": 0.5203125,
"y": 0.41114983
},
{
"type": "RIGHT_EYE",
"x": 0.590625,
"y": 0.41231126
},
{
"type": "NOSE_TIP",
"x": 0.553125,
"y": 0.4715447
},
{
"type": "LEFT_EDGE_OF_MOUTH",
"x": 0.5210937,
"y": 0.5005807
},
{
"type": "RIGHT_EDGE_OF_MOUTH",
"x": 0.5914062,
"y": 0.5017422
}
]
},
{
"confidence": 0.9775677,
"boundingPolygon": {
"normalizedVertices": [
{
"x": 0.7882407665252685,
"y": 0.26365977075734065
},
{
"x": 0.9403343200683594,
"y": 0.26365977075734065
},
{
"x": 0.9403343200683594,
"y": 0.5528718281567582
},
{
"x": 0.7882407665252685,
"y": 0.5528718281567582
}
]
},
"qualityScore": 0.786416,
"landmarks": [
{
"type": "LEFT_EYE",
"x": 0.81328124,
"y": 0.37514517
},
{
"type": "RIGHT_EYE",
"x": 0.88125,
"y": 0.39140534
},
{
"type": "NOSE_TIP",
"x": 0.8296875,
"y": 0.44134727
},
{
"type": "LEFT_EDGE_OF_MOUTH",
"x": 0.8078125,
"y": 0.46689895
},
{
"type": "RIGHT_EDGE_OF_MOUTH",
"x": 0.8726562,
"y": 0.48083624
}
]
},
{
"confidence": 0.97464997,
"boundingPolygon": {
"normalizedVertices": [
{
"x": 0.038544440269470216,
"y": 0.2764744597998784
},
{
"x": 0.17794162034988403,
"y": 0.2764744597998784
},
{
"x": 0.17794162034988403,
"y": 0.560027438173726
},
{
"x": 0.038544440269470216,
"y": 0.560027438173726
}
]
},
"qualityScore": 0.8527186,
"landmarks": [
{
"type": "LEFT_EYE",
"x": 0.08984375,
"y": 0.3809524
},
{
"type": "RIGHT_EYE",
"x": 0.15234375,
"y": 0.39140534
},
{
"type": "NOSE_TIP",
"x": 0.12421875,
"y": 0.44599304
},
{
"type": "LEFT_EDGE_OF_MOUTH",
"x": 0.07734375,
"y": 0.46689895
},
{
"type": "RIGHT_EDGE_OF_MOUTH",
"x": 0.14375,
"y": 0.47619048
}
]
},
{
"confidence": 0.96874785,
"boundingPolygon": {
"normalizedVertices": [
{
"x": 0.2698225736618042,
"y": 0.24420403492713777
},
{
"x": 0.38425185680389407,
"y": 0.24420403492713777
},
{
"x": 0.38425185680389407,
"y": 0.4686152760575457
},
{
"x": 0.2698225736618042,
"y": 0.4686152760575457
}
]
},
"qualityScore": 0.8934359,
"landmarks": [
{
"type": "LEFT_EYE",
"x": 0.29453126,
"y": 0.3240418
},
{
"type": "RIGHT_EYE",
"x": 0.3484375,
"y": 0.33681765
},
{
"type": "NOSE_TIP",
"x": 0.31328124,
"y": 0.3821138
},
{
"type": "LEFT_EDGE_OF_MOUTH",
"x": 0.2890625,
"y": 0.39372823
},
{
"type": "RIGHT_EDGE_OF_MOUTH",
"x": 0.3453125,
"y": 0.40301976
}
]
},
{
"confidence": 0.95825064,
"boundingPolygon": {
"normalizedVertices": [
{
"x": 0.6876011371612549,
"y": 0.10002164585942037
},
{
"x": 0.8045546531677246,
"y": 0.10002164585942037
},
{
"x": 0.8045546531677246,
"y": 0.3600864033804261
},
{
"x": 0.6876011371612549,
"y": 0.3600864033804261
}
]
},
"qualityScore": 0.9237982,
"landmarks": [
{
"type": "LEFT_EYE",
"x": 0.7171875,
"y": 0.19976771
},
{
"type": "RIGHT_EYE",
"x": 0.7703125,
"y": 0.21254355
},
{
"type": "NOSE_TIP",
"x": 0.7367188,
"y": 0.2601626
},
{
"type": "LEFT_EDGE_OF_MOUTH",
"x": 0.7085937,
"y": 0.2752613
},
{
"type": "RIGHT_EDGE_OF_MOUTH",
"x": 0.76640624,
"y": 0.2857143
}
]
}
],
"faceDetectionModelVersion": "1.0.27",
"errors": []
}
光学式文字認識(OCR)
Visionは文書内のテキストを検出して認識できます。
言語分類はドキュメントの言語を識別し、OCRはイメージ内で検出された印刷テキストまたは手書きテキストの周囲に境界ボックスを描画し、テキストをデジタル化します。たとえば、停止記号のイメージがある場合、Visionはそのイメージ内のテキストを検索し、テキストSTOP
を抽出します。識別されたテキストの境界ボックスが表示されます。
Visionは、各テキスト・グループに対して信頼度スコアを提供します。信頼度スコアは10進数です。スコアが1に近いと、抽出されたテキストの信頼性が高いことを示しますが、スコアが小さいと信頼度スコアが低くなります。各ラベルの信頼度スコアの範囲は0から1です。
テキスト検出は、ドキュメントAIまたはイメージ分析モデルで使用できます。
OCRのサポートは英語のみとなります。イメージ内のテキストが英語であることがわかっている場合は、言語をEng
に設定します。
- 単語抽出
- テキスト行の抽出
- 信頼性スコア
- 境界ポリゴン
- 単一のリクエスト
- バッチ・リクエスト
VisionでのOCRの使用例。
- 入力イメージ
APIリクエスト:図6. OCRの入力イメージ { "analyzeImageDetails": { "compartmentId": "", "image": { "namespaceName": "", "bucketName": "", "objectName": "", "source": "OBJECT_STORAGE" }, "features": [ { "featureType": "TEXT_DETECTION" } ] } }
- 出力:
-
図7. OCRの出力イメージ
...
{ "text": "585-XRP",
"confidence": 0.9905539,
"boundingPolygon":
{ "normalizedVertices":
[ { "x": 0.466,
"y": 0.7349397590361446 },
{ "x": 0.552,
"y": 0.7319277108433735 },
{ "x": 0.553,
"y": 0.7831325301204819 },
{ "x": 0.467,
"y": 0.7876506024096386 } ]
}
}
...
事前トレーニングされたイメージ分析モデルの使用
Visionは、データ・サイエンティストを必要とせずに、顧客がイメージに関するインサイトを抽出するための事前トレーニング済モデルを提供します。
事前トレーニング済モデルを使用する前に、次のものが必要です。
-
Oracle Cloud Infrastructureの有料テナンシ・アカウント。
-
Oracle Cloud Infrastructure Object Storageについて理解します。
Rest API、SDKまたはCLIを使用して、事前トレーニング済イメージ分析モデルをバッチ・リクエストとしてコールできます。コンソール、Rest API、SDKまたはCLIを使用して、事前トレーニング済イメージ分析モデルを単一のリクエストとしてコールできます。
バッチ・リクエストで許可される内容の詳細は、「制限」の項を参照してください。