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)

如果顯示這項資訊,代表產品搜尋已順利完成。

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)

如果存在,表示本地化條碼偵測已順利完成。

臉部註解

臉部註解物件包含臉部偵測結果。

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 中產生一或多個 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 下巴右側下頜角。

位置

圖片中的 3D 位置,主要用於臉部偵測地標。有效的 Position 必須同時包含 x 和 y 座標。位置座標的比例與原始圖片相同。

JSON 表示法
{
  "x": number,
  "y": number,
  "z": number
}
欄位
x

number

X 座標。

y

number

Y 座標。

z

number

Z 座標 (或深度)。

可能性

以區間表示可能性,目的是在模型升級時,為客戶提供高度穩定的結果。

列舉
UNKNOWN 可能性不明。
VERY_UNLIKELY 圖片不太可能屬於指定產業。
UNLIKELY 圖片不太可能屬於指定的垂直領域。
POSSIBLE 圖片可能屬於指定產業。
LIKELY 圖片可能屬於指定產業。
VERY_LIKELY 圖片極可能屬於指定垂直領域。

實體註解

偵測到的實體特徵集。

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圖片中實體偵測的準確度。舉例來說,如果系統在圖片中偵測到「艾菲爾鐵塔」實體,這個欄位就會代表查詢圖片中含有鐵塔的信心指數。範圍 [0, 1]。

topicality

number

ICA (圖片內容註解) 標籤與圖片的相關性。舉例來說,如果系統在圖片中偵測到「艾菲爾鐵塔」,「塔」這個字詞與這張圖片的關聯性,可能會高於與偵測到遠處高聳建築物的圖片的關聯性,即使系統對每張圖片中都有塔的信心度相同。範圍 [0, 1]。

boundingPoly

object(BoundingPoly)

這個實體所屬的圖片區域。未針對 LABEL_DETECTION 功能製作。

locations[]

object(LocationInfo)

偵測到的實體位置資訊。可能有多個 LocationInfo 元素,因為一個位置可能表示圖片中場景的位置,另一個位置可能表示圖片的拍攝地點。地標通常會顯示位置資訊。

properties[]

object(Property)

部分實體可能會有選用的使用者提供 Property (名稱/值) 欄位,例如實體的資格分數或字串。

地點資訊

偵測到的實體位置資訊。

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' // For color blue }

本地化物件註解

一組偵測到的物件,並附上定界框。

JSON 表示法
{
  "mid": string,
  "languageCode": string,
  "name": string,
  "score": number,
  "boundingPoly": {
    object(BoundingPoly)
  }
}
欄位
mid

string

應與 EntityAnnotation mid 對齊的物件 ID。

languageCode

string

BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱 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

用來識別建立這項註解的自訂模型。模型名稱的格式為所查詢自訂模型的資源網址:/projects/PROJECT_ID/models/MODEL_ID,或 /models/MODEL_ID (如果模型屬於目前專案)。

label

string

自訂模型預測的標籤。

score

number

自訂模型給予標籤的可信度分數。

文字註解

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

BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱 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。

分隔類型

以列舉方式表示找到的換行類型。換行、空格等。

列舉
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 啟用,否則系統不會傳回這個欄位。這個 Block 的 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 中指定,否則預設不會傳回這個欄位。

符號

單一符號表示法。

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]。

封鎖類型

OCR 識別的區塊類型 (文字、圖片等)。

列舉
UNKNOWN 不明的區塊類型。
TEXT 一般文字區塊。
TABLE 表格區塊。
PICTURE 圖片封鎖。
RULER 水平/垂直線方塊。
BARCODE 條碼區塊。
KEY_VALUE_PAIR 鍵/值組合區塊。

資料表

類似 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

鍵/值組合的 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」- 適用於一般 ID。「currency」- 貨幣值。「date」:適用於日期。「time」:適用於時間和持續時間值。「date_range」:適用於日期範圍。「address」:適用於地址值 (可為長度較長的值)。「person」- 用於人名或其他個人 ID。「phone」:電話號碼。

normalizedKey

string

(選用) 如果文字常見且已分類,則為正規化鍵文字。

舉例來說,「應付總額」會正規化為「總金額」。

安全搜尋註解

與圖片相關的一組特徵,由電腦視覺方法在安全搜尋垂直領域 (例如成人、惡搞、醫療、暴力) 中計算得出。

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)

要求圖片含有煽情露骨內容的可能性。煽情露骨內容可能包括但不限於:衣不蔽體或透明的服裝、以特定方式遮蓋裸露部位、猥褻或挑逗的姿勢,或是敏感身體部位的特寫鏡頭。

圖片屬性

儲存圖片屬性,例如主色。

JSON 表示法
{
  "dominantColors": {
    object(DominantColorsAnnotation)
  }
}
欄位
dominantColors

object(DominantColorsAnnotation)

如果存在,代表主要顏色已順利完成。

主色註解

一組主要顏色和對應的分數。

JSON 表示法
{
  "colors": [
    {
      object(ColorInfo)
    }
  ]
}
欄位
colors[]

object(ColorInfo)

