제품 세트를 만들었고 제품 세트의 색인을 생성했다면 Cloud Vision API를 사용하여 제품 세트를 쿼리할 수 있습니다.
일치 제품 검색
이미지의 Google Cloud Storage URI, 웹 URL 또는 base64 인코딩 문자열을 Vision API 제품 검색에 전달하여 특정 이미지와 유사한 상품을 찾을 수 있습니다. 최대 요청 크기 및 할당량 정보는 사용량 한도를 참조하세요.
한 이미지의 단일 제품 인식 및 다중 제품 인식에 대한 예시는 검색 응답 및 다중 인식 이해 주제를 참조하세요.
로컬 이미지를 사용하여 검색
다음 샘플은 요청에서 원시 이미지 바이트(base64 인코딩 이미지)를 인라인으로 포함하여 로컬 파일을 읽고 API를 쿼리합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- BASE64_ENCODED_IMAGE: 바이너리 이미지 데이터의 base64 표현(ASCII 문자열)입니다. 이 문자열은 다음 문자열과 유사하게 표시됩니다.
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- LOCATION_ID: 유효한 위치 식별자입니다. 유효한 위치 식별자는
us-west1
,us-east1
,europe-west1
,asia-east1
입니다. - PRODUCT_SET_ID: 작업을 실행할 제품 세트의 ID입니다.
필드별 고려사항:
features.maxResults
- 반환될 최대 결과 수입니다.imageContext.productCategories
- 검색할 제품 카테고리입니다. 현재는 하나의 제품 카테고리(homegoods, apparel, toys, package goods, general)만 지정할 수 있습니다.imageContext.filter
- (선택사항) 제품 라벨의 키-값 필터링 표현식 또는 여러 표현식입니다. 형식: "key
=value
".키-값 쌍 필터링을 AND 또는 OR 표현식 "color
=blue
ANDstyle
=mens
" 또는 "color
=blue
ORcolor
=black
"과 연결할 수 있습니다. OR 표현식을 사용한다면 표현식 내의 모든 키가 반드시 동일해야 합니다.
HTTP 메서드 및 URL:
POST https://vision.googleapis.com/v1/images:annotate
JSON 요청 본문:
{ "requests": [ { "image": { "content": base64-encoded-image }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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 형식으로 반환합니다.
응답 JSON에는 다음과 같은 두 가지 결과 유형이 있습니다.
productSearchResults
- 전체 이미지에 일치하는 제품의 목록을 포함합니다. 샘플 응답에서 일치하는 제품은 product_id65, product_id35, product_id34, product_id62, product_id32입니다.productGroupedResults
- 이미지에서 인식된 각 제품의 경계 상자 좌표와 일치 항목을 포함합니다. 응답 product_id65, product_id35, product_id34, product_id93, product_id62에는 식별된 제품이 한 개뿐이며 그 뒤로는 샘플 제품 조합에서 일치하는 제품이 나열되어 있습니다.
두 결과 유형에서 겹치는 부분이 있지만 차이가 있을 수도 있습니다(예: 응답의 product_id32와 product_id93).
Go
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Go API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Java API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Node.js API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Python API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 Vision API 제품 검색 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 Vision API 제품 검색 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 Vision API 제품 검색 참고 문서를 참조하세요.
원격 이미지를 사용한 검색
이미지에 Cloud Storage URI를 지정하여 특정 이미지와 유사한 제품을 찾을 수도 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- CLOUD_STORAGE_IMAGE_URI: Cloud Storage 버킷에 있는 유효한 이미지 파일의 경로입니다. 적어도 파일에 대한 읽기 권한이 있어야 합니다.
예를 들면 다음과 같습니다.
gs://storage-bucket/filename.jpg
- PROJECT_ID: Google Cloud 프로젝트 ID
- LOCATION_ID: 유효한 위치 식별자입니다. 유효한 위치 식별자는
us-west1
,us-east1
,europe-west1
,asia-east1
입니다. - PRODUCT_SET_ID: 작업을 실행할 제품 세트의 ID입니다.
필드별 고려사항:
features.maxResults
- 반환될 최대 결과 수입니다.imageContext.productCategories
- 검색할 제품 카테고리입니다. 현재는 하나의 제품 카테고리(homegoods, apparel, toys, package goods, general)만 지정할 수 있습니다.imageContext.filter
- (선택사항) 제품 라벨의 키-값 필터링 표현식 또는 여러 표현식입니다. 형식: "key
=value
".키-값 쌍 필터링을 AND 또는 OR 표현식 "color
=blue
ANDstyle
=mens
" 또는 "color
=blue
ORcolor
=black
"과 연결할 수 있습니다. OR 표현식을 사용한다면 표현식 내의 모든 키가 반드시 동일해야 합니다.
HTTP 메서드 및 URL:
POST https://vision.googleapis.com/v1/images:annotate
JSON 요청 본문:
{ "requests": [ { "image": { "source": { "gcsImageUri": "cloud-storage-image-uri" } }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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 형식으로 반환합니다.
응답 JSON에는 다음과 같은 두 가지 결과 유형이 있습니다.
productSearchResults
- 전체 이미지에 일치하는 제품의 목록을 포함합니다. 샘플 응답에서 일치하는 제품은 product_id65, product_id35, product_id34, product_id62, product_id32입니다.productGroupedResults
- 이미지에서 인식된 각 제품의 경계 상자 좌표와 일치 항목을 포함합니다. 응답 product_id65, product_id35, product_id34, product_id93, product_id62에는 식별된 제품이 한 개뿐이며 그 뒤로는 샘플 제품 조합에서 일치하는 제품이 나열되어 있습니다.
두 결과 유형에서 겹치는 부분이 있지만 차이가 있을 수도 있습니다(예: 응답의 product_id32와 product_id93).
Go
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Go API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Java API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Node.js API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Vision API 제품 검색용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Vision API 제품 검색 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Vision API 제품 검색 Python API 참고 문서를 확인하세요.
Vision API 제품 검색에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 Vision API 제품 검색 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 Vision API 제품 검색 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 Vision API 제품 검색 참고 문서를 참조하세요.