ブロックリファレンス

BLOCKS Reference

出力仕様

画像解析

このドキュメントでは、画像解析ブロックの画像の解析結果について解説します。

画像解析ブロックの「検知する情報」ごとのサンプル集を「画像解析ブロック サンプル」でまとめています。

画像の解析結果は、2019 年 2 月時点の「Method: images.annotate  |  Google Cloud Vision API Documentation  |  Google Cloud Platform 」の内容を元に記載しています。

画像の解析結果

画像の解析に成功すると、JSON 形式のデータを変数 _ (アンダースコア) に出力します。出力先の変数は、「結果を格納する変数」プロパティで、自由に変更できます。

{
  "faceAnnotations": [{...}],
  "landmarkAnnotations": [{...}],
  "logoAnnotations": [{...}],
  "labelAnnotations": [{...}],
  "textAnnotations": [{...}],
  "fullTextAnnotation": {...},
  "safeSearchAnnotation": {...},
  "imagePropertiesAnnotation": {...},
  "cropHintsAnnotation": {...},
  "gcs_url": string,
  "timestamp": number
}
名前 説明
"faceAnnotations" 顔検知の結果データです。検知した対象の数分のデータがあります。
"landmarkAnnotations" ランドマーク(有名な自然や人工の構造物)検知の結果データです。検知した対象の数分のデータがあります。
"logoAnnotations" ロゴ(有名な商品や企業ロゴ)検知の結果データです。検知した対象の数分のデータがあります。
"labelAnnotations" 物体(乗り物や動物などさまざまな物)検知の結果データです。検知した対象の数分のデータがあります。
"textAnnotations" テキスト検知の結果データです。検知した対象の数分のデータがあります。
"fullTextAnnotation" テキスト検知または OCR(ドキュメント)検知の結果データです。
"safeSearchAnnotation" 有害(アダルトや暴力など)コンテンツ検知の結果データです。
"imagePropertiesAnnotation" 色解析の結果データです。
"cropHintsAnnotation" 画像上のクロップ領域の頂点データです。
"gcs_url" 解析した画像の GCS 上のパスを表す文字列です。例えば、"gs://magellan-blocks/kumamoto-2.jpg" のように表します。
"timestamp" 画像を解析した日時を表す数値です。日時は、UNIX 時間で表します。例えば、2016 年 9 月 27 日 10 時 20 分 37 秒であれば、1474939237.7195294 のように表します。

"gcs_url" と "timestamp" 以外は、対象を検知したときのみ情報が出力されます。例えば、"faceAnnotations" は、解析する画像から顔を検知したときのみ出力されます。

顔検知(faceAnnotations)

顔検知の結果データは、配列値([...] という形式)です。配列値の要素は、検知した顔のデータを表すオブジェクト値({...} という形式)です。

"faceAnnotations": [
  {...},
  {...}
]

検知した顔のデータを表すオブジェクト値の形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > 顔検知 サンプル 」を参照してください。

