AnnotateImageResponse

画像アノテーション リクエストに対するレスポンス。

JSON 表現
{
  "faceAnnotations": [
    {
      object(FaceAnnotation)
    }
  ],
  "landmarkAnnotations": [
    {
      object(EntityAnnotation)
    }
  ],
  "logoAnnotations": [
    {
      object(EntityAnnotation)
    }
  ],
  "labelAnnotations": [
    {
      object(EntityAnnotation)
    }
  ],
  "localizedObjectAnnotations": [
    {
      object(LocalizedObjectAnnotation)
    }
  ],
  "customLabelAnnotations": [
    {
      object(CustomEntityAnnotation)
    }
  ],
  "textAnnotations": [
    {
      object(EntityAnnotation)
    }
  ],
  "fullTextAnnotation": {
    object(TextAnnotation)
  },
  "safeSearchAnnotation": {
    object(SafeSearchAnnotation)
  },
  "imagePropertiesAnnotation": {
    object(ImageProperties)
  },
  "cropHintsAnnotation": {
    object(CropHintsAnnotation)
  },
  "webDetection": {
    object(WebDetection)
  },
  "productSearchResults": {
    object(ProductSearchResults)
  },
  "error": {
    object(Status)
  },
  "context": {
    object(ImageAnnotationContext)
  },
  "imageQualityAnnotation": {
    object(ImageQuality)
  },
  "objectAttributeAnnotations": [
    {
      object(EntityAnnotation)
    }
  ],
  "qualityOptimizationResult": {
    object(QualityOptimizationResult)
  },
  "localizedBarcodeAnnotations": [
    {
      object(LocalizedBarcodeAnnotation)
    }
  ]
}
フィールド
faceAnnotations[]

object(FaceAnnotation)

存在する場合、顔検出が正常に完了しています。

landmarkAnnotations[]

object(EntityAnnotation)

存在する場合、ランドマーク検出が正常に完了しています。

logoAnnotations[]

object(EntityAnnotation)

存在する場合、ロゴ検出が正常に完了しています。

labelAnnotations[]

object(EntityAnnotation)

存在する場合、ラベル検出が正常に完了しています。

localizedObjectAnnotations[]

object(LocalizedObjectAnnotation)

存在する場合、ローカライズされたオブジェクト検出が正常に完了しています。信頼スコアの降順で並べ替えられます。

customLabelAnnotations[]

object(CustomEntityAnnotation)

存在する場合、カスタム アノテーションが正常に完了しています。

textAnnotations[]

object(EntityAnnotation)

存在する場合、テキスト(OCR)検出が正常に完了しています。

fullTextAnnotation

object(TextAnnotation)

存在する場合、テキスト(OCR)検出またはドキュメント(OCR)テキスト検出が正常に完了しています。このアノテーションは、OCR で検出されたテキストの構造的階層を提供します。

safeSearchAnnotation

object(SafeSearchAnnotation)

存在する場合、セーフサーチ アノテーションが正常に完了しています。

imagePropertiesAnnotation

object(ImageProperties)

存在する場合、画像のプロパティが正常に抽出されています。

cropHintsAnnotation

object(CropHintsAnnotation)

存在する場合、クロップヒントが正常に完了しています。

webDetection

object(WebDetection)

存在する場合、ウェブ検出が正常に完了しています。

productSearchResults

object(ProductSearchResults)

存在する場合、Product Search は正常に完了しています。

error

object(Status)

設定されている場合、オペレーションのエラー メッセージを表します。error が設定されている場合でも、存在する画像アノテーションは正しいことが保証されます。

context

object(ImageAnnotationContext)

存在する場合は、この画像の取得元を特定するためにコンテキスト情報が必要になります。

imageQualityAnnotation

object(ImageQuality)

存在する場合、画質の計算は正常に完了しています。

objectAttributeAnnotations[]

object(EntityAnnotation)

オブジェクトが存在する場合、オブジェクト属性の計算は正常に完了しています。属性値は EntityAnnotation.properties に示されます。例: objectAttributeAnnotations { properties { name: "color" value: "blue" confidence: 0.1 } properties { name: "color" value: "white" confidence: 0.2 } properties { name: "material" value: "silk" confidence: 0.3 } }

qualityOptimizationResult

object(QualityOptimizationResult)

存在する場合、画質の最適化は正常に完了しています。

localizedBarcodeAnnotations[]

object(LocalizedBarcodeAnnotation)

ローカライズされたバーコード検出が正常に完了しています。

FaceAnnotation

顔アノテーション オブジェクトには、顔検出の結果が含まれます。

JSON 表現
{
  "boundingPoly": {
    object(BoundingPoly)
  },
  "fdBoundingPoly": {
    object(BoundingPoly)
  },
  "landmarks": [
    {
      object(Landmark)
    }
  ],
  "rollAngle": number,
  "panAngle": number,
  "tiltAngle": number,
  "detectionConfidence": number,
  "landmarkingConfidence": number,
  "joyLikelihood": enum(Likelihood),
  "sorrowLikelihood": enum(Likelihood),
  "angerLikelihood": enum(Likelihood),
  "surpriseLikelihood": enum(Likelihood),
  "underExposedLikelihood": enum(Likelihood),
  "blurredLikelihood": enum(Likelihood),
  "headwearLikelihood": enum(Likelihood)
}
フィールド
boundingPoly

object(BoundingPoly)

