ブロックリファレンス

Block Reference

出力仕様

Vision API

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

   Vision API ブロックの具体的な使用例を「機械学習サービス Google Cloud Vision API 活用サンプル 」で掲載しています。

画像の解析結果

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

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

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

顔検知(faceAnnotations)

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

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

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

{
  "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": [
  {...},
  {...}
]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{
  "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 の範囲です。
多角形を表すオブジェクト("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" 経度を表す数値です。