RGB 顏色值及其分數和像素比例。

色彩資訊

色彩資訊包括 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)。

裁剪提示註解

這組裁剪提示會在放送圖片時用於生成新裁剪圖片。

JSON 表示法
{
  "cropHints": [
    {
      object(CropHint)
    }
  ]
}
欄位
cropHints[]

object(CropHint)

裁剪提示結果。

裁剪提示

單一裁剪提示,用於在放送圖片時生成新的裁剪版本。

JSON 表示法
{
  "boundingPoly": {
    object(BoundingPoly)
  },
  "confidence": number,
  "importanceFraction": number
}
欄位
boundingPoly

object(BoundingPoly)

裁剪區域的定界多邊形。外框的座標採用原始圖片的比例。

confidence

number

這個區域是顯著區域的信賴度。範圍 [0, 1]。

importanceFraction

number

這個顯著區域相對於原始圖片的重要性分數。

網路偵測

網路上與圖片相關的資訊。

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

結果圖片網址。

score

number

(已淘汰) 圖片的整體關聯性分數。

WebPage

網頁的中繼資料。

JSON 表示法
{
  "url": string,
  "score": number,
  "pageTitle": string,
  "fullMatchingImages": [
    {
      object(WebImage)
    }
  ],
  "partialMatchingImages": [
    {
      object(WebImage)
    }
  ]
}
欄位
url

string

結果網頁網址。

score

number

(已淘汰) 網頁的整體相關性分數。

pageTitle

string

網頁標題,可包含 HTML 標記。

fullMatchingImages[]

object(WebImage)

網頁上完全相符的圖片。可包含查詢圖片的縮放副本。

partialMatchingImages[]

object(WebImage)

網頁上部分相符的圖片。這些圖片的相似程度足以共用一些關鍵點特徵。舉例來說,原始圖片的裁剪版本可能只會部分相符。

WebLabel

標籤,用於提供網頁偵測的額外中繼資料。

JSON 表示法
{
  "label": string,
  "languageCode": string
}
欄位
label

string

額外中繼資料的標籤。

languageCode

string

label 的 BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier

產品搜尋結果

產品搜尋要求的結果。

JSON 表示法
{
  "indexTime": string,
  "results": [
    {
      object(Result)
    }
  ],
  "productGroupedResults": [
    {
      object(GroupedResult)
    }
  ]
}
欄位
indexTime

string (Timestamp format)

提供這些結果的索引時間戳記。在這個時間點之後進行的變更不會反映在目前的結果中。

RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位。範例:"2014-10-02T15:01:23.045123456Z"

results[]

object(Result)

結果清單,每個產品比對結果各有一項。

productGroupedResults[]

object(GroupedResult)

結果清單,依查詢圖片中偵測到的產品分組。每個項目都對應查詢圖片中的一個邊界多邊形,並包含該區域的相符產品。所有產品結果的聯集可能會有重複的產品相符項目。

結果

產品相關資訊。

JSON 表示法
{
  "product": {
    object(Product)
  },
  "score": number,
  "image": string
}
欄位
product

object(Product)

產品。

score

number

比對的信賴度,範圍從 0 (無信心) 到 1 (非常有信心)。

image

string

與查詢最相符的產品圖片資源名稱。

GroupedResult

與查詢圖片中單一產品類似的產品資訊。

JSON 表示法
{
  "boundingPoly": {
    object(BoundingPoly)
  },
  "results": [
    {
      object(Result)
    }
  ],
  "objectAnnotations": [
    {
      object(ObjectAnnotation)
    }
  ]
}
欄位
boundingPoly

object(BoundingPoly)

查詢圖片中偵測到的產品周圍的定界多邊形。

results[]

object(Result)

結果清單,每個產品比對結果各有一項。

objectAnnotations[]

object(ObjectAnnotation)

定界框中物件的一般預測清單。

ObjectAnnotation

定界框中物件的預測結果。

JSON 表示法
{
  "mid": string,
  "languageCode": string,
  "name": string,
  "score": number
}
欄位
mid

string

應與 EntityAnnotation mid 對齊的物件 ID。

languageCode

string

BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier

name

string

languageCode語言表示的物件名稱。

score

number

結果的分數。範圍 [0, 1]。

圖片註解內容

如果圖片是從檔案 (例如 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 Data Matrix 類型。ITF:ITF 類型。EAN_13:EAN-13 類型。EAN_8:EAN-8 類型。QR_CODE:2D QR code 類型。UPC_A:UPC-A 類型。UPC_E:UPC-E 類型。PDF417:PDF417 類型。AZTEC:2D Aztec 代碼類型。DATABAR:GS1 DataBar 程式碼類型。

valueFormat

string

條碼值格式 ID 會說明條碼編碼值的格式。支援的值格式如下:CONTACT_INFO:聯絡資訊。電子郵件:電子郵件地址。ISBN:ISBN 識別碼。電話:電話號碼。產品:產品。簡訊:簡訊。TEXT:文字字串。網址:網址。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)

這個條碼所屬的圖片區域。這項屬性必須填入值。