顔の輪郭の境界ポリゴン。境界ボックスの座標は元の画像のスケールで示されます。人間の顔と考えられる顔を「囲む」ため、境界ボックスが計算されます。これは、ランドマーカーの結果に基づいています。アノテーションが付けられる画像に顔の一部だけが表示される場合には、BoundingPoly で 1 つ以上の x 座標または y 座標が生成されない可能性があります(ポリゴンが閉じません)。

fdBoundingPoly

object(BoundingPoly)

fdBoundingPoly 境界ポリゴンは boundingPoly よりも細かく、顔の肌部分だけを囲みます。一般に、画像分析で画像に「ある程度の量の肌」が写っていることが検出された場合に、顔を除外するために使用されます。これは、ランドマーカーの結果には基づいておらず、初期顔検出だけに基づいているため、次の

fd

(顔検出)接頭辞が使用されます。

landmarks[]

object(Landmark)

検出された顔ランドマーク。

rollAngle

number

ロール角。これは、画像の垂直方向を基準に、顔の垂直軸が時計回り / 反時計回りで回転する量を示します。範囲は [-180,180] です。

panAngle

number

ヨー角。これは、画像の真正面方向を基準に、顔の真正面が向いている角度(左方向 / 右方向)を示します。範囲は [-180,180] です。

tiltAngle

number

ピッチ角。これは、画像の水平方向を基準に、顔が向いている上方向 / 下方向の角度を示します。範囲は [-180,180] です。

detectionConfidence

number

検出の信頼度。範囲は [0, 1] です。

landmarkingConfidence

number

顔のランドマークの信頼度。範囲は [0, 1] です。

joyLikelihood

enum(Likelihood)

喜んでいる可能性。

sorrowLikelihood

enum(Likelihood)

悲しんでいる可能性。

angerLikelihood

enum(Likelihood)

怒っている可能性。

surpriseLikelihood

enum(Likelihood)

驚いている可能性。

underExposedLikelihood

enum(Likelihood)

露出不足の可能性。

blurredLikelihood

enum(Likelihood)

ピントが合っていない可能性。

headwearLikelihood

enum(Likelihood)

ヘッドウェアを着けている可能性。

ランドマーク

顔特有のランドマーク(顔の特徴など)。

JSON 表現
{
  "type": enum(Type),
  "position": {
    object(Position)
  }
}
フィールド
type

enum(Type)

顔のランドマークのタイプ。

position

object(Position)

顔のランドマークの位置。

顔のランドマーク(特徴)のタイプ。左と右は、写真の一般的な鏡像投影を考慮せず、画像を見るユーザーの視点から定義されています。したがって LEFT_EYE は通常、人物の右目です。

列挙型
UNKNOWN_LANDMARK 検出された不明な顔のランドマーク。何も入力されていないはずです。
LEFT_EYE 左目。
RIGHT_EYE 右目。
LEFT_OF_LEFT_EYEBROW 左眉毛の左。
RIGHT_OF_LEFT_EYEBROW 左眉毛の右。
LEFT_OF_RIGHT_EYEBROW 右眉毛の左。
RIGHT_OF_RIGHT_EYEBROW 右眉毛の右。
MIDPOINT_BETWEEN_EYES 目の間の中間点。
NOSE_TIP 鼻の先端。
UPPER_LIP 上唇。
LOWER_LIP 下唇。
MOUTH_LEFT 口の左側。
MOUTH_RIGHT 口の右側。
MOUTH_CENTER 口の中心。
NOSE_BOTTOM_RIGHT 鼻、右下。
NOSE_BOTTOM_LEFT 鼻、左下。
NOSE_BOTTOM_CENTER 鼻、下中点。
LEFT_EYE_TOP_BOUNDARY 左目、上部境界。
LEFT_EYE_RIGHT_CORNER 左目、右隅。
LEFT_EYE_BOTTOM_BOUNDARY 左目、下部境界。
LEFT_EYE_LEFT_CORNER 左目、左隅。
RIGHT_EYE_TOP_BOUNDARY 右目、上部境界。
RIGHT_EYE_RIGHT_CORNER 右目、右隅。
RIGHT_EYE_BOTTOM_BOUNDARY 右目、下部境界。
RIGHT_EYE_LEFT_CORNER 右目、左隅。
LEFT_EYEBROW_UPPER_MIDPOINT 左眉、上中点。
RIGHT_EYEBROW_UPPER_MIDPOINT 右眉、上中点。
LEFT_EAR_TRAGION 左耳の耳珠点。
RIGHT_EAR_TRAGION 右耳の耳珠点。
LEFT_EYE_PUPIL 左目の瞳孔。
RIGHT_EYE_PUPIL 右目の瞳孔。
FOREHEAD_GLABELLA 額の眉間点。
CHIN_GNATHION 顎のオトガイ点。
CHIN_LEFT_GONION 顎の左オトガイ点。
CHIN_RIGHT_GONION 顎の右オトガイ点。

Position

画像で、主に顔検出ランドマークに使用される 3D 位置。有効な Position には、x 座標と y 座標の両方が指定されているはずです。位置の座標は元の画像と同じスケールです。

JSON 表現
{
  "x": number,
  "y": number,
  "z": number
}
フィールド
x

number

X 座標。

y

number

Y 座標。

z

number

Z 座標(または深さ)。

Likelihood

