Tiện ích Google Cloud Vision

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
Thông tin

Phiên bản: 2.0.2

Khám phá nội dung và văn bản trong hình ảnh bằng các mô hình học máy.

Nội dung này cung cấp thông tin tham khảo để định cấu hình và sử dụng tiện ích này. Trước khi sử dụng tiện ích này từ một proxy API, bạn phải:

  1. Bật Cloud Vision API cho tài khoản dịch vụ của bạn.

  2. Nếu sẽ sử dụng Cloud Storage làm nguồn cho hình ảnh, bạn cũng cần cấp quyền truy cập cho tiện ích này vào Cloud Storage như mô tả trong tài liệu tham khảo về Tiện ích Google Cloud Storage.

  3. Khi bạn có một tài khoản dịch vụ có quyền truy cập vào Cloud Vision (và Cloud Storage nếu bạn đang sử dụng), hãy dùng Google Cloud Console để tạo khoá cho tài khoản dịch vụ đó.

  4. Sử dụng nội dung của tệp JSON khoá thu được khi thêm và định cấu hình tiện ích bằng cách sử dụng tài liệu tham khảo về cấu hình.

Giới thiệu về Cloud Vision

Google Cloud Vision API sử dụng các mô hình học máy để phân tích hình ảnh. Bạn có thể huấn luyện một mô hình để API sử dụng hoặc sử dụng mô hình được tích hợp sẵn.

Bằng cách sử dụng mô hình tích hợp, Cloud Vision phân loại hình ảnh thành các danh mục như "toà nhà chọc trời", "thuyền buồm", "sư tử" hoặc "Tháp Eiffel". API này phát hiện các đối tượng, khuôn mặt, biểu trưng và địa danh trong hình ảnh, đồng thời xác định vị trí của các từ có trong hình ảnh.

Mẫu

Các ví dụ sau đây minh hoạ cách định cấu hình chế độ hỗ trợ cho các thao tác của tiện ích Cloud Vision bằng cách sử dụng chính sách ExtensionCallout.

Phát hiện nhãn

Trong ví dụ sau, thao tác detectLabels của tiện ích sẽ lấy hình ảnh tại image_uri và chuyển hình ảnh đó đến Cloud Vision API để phân tích. API này sẽ kiểm tra hình ảnh và xác định những nhãn áp dụng cho nội dung của hình ảnh.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Cloud-Vision-Extension">
    <DisplayName>Cloud Vision Extension</DisplayName>
    <Connector>cloud-vision-extension-example</Connector>
    <Action>detectLabels</Action>
    <Input><![CDATA[
    {
        "image_uri" : "gs://cloud-vision-example/empire-state-building.jpg"
    }
    ]]></Input>
    <Output>vision.labels.retrieved</Output>
</ConnectorCallout>

Chính sách Assign Message (Chỉ định thông báo) sau đây sử dụng giá trị của biến lưu trữ phản hồi của tiện ích để chỉ định tải trọng phản hồi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Image-Labels">
    <DisplayName>Get Image Labels</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{vision.labels.retrieved}</Payload>
    </Set>
</AssignMessage>

Nếu cung cấp một hình ảnh về khu vực đô thị có một toà nhà rất cao, bạn có thể nhận được câu trả lời như sau:

{
  "labels": [
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "/m/0j_s4",
          "locale": "",
          "description": "metropolitan area",
          "score": 0.9868549704551697,
          "confidence": 0,
          "topicality": 0.9868549704551697,
          "boundingPoly": null
      },
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "/m/079cl",
          "locale": "",
          "description": "skyscraper",
          "score": 0.966157853603363,
          "confidence": 0,
          "topicality": 0.966157853603363,
          "boundingPoly": null
      }
  ]
}

Phát hiện văn bản

Trong ví dụ sau, thao tác detectText của tiện ích sẽ lấy hình ảnh tại image_uri và truyền hình ảnh đó đến Cloud Vision API để phân tích. API sẽ kiểm tra hình ảnh, xác định văn bản trong hình ảnh.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Cloud-Vision-Text">
    <DisplayName>Cloud Vision Text</DisplayName>
    <Connector>cloud-vision-extension-example</Connector>
    <Action>detectText</Action>
    <Input><![CDATA[
    {
        "image_uri" : "gs://cloud-vision-example/parking-signs1.jpg"
    }
    ]]></Input>
    <Output>vision.text.retrieved</Output>
</ConnectorCallout>

Chính sách Assign Message (Chỉ định thông báo) sau đây sử dụng giá trị của biến lưu trữ phản hồi của tiện ích để chỉ định tải trọng phản hồi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Image-Text">
    <DisplayName>Get Image Text</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{vision.text.retrieved}</Payload>
    </Set>
