이미지 웨어하우스 데이터 검색

이미지 자료 모음을 만들고 AnalyzeCorpus를 실행하여 자료 모음 데이터에 삽입 신호를 생성한 후 색인 및 색인 엔드포인트를 만들 수 있습니다. 이 색인 엔드포인트에 색인을 배포한 후에는 기준 필터 기능을 사용하여 시맨틱 검색을 실행할 수 있습니다. 검색 결과에는 관련성 점수로 정렬된 이미지 목록이 포함됩니다.

입력 텍스트로 검색

corpus에서 assets를 검색하려면 다음 형식으로 SearchIndexEndpointRequest에 원하는 검색어를 입력합니다.

  • text_query: 검색할 텍스트 쿼리입니다.
  • 선택사항 criteria 또는 exclusion_criteria: 사용자가 제공한 주석의 필터 기준입니다. 텍스트, 숫자, 불리언 또는 날짜/시간 값에 적용할 수 있습니다.

다음 예에서는 자연 경관 이미지가 포함된 자료 집합을 가정해 보겠습니다. '해변의 일몰'과 관련이 있고 주석 "state": "California"로 태그된 모든 확장 소재를 검색하려면 다음 요청을 전송합니다 (FIELD_NAME은 state로, FIELD_VALUE는 California로 바꿉니다).

REST 및 명령줄

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사(예: europe-west4-)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다. us-central1, europe-west4 사용 가능한 리전을 참고하세요.
  • INDEX_ENDPOINT_ID: 타겟 색인 엔드포인트의 ID입니다.

HTTP 메서드 및 URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint

JSON 요청 본문:

{
  "text_query": "sunset at beach",
  "criteria": [
    {
      "field": "state",
      "text_array": {
          "txt_values": [
            "California"
          ]
      }
    }
  ]
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "searchResultItems": [
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1",
      "relevance": "0.99"
    },
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2",
      "relevance": "0.98"
    }
  ]
}

입력 이미지로 검색

해변에서 일몰을 촬영한 이미지가 있다면 이를 검색어로 사용하여 유사한 이미지를 검색할 수도 있습니다.

REST 및 명령줄

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사(예: europe-west4-)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다. us-central1, europe-west4 사용 가능한 리전을 참고하세요.
  • INDEX_ENDPOINT_ID: 타겟 색인 엔드포인트의 ID입니다.

HTTP 메서드 및 URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint

JSON 요청 본문:

{
  "image_query": {
    "input_image": "IMAGE_BYTES"
  },
  "criteria": [
    {
      "field": "FIELD_NAME",
      "text_array": {
          "txt_values": [
            "FIELD_VALUE"
          ]
      }
    }
  ]
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "searchResultItems": [
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1",
      "relevance": 0.99
    },
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2",
      "relevance": 0.98
    }
  ]
}

기존 이미지로 검색

자료에 있는 기존 이미지 확장 소재를 사용하여 유사한 이미지를 검색할 수도 있습니다. 첫 번째 검색 결과는 관련성 점수가 1.0인 동일한 이미지 애셋입니다.

REST 및 명령줄

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사(예: europe-west4-)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다. us-central1, europe-west4 사용 가능한 리전을 참고하세요.
  • INDEX_ENDPOINT_ID: 타겟 색인 엔드포인트의 ID입니다.
  • CORPUS_ID: 타겟 자료의 ID입니다.
  • ASSET_ID: 타겟 확장 소재의 ID입니다.

HTTP 메서드 및 URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint

JSON 요청 본문:

{
  "image_query": {
    "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "searchResultItems": [
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1",
      "relevance": 1.0
    },
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2",
      "relevance": 0.99
    }
  ]
}