臉部偵測可偵測圖片中的多個臉部,以及相關的重要臉部特徵,例如表情或wearing headwear。
特定個人 臉部辨識 不支援。
歡迎試用
如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud Vision API 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
免費試用 Cloud Vision API臉部偵測要求
設定 Google Cloud 專案和驗證
如果您尚未建立 Google Cloud 專案,請立即建立。展開這個部分即可查看操作說明。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
    
    
      
        In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Vision API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
      Install the Google Cloud CLI. 
- 
          如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 
- 
        如要初始化 gcloud CLI,請執行下列指令: gcloud init
- 
    
    
      
        In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Vision API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
      Install the Google Cloud CLI. 
- 
          如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 
- 
        如要初始化 gcloud CLI,請執行下列指令: gcloud init
- BASE64_ENCODED_IMAGE:二進位圖片資料的 Base64 表示法 (ASCII 字串)。這個字串應類似下列字串:
  - /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
 
- RESULTS_INT:(選填) 要傳回的結果整數值。如果省略 "maxResults"欄位及其值,API 會傳回預設值,也就是 10 個結果。這個欄位不適用於下列特徵類型:TEXT_DETECTION、DOCUMENT_TEXT_DETECTION或CROP_HINTS。
- PROJECT_ID:您的 Google Cloud 專案 ID。
- CLOUD_STORAGE_IMAGE_URI:Cloud Storage 值區中有效圖片檔案的路徑。您必須至少擁有檔案的讀取權限。
  範例:
  - gs://cloud-samples-data/vision/face/faces.jpeg 
 
- RESULTS_INT:(選填) 要傳回的結果整數值。如果省略 "maxResults"欄位及其值,API 會傳回預設值,也就是 10 個結果。這個欄位不適用於下列特徵類型:TEXT_DETECTION、DOCUMENT_TEXT_DETECTION或CROP_HINTS。
- PROJECT_ID:您的 Google Cloud 專案 ID。
偵測本機圖片中的臉孔
您可以使用 Vision API 對本機圖片檔執行特徵偵測。
如果是 REST 要求,請在要求主體中,以 base64 編碼字串的形式傳送圖片檔案內容。
如果是 gcloud 和用戶端程式庫要求,請在要求中指定本機圖片的路徑。
REST
使用任何要求資料之前,請先替換以下項目:
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/images:annotate
JSON 要求主體:
{
  "requests": [
    {
      "image": {
        "content": "BASE64_ENCODED_IMAGE"
      },
      "features": [
        {
          "maxResults": RESULTS_INT,
          "type": "FACE_DETECTION"
        }
      ]
    }
  ]
}
如要傳送要求,請選擇以下其中一個選項:
curl
      將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
      將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
