オブジェクト拡充を構成するときに、保存されたオブジェクトを分析する ML モデルを選択します。各モデルは、対象となる画像または PDF ドキュメントを評価し、構造化メタデータを Cloud Storage オブジェクトに直接アタッチします。
このページでは、BigQuery または API を介してエンリッチメント メタデータを解析してクエリできるように、サポートされている各モデル、その利用資格要件、出力スキーマについて説明します。
モデルとオブジェクト エンリッチメントの関係
モデルを有効にするには、スキャンするバケットと実行するモデルを指定する機能構成(FeatureConfig)を作成します。非同期処理中、Cloud Storage は選択したモデルを使用して対象となるオブジェクトを評価し、オブジェクト エンリッチメントと呼ばれる構造化 JSON メタデータを生成します。
各モデルは、Cloud Storage が contexts.custom プロパティの下に Google 管理のオブジェクト コンテキストとしてオブジェクトに直接アタッチする専用の JSON ペイロードを生成します。google:annotation: で始まる一意のコンテキスト キーが各ペイロードを識別します。
ワークフローに応じて、このメタデータを次の 2 つの方法で使用できます。
- 個々のオブジェクトを検査する:
viewFullContextメソッド(プレビュー)などのオブジェクト API を使用して、特定のオブジェクトのエンリッチメントを取得します。 - 大規模な分析: Storage Insights データセットと BigQuery の標準 SQL を使用して、バケット内のすべてのオブジェクトにわたって、拡充されたメタデータをクエリします。
顔検出
face-detector モデルを使用して、保存された画像内の人間の顔を検出します。モデルは、頭全体と個々の顔の境界ポリゴンを検出し、目、鼻、口などの 36 個の顔のランドマークを特定します。また、ロール、パン、チルトなどの頭部の向きの角度を計算し、感情表現の可能性を評価します。
モデルの詳細
- モデル名:
face-detector - コンテキスト キー:
google:annotation:face-detector-v1 - 対象となるオブジェクト: 20 MiB 以下の画像オブジェクト。サポートされている
Content-TypeはBMP、GIF、ICO、JPEG、PNG、TIFF、WEBPです。
出力スキーマ
モデルは、modelName、modelVersion、faceAnnotations の配列を含む faceAnnotationGroup を含む JSON オブジェクトを出力します。モデルの実行が失敗した場合、JSON オブジェクトには faceAnnotationGroup ではなく error オブジェクトが含まれます。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
modelName |
string |
なし | このエンリッチメントを生成した ML モデルの名前。 |
modelVersion |
string |
なし | この拡充を生成した ML モデルのバージョン。 |
faceAnnotationGroup |
object |
なし | 顔検出エンリッチメントの最上位コンテナ オブジェクト。モデルの実行が成功した場合に存在します。 |
faceAnnotationGroup.faceAnnotations[] |
array |
なし | 画像内で検出された顔のリスト。 |
faceAnnotationGroup.faceAnnotations[].boundingPoly |
object |
なし | 頭と顔全体を囲む BoundingPoly。元の画像の寸法に合わせてスケーリングされます。 |
faceAnnotationGroup.faceAnnotations[].faceDetectionBoundingPoly |
object |
なし | 顔検出用の BoundingPoly。boundingPoly より狭く、皮膚と目に見える顔の特徴のみを囲みます。 |
faceAnnotationGroup.faceAnnotations[].landmarks[] |
array |
なし | 特定の顔の特徴を表す、検出された FaceLandmark オブジェクトのリスト。 |
faceAnnotationGroup.faceAnnotations[].rollAngle |
number |
-180 から 180 へ |
文字盤の時計回りまたは反時計回りの回転(度単位)。 |
faceAnnotationGroup.faceAnnotations[].panAngle |
number |
-180 から 180 へ |
顔が左右を向いている水平方向の角度(度単位)。 |
faceAnnotationGroup.faceAnnotations[].tiltAngle |
number |
-180 から 180 へ |
顔が上または下を向いている垂直ピッチ角(度)。 |
faceAnnotationGroup.faceAnnotations[].detectionConfidence |
number |
0~1(0% ~ 100%) |
顔検出全体の信頼スコア。 |
faceAnnotationGroup.faceAnnotations[].landmarkingConfidence |
number |
0~1(0% ~ 100%) |
顔のランドマークの位置の信頼スコア。 |
faceAnnotationGroup.faceAnnotations[].joyProbability |
number |
0~1(0% ~ 100%) |
顔が喜びを表している可能性。 |
faceAnnotationGroup.faceAnnotations[].sorrowProbability |
number |
0~1(0% ~ 100%) |
顔が悲しみを表している可能性。 |
faceAnnotationGroup.faceAnnotations[].angerProbability |
number |
0~1(0% ~ 100%) |
顔が怒りを表している可能性。 |
faceAnnotationGroup.faceAnnotations[].surpriseProbability |
number |
0~1(0% ~ 100%) |
顔が驚きを表している可能性。 |
faceAnnotationGroup.faceAnnotations[].underExposedProbability |
number |
0~1(0% ~ 100%) |
画像内の顔が露出不足である可能性。 |
faceAnnotationGroup.faceAnnotations[].blurredProbability |
number |
0~1(0% ~ 100%) |
画像内の顔がぼやけている可能性。 |
faceAnnotationGroup.faceAnnotations[].headwearProbability |
number |
0~1(0% ~ 100%) |
人物が帽子などのヘッドウェアを着用している可能性。 |
error |
object |
なし | code と message を含む google.rpc.Status オブジェクト。モデルの実行が失敗した場合にのみ入力されます。 |
BoundingPoly
BoundingPoly オブジェクトは、検出された画像特徴を囲む境界ポリゴンを表します。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
vertices[] |
array |
なし | 絶対ピクセル Vertex オブジェクトを使用した境界ポリゴンの座標。 |
normalizedVertices[] |
array |
なし | 相対 NormalizedVertex オブジェクトを使用した境界ポリゴンの座標。0 から 1 にスケーリングされます。 |
Vertex
Vertex オブジェクトは、元の画像サイズにスケーリングされた 2D 座標点を表します。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
x |
integer |
0 以上 |
水平方向の X 座標(左端からのピクセル数)。 |
y |
integer |
0 以上 |
垂直方向の Y 座標(上端からのピクセル数)。 |
NormalizedVertex
NormalizedVertex オブジェクトは、元の画像ディメンションに対する比率として表される 2D 座標点を表します。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
x |
number |
0 から 1 へ |
画像の幅に対する水平方向の X 座標。0.0 は左端、1.0 は右端です。 |
y |
number |
0 から 1 へ |
画像の高さに対する垂直 Y 座標。0.0 は上端、1.0 は下端です。 |
FaceLandmark
FaceLandmark オブジェクトは、顔内で検出された特定の顔のランドマークを表します。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
type |
enum |
ランドマーク タイプをご覧ください。 | 検出された特定の顔のランドマーク。 |
position |
object |
なし | ランドマークの 3D Position。 |
ランドマークのタイプ
このモデルは、36 個の特定の顔のランドマークを認識します。
TYPE_UNSPECIFIEDLEFT_EYERIGHT_EYELEFT_OF_LEFT_EYEBROWRIGHT_OF_LEFT_EYEBROWLEFT_OF_RIGHT_EYEBROWRIGHT_OF_RIGHT_EYEBROWMIDPOINT_BETWEEN_EYESNOSE_TIPUPPER_LIPLOWER_LIPMOUTH_LEFTMOUTH_RIGHTMOUTH_CENTERNOSE_BOTTOM_RIGHTNOSE_BOTTOM_LEFTNOSE_BOTTOM_CENTERLEFT_EYE_TOP_BOUNDARYLEFT_EYE_RIGHT_CORNERLEFT_EYE_BOTTOM_BOUNDARYLEFT_EYE_LEFT_CORNERRIGHT_EYE_TOP_BOUNDARYRIGHT_EYE_RIGHT_CORNERRIGHT_EYE_BOTTOM_BOUNDARYRIGHT_EYE_LEFT_CORNERLEFT_EYEBROW_UPPER_MIDPOINTRIGHT_EYEBROW_UPPER_MIDPOINTLEFT_EAR_TRAGIONRIGHT_EAR_TRAGIONLEFT_EYE_PUPILRIGHT_EYE_PUPILFOREHEAD_GLABELLACHIN_GNATHIONCHIN_LEFT_GONIONCHIN_RIGHT_GONIONLEFT_CHEEK_CENTERRIGHT_CHEEK_CENTER
位置
Position オブジェクトは、顔のランドマークの 3D 座標を表します。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
x |
number |
なし | 水平方向の X 座標。 |
y |
number |
なし | 垂直方向の Y 座標。 |
z |
number |
なし | 顔平面を基準とした奥行き座標。値が小さいほどカメラに近くなります。 |
出力例
{
"modelName": "face-detector",
"modelVersion": "v1",
"faceAnnotationGroup": {
"faceAnnotations": [
{
"boundingPoly": {
"vertices": [
{ "x": 1079, "y": 148 },
{ "x": 2152, "y": 148 },
{ "x": 2152, "y": 1396 },
{ "x": 1079, "y": 1396 }
],
"normalizedVertices": [
{ "x": 0.35, "y": 0.12 },
{ "x": 0.70, "y": 0.12 },
{ "x": 0.70, "y": 0.95 },
{ "x": 0.35, "y": 0.95 }
]
},
"faceDetectionBoundingPoly": {
"vertices": [
{ "x": 1190, "y": 427 },
{ "x": 2037, "y": 427 },
{ "x": 2037, "y": 1285 },
{ "x": 1190, "y": 1285 }
]
},
"landmarks": [
{
"type": "LEFT_EYE",
"position": { "x": 1368.8, "y": 737.6, "z": 0.0016 }
},
{
"type": "RIGHT_EYE",
"position": { "x": 1659.2, "y": 755.1, "z": -116.4 }
}
],
"rollAngle": 1.959,
"panAngle": -21.954,
"tiltAngle": -2.267,
"detectionConfidence": 0.98,
"landmarkingConfidence": 0.61,
"joyProbability": 0.18,
"headwearProbability": 0.80
}
]
}
}
オブジェクト検出
object-detector モデルを使用して、画像内の複数の異なるオブジェクトを検出して追跡します。識別されたオブジェクトごとに、モデルはエンティティ名、ナレッジグラフ エンティティ ID(knowledgeGraphId)、信頼スコア、境界座標を提供します。
モデルの詳細
- モデル名:
object-detector - コンテキスト キー:
google:annotation:object-detector-v1 - 対象オブジェクト: サポートされている
Content-Type(BMP、GIF、ICO、JPEG、PNG、TIFF、WEBP)を持つ 20 MiB 以下のイメージ オブジェクト。
出力スキーマ
モデルは、modelName、modelVersion、objectAnnotations の配列を含む objectAnnotationGroup を含む JSON オブジェクトを出力します。モデルの実行が失敗した場合、JSON オブジェクトには objectAnnotationGroup ではなく error オブジェクトが含まれます。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
modelName |
string |
なし | このエンリッチメントを生成した ML モデルの名前。 |
modelVersion |
string |
なし | この拡充を生成した ML モデルのバージョン。 |
objectAnnotationGroup |
object |
なし | オブジェクト検出の拡充のための最上位コンテナ オブジェクト。モデルの実行が成功した場合に存在します。 |
objectAnnotationGroup.objectAnnotations[] |
array |
なし | 画像内で検出されたオブジェクトのリスト。 |
objectAnnotationGroup.objectAnnotations[].knowledgeGraphId |
string |
なし | 検出されたオブジェクトの Google ナレッジグラフ エンティティ ID。 |
objectAnnotationGroup.objectAnnotations[].name |
string |
なし | 検出されたオブジェクトの名前またはラベル("Person"、"Chair" など)。 |
objectAnnotationGroup.objectAnnotations[].score |
number |
0~1(0% ~ 100%) |
オブジェクト検出の信頼スコア。 |
objectAnnotationGroup.objectAnnotations[].boundingPoly |
object |
なし | オブジェクトを囲む BoundingPoly。ピクセル座標(vertices)と正規化された座標(normalizedVertices)が含まれます。 |
error |
object |
なし | code と message を含む google.rpc.Status オブジェクト。モデルの実行が失敗した場合にのみ入力されます。 |
出力例
{
"modelName": "object-detector",
"modelVersion": "v1",
"objectAnnotationGroup": {
"objectAnnotations": [
{
"knowledgeGraphId": "/m/01g317",
"name": "Person",
"score": 0.89,
"boundingPoly": {
"normalizedVertices": [
{ "x": 0.1, "y": 0.15 },
{ "x": 0.2, "y": 0.15 },
{ "x": 0.2, "y": 0.3 },
{ "x": 0.1, "y": 0.3 }
]
}
}
]
}
}
一般的な画像のラベル付け
label-detector モデルを使用して、画像の説明ラベル、キーワード、幅広いセマンティック カテゴリを生成します。このモデルは、Landscape、Urban、Night などの一般的なエンティティ、風景、アクティビティ、場所を識別し、ビジュアル アセットを検索可能にしてカタログ化できるようにします。
モデルの詳細
- モデル名:
label-detector - コンテキスト キー:
google:annotation:label-detector-v1 - 対象となるオブジェクト: 20 MiB 以下の画像オブジェクト。サポートされている
Content-TypeはBMP、GIF、ICO、JPEG、PNG、TIFF、WEBPです。
出力スキーマ
モデルは、modelName、modelVersion、labelAnnotations の配列を含む labelAnnotationGroup を含む JSON オブジェクトを出力します。モデルの実行が失敗した場合、JSON オブジェクトには labelAnnotationGroup ではなく error オブジェクトが含まれます。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
modelName |
string |
なし | このエンリッチメントを生成した ML モデルの名前。 |
modelVersion |
string |
なし | この拡充を生成した ML モデルのバージョン。 |
labelAnnotationGroup |
object |
なし | 画像ラベルの拡充用の最上位コンテナ オブジェクト。モデルの実行が成功した場合に存在します。 |
labelAnnotationGroup.labelAnnotations[] |
array |
なし | 検出されたラベルとカテゴリのリスト。 |
labelAnnotationGroup.labelAnnotations[].knowledgeGraphId |
string |
なし | ラベルの Google ナレッジグラフ エンティティ ID。 |
labelAnnotationGroup.labelAnnotations[].description |
string |
なし | 検出されたエンティティのテキストによる説明またはラベル名。 |
labelAnnotationGroup.labelAnnotations[].score |
number |
0~1(0% ~ 100%) |
ラベルの信頼スコア。 |
labelAnnotationGroup.labelAnnotations[].topicality |
number |
0~1(0% ~ 100%) |
画像の主な被写体に対するラベルの関連性。スコアが高いほど、関連性が高いことを示します。 |
error |
object |
なし | code と message を含む google.rpc.Status オブジェクト。モデルの実行が失敗した場合にのみ入力されます。 |
出力例
{
"modelName": "label-detector",
"modelVersion": "v1",
"labelAnnotationGroup": {
"labelAnnotations": [
{
"knowledgeGraphId": "/m/01d74z",
"description": "Night",
"score": 0.92,
"topicality": 0.19
}
]
}
}
不適切なコンテンツの検出
content-safety モデルを使用して、アップロードされた画像に機密性の高いコンテンツ、露骨なコンテンツ、不適切なコンテンツが含まれていないかスクリーニングします。このモデルは、Google の安全に関するポリシーに照らして画像を評価します。アダルト コンテンツ、暴力的なコンテンツ、その他のデリケートなコンテンツの可能性を評価し、コンテンツ管理ワークフローの自動化を支援します。
モデルの詳細
- モデル名:
content-safety - コンテキスト キー:
google:annotation:content-safety-v1 - 対象となるオブジェクト: 20 MiB 以下の画像オブジェクト。サポートされている
Content-TypeはBMP、GIF、ICO、JPEG、PNG、TIFF、WEBPです。
出力スキーマ
モデルは、modelName、modelVersion、可能性評価を含む contentSafetyAnnotation オブジェクトを含む JSON オブジェクトを出力します。モデルの実行が失敗した場合、JSON オブジェクトには contentSafetyAnnotation ではなく error オブジェクトが含まれます。
| フィールド | 種類 | 値 / 範囲 | 説明 |
|---|---|---|---|
modelName |
string |
なし | このエンリッチメントを生成した ML モデルの名前。 |
modelVersion |
string |
なし | この拡充を生成した ML モデルのバージョン。 |
contentSafetyAnnotation |
object |
なし | コンテンツ分析結果の最上位コンテナ オブジェクト。モデルの実行が成功した場合に存在します。 |
contentSafetyAnnotation.adultContentLikelihood |
string |
VERY_UNLIKELY、UNLIKELY、POSSIBLE、LIKELY、VERY_LIKELY |
画像にアダルト コンテンツが含まれている可能性。 |
contentSafetyAnnotation.violentContentLikelihood |
string |
VERY_UNLIKELY、UNLIKELY、POSSIBLE、LIKELY、VERY_LIKELY |
画像に暴力が描写されている可能性。 |
error |
object |
なし | code と message を含む google.rpc.Status オブジェクト。モデルの実行が失敗した場合にのみ入力されます。 |
出力例
{
"modelName": "content-safety",
"modelVersion": "v1",
"contentSafetyAnnotation": {
"adultContentLikelihood": "VERY_UNLIKELY",
"violentContentLikelihood": "UNLIKELY"
}
}
PDF の分類
pdf-classification モデルを使用して、テキスト構造と視覚構造に基づいて PDF ドキュメントを自動的に分類します。このモデルは、ビジネス、業界、トピックに標準化された階層カテゴリを割り当てます。これらのカテゴリは、大規模なドキュメント コレクションの整理、生成 AI の検索のグラウンディング、ドキュメントの下流ワークフローへの転送に役立ちます。
モデルの詳細
- モデル名:
pdf-classification - コンテキスト キー:
google:annotation:pdf-classification-v1 - 対象オブジェクト:
Content-Typeがapplication/pdfで、20 MiB 以下の PDF ドキュメント オブジェクト。
出力スキーマ
モデルは、modelName、modelVersion、分類された categories の配列を含む pdfClassificationCategoryList を含む JSON オブジェクトを出力します。モデルの実行が失敗した場合、JSON オブジェクトには pdfClassificationCategoryList ではなく error オブジェクトが含まれます。
| フィールド | 種類 | 範囲 | 説明 |
|---|---|---|---|
modelName |
string |
なし | このエンリッチメントを生成した ML モデルの名前。 |
modelVersion |
string |
なし | この拡充を生成した ML モデルのバージョン。 |
pdfClassificationCategoryList |
object |
なし | PDF 分類結果の最上位コンテナ オブジェクト。モデルの実行が成功した場合に存在します。 |
pdfClassificationCategoryList.categories[] |
array |
なし | 検出された分類カテゴリのリスト。 |
pdfClassificationCategoryList.categories[].label |
string |
PDF の分類カテゴリをご覧ください。 | 階層カテゴリパス("/Finance/Accounting & Auditing/Tax Preparation & Planning" など)。 |
pdfClassificationCategoryList.categories[].score |
number |
0~1(0% ~ 100%) |
割り当てられたカテゴリの信頼スコア。 |
error |
object |
なし | code と message を含む google.rpc.Status オブジェクト。モデルの実行が失敗した場合にのみ入力されます。 |
サポート対象のカテゴリ
pdf-classification モデルは、標準化された階層型コンテンツ カテゴリを PDF ドキュメントに割り当てます。
カテゴリは階層構造になっており、スラッシュ(/)でカテゴリの深さを区切ります。最上位の幅広いカテゴリから始まり、特定のサブカテゴリに絞り込まれます。
- トップレベルの業種:
/Finance、/Law & Government、/Computers & Electronicsなどの幅広いサブジェクト ドメイン。 - サブカテゴリ:
/Finance/Accounting & Auditing/Tax Preparation & Planningなど、業種内の特定のサブジェクト。 /Otherサブカテゴリ: 親カテゴリに一致するが、特定の子サブカテゴリに適合しないコンテンツのカテゴリ。
ドキュメントが複数の異なるトピックをカバーしている場合、モデルは 1 つの PDF オブジェクトに複数の信頼度の高いカテゴリを割り当てることができます。
最上位のカテゴリ
このモデルは、27 個の最上位カテゴリにわたって PDF ドキュメントを分類します。
/Adult/Arts & Entertainment/Autos & Vehicles/Beauty & Fitness/Books & Literature/Business & Industrial/Computers & Electronics/Finance/Food & Drink/Games/Health/Hobbies & Leisure/Home & Garden/Internet & Telecom/Jobs & Education/Law & Government/News/Online Communities/People & Society/Pets & Animals/Real Estate/Reference/Science/Sensitive Subjects/Shopping/Sports/Travel & Transportation
サブカテゴリは、これらの最上位カテゴリの下にある階層パス /Top-Level-Vertical/Subcategory に従います。オプションで、より深いレベルを指定することもできます。サポートされているすべてのカテゴリパスの一覧については、PDF 分類カテゴリをご覧ください。
出力例
{
"modelName": "pdf-classification",
"modelVersion": "v1",
"pdfClassificationCategoryList": {
"categories": [
{
"label": "/Finance/Accounting & Auditing/Tax Preparation & Planning",
"score": 0.85
},
{
"label": "/Business & Industrial/Printing & Publishing/Document & Printing Services",
"score": 0.25
}
]
}
}
次のステップ
- オブジェクト エンリッチメントについて確認する。
- オブジェクト エンリッチメントを構成する。
- オブジェクト エンリッチメントを管理する。
- BigQuery でオブジェクト エンリッチメントを分析する。
featureConfigsJSON API リソースを確認する。- オブジェクト エンリッチメントに関する問題のトラブルシューティング。