{
  "boundingPoly": {...},
  "fdBoundingPoly": {...},
  "landmarks": {...},
  "rollAngle": number,
  "panAngle": number,
  "tiltAngle": number,
  "detectionConfidence": number,
  "landmarkingConfidence": number,
  "joyLikelihood": string,
  "sorrowLikelihood": string,
  "angerLikelihood": string,
  "surpriseLikelihood": string,
  "underExposedLikelihood": string,
  "blurredLikelihood": string,
  "headwearLikelihood": string
}
名前 説明
"boundingPoly" 顔の頭も含む輪郭を多角形で表すオブジェクト値です。下の "fdBoundingPoly" も顔の輪郭を表しますが、より大まかな顔の輪郭を四角形で表現します。
"fdBoundingPoly" 顔の肌の部分を多角形で表すオブジェクト値です。上の "boundingPoly" よりも厳密な顔の部分(耳を含んで眉から口の下あたりまで)を四角形で表現します。
"landmarks" 顔のパーツ(左目や右目など)を表すオブジェクト値の配列です。
"rollAngle" 顔の向きを角度(ロール角)で表す数値です。数値の範囲は、-180 から 180 です。
"panAngle" 顔の向きを角度(ヨー角)で表す数値です。数値の範囲は、-180 から 180 です。
"tiltAngle" 顔の向きを角度(ピッチ角)で表す数値です。数値の範囲は、-180 から 180 です。
"detectionConfidence" 顔検知の信頼度を表す数値です。数値の範囲は、0 から 1 です。
"landmarkingConfidence" 顔のパーツ検知の信頼度を表す数値です。数値の範囲は、0 から 1 です。
"joyLikelihood" 楽しんでいる度合いを表す文字列です。
"sorrowLikelihood" 悲しんでいる度合いを表す文字列です。
"angerLikelihood" 怒っている度合いを表す文字列です。
"surpriseLikelihood" 驚いている度合いを表す文字列です。
"underExposedLikelihood" 肌の露出の度合いを表す文字列です。
"blurredLikelihood" ぼやけの度合いを表す文字列です。
"headwearLikelihood" 帽子を被っているかどうかの度合いを表す文字列です。
ランドマーク検知(landmarkAnnotations)

ランドマーク検知の結果データは、配列値です。配列値の要素は、検知したランドマークのデータを表すオブジェクト値です。

"landmarkAnnotations": [
  {...},
  {...}
]

検知したランドマークのデータを表すオブジェクト値の形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > ランドマーク検知 サンプル 」を参照してください。

{
  "mid": string,
  "description": string,
  "score": number,
  "boundingPoly": {...},
  "locations": [{...}]
}
名前 説明
"mid" 検知したランドマークの Google Knowledge Graph でのエンティティ ID です。
"description" 上記エンティティ ID の名称です。
"score" 検知の信頼度です。0 から 1 の範囲で表現されます。
"boundingPoly" 検知したランドマークを囲む多角形を表すオブジェクト値です。
"locations" 検知したランドマークの地理的な位置を表すオブジェクト値です。位置は、複数の場所を示すことがあります。ひとつは、検知したランドマークの位置。もうひとつは、ランドマークを撮影した場所の位置です。
ロゴ検知(logoAnnotations)

ロゴ検知の結果データは、配列値です。配列値の要素は、検知したロゴのデータを表すオブジェクト値です。

"logoAnnotations": [
  {...},
  {...}
]

検知したロゴのデータを表すオブジェクト値の形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > ロゴ検知 サンプル 」を参照してください。

{
  "description": string,
  "score": number,
  "boundingPoly": {...}
}
名前 説明
"description" 検知したロゴを表す文字列です。
"score" 検知の信頼度です。0 から 1 の範囲で表現されます。
"boundingPoly" 検知したロゴを囲む多角形を表すオブジェクト値です。
物体検知(labelAnnotations)

物体検知の結果データは、配列値です。配列値の要素は、検知した物体のデータを表すオブジェクト値です。

"labelAnnotations": [
  {...},
  {...}
]

検知した物体のデータを表すオブジェクト値の形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > 物体検知 サンプル 」を参照してください。

{
  "mid": string,
  "description": string,
  "score": number
}
名前 説明
"mid" 検知した物体の Google Knowledge Graph でのエンティティ ID です。
"description" 上記エンティティ ID の名称です。
"score" 検知の信頼度です。0 から 1 の範囲で表現されます。
テキスト検知(textAnnotations)

テキスト検知の結果データは、配列値です。配列値の要素は、検知したテキストのデータを表すオブジェクト値です。

"textAnnotations": [
  {...},
  {...}
]

検知したテキストのデータを表すオブジェクト値の形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > テキスト検知 サンプル 」を参照してください。

