GCP Vision API와 Vertax AI를 이용하여 유사 이미지 검색 기능을 개발하게 되었습니다.
그 중 개발된 기능 소개와 GCP Vision API Product Search를 빠르게 이용해볼 수 있는 방법을 소개합니다.
해당 기술을 이용할 경우 사용자가 업로드한 패션 이미지와 유사한 상품이나 컨텐츠를 score에 따라 추천할 수 있습니다.
빠른 시작
GCP의 Vision API 중 Product Search를 이용해 유사 상품 검색 기능을 개발하면서 GCP Console에서 사용한 터미널 명령어를 정리해본다.
1. 먼저 일괄 등록할 csv 파일을 GCS에 등록한다.
- csv 파일은 image_url, image_id, product_set_id, product_id, category, product_display_name, query, bounding poly 총 8개의 열로 나뉘며, 자세한 내용은 Vision API 제품 검색 문서를 참조한다.
- https://cloud.google.com/vision/product-search/docs/create-product-set-search-products?hl=ko&_gl=1*190lj96*_ga*MTEwNjUzNjc0NS4xNjk5MTgwOTE2*_ga_WH2QY8WWF5*MTY5OTI0Njk5MC41LjEuMTY5OTI1MDA1NC4wLjAuMA..&_ga=2.136077553.-1106536745.1699180916&cloudshell=false#cloud-shell
2. 1번을 완료할 경우, csv 파일은 GCS URL을 가지게된다. 해당 URL로 Vision API에 제품을 일괄로 등록할 수 있다. GCS console에서 작업 중인 경로에 import_request.json과 같은 파일을 만들고 해당 파일 내용에 아래와 같이 csv의 GCS URL을 입력하고 저장한다.
3. 일괄 가져오기 실행(제품 세트, 제품, 참조 이미지)
curl -X POST \\
-H "Authorization: Bearer "$(gcloud auth print-access-token) \\
-H "x-goog-user-project:test-project" \\
-H "Content-Type: application/json; charset=utf-8" \\
-d @import_request.json \\
<https://vision.googleapis.com/v1/projects/test-project/locations/asia-east1/productSets:import>
4. 일괄 가져오기 상태 확인
{
"name": "locations/asia-east1/operations/0389d9fe9sdae9271"
}
5. 가져오기 작업 상태 확인
curl -X GET \\
-H "Authorization: Bearer $(gcloud auth print-access-token)" \\
-H "x-goog-user-project:test-project" \\
-H "Content-Type: application/json" \\
<https://vision.googleapis.com/v1/locations/asia-east1/operations/0389d9fe9sdae9271>
6. 제품 세트 나열 및 색인 생성 확인
curl -X GET \\
-H "Authorization: Bearer $(gcloud auth print-access-token)" \\
-H "x-goog-user-project:test-project" \\
-H "Content-Type: application/json" \\
<https://vision.googleapis.com/v1/projects/test-project/locations/asia-east1/productSets>
7. 제품 나열
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: test-project" \
-H "Content-Type: application/json" \
https://vision.googleapis.com/v1/projects/test-project/locations/asia-east1/productSets/test_set/products?pageSize=15
8. 이후 등록된 제품 세트의 제품들을 활용하여 유사 이미지 검색을 진행
https://cloud.google.com/vision/product-search/docs/create-product-set-search-products?hl=ko&_gl=1*190lj96*_ga*MTEwNjUzNjc0NS4xNjk5MTgwOTE2*_ga_WH2QY8WWF5*MTY5OTI0Njk5MC41LjEuMTY5OTI1MDA1NC4wLjAuMA..&_ga=2.136077553.-1106536745.1699180916&cloudshell=false#search_for_matching_products_with