</AssignMessage>

Với một hình ảnh có chứa các biển báo trong bãi đỗ xe, bạn có thể nhận được một phản hồi như sau:

{
  "text": [
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "",
          "locale": "en",
          "description": "RESERVED\nVISITORPARKING\nPARKING\nONLY>\n$150 FINE\n",
          "score": 0,
          "confidence": 0,
          "topicality": 0,
          "boundingPoly": {
              "vertices": [
                  {
                      "x": 64,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 218
                  },
                  {
                      "x": 64,
                      "y": 218
                  }
              ]
          }
      },
      {
          "locations": [

          ],
          "properties": [

          ],
          "mid": "",
          "locale": "",
          "description": "RESERVED",
          "score": 0,
          "confidence": 0,
          "topicality": 0,
          "boundingPoly": {
              "vertices": [
                  {
                      "x": 243,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 56
                  },
                  {
                      "x": 378,
                      "y": 84
                  },
                  {
                      "x": 243,
                      "y": 84
                  }
              ]
          }
      }
   ]
}

Thao tác

detectLabels

Phát hiện và trích xuất thông tin về các thực thể trong hình ảnh được chỉ định. Các thực thể được phát hiện thuộc nhiều danh mục. Ví dụ: sử dụng thao tác này để xác định vật thể, địa điểm, hoạt động, loài động vật, sản phẩm và nhiều nội dung khác.

Ngoài ra, hãy nhớ xem tài liệu về Cloud Vision API.

Tham số yêu cầu

Tham số Mô tả Loại Mặc định Bắt buộc
image_uri Nguồn của hình ảnh. Đây có thể là từ Internet hoặc Google Cloud Storage (định dạng: gs://bucketname/filename). Nếu nguồn là Google Cloud Storage, thì tệp hình ảnh phải ở chế độ công khai. Chuỗi Không có. Có.

Cú pháp

<Input><![CDATA[{
    "image_uri" : "uri-of-image-to-analyze"
}
]]></Input>

Ví dụ:

Trong ví dụ sau, thao tác detectLabels của tiện ích sẽ gửi hình ảnh đã chỉ định đến Vision API để phân tích.

<Input><![CDATA[
{
    "image_uri" : "gs://cloud-vision-example/empire-state-building.jpg"
}
]]></Input>

Phản hồi

Một đối tượng chứa mảng labels gồm các nhãn đại diện cho những thực thể được phát hiện trong hình ảnh. Để biết thêm thông tin, hãy xem phần Phát hiện nhãn.

detectText

Phát hiện và trích xuất văn bản từ hình ảnh được chỉ định.

Tham số yêu cầu

Tham số Mô tả Loại Mặc định Bắt buộc
image_uri Nguồn của hình ảnh. Đây có thể là từ Internet hoặc Google Cloud Storage (định dạng: gs://bucketname/filename). Nếu nguồn là Google Cloud Storage, thì tệp hình ảnh phải ở chế độ công khai. Chuỗi Không có. Có.

Cú pháp

<Input><![CDATA[
{
    "image_uri" : "uri-of-image-to-analyze"
}
]]></Input>

Ví dụ:

Trong ví dụ sau, thao tác detectText của tiện ích sẽ gửi hình ảnh đã chỉ định đến Vision API để phân tích.

<Input><![CDATA[
{
    "image_uri" : "gs://cloud-vision-example/parking-signs1.jpg"
}
]]></Input>

Phản hồi

Một đối tượng chứa mảng text của văn bản được phát hiện. Để biết thêm thông tin, hãy xem phần Phát hiện nhãn.

Tài liệu tham khảo về cấu hình

Hãy sử dụng những thông tin sau khi bạn định cấu hình và triển khai tiện ích này để sử dụng trong các proxy API. Để biết các bước định cấu hình một tiện ích bằng bảng điều khiển Apigee, hãy xem phần Thêm và định cấu hình tiện ích.

Thuộc tính mở rộng chung

Các thuộc tính sau có sẵn cho mỗi tiện ích.

Tài sản Mô tả Mặc định Bắt buộc
name Tên mà bạn đang đặt cho cấu hình của tiện ích này. Không có
packageName Tên của gói tiện ích do Apigee Edge cung cấp. Không có
version Số phiên bản của gói tiện ích mà bạn đang định cấu hình tiện ích. Không có
configuration Giá trị cấu hình cụ thể cho tiện ích bạn đang thêm. Xem Thuộc tính cho gói tiện ích này Không có