バケット化された可能性の表現。これは、モデルのアップグレードで非常に安定した結果をクライアントに提供することを目的としています。

列挙型
UNKNOWN 不明な可能性。
VERY_UNLIKELY 指定されたカテゴリに画像が属している可能性はほとんどありません。
UNLIKELY 指定されたカテゴリに画像が属している可能性は低いです。
POSSIBLE 指定されたカテゴリに画像が属している可能性があります。
LIKELY 指定されたカテゴリに画像が属している可能性は高いです。
VERY_LIKELY 指定されたカテゴリに画像が属している可能性は非常に高いです。

EntityAnnotation

検出されたエンティティの特徴のセット。

JSON 表現
{
  "mid": string,
  "locale": string,
  "description": string,
  "score": number,
  "confidence": number,
  "topicality": number,
  "boundingPoly": {
    object(BoundingPoly)
  },
  "locations": [
    {
      object(LocationInfo)
    }
  ],
  "properties": [
    {
      object(Property)
    }
  ]
}
フィールド
mid

string

不透明エンティティの ID。一部の ID は Google Knowledge Graph Search API で使用できます。

locale

string

エンティティ テキスト description が表現されているロケールの言語コード。

description

string

エンティティ テキストの説明。locale の言語で表現されます。

score

number

結果の全体的なスコア。範囲は [0, 1] です。

confidence
(deprecated)

number

サポートを終了しました。代わりに score を使用してください。画像でのエンティティ検出の精度。たとえば、「Eiffel Tower」というエンティティが検出された画像の場合、このフィールドは、クエリ画像内に塔があることの信頼度を表します。範囲は [0, 1] です。

topicality

number

画像に対する ICA(Image Content Annotation)ラベルの関連度。たとえば、「Eiffel Tower」が検出された画像と遠方にある塔(Tower)が検出された画像の場合、塔があることの信頼度が同一であっても、「Tower」の関連度は「Eiffel Tower」が検出された画像の方が高くなります。範囲は [0, 1] です。

boundingPoly

object(BoundingPoly)

このエンティティが属する画像領域。LABEL_DETECTION 機能では作成されません。

locations[]

object(LocationInfo)

検出されたエンティティの位置情報。複数の LocationInfo 要素が存在していることがあります。これは、ある位置が画像内のシーンの位置を示し、別の位置が画像撮影場所の位置を示している可能性があるためです。位置情報は通常、ランドマークのために存在しています。

properties[]

object(Property)

エンティティの中には、エンティティを修飾するスコアや文字列など、オプションのユーザー指定 Property(名前 / 値)フィールドを持つものがあります。

LocationInfo

検出されたエンティティの位置情報。

JSON 表現
{
  "latLng": {
    object(LatLng)
  }
}
フィールド
latLng

object(LatLng)

緯度 / 経度での位置座標。

プロパティ

Property は、ユーザー指定の名前と値のペアで構成されます。

JSON 表現
{
  "name": string,
  "value": string,
  "uint64Value": string,
  "confidence": number,
  "mid": string
}
フィールド
name

string

プロパティの名前。

value

string

プロパティの値。

uint64Value

string

数値プロパティの値。

confidence

number

値の範囲は [0..1] です。このプロパティ値の信頼度。

mid

string