{
  "locale": string,
  "description": string,
  "boundingPoly": {...}
}
名前 説明
"locale" 検知したテキスト("description")の言語コードを表す文字列です。
"description" 検知したテキストを表す文字列です。
"boundingPoly" 検知したテキストを囲む多角形を表すオブジェクト値です。
テキスト検知または OCR(ドキュメント)検知(fullTextAnnotation)

テキスト検知または OCR(ドキュメント)検知のデータ形式は、以下のとおりです。

"fullTextAnnotation": {
  "pages": [
    {...},
    {...}
  ],
  "text": string
}
名前 説明
"pages" 検知したページのリストです。
"text" 検知したページ内の UTF-8 形式のテキストです。
有害コンテンツ検知(safeSearchAnnotation)

有害コンテンツ検知の結果データの形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > 有害コンテンツ検知 サンプル 」を参照してください。

{
  "adult": string,
  "spoof": string,
  "medical": string,
  "violence": string
}
名前 説明
"adult" アダルトコンテンツの度合いを表す文字列です。
"spoof" 元画像に対して、いかがわしいか、不快な改変をしている度合いを表す文字列です。
"medical" 医療系画像の度合いを表す文字列です。
"violence" 暴力性の度合いを表す文字列です。
色解析(imagePropertiesAnnotation)

色解析の結果データの形式は、以下のとおりです。

"imagePropertiesAnnotation": {
  "dominantColors": {...}
}
名前 説明
"dominantColors" ドミナントカラー(画像全体の印象を支配する色)を表すオブジェクト値です。現時点では、ドミナントカラーに関する情報のみです。

ドミナントカラーを表すオブジェクト値は、検知したドミナントカラーに関する色情報を持ちます。通常、色情報は、複数あります。

"dominantColors": {
  "colors": [
    {...},
    {...}
  ]
}
名前 説明
"colors" 検知したドミナントカラーに関する色情報の配列値です。

色情報の形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > 色解析 サンプル 」を参照してください。

{
  "color": {...},
  "score": number,
  "pixelFraction": number
}
名前 説明
"color" 検知した色の RGB 値を表すオブジェクト値です。
"score" 検知した色の信頼度を表す数値です。数値の範囲は、0 から 1 です。
"pixelFraction" 検知した色の画像に占める割合を表す数値です。数値の範囲は、0 から 1 です。

色の RGB 値を表すオブジェクト値のデータ形式は、以下のとおりです。

{
  "red": number,
  "green": number,
  "blue": number
}
名前 説明
"red" 赤色の明度を表す数値です。明度は、0 から 255 の範囲です。
"green" 緑色の明度を表す数値です。明度は、0 から 255 の範囲です。
"blue" 青色の明度を表す数値です。明度は、0 から 255 の範囲です。
クロップヒントの集合(cropHintsAnnotation)

クロップヒントの集合のデータ形式は、以下のとおりです。出力例は、「画像解析ブロック サンプル > 色解析 サンプル 」を参照してください。

{
  "cropHints": [
    {...},
    {...}
  ]
}
名前 説明
"cropHints" クロップヒントのリストです。
クロップヒント(cropHint)

クロップヒントのデータ形式は、以下のとおりです。

{
  "boundingPoly": {...},
  "confidence": number,
  "importanceFraction": number
}
名前 説明
"boundingPoly" クロップヒントの多角形を表すオブジェクト値です。
"confidence" クロップヒントの信頼度を 0 ~ 1 の範囲の数値で表します(例:0.99)。
"importanceFraction" 元画像に対するクロップ領域の重要度の割合です。
多角形を表すオブジェクト("boundingPoly" / "fdBoundingPoly")

多角形を表すオブジェクトのデータ形式は、以下のとおりです。

{
  "vertices": [{...}, ..., {...}]
}
名前 説明
"vertices" 多角形の各頂点を表すオブジェクト値の配列です。
頂点を表すオブジェクト

頂点を表すオブジェクトは、画像内の 2 次元座標を表します。データ形式は、以下のとおりです。

