참조 이미지는 상품의 다양한 보기를 포함하는 이미지입니다. 다음과 같은 권장사항이 적용됩니다.
- 파일 크기가 최대 크기(20MB)를 초과하지 않는지 확인하세요.
- 어떻게 하면 제품을 논리적으로 돋보이게 하고 적절한 시각적 정보를 포함할 수 있을지 고민해 보세요.
- 누락된 시각을 보충하는 참조 이미지를 만드세요. 예를 들어 오른쪽 신발의 이미지만 있다면 이 파일의 반전된 버전을 왼쪽 신발로 제공하세요.
- 사용 가능한 최고 해상도의 이미지를 업로드하세요.
- 제품을 흰색 배경으로 보여주세요.
- 투명한 배경의 PNG를 불투명한 배경으로 변환하세요.
이미지는 Cloud Storage 버킷에 저장되어야 합니다. 이미지 생성 호출을 API 키로 인증하는 경우에는 버킷이 공개 상태여야 합니다. 서비스 계정으로 인증하는 경우에는 서비스 계정에 버킷에 대한 읽기 액세스 권한이 있어야 합니다.
단일 참조 이미지 만들기
기존 제품에 참조 이미지를 추가할 수 있습니다. 이렇게 한 다음 이미지로 제품을 검색할 수 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- LOCATION_ID: 유효한 위치 식별자입니다. 유효한 위치 식별자는
us-west1
,us-east1
,europe-west1
,asia-east1
입니다. - PRODUCT_ID: 참조 이미지와 연결된 제품의 ID입니다. 이 ID는 제품 생성 시 무작위로 설정되거나 사용자가 지정합니다.
- CLOUD_STORAGE_IMAGE_URI: Cloud Storage 버킷에 있는 유효한 이미지 파일의 경로입니다. 적어도 파일에 대한 읽기 권한이 있어야 합니다.
예를 들면 다음과 같습니다.
gs://storage-bucket/filename.jpg
HTTP 메서드 및 URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
JSON 요청 본문:
{ "uri": "cloud-storage-image-uri", "boundingPolys": [ { "vertices": [ { "x": X_MIN, "y": Y_MIN }, { "x": X_MAX, "y": Y_MIN }, { "x": X_MAX, "y": Y_MAX }, { "x": X_MIN, "y": Y_MAX } ] } ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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/projects/project-id/locations/location-id/products/product-id/referenceImages"
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/projects/project-id/locations/location-id/products/product-id/referenceImages" | Select-Object -Expand Content
요청이 성공하면 서버가 200 OK
HTTP 상태 코드와 응답을 JSON 형식으로 반환합니다.
다음과 비슷한 출력이 표시됩니다. 예시 요청은 이미지에서 단일 boundingPoly
를 지정했습니다. 경계 상자의 꼭짓점은 정규화되지 않습니다. 꼭짓점 값은 실제 픽셀 값이며 원본 이미지에 상대적이지 않고 0에서 1까지 조정됩니다. 이러한 꼭짓점의 값은 [(33,22),(282,22),(282,278),(33,278)]입니다.
{ "name": "projects/project-id/locations/location-id/products/product-id/referenceImages/image-id", "uri": "gs://storage-bucket/filename.jpg", "boundingPolys": [ { "vertices": [ { "x": 33, "y": 22 }, { "x": 282, "y": 22 }, { "x": 282, "y": 278 }, { "x": 33, "y": 278 } ] } ] }
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 제품 검색 참고 문서를 참조하세요.
일괄 가져오기로 여러 참조 이미지 만들기
또한 제품 세트와 여러 제품을 만드는 동시에 참조 이미지를 만들 수 있습니다.
CSV 파일의 Cloud Storage 위치를 import
메서드로 전달하여 참조 이미지를 대량으로 만듭니다. 따라서 CSV 파일 그리고 이 파일이 가리키는 이미지가 모두 Cloud Storage 버킷에 있어야 합니다.
일괄 가져오기 호출을 API 키로 인증하는 경우에는 CSV 소스 파일이 공개 상태여야 합니다.
서비스 계정으로 인증하는 경우에는 서비스 계정에 CSV 소스 파일에 대한 읽기 액세스 권한이 있어야 합니다.
CSV 형식
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
CSV 형식 지정에 대한 자세한 내용은 CSV 형식 방법 항목을 참조하세요.
일괄 생성 요청
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- LOCATION_ID: 유효한 위치 식별자입니다. 유효한 위치 식별자는
us-west1
,us-east1
,europe-west1
,asia-east1
입니다. - STORAGE_PATH: 입력 CSV 파일이 저장된 Cloud Storage 버킷/디렉터리입니다. 요청하는 사용자에게 적어도 버킷에 대한 읽기 권한이 있어야 합니다.
HTTP 메서드 및 URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
JSON 요청 본문:
{ "inputConfig": { "gcsSource": { "csvFileUri": "storage-path" } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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/projects/project-id/locations/location-id/productSets:import"
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/projects/project-id/locations/location-id/productSets:import" | Select-Object -Expand Content
다음과 비슷한 출력이 표시됩니다. 작업 ID(이 경우 f10f34e32c40a710
)를 사용하여 작업 상태를 가져올 수 있습니다. 예를 들어 작업 상태 가져오기를 살펴보면 다음과 같습니다.
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
장기 실행 작업이 완료되면 가져오기 작업의 세부정보를 가져올 수 있습니다. 응답은 다음과 비슷하게 표시됩니다.
{ "name": "locations/location-id/operations/f10f34e32c40a710", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata", "state": "SUCCESSFUL", "submitTime": "2019-12-06T21:16:04.476466873Z", "endTime": "2019-12-06T21:16:40.594258084Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.ImportProductSetsResponse", "referenceImages": [ { "name": "projects/project-id/locations/location-id/products/product_id0/referenceImages/image0", "uri": "gs://my-storage-bucket/img_039.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id1/referenceImages/image1", "uri": "gs://my-storage-bucket/img_105.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id2/referenceImages/image2", "uri": "gs://my-storage-bucket/img_224.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id3/referenceImages/image3", "uri": "gs://my-storage-bucket/img_385.jpg" } ], "statuses": [ {}, {}, {}, {} ] } }
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 제품 검색 참고 문서를 참조하세요.
색인 생성
제품의 제품 검색 색인은 약 30분마다 업데이트됩니다. 이미지가 추가되거나 삭제되어도 다음 번에 색인이 업데이트될 때까지 제품 검색 응답에 변경사항이 반영되지 않습니다.
색인 생성이 성공적으로 완료되었는지 확인하려면 제품 세트의 indexTime
필드를 확인하세요.