不透明プロパティ値の ID。一部の ID は Google Knowledge Graph Search API で使用できます。青いコートのサンプル プロパティ: Property { name: 'color' value: 'blue' mid: '/m/01g5v' // 青色の場合 }

LocalizedObjectAnnotation

検出された境界ボックス付きオブジェクトのセット。

JSON 表現
{
  "mid": string,
  "languageCode": string,
  "name": string,
  "score": number,
  "boundingPoly": {
    object(BoundingPoly)
  }
}
フィールド
mid

string

EntityAnnotation mid と一致するオブジェクト ID。

languageCode

string

「en-US」や「sr-Latn」などの BCP-47 言語コード。詳細については、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier をご覧ください。

name

string

オブジェクト名。languageCode 言語で表現されます。

score

number

結果のスコア。範囲は [0, 1] です。

boundingPoly

object(BoundingPoly)

このオブジェクトが属する画像領域。この値は入力する必要があります。

CustomEntityAnnotation

CustomEntityAnnotation には、Vision カスタムモデルを使用して予測されたアノテーションが含まれます。

JSON 表現
{
  "model": string,
  "label": string,
  "score": number
}
フィールド
model

string

このアノテーションの作成に使用されるカスタムモデルを識別します。モデル名の形式は、クエリされたカスタムモデルのリソース URL(/projects/PROJECT_ID/models/MODEL_ID)になりますが、モデルが現在のプロジェクトに属している場合は /models/MODEL_ID になります。

label

string

カスタムモデルによって予測されたラベル。

score

number

カスタムモデルによるラベルの信頼スコア。

TextAnnotation

TextAnnotation には、OCR 抽出テキストの構造化表現が含まれています。OCR 抽出テキスト構造の階層は、TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol のようになります。Page 以降の各構造コンポーネントには独自のプロパティが設定されていることがあります。プロパティは、検出された言語、区切りなどを記述します。詳しくは、以下の TextAnnotation.TextProperty メッセージの定義をご覧ください。

JSON 表現
{
  "pages": [
    {
      object(Page)
    }
  ],
  "text": string
}
フィールド
pages[]

object(Page)

OCR によって検出されたページのリスト。

text

string

ページで検出された UTF-8 テキスト。

ページ

OCR から検出されたページ。

JSON 表現
{
  "property": {
    object(TextProperty)
  },
  "width": number,
  "height": number,
  "blocks": [
    {
      object(Block)
    }
  ],
  "confidence": number,
  "mergedText": string
}
フィールド
property

object(TextProperty)

ページで検出された追加情報。

width

number

ページの幅。PDF の場合、単位はポイントです。画像(TIFF を含む)の場合、単位はピクセルです。

height

number

ページの高さ。PDF の場合、単位はポイントです。画像(TIFF を含む)の場合、単位はピクセルです。

blocks[]

object(Block)

このページのテキスト、画像などのブロックのリスト。

confidence

number

ページの OCR 結果の信頼度。範囲は [0, 1] です。

mergedText

string

このページで検出されたすべての UTF-8 テキスト。TextDetectionParams.page_filter で指定しない限り、このフィールドはデフォルトでは返されません。

TextProperty

構造コンポーネントで検出された追加情報。

JSON 表現
{
  "detectedLanguages": [
    {
      object(DetectedLanguage)
    }
  ],
  "detectedBreak": {
    object(DetectedBreak)
  }
}
フィールド
detectedLanguages[]

object(DetectedLanguage)

検出された言語と信頼度のリスト。

detectedBreak

object(DetectedBreak)

検出されたテキスト セグメントの開始または終了。

DetectedLanguage

検出された構造コンポーネントの言語。

JSON 表現
{
  "languageCode": string,
  "confidence": number
}
フィールド
languageCode

string

「en-US」や「sr-Latn」などの BCP-47 言語コード。詳細については、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier をご覧ください。

confidence

number

検出された言語の信頼度。範囲は [0, 1] です。

DetectedBreak

検出された構造コンポーネントの開始または終了。

JSON 表現
{
  "type": enum(BreakType),
  "isPrefix": boolean
}
フィールド
type

enum(BreakType)

検出された区切りのタイプ。

isPrefix

boolean

区切りが要素の前にある場合は True。

BreakType

検出された区切りのタイプを示す列挙型。改行、スペースなどです。

列挙型
UNKNOWN 不明な区切りラベルタイプ。
SPACE 標準スペース。
SURE_SPACE 広幅のスペース。
EOL_SURE_SPACE 行折り返しの区切り。
HYPHEN テキストに存在しない行末ハイフン。SPACELEADER_SPACELINE_BREAK と組み合わせて出現することはありません。
LINE_BREAK 段落を終了する改行。

ブロック

ページ上の論理的な要素。

JSON 表現
{
  "property": {
    object(TextProperty)
  },
  "boundingBox": {
    object(BoundingPoly)
  },
  "paragraphs": [
    {
      object(Paragraph)
    }
  ],
  "blockType": enum(BlockType),
  "confidence": number,
  "table": {
    object(Table)
  },
  "keyValuePair": {
    object(KeyValuePair)
  },
  "mergedText": string
}
フィールド
property

object(TextProperty)

ブロックについて検出された追加情報。

boundingBox

object(BoundingPoly)

ブロックの境界ボックス。頂点は、左上、右上、右下、左下の順に並んでいます。境界ボックスの回転が検出された場合、回転はテキストを「自然な」方向で読み取るときの左上隅を中心と定義して表されます。例:

  • テキストが水平の場合、次のようになります。
    0----1
    |    |
    3----2
  • テキストが左上隅を中心として 180 度回転した場合は、次のようになります。
    2----3
    |    |
    1----0

頂点の順序は (0, 1, 2, 3) のままです。

paragraphs[]

object(Paragraph)

このブロック内の段落のリスト(このブロックのタイプがテキストの場合)。

blockType

enum(BlockType)

このブロックの検出されたブロックタイプ(テキスト、イメージなど)。

confidence

number

このブロックの OCR 実行結果の信頼性。範囲は [0, 1] です。

table

object(Table)

TABLE blockType で検出されたテーブル。デフォルトでは、TextDetectionParams.table_detection_options で有効にしない限り、このフィールドは返されません。このブロックの boundingBox が、このテーブルに検出された境界になります。

keyValuePair

object(KeyValuePair)

KEY_VALUE_PAIR blockType に検出されたペア。DocumentType を指定しない限り、このフィールドはデフォルトで返されません。

mergedText

string

このブロックで検出されたすべての UTF-8 テキスト。TextDetectionParams.block_filter で指定しない限り、このフィールドはデフォルトでは返されません。

段落

多数の単語を特定の順序で示すテキストの構造単位。

JSON 表現
{
  "property": {
    object(TextProperty)
  },
  "boundingBox": {
    object(BoundingPoly)
  },
  "words": [
    {
      object(Word)
    }
  ],
  "confidence": number,
  "mergedText": string
}
フィールド
property

object(TextProperty)

段落について検出された追加情報。

boundingBox

object(BoundingPoly)

段落の境界ボックス。頂点は、左上、右上、右下、左下の順に並んでいます。境界ボックスの回転が検出された場合、回転はテキストを「自然な」方向で読み取るときの左上隅を中心と定義して表されます。例: * テキストが水平の場合、0----1 | | 3----2 なります。* 左上隅を中心に 180 度回転すると、2----3 | | 1----0 となり、頂点の順序は(0、1、2、3)のままです。

words[]

object(Word)

この段落の単語のリスト。

confidence

number

この段落の OCR 結果の信頼度。範囲は [0, 1] です。

mergedText

string

この段落で検出されたすべての UTF-8 テキスト。TextDetectionParams.paragraph_filter で指定しない限り、このフィールドはデフォルトでは返されません。

Word

単語の表現。

JSON 表現
{
  "property": {
    object(TextProperty)
  },
  "boundingBox": {
    object(BoundingPoly)
  },
  "symbols": [
    {
      object(Symbol)
    }
  ],
  "confidence": number,
  "mergedText": string
}
フィールド
property

object(TextProperty)

単語について検出された追加情報。

boundingBox

object(BoundingPoly)

単語の境界ボックス。頂点は、左上、右上、右下、左下の順に並んでいます。境界ボックスの回転が検出された場合、回転はテキストを「自然な」方向で読み取るときの左上隅を中心と定義して表されます。例: * テキストが水平の場合、0----1 | | 3----2 なります。* 左上隅を中心に 180 度回転すると、2----3 | | 1----0 となり、頂点の順序は(0、1、2、3)のままです。

symbols[]

object(Symbol)

単語内の記号のリスト。記号の順序は、自然な読み順に従います。

confidence

number

単語に対する OCR 結果の信頼度。範囲は [0, 1] です。

mergedText

string

この単語で検出されたすべての UTF-8 テキスト。TextDetectionParams.word_filter で指定しない限り、このフィールドはデフォルトでは返されません。

記号

1 つの記号表現。

JSON 表現
{
  "property": {
    object(TextProperty)
  },
  "boundingBox": {
    object(BoundingPoly)
  },
  "text": string,
  "confidence": number
}
フィールド
property

object(TextProperty)

記号について検出された追加情報。

boundingBox

object(BoundingPoly)

記号の境界ボックス。頂点は、左上、右上、右下、左下の順に並んでいます。境界ボックスの回転が検出された場合、回転はテキストを「自然な」方向で読み取るときの左上隅を中心と定義して表されます。例: * テキストが水平の場合、0----1 | | 3----2 なります。* 左上隅を中心に 180 度回転すると、2----3 | | 1----0 となり、頂点の順序は(0、1、2、3)のままです。

text

string

記号の実際の UTF-8 表現。

confidence

number

記号の OCR 結果の信頼度。範囲は [0, 1] です。

BlockType

OCR で特定されたブロックのタイプ(テキスト、画像など)。

列挙型
UNKNOWN 不明なブロックタイプ。
TEXT 標準テキスト ブロック。
TABLE テーブル ブロック。
PICTURE 画像ブロック。
RULER 水平線 / 垂直線ボックス。
BARCODE バーコード ブロック。
KEY_VALUE_PAIR Key-Value ペアのブロック。

テーブル

HTML のテーブル構造に類似したテーブル表現。

JSON 表現
{
  "headerRows": [
    {
      object(TableRow)
    }
  ],
  "bodyRows": [
    {
      object(TableRow)
    }
  ]
}
フィールド
headerRows[]

object(TableRow)

テーブルのヘッダー行

bodyRows[]

object(TableRow)

テーブルの本文行

TableRow

テーブルセルの行。

JSON 表現
{
  "cells": [
    {
      object(TableCell)
    }
  ]
}
フィールド
cells[]

object(TableCell)

この行を構成するセル。

TableCell

テーブル内のセル表現。

JSON 表現
{
  "rowSpan": number,
  "colSpan": number,
  "textBlock": {
    object(Block)
  },
  "text": string
}
フィールド
rowSpan

number

このセルがまたがっている行の数。

colSpan

number

このセルがまたがっている列の数。

textBlock

object(Block)

このセルのテキスト ブロック。セルの正規化された境界ボックスとセル内のより深い構造(存在する場合)が含まれます。

text

string

このセルの結合されたテキストの値。textBlock と異なり、より深い構造の情報は省略されます。これは単純なセルに役立ちます。

KeyValuePair

Key-Value ペアの Proto。

JSON 表現
{
  "key": string,
  "keyBlock": {
    object(Block)
  },
  "valueBlock": {
    object(Block)
  },
  "valueType": string,
  "normalizedKey": string
}
フィールド
key

string

キー文字列の値。

keyBlock

object(Block)

正規化された境界ボックスとキーテキストを含むペアのキーブロック。

valueBlock

object(Block)

正規化された境界ボックスと値テキストを含むペアの値ブロック。値テキスト内のより深い構造を含む可能性があります。

valueType

string

値の型。有効な文字列は次のとおりです。

generic - 値にマッピングされる汎用テキスト。number - 数値型、id - 汎用識別子。currency - 通貨の値。date - 日付。time - 時間と期間の値。date_range - 期間。address - アドレス値(長い場合もあります)。person - 人の名前またはその他の個人識別子。phone - 電話番号。

normalizedKey

string

(省略可)正規化されたキーテキスト(テキストが一般的で、分類されている場合)。

たとえば、TOTAL DUE は Total amount に正規化されます。

SafeSearchAnnotation

画像の特徴のセット。これらの特徴は、セーフサーチ カテゴリ(アダルト、パロディ、医療、暴力など)に関してコンピュータ ビジョン メソッドにより計算されます。

JSON 表現
{
  "adult": enum(Likelihood),
  "spoof": enum(Likelihood),
  "medical": enum(Likelihood),
  "violence": enum(Likelihood),
  "racy": enum(Likelihood)
}
フィールド
adult

enum(Likelihood)

画像がアダルト コンテンツである可能性を表します。アダルト コンテンツには、ヌード、ポルノ画像や漫画、性行為などの要素が含まれている可能性があります。

spoof

enum(Likelihood)

パロディの可能性。これは、面白くするため、または侮辱的にするため、正規の画像が改ざんされた可能性です。

medical

enum(Likelihood)

医療画像である可能性。

violence

enum(Likelihood)

この画像に暴力的なコンテンツが含まれている可能性。

racy

enum(Likelihood)

リクエスト画像に露骨なコンテンツが含まれている可能性。露骨な内容には、露出度の高い服や薄手の服、意図的に一部が覆われたヌード、猥褻または挑発的なポーズ、または局部のクローズアップなどがあります。

ImageProperties

ドミナント カラーなどの画像プロパティを格納します。

JSON 表現
{
  "dominantColors": {
    object(DominantColorsAnnotation)
  }
}
フィールド
dominantColors

object(DominantColorsAnnotation)

存在する場合、ドミナント カラーが正常に完了しました。

DominantColorsAnnotation

ドミナント カラーとその対応するスコアのセット。

JSON 表現
{
  "colors": [
    {
      object(ColorInfo)
    }
  ]
}
フィールド
colors[]

object(ColorInfo)

RGB カラーの値とそのスコアおよびピクセルの割合。

ColorInfo

カラー情報は、RGB チャネル、スコア、画像内でその色が占有する割合で構成されます。

JSON 表現
{
  "color": {
    object(Color)
  },
  "score": number,
  "pixelFraction": number
}
フィールド
color

object(Color)

色の RGB 構成要素。

score

number

この色の画像固有のスコア。値の範囲は [0, 1] です。

pixelFraction

number

画像でその色が占有するピクセルの割合。値の範囲は [0, 1] です。

RGBA カラースペースのカラーを表します。この表現は、簡潔さよりも、さまざまな言語でのカラー表現への変換またはこのようなカラー表現からの変換を容易にできるように設計されています。たとえば、この表現のフィールドは、Java の「java.awt.Color」のコンストラクタや、iOS の UIColor の「+colorWithRed:green:blue:alpha」メソッドに簡単に渡すことができます。また、JavaScript の CSS "rgba()" 文字列に簡単にフォーマットすることもできます。

注: この proto には、RGB 値の解釈に使用する必要がある絶対色空間の情報が含まれていません(例: sRGB、Adobe RGB、DCI-P3、BT.2020)。デフォルトでは、アプリケーションは sRGB 色空間を想定します。

例(Java):

 import com.google.type.Color;

 // ...
 public static java.awt.Color fromProto(Color protocolor) {
   float alpha = protocolor.hasAlpha()
       ? protocolor.getAlpha().getValue()
       : 1.0;

   return new java.awt.Color(
       protocolor.getRed(),
       protocolor.getGreen(),
       protocolor.getBlue(),
       alpha);
 }

 public static Color toProto(java.awt.Color color) {
   float red = (float) color.getRed();
   float green = (float) color.getGreen();
   float blue = (float) color.getBlue();
   float denominator = 255.0;
   Color.Builder resultBuilder =
       Color
           .newBuilder()
           .setRed(red / denominator)
           .setGreen(green / denominator)
           .setBlue(blue / denominator);
   int alpha = color.getAlpha();
   if (alpha != 255) {
     result.setAlpha(
         FloatValue
             .newBuilder()
             .setValue(((float) alpha) / denominator)
             .build());
   }
   return resultBuilder.build();
 }
 // ...

例(iOS / Obj-C):

 // ...
 static UIColor* fromProto(Color* protocolor) {
    float red = [protocolor red];
    float green = [protocolor green];
    float blue = [protocolor blue];
    FloatValue* alpha_wrapper = [protocolor alpha];
    float alpha = 1.0;
    if (alpha_wrapper != nil) {
      alpha = [alpha_wrapper value];
    }
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
 }

 static Color* toProto(UIColor* color) {
     CGFloat red, green, blue, alpha;
     if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
       return nil;
     }
     Color* result = [[Color alloc] init];
     [result setRed:red];
     [result setGreen:green];
     [result setBlue:blue];
     if (alpha <= 0.9999) {
       [result setAlpha:floatWrapperWithValue(alpha)];
     }
     [result autorelease];
     return result;
}
// ...

