Google Cloud Vision 확장 프로그램

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

버전: 1.2.0

머신러닝 모델을 사용하여 이미지의 콘텐츠와 텍스트를 탐색합니다.

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다. API 프록시에서 이 확장 프로그램을 사용하려면 다음을 수행해야 합니다.

  1. 서비스 계정에 Cloud Vision API를 사용 설정합니다.

  2. Cloud Storage를 이미지 소스로 사용하려는 경우 Google Cloud Storage 확장 프로그램 참조에 설명된 대로 이 확장 프로그램에 대한 Cloud Storage 액세스 권한도 부여해야 합니다.

  3. Cloud Vision (및 Cloud Storage를 사용 중인 경우)에 대한 권한이 있는 서비스 계정이 있으면 GCP 콘솔을 사용하여 서비스 계정의 키를 생성합니다.

  4. 구성 참조를 사용하여 확장 프로그램을 추가 및 구성할 때 결과 키 JSON 파일의 콘텐츠를 사용합니다.

Cloud Vision 정보

Google Cloud Vision API는 머신러닝 모델을 사용하여 이미지를 분석합니다. API가 사용하도록 모델을 학습시키거나 기본 제공 모델을 사용할 수 있습니다.

Cloud Vision은 기본 제공 모델을 사용하여 이미지를 '초고층 건물', 범선', '사자', '에펠탑'과 같은 카테고리로 분류합니다. 이미지 내에서 사물, 얼굴, 로고, 랜드마크를 감지하고 이미지 내에 포함된 단어를 찾습니다.

샘플

다음 예는 Extension콜아웃 정책을 사용하여 Cloud Vision 확장 프로그램 작업에 대한 지원을 구성하는 방법을 보여줍니다.

라벨 감지

다음 예에서 확장 프로그램의 detectLabels 작업은 image_uri에서 이미지를 가져와 분석을 위해 Cloud Vision API에 전달합니다. API는 이미지를 검사하여 이미지 콘텐츠에 적용할 라벨을 결정합니다.

<?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>

다음 Assign Message 정책은 확장 프로그램의 응답을 저장하는 변수 값을 사용하여 응답 페이로드를 할당합니다.

<?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>

매우 높은 건물이 있는 도시 지역의 이미지가 주어지면 다음과 같은 응답을 받을 수 있습니다.

{
  "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
      }
  ]
}

텍스트 감지

다음 예시에서 확장 프로그램 detectText 작업은 image_uri에서 이미지를 가져와 분석을 위해 Cloud Vision API에 전달합니다. API는 이미지를 검사하여 이미지의 텍스트를 식별합니다.

<?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>

다음 Assign Message 정책은 확장 프로그램의 응답을 저장하는 변수 값을 사용하여 응답 페이로드를 할당합니다.

<?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>

주차 기록 표지판이 포함된 이미지가 주어지면 다음과 같은 응답을 받을 수 있습니다.

{
  "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
                  }
              ]
          }
      }
   ]
}

작업

detectLabels

지정된 이미지 내의 항목에 대한 정보를 감지하고 추출합니다. 감지된 항목은 광범위한 카테고리 그룹에 걸쳐 지정됩니다. 예를 들어 이 작업을 사용하여 사물, 위치, 활동, 동물 종, 제품 등을 식별할 수 있습니다.

Cloud Vision API 문서도 참고하세요.

요청 매개변수

매개변수 설명 유형 기본 계정 필수
image_uri 이미지의 소스입니다. 인터넷 또는 Google Cloud Storage (형식: gs://bucketname/filename)에서 가져올 수 있습니다. 소스가 Google Cloud Storage인 경우 이미지 파일이 공개 상태여야 합니다. 문자열 없음 예.

문법

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

다음 예시에서 확장 프로그램의 detectLabels 작업은 지정된 이미지를 분석을 위해 Vision API로 전송합니다.

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

응답

이미지 내에서 감지된 항목을 나타내는 라벨의 labels 배열이 포함된 객체입니다. 자세한 내용은 라벨 감지를 참고하세요.

detectText

지정된 이미지에서 텍스트를 감지하고 추출합니다.

요청 매개변수

매개변수 설명 유형 기본 계정 필수
image_uri 이미지의 소스입니다. 인터넷 또는 Google Cloud Storage (형식: gs://bucketname/filename)에서 가져올 수 있습니다. 소스가 Google Cloud Storage인 경우 이미지 파일이 공개 상태여야 합니다. 문자열 없음 예.

문법

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

다음 예시에서 확장 프로그램의 detectText 작업은 지정된 이미지를 분석을 위해 Vision API로 전송합니다.

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

응답

감지된 텍스트의 text 배열을 포함하는 객체입니다. 자세한 내용은 라벨 감지를 참고하세요.

구성 참조

API 프록시에서 사용할 이 확장 프로그램을 구성하고 배포할 때 다음을 사용하세요. Apigee 콘솔을 사용하여 확장 프로그램을 구성하는 단계는 확장 프로그램 추가 및 구성을 참조하세요.

일반적인 확장 속성

모든 확장 프로그램에는 다음과 같은 속성이 있습니다.

속성 설명 기본 필수
name 확장 프로그램의 구성에 지정할 이름입니다. 없음 지원됨
packageName Apigee Edge에서 제공하는 확장 프로그램 패키지 이름입니다. 없음 지원됨
version 확장 프로그램을 구성하는 확장 프로그램 패키지의 버전 번호입니다. 없음 지원됨
configuration 추가하는 확장 프로그램 관련 구성 값입니다. 이 확장 프로그램 속성의 속성을 참조하세요. 없음 지원됨