{
  "x": number,
  "y": number
}
名前 説明
"x" 頂点の X 座標を表す数値です。
"y" 頂点の Y 座標を表す数値です。
度合い

度合いは、6 種類の文字列で表します。文字列の種類と意味は、以下のとおりです。

度合い文字列 説明
"UNKNOWN" 不明
"VERY_UNLIKELY" 可能性がとても低い
"UNLIKELY" 可能性が低い
"POSSIBLE" 可能性がある
"LIKELY" 可能性が高い
"VERY_LIKELY" 可能性がとても高い
顔のパーツを表すオブジェクト

顔のパーツを表すオブジェクトは、パーツの種類(左目や右目など)とその位置で表します。データ形式は、以下のとおりです。

{
  "type": string,
  "position": {...}
}
名前 説明
"type" パーツの種類を表す文字列です。
"position" パーツの位置を表すオブジェクト値です。
パーツの種類

パーツの種類は、顔のパーツを特定する文字列で表します。文字列の種類と意味は、以下のとおりです。

パーツの種類文字列 説明
"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" 下顎の右端。
パーツの位置を表すオブジェクト

パーツの位置を表すオブジェクトは、画像内の 3 次元座標を表します。データ形式は、以下のとおりです。

{
  "x": number,
  "y": number,
  "z": number
}
名前 説明
"x" X 座標を表す数値です。
"y" Y 座標を表す数値です。
"z" Z 座標(奥行き)を表す数値です。
地理的な位置を表すオブジェクト(locations)

地理的な位置を表すオブジェクトは、配列値です。配列値の要素は、位置を緯度と経度で表すオブジェクト値です。

"locations": [
  {...},
  {...}
]

位置を緯度と経度で表すオブジェクト値のデータ形式は、以下のとおりです。

{
  "latLng": {
    "latitude": number,
    "longitude": number
  }
}
名前 説明
"latitude" 緯度を表す数値です。
"longitude" 経度を表す数値です。
ページ(page)

テキスト検知で検出されたページのデータ形式は、以下のとおりです。

{
  "blocks": [
    {...},
    {...}
  ],
  "width": number,
  "height": number,
  "property": {...}
}
名前 説明
"blocks" ページ内のテキストや画像などのブロックのリストです。
"width" ページの幅です。
"height" ページの高さです。
"property" ページの追加情報です。
追加情報(property)

追加情報のデータ形式は、以下のとおりです。

{
  "detectedLanguages": [
    {...},
    {...}
  ],
  "detectedBreak": {...}
}
名前 説明
"detectedLanguages" 検出された言語のリストです。
"detectedBreak" テキストの区切り(開始もしくは終了)を検知したことを示します。
検出言語(detectedLanguage)

検出した言語のデータ形式は、以下のとおりです。

{
  "languageCode": string,
  "confidence": number
}
名前 説明
"languageCode" "en-US" または "sr-Latn" などの BCP-47 言語コードです。詳しくは、「Unicode Locale Identifier」を参照してください。
"confidence" 言語検出の信頼度を 0 ~ 1 の範囲の数値で表します(例:0.99)。
区切りを検知(detectedBreak)

テキストの区切り(開始もしくは終了)を検知のデータ形式は、以下のとおりです。

{
  "type": string,
  "isPrefix": boolean
}
名前 説明
"type" 検出した区切りタイプです。
"isPrefix" 要素の先頭に区切りある場合は、True です。
区切りタイプ(breakType)

区切りタイプには、以下の種類があります。

タイプ 説明
UNKNOWN 不明な区切りタイプ
SPACE 通常の空白
SURE_SPACE 広めの空白
EOL_SURE_SPACE 行折り返しの区切り
HYPHEN 行末のハイフン(SPACE や LINE_BREAK と同時に発生しない)
LINE_BREAK 段落を終了する改行
ブロック(block)