例(JavaScript):

// ...

var protoToCssColor = function(rgb_color) {
   var redFrac = rgb_color.red || 0.0;
   var greenFrac = rgb_color.green || 0.0;
   var blueFrac = rgb_color.blue || 0.0;
   var red = Math.floor(redFrac * 255);
   var green = Math.floor(greenFrac * 255);
   var blue = Math.floor(blueFrac * 255);

   if (!('alpha' in rgb_color)) {
      return rgbToCssColor_(red, green, blue);
   }

   var alphaFrac = rgb_color.alpha.value || 0.0;
   var rgbParams = [red, green, blue].join(',');
   return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};

var rgbToCssColor_ = function(red, green, blue) {
  var rgbNumber = new Number((red << 16) | (green << 8) | blue);
  var hexString = rgbNumber.toString(16);
  var missingZeros = 6 - hexString.length;
  var resultBuilder = ['#'];
  for (var i = 0; i < missingZeros; i++) {
     resultBuilder.push('0');
  }
  resultBuilder.push(hexString);
  return resultBuilder.join('');
};

// ...
JSON 表現
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
フィールド
red

number

カラーの赤色の量。[0, 1] の範囲内の値として示されます。

green

number

カラーの緑色の量。[0, 1] の範囲内の値として示されます。

blue