如果要求成功,伺服器會傳回 200 OK HTTP 狀態碼與 JSON 格式的回應。
FACE_DETECTION 回應包含偵測到的所有臉部定界框、臉部偵測到的地標 (眼睛、鼻子、嘴巴等),以及臉部和圖片屬性 (喜悅、悲傷、憤怒、驚訝等) 的可信度評分。
回應
{
  "responses": [
    {
      "faceAnnotations": [
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 1077,
                "y": 157
              },
              {
                "x": 2146,
                "y": 157
              },
              {
                "x": 2146,
                "y": 1399
              },
              {
                "x": 1077,
                "y": 1399
              }
            ]
          },
          "fdBoundingPoly": {
            "vertices": [
              {
                "x": 1112,
                "y": 407
              },
              {
                "x": 1946,
                "y": 407
              },
              {
                "x": 1946,
                "y": 1270
              },
              {
                "x": 1112,
                "y": 1270
              }
            ]
          },
          "landmarks": [
            {
              "type": "LEFT_EYE",
              "position": {
                "x": 1368.748,
                "y": 739.0957,
                "z": 0.0024604797
              }
            },
            {
              "type": "RIGHT_EYE",
              "position": {
                "x": 1660.6105,
                "y": 751.5844,
                "z": -117.06496
              }
            },
            {
              "type": "LEFT_OF_LEFT_EYEBROW",
              "position": {
                "x": 1284.3208,
                "y": 666.61487,
                "z": 63.41506
              }
            },
            {
              "type": "RIGHT_OF_LEFT_EYEBROW",
              "position": {
                "x": 1418.9249,
                "y": 671.49414,
                "z": -83.82396
              }
            },
            {
              "type": "LEFT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 1556.9579,
                "y": 672.2199,
                "z": -139.39935
              }
            },
            {
              "type": "RIGHT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 1771.4799,
                "y": 682.65845,
                "z": -131.66716
              }
            },
            {
              "type": "MIDPOINT_BETWEEN_EYES",
              "position": {
                "x": 1479.6194,
                "y": 741.87305,
                "z": -114.84635
              }
            },
            {
              "type": "NOSE_TIP",
              "position": {
                "x": 1443.3151,
                "y": 917.5109,
                "z": -194.49301
              }
            },
            {
              "type": "UPPER_LIP",
              "position": {
                "x": 1466.7897,
                "y": 1025.3483,
                "z": -130.1202
              }
            },
            {
              "type": "LOWER_LIP",
              "position": {
                "x": 1467.2588,
                "y": 1147.0403,
                "z": -109.24505
              }
            },
            {
              "type": "MOUTH_LEFT",
              "position": {
                "x": 1376.8649,
                "y": 1066.0856,
                "z": -6.8136826
              }
            },
            {
              "type": "MOUTH_RIGHT",
              "position": {
                "x": 1652,
                "y": 1079.3108,
                "z": -106.93649
              }
            },
            {
              "type": "MOUTH_CENTER",
              "position": {
                "x": 1485.5554,
                "y": 1087.2388,
                "z": -110.68126
              }
            },
            {
              "type": "NOSE_BOTTOM_RIGHT",
              "position": {
                "x": 1571.9475,
                "y": 944.9213,
                "z": -124.11806
              }
            },
            {
              "type": "NOSE_BOTTOM_LEFT",
              "position": {
                "x": 1395.2339,
                "y": 938.12787,
                "z": -58.072197
              }
            },
            {
              "type": "NOSE_BOTTOM_CENTER",
              "position": {
                "x": 1468.4205,
                "y": 968.8732,
                "z": -132.09975
              }
            },
            {
              "type": "LEFT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 1357.8658,
                "y": 711.2427,
                "z": -14.618992
              }
            },
            {
              "type": "LEFT_EYE_RIGHT_CORNER",
              "position": {
                "x": 1423.6936,
                "y": 750.4164,
                "z": -23.540215
              }
            },
            {
              "type": "LEFT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 1360.5627,
                "y": 762.87415,
                "z": -1.2607727
              }
            },
            {
              "type": "LEFT_EYE_LEFT_CORNER",
              "position": {
                "x": 1313.72,
                "y": 739.443,
                "z": 50.216393
              }
            },
            {
              "type": "RIGHT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 1661.6622,
                "y": 718.6839,
                "z": -134.17404
              }
            },
            {
              "type": "RIGHT_EYE_RIGHT_CORNER",
              "position": {
                "x": 1730.0901,
                "y": 763.57104,
                "z": -116.365845
              }
            },
            {
              "type": "RIGHT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 1660.8823,
                "y": 777.3474,
                "z": -120.8635
              }
            },
            {
              "type": "RIGHT_EYE_LEFT_CORNER",
              "position": {
                "x": 1590.8903,
                "y": 753.5044,
                "z": -91.84842
              }
            },
            {
              "type": "LEFT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 1345.7522,
                "y": 640.18243,
                "z": -27.887913
              }
            },
            {
              "type": "RIGHT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 1660.5848,
                "y": 648.36145,
                "z": -153.73691
              }
            },
            {
              "type": "LEFT_EAR_TRAGION",
              "position": {
                "x": 1274.1006,
                "y": 826.2645,
                "z": 422.6642
              }
            },
            {
              "type": "RIGHT_EAR_TRAGION",
              "position": {
                "x": 2014.8041,
                "y": 908.56537,
                "z": 149.61232
              }
            },
            {
              "type": "FOREHEAD_GLABELLA",
              "position": {
                "x": 1476.2395,
                "y": 669.9625,
                "z": -120.59111
              }
            },
            {
              "type": "CHIN_GNATHION",
              "position": {
                "x": 1477.3256,
                "y": 1269.3269,
                "z": -67.748795
              }
            },
            {
              "type": "CHIN_LEFT_GONION",
              "position": {
                "x": 1336.8848,
                "y": 1096.2242,
                "z": 286.73004
              }
            },
            {
              "type": "CHIN_RIGHT_GONION",
              "position": {
                "x": 1863.2197,
                "y": 1128.6213,
                "z": 68.90431
              }
            },
            {
              "type": "LEFT_CHEEK_CENTER",
              "position": {
                "x": 1317.8549,
                "y": 940.8025,
                "z": 50.863163
              }
            },
            {
              "type": "RIGHT_CHEEK_CENTER",
              "position": {
                "x": 1733.4912,
                "y": 964.073,
                "z": -112.43947
              }
            }
          ],
          "rollAngle": 1.5912293,
          "panAngle": -22.01964,
          "tiltAngle": -1.4997566,
          "detectionConfidence": 0.9310801,
          "landmarkingConfidence": 0.5775582,
          "joyLikelihood": "VERY_LIKELY",
          "sorrowLikelihood": "VERY_UNLIKELY",
          "angerLikelihood": "VERY_UNLIKELY",
          "surpriseLikelihood": "VERY_UNLIKELY",
          "underExposedLikelihood": "VERY_UNLIKELY",
          "blurredLikelihood": "VERY_UNLIKELY",
          "headwearLikelihood": "POSSIBLE"
        },
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 144,
                "y": 1273
              },
              {
                "x": 793,
                "y": 1273
              },
              {
                "x": 793,
                "y": 1844
              },
              {
                "x": 144,
                "y": 1844
              }
            ]
          },
          "fdBoundingPoly": {
            "vertices": [
              {
                "x": 181,
                "y": 1373
              },
              {
                "x": 742,
                "y": 1373
              },
              {
                "x": 742,
                "y": 1844
              },
              {
                "x": 181,
                "y": 1844
              }
            ]
          },
          "landmarks": [
            {
              "type": "LEFT_EYE",
              "position": {
                "x": 356.13745,
                "y": 1635.7034,
                "z": 0.0045757294
              }
            },
            {
              "type": "RIGHT_EYE",
              "position": {
                "x": 557.07324,
                "y": 1601.1769,
                "z": -10.258446
              }
            },
            {
              "type": "LEFT_OF_LEFT_EYEBROW",
              "position": {
                "x": 284.70563,
                "y": 1599.5238,
                "z": 28.755493
              }
            },
            {
              "type": "RIGHT_OF_LEFT_EYEBROW",
              "position": {
                "x": 397.47183,
                "y": 1574.1455,
                "z": -28.716581
              }
            },
            {
              "type": "LEFT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 484.00983,
                "y": 1559.5669,
                "z": -33.509003
              }
            },
            {
              "type": "RIGHT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 607.31726,
                "y": 1551.2396,
                "z": 11.0225525
              }
            },
            {
              "type": "MIDPOINT_BETWEEN_EYES",
              "position": {
                "x": 447.86597,
                "y": 1603.2458,
                "z": -40.69277
              }
            },
            {
              "type": "NOSE_TIP",
              "position": {
                "x": 463.15356,
                "y": 1705.7849,
                "z": -114.36831
              }
            },
            {
              "type": "UPPER_LIP",
              "position": {
                "x": 475.02646,
                "y": 1779.54,
                "z": -85.219086
              }
            },
            {
              "type": "LOWER_LIP",
              "position": {
                "x": 483.2983,
                "y": 1844.4594,
                "z": -83.812
              }
            },
            {
              "type": "MOUTH_LEFT",
              "position": {
                "x": 391.11206,
                "y": 1824.9432,
                "z": -34.578503
              }
            },
            {
              "type": "MOUTH_RIGHT",
              "position": {
                "x": 559.85266,
                "y": 1797.929,
                "z": -44.700863
              }
            },
            {
              "type": "MOUTH_CENTER",
              "position": {
                "x": 478.21106,
                "y": 1807.5089,
                "z": -76.46759
              }
            },
            {
              "type": "NOSE_BOTTOM_RIGHT",
              "position": {
                "x": 522.9539,
                "y": 1717.8636,
                "z": -51.489075
              }
            },
            {
              "type": "NOSE_BOTTOM_LEFT",
              "position": {
                "x": 414.95767,
                "y": 1739.2955,
                "z": -46.75015
              }
            },
            {
              "type": "NOSE_BOTTOM_CENTER",
              "position": {
                "x": 468.7361,
                "y": 1739.5958,
                "z": -78.64168
              }
            },
            {
              "type": "LEFT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 352.39365,
                "y": 1618.0576,
                "z": -7.2005444
              }
            },
            {
              "type": "LEFT_EYE_RIGHT_CORNER",
              "position": {
                "x": 395.81454,
                "y": 1629.9379,
                "z": -2.4021797
              }
            },
            {
              "type": "LEFT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 357.511,
                "y": 1649.6553,
                "z": -4.4735374
              }
            },
            {
              "type": "LEFT_EYE_LEFT_CORNER",
              "position": {
                "x": 316.1426,
                "y": 1645.2771,
                "z": 18.701395
              }
            },
            {
              "type": "RIGHT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 553.78973,
                "y": 1582.3448,
                "z": -17.07942
              }
            },
            {
              "type": "RIGHT_EYE_RIGHT_CORNER",
              "position": {
                "x": 596.6489,
                "y": 1599.1897,
                "z": 4.014868
              }
            },
            {
              "type": "RIGHT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 558.60706,
                "y": 1615.964,
                "z": -15.077105
              }
            },
            {
              "type": "RIGHT_EYE_LEFT_CORNER",
              "position": {
                "x": 514.8054,
                "y": 1605.6407,
                "z": -7.929638
              }
            },
            {
              "type": "LEFT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 336.4973,
                "y": 1567.6466,
                "z": -7.853897
              }
            },
            {
              "type": "RIGHT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 542.3708,
                "y": 1536.191,
                "z": -19.405855
              }
            },
            {
              "type": "LEFT_EAR_TRAGION",
              "position": {
                "x": 231.38948,
                "y": 1749.3823,
                "z": 221.4534
              }
            },
            {
              "type": "RIGHT_EAR_TRAGION",
              "position": {
                "x": 712.5644,
                "y": 1670.4897,
                "z": 199.4929
              }
            },
            {
              "type": "FOREHEAD_GLABELLA",
              "position": {
                "x": 439.35938,
                "y": 1561.1454,
                "z": -36.451645
              }
            },
            {
              "type": "CHIN_GNATHION",
              "position": {
                "x": 501.61096,
                "y": 1942.0133,
                "z": -75.04764
              }
            },
            {
              "type": "CHIN_LEFT_GONION",
              "position": {
                "x": 304.9834,
                "y": 1892.5361,
                "z": 114.12407
              }
            },
            {
              "type": "CHIN_RIGHT_GONION",
              "position": {
                "x": 684.92535,
                "y": 1824.337,
                "z": 96.13425
              }
            },
            {
              "type": "LEFT_CHEEK_CENTER",
              "position": {
                "x": 334.5645,
                "y": 1764.659,
                "z": -2.0755844
              }
            },
            {
              "type": "RIGHT_CHEEK_CENTER",
              "position": {
                "x": 609.5919,
                "y": 1719.6847,
                "z": -16.861538
              }
            }
          ],
          "rollAngle": -8.514851,
          "panAngle": -3.096844,
          "tiltAngle": 9.26052,
          "detectionConfidence": 0.5463216,
          "landmarkingConfidence": 0.55711126,
          "joyLikelihood": "VERY_UNLIKELY",
          "sorrowLikelihood": "VERY_UNLIKELY",
          "angerLikelihood": "VERY_UNLIKELY",
          "surpriseLikelihood": "VERY_UNLIKELY",
          "underExposedLikelihood": "VERY_UNLIKELY",
          "blurredLikelihood": "UNLIKELY",
          "headwearLikelihood": "VERY_UNLIKELY"
        },
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 785,
                "y": 167
              },
              {
                "x": 1100,
                "y": 167
              },
              {
                "x": 1100,
                "y": 534
              },
              {
                "x": 785,
                "y": 534
              }
            ]
          },
          "fdBoundingPoly": {
            "vertices": [
              {
                "x": 834,
                "y": 220
              },
              {
                "x": 1101,
                "y": 220
              },
              {
                "x": 1101,
                "y": 506
              },
              {
                "x": 834,
                "y": 506
              }
            ]
          },
          "landmarks": [
            {
              "type": "LEFT_EYE",
              "position": {
                "x": 933.74615,
                "y": 351.82394,
                "z": -0.00068986416
              }
            },
            {
              "type": "RIGHT_EYE",
              "position": {
                "x": 1005.8836,
                "y": 329.02396,
                "z": 43.38338
              }
            },
            {
              "type": "LEFT_OF_LEFT_EYEBROW",
              "position": {
                "x": 901.93494,
                "y": 333.3503,
                "z": -9.714935
              }
            },
            {
              "type": "RIGHT_OF_LEFT_EYEBROW",
              "position": {
                "x": 957.4015,
                "y": 319.9436,
                "z": -6.8983736
              }
            },
            {
              "type": "LEFT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 987.50134,
                "y": 308.46817,
                "z": 13.108145
              }
            },
            {
              "type": "RIGHT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 1031.5519,
                "y": 298.8843,
                "z": 65.60683
              }
            },
            {
              "type": "MIDPOINT_BETWEEN_EYES",
              "position": {
                "x": 979.4568,
                "y": 336.0551,
                "z": 3.8077774
              }
            },
            {
              "type": "NOSE_TIP",
              "position": {
                "x": 1003.45795,
                "y": 398.80377,
                "z": -17.351936
              }
            },
            {
              "type": "UPPER_LIP",
              "position": {
                "x": 1000.16614,
                "y": 432.11664,
                "z": 5.2740355
              }
            },
            {
              "type": "LOWER_LIP",
              "position": {
                "x": 1004.0378,
                "y": 456.92422,
                "z": 13.545323
              }
            },
            {
              "type": "MOUTH_LEFT",
              "position": {
                "x": 961.922,
                "y": 448.64325,
                "z": 11.117096
              }
            },
            {
              "type": "MOUTH_RIGHT",
              "position": {
                "x": 1025.2979,
                "y": 432.70157,
                "z": 47.89795
              }
            },
            {
              "type": "MOUTH_CENTER",
              "position": {
                "x": 1002.51434,
                "y": 443.3482,
                "z": 13.021965
              }
            },
            {
              "type": "NOSE_BOTTOM_RIGHT",
              "position": {
                "x": 1015.5027,
                "y": 402.8421,
                "z": 28.03568
              }
            },
            {
              "type": "NOSE_BOTTOM_LEFT",
              "position": {
                "x": 969.764,
                "y": 413.05563,
                "z": 3.1156778
              }
            },
            {
              "type": "NOSE_BOTTOM_CENTER",
              "position": {
                "x": 997.8564,
                "y": 416.98083,
                "z": 3.3404813
              }
            },
            {
              "type": "LEFT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 930.542,
                "y": 343.17078,
                "z": -6.9020395
              }
            },
            {
              "type": "LEFT_EYE_RIGHT_CORNER",
              "position": {
                "x": 950.7726,
                "y": 348.11346,
                "z": 9.216144
              }
            },
            {
              "type": "LEFT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 933.6862,
                "y": 359.50848,
                "z": -1.3347243
              }
            },
            {
              "type": "LEFT_EYE_LEFT_CORNER",
              "position": {
                "x": 914.83966,
                "y": 356.1447,
                "z": -1.4299142
              }
            },
            {
              "type": "RIGHT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 1006.59766,
                "y": 319.50406,
                "z": 38.31219
              }
            },
            {
              "type": "RIGHT_EYE_RIGHT_CORNER",
              "position": {
                "x": 1021.45886,
                "y": 327.68784,
                "z": 61.100002
              }
            },
            {
              "type": "RIGHT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 1009.46686,
                "y": 336.0832,
                "z": 43.87975
              }
            },
            {
              "type": "RIGHT_EYE_LEFT_CORNER",
              "position": {
                "x": 991.17535,
                "y": 331.97632,
                "z": 34.4881
              }
            },
            {
              "type": "LEFT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 928.40436,
                "y": 317.13898,
                "z": -14.411907
              }
            },
            {
              "type": "RIGHT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 1008.5887,
                "y": 294.364,
                "z": 32.917953
              }
            },
            {
              "type": "LEFT_EAR_TRAGION",
              "position": {
                "x": 835.18915,
                "y": 395.7093,
                "z": 81.31065
              }
            },
            {
              "type": "RIGHT_EAR_TRAGION",
              "position": {
                "x": 1024.4136,
                "y": 360.64178,
                "z": 182.02446
              }
            },
            {
              "type": "FOREHEAD_GLABELLA",
              "position": {
                "x": 975.5221,
                "y": 315.06647,
                "z": 0.31154716
              }
            },
            {
              "type": "CHIN_GNATHION",
              "position": {
                "x": 1010.74097,
                "y": 503.23572,
                "z": 29.966637
              }
            },
            {
              "type": "CHIN_LEFT_GONION",
              "position": {
                "x": 891.86237,
                "y": 466.7829,
                "z": 58.84553
              }
            },
            {
              "type": "CHIN_RIGHT_GONION",
              "position": {
                "x": 1031.9008,
                "y": 428.13455,
                "z": 145.42484
              }
            },
            {
              "type": "LEFT_CHEEK_CENTER",
              "position": {
                "x": 929.4197,
                "y": 418.09122,
                "z": 4.574672
              }
            },
            {
              "type": "RIGHT_CHEEK_CENTER",
              "position": {
                "x": 1033.7278,
                "y": 390.5432,
                "z": 65.6329
              }
            }
          ],
          "rollAngle": -12.077273,
          "panAngle": 27.194477,
          "tiltAngle": -5.252778,
          "detectionConfidence": 0.38126788,
          "landmarkingConfidence": 0.040030442,
          "joyLikelihood": "VERY_UNLIKELY",
          "sorrowLikelihood": "VERY_UNLIKELY",
          "angerLikelihood": "VERY_UNLIKELY",
          "surpriseLikelihood": "VERY_UNLIKELY",
          "underExposedLikelihood": "LIKELY",
          "blurredLikelihood": "VERY_LIKELY",
          "headwearLikelihood": "VERY_UNLIKELY"
        }
      ]
    }
  ]
}
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Go API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
// detectFaces gets faces from the Vision API for an image at the given file path.
func detectFaces(w io.Writer, file string) error {
	ctx := context.Background()
	client, err := vision.NewImageAnnotatorClient(ctx)
	if err != nil {
		return err
	}
	defer client.Close()
	f, err := os.Open(file)
	if err != nil {
		return err
	}
	defer f.Close()
	image, err := vision.NewImageFromReader(f)
	if err != nil {
		return err
	}
	annotations, err := client.DetectFaces(ctx, image, nil, 10)
	if err != nil {
		return err
	}
	if len(annotations) == 0 {
		fmt.Fprintln(w, "No faces found.")
	} else {
		fmt.Fprintln(w, "Faces:")
		for i, annotation := range annotations {
			fmt.Fprintln(w, "  Face", i)
			fmt.Fprintln(w, "    Anger:", annotation.AngerLikelihood)
			fmt.Fprintln(w, "    Joy:", annotation.JoyLikelihood)
			fmt.Fprintln(w, "    Surprise:", annotation.SurpriseLikelihood)
		}
	}
	return nil
}
Java
在試用這個範例之前,請先按照使用用戶端程式庫的 Vision API 快速入門導覽課程中的 Java 設定操作說明進行操作。詳情請參閱 Vision API Java 參考說明文件。
import com.google.cloud.vision.v1.AnnotateImageRequest;
import com.google.cloud.vision.v1.AnnotateImageResponse;
import com.google.cloud.vision.v1.BatchAnnotateImagesResponse;
import com.google.cloud.vision.v1.FaceAnnotation;
import com.google.cloud.vision.v1.Feature;
import com.google.cloud.vision.v1.Image;
import com.google.cloud.vision.v1.ImageAnnotatorClient;
import com.google.protobuf.ByteString;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class DetectFaces {
  public static void detectFaces() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String filePath = "path/to/your/image/file.jpg";
    detectFaces(filePath);
  }
  // Detects faces in the specified local image.
  public static void detectFaces(String filePath) throws IOException {
    List<AnnotateImageRequest> requests = new ArrayList<>();
    ByteString imgBytes = ByteString.readFrom(new FileInputStream(filePath));
    Image img = Image.newBuilder().setContent(imgBytes).build();
    Feature feat = Feature.newBuilder().setType(Feature.Type.FACE_DETECTION).build();
    AnnotateImageRequest request =
        AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(img).build();
    requests.add(request);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {
      BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);
      List<AnnotateImageResponse> responses = response.getResponsesList();
      for (AnnotateImageResponse res : responses) {
        if (res.hasError()) {
          System.out.format("Error: %s%n", res.getError().getMessage());
          return;
        }
        // For full list of available annotations, see http://g.co/cloud/vision/docs
        for (FaceAnnotation annotation : res.getFaceAnnotationsList()) {
          System.out.format(
              "anger: %s%njoy: %s%nsurprise: %s%nposition: %s",
              annotation.getAngerLikelihood(),
              annotation.getJoyLikelihood(),
              annotation.getSurpriseLikelihood(),
              annotation.getBoundingPoly());
        }
      }
    }
  }
}Node.js
在試用這個範例之前,請先按照Node.js「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
// Imports the Google Cloud client library
const vision = require('@google-cloud/vision');
// Creates a client
const client = new vision.ImageAnnotatorClient();
async function detectFaces() {
  /**
   * TODO(developer): Uncomment the following line before running the sample.
   */
  // const fileName = 'Local image file, e.g. /path/to/image.png';
  const [result] = await client.faceDetection(fileName);
  const faces = result.faceAnnotations;
  console.log('Faces:');
  faces.forEach((face, i) => {
    console.log(`  Face #${i + 1}:`);
    console.log(`    Joy: ${face.joyLikelihood}`);
    console.log(`    Anger: ${face.angerLikelihood}`);
    console.log(`    Sorrow: ${face.sorrowLikelihood}`);
    console.log(`    Surprise: ${face.surpriseLikelihood}`);
  });
}
detectFaces();Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Python API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
def detect_faces(path):
    """Detects faces in an image."""
    from google.cloud import vision
    client = vision.ImageAnnotatorClient()
    with open(path, "rb") as image_file:
        content = image_file.read()
    image = vision.Image(content=content)
    response = client.face_detection(image=image)
    faces = response.face_annotations
    # Names of likelihood from google.cloud.vision.enums
    likelihood_name = (
        "UNKNOWN",
        "VERY_UNLIKELY",
        "UNLIKELY",
        "POSSIBLE",
        "LIKELY",
        "VERY_LIKELY",
    )
    print("Faces:")
    for face in faces:
        print(f"anger: {likelihood_name[face.anger_likelihood]}")
        print(f"joy: {likelihood_name[face.joy_likelihood]}")
        print(f"surprise: {likelihood_name[face.surprise_likelihood]}")
        vertices = [
            f"({vertex.x},{vertex.y})" for vertex in face.bounding_poly.vertices
        ]
        print("face bounds: {}".format(",".join(vertices)))
    if response.error.message:
        raise Exception(
            "{}\nFor more info on error messages, check: "
            "https://cloud.google.com/apis/design/errors".format(response.error.message)
        )