ブロックは、ページ上の論理的要素です。このデータ形式は、以下のとおりです。

{
  "boundingBox": {...},
  "paragraphs": [
    {...},
    {...}
  ],
  "blockType": string,
  "confidence": number,
}
名前 説明
"boundingBox"

ブロックのバウンディングボックス(テキストを囲む長方形)です。頂点は、左上・右上・右下・左下の順に並びます。この頂点は、テキストが自然な向きで読み取れるように配置され、左上隅を基点としてテキストを囲みます。

テキストが水平の場合:

0----1
|    |
3----2

テキストが 180度回転している場合:

2----3
|    |
1----0

バウンディングボックス内での頂点は、必ず 0・1・2・3 の順で並びます。

"paragraphs" 段落のリストです(ブロックタイプが、テキストの場合)。
"blockType" このブロックで検出されたテキストや画像などのブロックタイプです。
"confidence" このブロックのテキスト検知の信頼度を 0 ~ 1 の範囲の数値で表します(例:0.99)。
段落(paragraph)

段落のデータ形式は、以下のとおりです。

{
  "boundingBox": {...},
  "words": [
    {...},
    {...}
  ],
  "confidence": number
}
名前 説明
"boundingBox"

段落のバウンディングボックス(テキストを囲む長方形)です。頂点は、左上・右上・右下・左下の順に並びます。この頂点は、テキストが自然な向きで読み取れるように配置され、左上隅を基点としてテキストを囲みます。

テキストが水平の場合:

0----1
|    |
3----2

テキストが 180度回転している場合:

2----3
|    |
1----0

バウンディングボックス内での頂点は、必ず 0・1・2・3 の順で並びます。

"words" 段落内の単語のリストです。
"confidence" この段落のテキスト検知の信頼度を 0 ~ 1 の範囲の数値で表します(例:0.99)。
単語(word)

単語のデータ形式は、以下のとおりです。

{
  "property": {...},
  "boundingBox": {...},
  "symbols": [
    {...},
    {...}
  },
  "confidence": number
}
名前 説明
"property" 単語の追加情報です。
"boundingBox"

単語のバウンディングボックス(テキストを囲む長方形)です。頂点は、左上・右上・右下・左下の順に並びます。この頂点は、テキストが自然な向きで読み取れるように配置され、左上隅を基点としてテキストを囲みます。

テキストが水平の場合:

0----1
|    |
3----2

テキストが 180度回転している場合:

2----3
|    |
1----0

バウンディングボックス内での頂点は、必ず 0・1・2・3 の順で並びます。

"symbols" 単語内の文字のリストです。文字の順序は、単語の自然な読み順です。
"confidence" この単語のテキスト検知の信頼度を 0 ~ 1 の範囲の数値で表します(例:0.99)。
文字(symbol)

文字のデータ形式は、以下のとおりです。

{
  "property": {...},
  "boundingBox": {...},
  "text": string,
  "confidence": number
}
名前 説明
"property" 文字の追加情報です。
"boundingBox"

単語のバウンディングボックス(テキストを囲む長方形)です。頂点は、左上・右上・右下・左下の順に並びます。この頂点は、テキストが自然な向きで読み取れるように配置され、左上隅を基点としてテキストを囲みます。

テキストが水平の場合:

0----1
|    |
3----2

テキストが 180度回転している場合:

2----3
|    |
1----0

バウンディングボックス内での頂点は、必ず 0・1・2・3 の順で並びます。

"text" UTF-8 文字です。
"confidence" この文字のテキスト検知の信頼度を 0 ~ 1 の範囲の数値で表します(例:0.99)。
ブロックタイプ(blockType)

ブロックタイプは、テキスト検知で識別されるブロックの種類です。種類は、以下のいずれかです。

説明
UNKNOWN 不明なブロックの種類
TEXT 通常のテキスト
PICTURE 画像
RULER 水平線もしくは垂直線
BARCODE バーコード