number

カラーの青色の量。[0, 1] の範囲内の値として示されます。

alpha

number

ピクセルに適用する必要があるこのカラーの割合。つまり、最終ピクセルカラーは以下の式によって定義されます。

ピクセルカラー = alpha *(このカラー)+(1.0 - alpha)*(バックグラウンド カラー)

つまり、値 1.0 はソリッドカラーに相当し、値 0.0 は透明色に相当します。これは、単純な浮動小数点スカラーではなくラッパー メッセージを使用します。これにより、デフォルト値が設定されたのか未設定値だったのかを区別できます。省略された場合、このカラー オブジェクトは(alpha 値として明示的に値 1.0 が指定された場合と同様に)ソリッドカラーとしてレンダリングされます。

CropHintsAnnotation

画像を処理するときに新しいクロップを生成するために使用されるクロップヒントのセット。

JSON 表現
{
  "cropHints": [
    {
      object(CropHint)
    }
  ]
}
フィールド
cropHints[]

object(CropHint)

クロップヒントの結果。

CropHint

画像を処理するときに新しいクロップを生成するために使用される 1 つのクロップヒント。

JSON 表現
{
  "boundingPoly": {
    object(BoundingPoly)
  },
  "confidence": number,
  "importanceFraction": number
}
フィールド
boundingPoly