其他語言
C#: 請按照用戶端程式庫頁面上的C# 設定說明操作, 然後前往 .NET 適用的 Vision 參考說明文件。
PHP: 請按照用戶端程式庫頁面的 PHP 設定說明操作, 然後前往 PHP 適用的 Vision 參考文件。
Ruby: 請按照用戶端程式庫頁面的 Ruby 設定說明操作, 然後前往 Ruby 適用的 Vision 參考說明文件。
偵測遠端圖片中的臉孔
您可以透過 Vision API,對位於 Cloud Storage 或網路上的遠端圖片檔案執行特徵偵測。如要傳送遠端檔案要求,請在要求內文中指定檔案的網頁網址或 Cloud Storage URI。
REST
使用任何要求資料之前,請先替換以下項目:
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/images:annotate
JSON 要求主體:
{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "CLOUD_STORAGE_IMAGE_URI"
        }
       },
       "features": [
         {
           "maxResults": RESULTS_INT,
           "type": "FACE_DETECTION"
         }
       ]
    }
  ]
}
如要傳送要求,請選擇以下其中一個選項:
curl
      將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
      將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
如果要求成功,伺服器會傳回 200 OK HTTP 狀態碼與 JSON 格式的回應。
FACE_DETECTION 回應包含偵測到的所有臉部定界框、臉部偵測到的地標 (眼睛、鼻子、嘴巴等),以及臉部和圖片屬性 (喜悅、悲傷、憤怒、驚訝等) 的可信度評分。
回應
{
  "responses": [
    {
      "faceAnnotations": [
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 1077,
                "y": 157
              },
              {
                "x": 2146,
                "y": 157
              },
              {
                "x": 2146,
                "y": 1399
              },
              {
                "x": 1077,
                "y": 1399
              }
            ]
          },
          "fdBoundingPoly": {
            "vertices": [
              {
                "x": 1112,
                "y": 407
              },
              {
                "x": 1946,
                "y": 407
              },
              {
                "x": 1946,
                "y": 1270
              },
              {
                "x": 1112,
                "y": 1270
              }
            ]
          },
          "landmarks": [
            {
              "type": "LEFT_EYE",
              "position": {
                "x": 1368.748,
                "y": 739.0957,
                "z": 0.0024604797
              }
            },
            {
              "type": "RIGHT_EYE",
              "position": {
                "x": 1660.6105,
                "y": 751.5844,
                "z": -117.06496
              }
            },
            {
              "type": "LEFT_OF_LEFT_EYEBROW",
              "position": {
                "x": 1284.3208,
                "y": 666.61487,
                "z": 63.41506
              }
            },
            {
              "type": "RIGHT_OF_LEFT_EYEBROW",
              "position": {
                "x": 1418.9249,
                "y": 671.49414,
                "z": -83.82396
              }
            },
            {
              "type": "LEFT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 1556.9579,
                "y": 672.2199,
                "z": -139.39935
              }
            },
            {
              "type": "RIGHT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 1771.4799,
                "y": 682.65845,
                "z": -131.66716
              }
            },
            {
              "type": "MIDPOINT_BETWEEN_EYES",
              "position": {
                "x": 1479.6194,
                "y": 741.87305,
                "z": -114.84635
              }
            },
            {
              "type": "NOSE_TIP",
              "position": {
                "x": 1443.3151,
                "y": 917.5109,
                "z": -194.49301
              }
            },
            {
              "type": "UPPER_LIP",
              "position": {
                "x": 1466.7897,
                "y": 1025.3483,
                "z": -130.1202
              }
            },
            {
              "type": "LOWER_LIP",
              "position": {
                "x": 1467.2588,
                "y": 1147.0403,
                "z": -109.24505
              }
            },
            {
              "type": "MOUTH_LEFT",
              "position": {
                "x": 1376.8649,
                "y": 1066.0856,
                "z": -6.8136826
              }
            },
            {
              "type": "MOUTH_RIGHT",
              "position": {
                "x": 1652,
                "y": 1079.3108,
                "z": -106.93649
              }
            },
            {
              "type": "MOUTH_CENTER",
              "position": {
                "x": 1485.5554,
                "y": 1087.2388,
                "z": -110.68126
              }
            },
            {
              "type": "NOSE_BOTTOM_RIGHT",
              "position": {
                "x": 1571.9475,
                "y": 944.9213,
                "z": -124.11806
              }
            },
            {
              "type": "NOSE_BOTTOM_LEFT",
              "position": {
                "x": 1395.2339,
                "y": 938.12787,
                "z": -58.072197
              }
            },
            {
              "type": "NOSE_BOTTOM_CENTER",
              "position": {
                "x": 1468.4205,
                "y": 968.8732,
                "z": -132.09975
              }
            },
            {
              "type": "LEFT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 1357.8658,
                "y": 711.2427,
                "z": -14.618992
              }
            },
            {
              "type": "LEFT_EYE_RIGHT_CORNER",
              "position": {
                "x": 1423.6936,
                "y": 750.4164,
                "z": -23.540215
              }
            },
            {
              "type": "LEFT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 1360.5627,
                "y": 762.87415,
                "z": -1.2607727
              }
            },
            {
              "type": "LEFT_EYE_LEFT_CORNER",
              "position": {
                "x": 1313.72,
                "y": 739.443,
                "z": 50.216393
              }
            },
            {
              "type": "RIGHT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 1661.6622,
                "y": 718.6839,
                "z": -134.17404
              }
            },
            {
              "type": "RIGHT_EYE_RIGHT_CORNER",
              "position": {
                "x": 1730.0901,
                "y": 763.57104,
                "z": -116.365845
              }
            },
            {
              "type": "RIGHT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 1660.8823,
                "y": 777.3474,
                "z": -120.8635
              }
            },
            {
              "type": "RIGHT_EYE_LEFT_CORNER",
              "position": {
                "x": 1590.8903,
                "y": 753.5044,
                "z": -91.84842
              }
            },
            {
              "type": "LEFT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 1345.7522,
                "y": 640.18243,
                "z": -27.887913
              }
            },
            {
              "type": "RIGHT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 1660.5848,
                "y": 648.36145,
                "z": -153.73691
              }
            },
            {
              "type": "LEFT_EAR_TRAGION",
              "position": {
                "x": 1274.1006,
                "y": 826.2645,
                "z": 422.6642
              }
            },
            {
              "type": "RIGHT_EAR_TRAGION",
              "position": {
                "x": 2014.8041,
                "y": 908.56537,
                "z": 149.61232
              }
            },
            {
              "type": "FOREHEAD_GLABELLA",
              "position": {
                "x": 1476.2395,
                "y": 669.9625,
                "z": -120.59111
              }
            },
            {
              "type": "CHIN_GNATHION",
              "position": {
                "x": 1477.3256,
                "y": 1269.3269,
                "z": -67.748795
              }
            },
            {
              "type": "CHIN_LEFT_GONION",
              "position": {
                "x": 1336.8848,
                "y": 1096.2242,
                "z": 286.73004
              }
            },
            {
              "type": "CHIN_RIGHT_GONION",
              "position": {
                "x": 1863.2197,
                "y": 1128.6213,
                "z": 68.90431
              }
            },
            {
              "type": "LEFT_CHEEK_CENTER",
              "position": {
                "x": 1317.8549,
                "y": 940.8025,
                "z": 50.863163
              }
            },
            {
              "type": "RIGHT_CHEEK_CENTER",
              "position": {
                "x": 1733.4912,
                "y": 964.073,
                "z": -112.43947
              }
            }
          ],
          "rollAngle": 1.5912293,
          "panAngle": -22.01964,
          "tiltAngle": -1.4997566,
          "detectionConfidence": 0.9310801,
          "landmarkingConfidence": 0.5775582,
          "joyLikelihood": "VERY_LIKELY",
          "sorrowLikelihood": "VERY_UNLIKELY",
          "angerLikelihood": "VERY_UNLIKELY",
          "surpriseLikelihood": "VERY_UNLIKELY",
          "underExposedLikelihood": "VERY_UNLIKELY",
          "blurredLikelihood": "VERY_UNLIKELY",
          "headwearLikelihood": "POSSIBLE"
        },
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 144,
                "y": 1273
              },
              {
                "x": 793,
                "y": 1273
              },
              {
                "x": 793,
                "y": 1844
              },
              {
                "x": 144,
                "y": 1844
              }
            ]
          },
          "fdBoundingPoly": {
            "vertices": [
              {
                "x": 181,
                "y": 1373
              },
              {
                "x": 742,
                "y": 1373
              },
              {
                "x": 742,
                "y": 1844
              },
              {
                "x": 181,
                "y": 1844
              }
            ]
          },
          "landmarks": [
            {
              "type": "LEFT_EYE",
              "position": {
                "x": 356.13745,
                "y": 1635.7034,
                "z": 0.0045757294
              }
            },
            {
              "type": "RIGHT_EYE",
              "position": {
                "x": 557.07324,
                "y": 1601.1769,
                "z": -10.258446
              }
            },
            {
              "type": "LEFT_OF_LEFT_EYEBROW",
              "position": {
                "x": 284.70563,
                "y": 1599.5238,
                "z": 28.755493
              }
            },
            {
              "type": "RIGHT_OF_LEFT_EYEBROW",
              "position": {
                "x": 397.47183,
                "y": 1574.1455,
                "z": -28.716581
              }
            },
            {
              "type": "LEFT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 484.00983,
                "y": 1559.5669,
                "z": -33.509003
              }
            },
            {
              "type": "RIGHT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 607.31726,
                "y": 1551.2396,
                "z": 11.0225525
              }
            },
            {
              "type": "MIDPOINT_BETWEEN_EYES",
              "position": {
                "x": 447.86597,
                "y": 1603.2458,
                "z": -40.69277
              }
            },
            {
              "type": "NOSE_TIP",
              "position": {
                "x": 463.15356,
                "y": 1705.7849,
                "z": -114.36831
              }
            },
            {
              "type": "UPPER_LIP",
              "position": {
                "x": 475.02646,
                "y": 1779.54,
                "z": -85.219086
              }
            },
            {
              "type": "LOWER_LIP",
              "position": {
                "x": 483.2983,
                "y": 1844.4594,
                "z": -83.812
              }
            },
            {
              "type": "MOUTH_LEFT",
              "position": {
                "x": 391.11206,
                "y": 1824.9432,
                "z": -34.578503
              }
            },
            {
              "type": "MOUTH_RIGHT",
              "position": {
                "x": 559.85266,
                "y": 1797.929,
                "z": -44.700863
              }
            },
            {
              "type": "MOUTH_CENTER",
              "position": {
                "x": 478.21106,
                "y": 1807.5089,
                "z": -76.46759
              }
            },
            {
              "type": "NOSE_BOTTOM_RIGHT",
              "position": {
                "x": 522.9539,
                "y": 1717.8636,
                "z": -51.489075
              }
            },
            {
              "type": "NOSE_BOTTOM_LEFT",
              "position": {
                "x": 414.95767,
                "y": 1739.2955,
                "z": -46.75015
              }
            },
            {
              "type": "NOSE_BOTTOM_CENTER",
              "position": {
                "x": 468.7361,
                "y": 1739.5958,
                "z": -78.64168
              }
            },
            {
              "type": "LEFT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 352.39365,
                "y": 1618.0576,
                "z": -7.2005444
              }
            },
            {
              "type": "LEFT_EYE_RIGHT_CORNER",
              "position": {
                "x": 395.81454,
                "y": 1629.9379,
                "z": -2.4021797
              }
            },
            {
              "type": "LEFT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 357.511,
                "y": 1649.6553,
                "z": -4.4735374
              }
            },
            {
              "type": "LEFT_EYE_LEFT_CORNER",
              "position": {
                "x": 316.1426,
                "y": 1645.2771,
                "z": 18.701395
              }
            },
            {
              "type": "RIGHT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 553.78973,
                "y": 1582.3448,
                "z": -17.07942
              }
            },
            {
              "type": "RIGHT_EYE_RIGHT_CORNER",
              "position": {
                "x": 596.6489,
                "y": 1599.1897,
                "z": 4.014868
              }
            },
            {
              "type": "RIGHT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 558.60706,
                "y": 1615.964,
                "z": -15.077105
              }
            },
            {
              "type": "RIGHT_EYE_LEFT_CORNER",
              "position": {
                "x": 514.8054,
                "y": 1605.6407,
                "z": -7.929638
              }
            },
            {
              "type": "LEFT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 336.4973,
                "y": 1567.6466,
                "z": -7.853897
              }
            },
            {
              "type": "RIGHT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 542.3708,
                "y": 1536.191,
                "z": -19.405855
              }
            },
            {
              "type": "LEFT_EAR_TRAGION",
              "position": {
                "x": 231.38948,
                "y": 1749.3823,
                "z": 221.4534
              }
            },
            {
              "type": "RIGHT_EAR_TRAGION",
              "position": {
                "x": 712.5644,
                "y": 1670.4897,
                "z": 199.4929
              }
            },
            {
              "type": "FOREHEAD_GLABELLA",
              "position": {
                "x": 439.35938,
                "y": 1561.1454,
                "z": -36.451645
              }
            },
            {
              "type": "CHIN_GNATHION",
              "position": {
                "x": 501.61096,
                "y": 1942.0133,
                "z": -75.04764
              }
            },
            {
              "type": "CHIN_LEFT_GONION",
              "position": {
                "x": 304.9834,
                "y": 1892.5361,
                "z": 114.12407
              }
            },
            {
              "type": "CHIN_RIGHT_GONION",
              "position": {
                "x": 684.92535,
                "y": 1824.337,
                "z": 96.13425
              }
            },
            {
              "type": "LEFT_CHEEK_CENTER",
              "position": {
                "x": 334.5645,
                "y": 1764.659,
                "z": -2.0755844
              }
            },
            {
              "type": "RIGHT_CHEEK_CENTER",
              "position": {
                "x": 609.5919,
                "y": 1719.6847,
                "z": -16.861538
              }
            }
          ],
          "rollAngle": -8.514851,
          "panAngle": -3.096844,
          "tiltAngle": 9.26052,
          "detectionConfidence": 0.5463216,
          "landmarkingConfidence": 0.55711126,
          "joyLikelihood": "VERY_UNLIKELY",
          "sorrowLikelihood": "VERY_UNLIKELY",
          "angerLikelihood": "VERY_UNLIKELY",
          "surpriseLikelihood": "VERY_UNLIKELY",
          "underExposedLikelihood": "VERY_UNLIKELY",
          "blurredLikelihood": "UNLIKELY",
          "headwearLikelihood": "VERY_UNLIKELY"
        },
        {
          "boundingPoly": {
            "vertices": [
              {
                "x": 785,
                "y": 167
              },
              {
                "x": 1100,
                "y": 167
              },
              {
                "x": 1100,
                "y": 534
              },
              {
                "x": 785,
                "y": 534
              }
            ]
          },
          "fdBoundingPoly": {
            "vertices": [
              {
                "x": 834,
                "y": 220
              },
              {
                "x": 1101,
                "y": 220
              },
              {
                "x": 1101,
                "y": 506
              },
              {
                "x": 834,
                "y": 506
              }
            ]
          },
          "landmarks": [
            {
              "type": "LEFT_EYE",
              "position": {
                "x": 933.74615,
                "y": 351.82394,
                "z": -0.00068986416
              }
            },
            {
              "type": "RIGHT_EYE",
              "position": {
                "x": 1005.8836,
                "y": 329.02396,
                "z": 43.38338
              }
            },
            {
              "type": "LEFT_OF_LEFT_EYEBROW",
              "position": {
                "x": 901.93494,
                "y": 333.3503,
                "z": -9.714935
              }
            },
            {
              "type": "RIGHT_OF_LEFT_EYEBROW",
              "position": {
                "x": 957.4015,
                "y": 319.9436,
                "z": -6.8983736
              }
            },
            {
              "type": "LEFT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 987.50134,
                "y": 308.46817,
                "z": 13.108145
              }
            },
            {
              "type": "RIGHT_OF_RIGHT_EYEBROW",
              "position": {
                "x": 1031.5519,
                "y": 298.8843,
                "z": 65.60683
              }
            },
            {
              "type": "MIDPOINT_BETWEEN_EYES",
              "position": {
                "x": 979.4568,
                "y": 336.0551,
                "z": 3.8077774
              }
            },
            {
              "type": "NOSE_TIP",
              "position": {
                "x": 1003.45795,
                "y": 398.80377,
                "z": -17.351936
              }
            },
            {
              "type": "UPPER_LIP",
              "position": {
                "x": 1000.16614,
                "y": 432.11664,
                "z": 5.2740355
              }
            },
            {
              "type": "LOWER_LIP",
              "position": {
                "x": 1004.0378,
                "y": 456.92422,
                "z": 13.545323
              }
            },
            {
              "type": "MOUTH_LEFT",
              "position": {
                "x": 961.922,
                "y": 448.64325,
                "z": 11.117096
              }
            },
            {
              "type": "MOUTH_RIGHT",
              "position": {
                "x": 1025.2979,
                "y": 432.70157,
                "z": 47.89795
              }
            },
            {
              "type": "MOUTH_CENTER",
              "position": {
                "x": 1002.51434,
                "y": 443.3482,
                "z": 13.021965
              }
            },
            {
              "type": "NOSE_BOTTOM_RIGHT",
              "position": {
                "x": 1015.5027,
                "y": 402.8421,
                "z": 28.03568
              }
            },
            {
              "type": "NOSE_BOTTOM_LEFT",
              "position": {
                "x": 969.764,
                "y": 413.05563,
                "z": 3.1156778
              }
            },
            {
              "type": "NOSE_BOTTOM_CENTER",
              "position": {
                "x": 997.8564,
                "y": 416.98083,
                "z": 3.3404813
              }
            },
            {
              "type": "LEFT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 930.542,
                "y": 343.17078,
                "z": -6.9020395
              }
            },
            {
              "type": "LEFT_EYE_RIGHT_CORNER",
              "position": {
                "x": 950.7726,
                "y": 348.11346,
                "z": 9.216144
              }
            },
            {
              "type": "LEFT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 933.6862,
                "y": 359.50848,
                "z": -1.3347243
              }
            },
            {
              "type": "LEFT_EYE_LEFT_CORNER",
              "position": {
                "x": 914.83966,
                "y": 356.1447,
                "z": -1.4299142
              }
            },
            {
              "type": "RIGHT_EYE_TOP_BOUNDARY",
              "position": {
                "x": 1006.59766,
                "y": 319.50406,
                "z": 38.31219
              }
            },
            {
              "type": "RIGHT_EYE_RIGHT_CORNER",
              "position": {
                "x": 1021.45886,
                "y": 327.68784,
                "z": 61.100002
              }
            },
            {
              "type": "RIGHT_EYE_BOTTOM_BOUNDARY",
              "position": {
                "x": 1009.46686,
                "y": 336.0832,
                "z": 43.87975
              }
            },
            {
              "type": "RIGHT_EYE_LEFT_CORNER",
              "position": {
                "x": 991.17535,
                "y": 331.97632,
                "z": 34.4881
              }
            },
            {
              "type": "LEFT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 928.40436,
                "y": 317.13898,
                "z": -14.411907
              }
            },
            {
              "type": "RIGHT_EYEBROW_UPPER_MIDPOINT",
              "position": {
                "x": 1008.5887,
                "y": 294.364,
                "z": 32.917953
              }
            },
            {
              "type": "LEFT_EAR_TRAGION",
              "position": {
                "x": 835.18915,
                "y": 395.7093,
                "z": 81.31065
              }
            },
            {
              "type": "RIGHT_EAR_TRAGION",
              "position": {
                "x": 1024.4136,
                "y": 360.64178,
                "z": 182.02446
              }
            },
            {
              "type": "FOREHEAD_GLABELLA",
              "position": {
                "x": 975.5221,
                "y": 315.06647,
                "z": 0.31154716
              }
            },
            {
              "type": "CHIN_GNATHION",
              "position": {
                "x": 1010.74097,
                "y": 503.23572,
                "z": 29.966637
              }
            },
            {
              "type": "CHIN_LEFT_GONION",
              "position": {
                "x": 891.86237,
                "y": 466.7829,
                "z": 58.84553
              }
            },
            {
              "type": "CHIN_RIGHT_GONION",
              "position": {
                "x": 1031.9008,
                "y": 428.13455,
                "z": 145.42484
              }
            },
            {
              "type": "LEFT_CHEEK_CENTER",
              "position": {
                "x": 929.4197,
                "y": 418.09122,
                "z": 4.574672
              }
            },
            {
              "type": "RIGHT_CHEEK_CENTER",
              "position": {
                "x": 1033.7278,
                "y": 390.5432,
                "z": 65.6329
              }
            }
          ],
          "rollAngle": -12.077273,
          "panAngle": 27.194477,
          "tiltAngle": -5.252778,
          "detectionConfidence": 0.38126788,
          "landmarkingConfidence": 0.040030442,
          "joyLikelihood": "VERY_UNLIKELY",
          "sorrowLikelihood": "VERY_UNLIKELY",
          "angerLikelihood": "VERY_UNLIKELY",
          "surpriseLikelihood": "VERY_UNLIKELY",
          "underExposedLikelihood": "LIKELY",
          "blurredLikelihood": "VERY_LIKELY",
          "headwearLikelihood": "VERY_UNLIKELY"
        }
      ]
    }
  ]
}
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Go API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
// detectFaces gets faces from the Vision API for an image at the given file path.
func detectFacesURI(w io.Writer, file string) error {
	ctx := context.Background()
	client, err := vision.NewImageAnnotatorClient(ctx)
	if err != nil {
		return err
	}
	image := vision.NewImageFromURI(file)
	annotations, err := client.DetectFaces(ctx, image, nil, 10)
	if err != nil {
		return err
	}
	if len(annotations) == 0 {
		fmt.Fprintln(w, "No faces found.")
	} else {
		fmt.Fprintln(w, "Faces:")
		for i, annotation := range annotations {
			fmt.Fprintln(w, "  Face", i)
			fmt.Fprintln(w, "    Anger:", annotation.AngerLikelihood)
			fmt.Fprintln(w, "    Joy:", annotation.JoyLikelihood)
			fmt.Fprintln(w, "    Surprise:", annotation.SurpriseLikelihood)
		}
	}
	return nil
}
Java
在試用這個範例之前,請先按照使用用戶端程式庫的 Vision API 快速入門導覽課程中的 Java 設定操作說明進行操作。詳情請參閱 Vision API Java 參考說明文件。
import com.google.cloud.vision.v1.AnnotateImageRequest;
import com.google.cloud.vision.v1.AnnotateImageResponse;
import com.google.cloud.vision.v1.BatchAnnotateImagesResponse;
import com.google.cloud.vision.v1.FaceAnnotation;
import com.google.cloud.vision.v1.Feature;
import com.google.cloud.vision.v1.Image;
import com.google.cloud.vision.v1.ImageAnnotatorClient;
import com.google.cloud.vision.v1.ImageSource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class DetectFacesGcs {
  public static void detectFacesGcs() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String filePath = "gs://your-gcs-bucket/path/to/image/file.jpg";
    detectFacesGcs(filePath);
  }
  // Detects faces in the specified remote image on Google Cloud Storage.
  public static void detectFacesGcs(String gcsPath) throws IOException {
    List<AnnotateImageRequest> requests = new ArrayList<>();
    ImageSource imgSource = ImageSource.newBuilder().setGcsImageUri(gcsPath).build();
    Image img = Image.newBuilder().setSource(imgSource).build();
    Feature feat = Feature.newBuilder().setType(Feature.Type.FACE_DETECTION).build();
    AnnotateImageRequest request =
        AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(img).build();
    requests.add(request);
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {
      BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);
      List<AnnotateImageResponse> responses = response.getResponsesList();
      for (AnnotateImageResponse res : responses) {
        if (res.hasError()) {
          System.out.format("Error: %s%n", res.getError().getMessage());
          return;
        }
        // For full list of available annotations, see http://g.co/cloud/vision/docs
        for (FaceAnnotation annotation : res.getFaceAnnotationsList()) {
          System.out.format(
              "anger: %s%njoy: %s%nsurprise: %s%nposition: %s",
              annotation.getAngerLikelihood(),
              annotation.getJoyLikelihood(),
              annotation.getSurpriseLikelihood(),
              annotation.getBoundingPoly());
        }
      }
    }
  }
}Node.js
在試用這個範例之前,請先按照Node.js「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
// Imports the Google Cloud client libraries
const vision = require('@google-cloud/vision');
// Creates a client
const client = new vision.ImageAnnotatorClient();
/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Bucket where the file resides, e.g. my-bucket';
// const fileName = 'Path to file within bucket, e.g. path/to/image.png';
// Performs face detection on the gcs file
const [result] = await client.faceDetection(`gs://${bucketName}/${fileName}`);
const faces = result.faceAnnotations;
console.log('Faces:');
faces.forEach((face, i) => {
  console.log(`  Face #${i + 1}:`);
  console.log(`    Joy: ${face.joyLikelihood}`);
  console.log(`    Anger: ${face.angerLikelihood}`);
  console.log(`    Sorrow: ${face.sorrowLikelihood}`);
  console.log(`    Surprise: ${face.surpriseLikelihood}`);
});Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Python API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
def detect_faces_uri(uri):
    """Detects faces in the file located in Google Cloud Storage or the web."""
    from google.cloud import vision
    client = vision.ImageAnnotatorClient()
    image = vision.Image()
    image.source.image_uri = uri
    response = client.face_detection(image=image)
    faces = response.face_annotations
    # Names of likelihood from google.cloud.vision.enums
    likelihood_name = (
        "UNKNOWN",
        "VERY_UNLIKELY",
        "UNLIKELY",
        "POSSIBLE",
        "LIKELY",
        "VERY_LIKELY",
    )
    print("Faces:")
    for face in faces:
        print(f"anger: {likelihood_name[face.anger_likelihood]}")
        print(f"joy: {likelihood_name[face.joy_likelihood]}")
        print(f"surprise: {likelihood_name[face.surprise_likelihood]}")
        vertices = [
            f"({vertex.x},{vertex.y})" for vertex in face.bounding_poly.vertices
        ]
        print("face bounds: {}".format(",".join(vertices)))
    if response.error.message:
        raise Exception(
            "{}\nFor more info on error messages, check: "
            "https://cloud.google.com/apis/design/errors".format(response.error.message)
        )
gcloud
如要執行臉部偵測,請使用 gcloud ml vision detect-faces 指令,如下列範例所示:
gcloud ml vision detect-faces gs://cloud-samples-data/vision/face/faces.jpeg
其他語言
C#: 請按照用戶端程式庫頁面上的C# 設定說明操作, 然後前往 .NET 適用的 Vision 參考說明文件。
PHP: 請按照用戶端程式庫頁面的 PHP 設定說明操作, 然後前往 PHP 適用的 Vision 參考文件。
Ruby: 請按照用戶端程式庫頁面的 Ruby 設定說明操作, 然後前往 Ruby 適用的 Vision 參考說明文件。
試試看
請試試下方的臉部偵測功能。你可以使用已指定的圖片 (gs://cloud-samples-data/vision/face/faces.jpeg),也可以指定自己的圖片。選取「Execute」,傳送要求。
要求主體:
{
  "requests": [
    {
      "features": [
        {
          "maxResults": 10,
          "type": "FACE_DETECTION"
        }
      ],
      "image": {
        "source": {
          "imageUri": "gs://cloud-samples-data/vision/face/faces.jpeg"
        }
      }
    }
  ]
}