object(BoundingPoly)

クロップ領域の境界ポリゴン。境界ボックスの座標は元の画像のスケールで示されます。

confidence

number

注目領域であることの信頼度。範囲は [0, 1] です。

importanceFraction

number

元の画像を基準にしたこの注目領域の重要度の割合。

WebDetection

インターネットからの画像に関する関連情報。

JSON 表現
{
  "webEntities": [
    {
      object(WebEntity)
    }
  ],
  "fullMatchingImages": [
    {
      object(WebImage)
    }
  ],
  "partialMatchingImages": [
    {
      object(WebImage)
    }
  ],
  "pagesWithMatchingImages": [
    {
      object(WebPage)
    }
  ],
  "visuallySimilarImages": [
    {
      object(WebImage)
    }
  ],
  "bestGuessLabels": [
    {
      object(WebLabel)
    }
  ]
}
フィールド
webEntities[]

object(WebEntity)

インターネット上の類似画像から推測されたエンティティ。

fullMatchingImages[]

object(WebImage)

完全に一致するインターネット上の画像。クエリ画像のサイズを変更したコピーも含まれます。

partialMatchingImages[]

object(WebImage)

部分的に一致するインターネットの画像。これらの画像は十分に類似しており、いくつかの主要な特徴を共有しています。たとえば、元の画像とそのクロップした画像とは部分一致する可能性があります。

pagesWithMatchingImages[]

object(WebPage)

一致するインターネットの画像を含むウェブページ。

visuallySimilarImages[]

object(WebImage)

視覚的に類似した画像結果。

bestGuessLabels[]

object(WebLabel)

サービスが、リクエスト画像のトピックに最も近いとする推測です。オープンウェブ上の類似画像から推定されます。

WebEntity

インターネット上の類似画像から推測されたエンティティ。

JSON 表現
{
  "entityId": string,
  "score": number,
  "description": string
}
フィールド
entityId

string

不透明エンティティ ID。

score

number

エンティティの全体的な関連性スコア。正規化されておらず、異なる画像クエリ間で比較することはできません。

description

string

エンティティの標準的な説明(英語)。

WebImage

オンライン画像のメタデータ。

JSON 表現
{
  "url": string,
  "score": number
}
フィールド
url

string

結果画像の URL。

score

number

(非推奨)画像の全体的な関連性スコア。

WebPage

ウェブページのメタデータ。

JSON 表現
{
  "url": string,
  "score": number,
  "pageTitle": string,
  "fullMatchingImages": [
    {
      object(WebImage)
    }
  ],
  "partialMatchingImages": [
    {
      object(WebImage)
    }
  ]
}
フィールド
url

string

結果のウェブページの URL。

score

number

(非推奨)ウェブページの全体的な関連性スコア。

pageTitle

string

ウェブページのタイトル。HTML マークアップが含まれていることがあります。

fullMatchingImages[]

object(WebImage)

ページ上の完全一致画像。クエリ画像のサイズを変更したコピーも含まれます。

partialMatchingImages[]

object(WebImage)

ページ上の部分一致画像。これらの画像は十分に類似しており、いくつかの主要な特徴を共有しています。たとえば、元の画像とそのクロップした画像とは部分一致する可能性があります。

WebLabel

ウェブ検出のための追加メタデータを提供するラベル。

JSON 表現
{
  "label": string,
  "languageCode": string
}
フィールド
label

string

追加メタデータのラベル。

languageCode

string

「en-US」や「sr-Latn」などの label の BCP-47 言語コード。詳しくは、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier をご覧ください。

ProductSearchResults

Product Search リクエストの結果。

JSON 表現
{
  "indexTime": string,
  "results": [
    {
      object(Result)
    }
  ],
  "productGroupedResults": [
    {
      object(GroupedResult)
    }
  ]
}
フィールド
indexTime

string (Timestamp format)

これらの結果を生成したインデックスのタイムスタンプ。この時間以降に行われた変更は、現在の結果には反映されません。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒。例: "2014-10-02T15:01:23.045123456Z"

results[]

object(Result)

一致する商品の結果リスト(商品ごとに 1 つ)。

productGroupedResults[]

object(GroupedResult)

クエリ画像で検出された商品別にグループ化された結果のリスト。各エントリはクエリ画像内の 1 つの境界ポリゴンに対応し、その領域に固有の一致商品が含まれます。商品ごとのすべての検索結果では、重複した商品が存在する可能性があります。

結果

商品に関する情報。

JSON 表現
{
  "product": {
    object(Product)
  },
  "score": number,
  "image": string
}
フィールド
product

object(Product)

Product。

score

number

一致の信頼度レベル。0(最低の信頼度)から 1(最高の信頼度)の範囲になります。

image

string

クエリに最も一致する商品の画像のリソース名。

GroupedResult

クエリ画像に含まれる 1 つの商品に類似する商品に関する情報。

JSON 表現
{
  "boundingPoly": {
    object(BoundingPoly)
  },
  "results": [
    {
      object(Result)
    }
  ],
  "objectAnnotations": [
    {
      object(ObjectAnnotation)
    }
  ]
}
フィールド
boundingPoly

object(BoundingPoly)

クエリ画像で検出された商品を囲む境界ポリゴン。

results[]

object(Result)

一致する商品の結果リスト(商品ごとに 1 つ)。

objectAnnotations[]

object(ObjectAnnotation)

境界ボックス内のオブジェクトの汎用予測のリスト。

ObjectAnnotation

境界ボックス内のオブジェクトの予測。

JSON 表現
{
  "mid": string,
  "languageCode": string,
  "name": string,
  "score": number
}
フィールド
mid

string

EntityAnnotation mid と一致するオブジェクト ID。

languageCode

string

「en-US」や「sr-Latn」などの BCP-47 言語コード。詳細については、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier をご覧ください。

name

string

オブジェクト名。languageCode 言語で表現されます。

score

number

結果のスコア。範囲は [0, 1] です。

ImageAnnotationContext

ファイルから(PDF など)画像が生成された場合は、このメッセージに画像のソースに関する情報が表示されます。

JSON 表現
{
  "uri": string,
  "pageNumber": number
}
フィールド
uri

string

画像の生成に使用されるファイルの URI。

pageNumber

number

ファイルが PDF または TIFF の場合、このフィールドには、画像の生成に使用されたファイル内のページ番号が示されます。

ImageQuality

画像の品質スコアを保存します。美的品質または技術品質です。

JSON 表現
{
  "qualityScore": number
}
フィールド
qualityScore

number

画像の外観の美しさ、技術的な質を表すスコア。スコアの範囲は [0, 1] です。値が大きいほど、プロフェッショナルな写真になります。0 は画像がかなり悪いことを表し、1 は高品質の画像であることを示します。

QualityOptimizationResult

補正された画像のバイトを格納します。

JSON 表現
{
  "qualityOptimizationType": enum(Type),
  "image": string,
  "mimeType": string
}
フィールド
qualityOptimizationType

enum(Type)

必須の最適化タイプ。

image

string (bytes format)

最適化された画像のバイト数。

Base64 でエンコードされた文字列。

mimeType

string

出力画像の MIME タイプ。

LocalizedBarcodeAnnotation

検出された境界ボックス付きバーコードのセット。

JSON 表現
{
  "format": string,
  "valueFormat": string,
  "value": string,
  "confidence": number,
  "boundingPoly": {
    object(BoundingPoly)
  }
}
フィールド
format

string

バーコードの形式は次のとおりです。サポートされている形式: CODE_128: Code 128 タイプ。CODE_39: Code 39 タイプ。CODE_93: Code 93 タイプ。CODABAR: Codabar タイプ。DATA_MATRIX: 2D データ行列タイプ。ITF: ITF タイプ。EAN_13: EAN-13 タイプ。EAN_8: EAN-8 タイプ。QR_CODE: 2D QR コードタイプ。UPC_A: UPC-A タイプ。UPC_E: UPC-E タイプ。PDF417: PDF417 タイプ。AZTEC: 2D Aztec コードタイプ。DATABAR: GS1 DataBar コードタイプ。

valueFormat

string

バーコード値の形式は、バーコードがエンコードする値の形式を記述します。サポートされている値の形式: CONTACT_INFO: 連絡先情報。EMAIL: メールアドレス。ISBN: ISBN 識別子。PHONE: 電話番号。PRODUCT: 商品。SMS: SMS メッセージ。TEXT: テキスト文字列。URL: URL アドレス。WIFI: Wi-Fi 情報。GEO: 地理的ローカライズ(経度と緯度)CALENDAR_EVENT: カレンダーの予定。DRIVER_LICENSE: 運転免許証。

value

string

バーコードでキャプチャされた ASCII 値のバーコード値。バーコードは構造化された値をエンコードできます。たとえば、'MEBKM:TITLE:Google;URL:https://www.google.com;;' となります。

confidence

number

結果の信頼値。範囲は [0, 1] です。

boundingPoly

object(BoundingPoly)

このバーコードが属する画像領域。この値は入力する必要があります。