데이터 세트에는 라벨과 경계 상자로 주석을 추가해 분류하려는 콘텐츠 유형의 대표 샘플이 있습니다. 데이터 세트는 모델 학습을 위한 입력으로 사용됩니다.
데이터세트 빌드의 주요 단계는 다음과 같습니다.
- 데이터세트를 만들고 기억하기 쉬운 이름을 지정합니다.
- 데이터세트로 데이터 예시를 가져옵니다.
- 이미지에서 경계 상자 및 라벨을 추가, 삭제, 수정하려면 가져온 이미지의 주석을 수정합니다(선택사항).
데이터 세트 만들기
AutoML API로 커스텀 모델을 만드는 첫 단계는 모델 학습용 데이터를 저장할 빈 데이터 세트를 만드는 것입니다.
AutoML Vision 객체 감지의 정식 버전(GA) 출시부터 이 요청은 장기 실행 작업의 ID를 반환합니다.
장기 실행 작업이 완료되면 이미지를 가져올 수 있습니다. 새로 만든 데이터 세트에는 이미지를 가져올 때까지는 어떤 데이터도 포함되지 않습니다.
데이터 세트로 이미지 가져오기나 모델 학습과 같은 다른 작업에 사용할 수 있도록 (응답에서) 새 데이터 세트의 데이터 세트 ID를 저장합니다.
웹 UI
AutoML Vision 객체 감지 UI를 사용하면 새 데이터 세트를 만들고 같은 페이지에서 이미지를 데이터 세트로 가져올 수 있습니다.AutoML Vision 객체 감지 UI를 엽니다.
데이터 세트 페이지에는 현재 프로젝트를 위해 이전에 작성한 데이터 세트의 상태가 표시됩니다.
다른 프로젝트를 위한 데이터세트를 추가하려면 제목 표시줄의 오른쪽 위에 있는 드롭다운 목록에서 프로젝트를 선택하세요.
제목 표시줄에서 새 데이터 세트 버튼을 클릭합니다.
새 데이터 세트 만들기 팝업 창에 데이터 세트의 이름을 입력하고 '데이터 세트 만들기' 옵션을 선택합니다.
빈 데이터 세트를 만들면 데이터 세트 세부정보 페이지의 가져오기 탭으로 이동합니다. 그러면 데이터 세트에 포함할 학습 이미지가 나열된 .csv 파일의 Google Cloud Storage 위치를 지정할 수 있습니다. 이러한 학습 이미지도 Google Cloud Storage 버킷에 저장되어야 합니다.
데이터 세트를 만들려면 학습 이미지와 관련 경계 상자 및 라벨을 포함하는 csv 파일을 Google Cloud Storage에서 업로드해야 합니다.
가져오기가 완료되면 UI에서 주석을 추가, 삭제 또는 수정할 수 있습니다.
가져오기를 선택합니다.
데이터 세트 페이지가 다시 표시되며, 이미지를 가져오는 동안 데이터 세트에 진행률 애니메이션이 표시됩니다. 이 프로세스에는 예시 1,000개당 약 10분이 소요되지만 더 걸릴 수도, 덜 걸릴 수도 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- display-name: 선택한 문자열 표시 이름입니다.
HTTP 메서드 및 URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets
JSON 요청 본문:
{ "displayName": "DISPLAY_NAME", "imageObjectDetectionDatasetMetadata": { } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets"
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://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets" | Select-Object -Expand Content
다음과 비슷한 출력이 표시됩니다. 작업 ID(이 경우 IOD3819960680614725486
)를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:13.667526Z", "createDatasetDetails": {} } }
장기 실행 작업이 완료되면 동일한 작업 상태 요청으로 데이터 세트의 ID를 가져올 수 있습니다. 응답은 다음과 비슷하게 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:17.975314Z", "createDatasetDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Dataset", "name": "projects/PROJECT_ID/locations/us-central1/datasets/IOD5496445433112696489" } }
Go
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
데이터세트로 이미지 가져오기
데이터 세트를 만든 후에는 Google Cloud Storage 버킷에 저장된 CSV 파일에서 이미지의 라벨이 지정된 경계 상자 및 이미지 URI를 가져올 수 있습니다.
데이터 준비 및 가져올 CSV 파일 만들기에 대한 자세한 내용은 학습 데이터 준비를 참조하세요. 이미지를 가져온 후 이미지 주석 수정에 대한 자세한 내용은 가져온 학습 이미지에 주석 달기를 참조하십시오.
이미 학습 이미지가 포함된 데이터 세트 또는 빈 데이터 세트로는 이미지를 가져올 수 없습니다.
웹 UI
UI에서 AutoML Vision 객체 감지 데이터 세트 만들기와 이미지 가져오기는 연속 단계로 결합됩니다.
빈 데이터 세트로 이미지 가져오기:
후속 데이터 세트를 만드는 경우 빈 데이터 세트를 만든 후 바로 이미지를 가져올지 묻는 메시지가 표시됩니다. 단, 이 가져오기 단계는 필요하지 않습니다.
빈 데이터 세트로 이미지를 가져오려면 다음 단계를 완료하세요.
데이터세트 페이지에서 빈 데이터세트를 선택합니다.
가져오기 페이지에서 .csv 파일의 Google Cloud Storage 위치를 추가합니다. Google Cloud Storage에서 .csv 파일의 위치를 지정한 후 가져오기를 선택하여 파일 가져오기 프로세스를 시작합니다.
비어 있지 않은 데이터 세트로 이미지 가져오기:
이미 학습 이미지가 포함된 데이터 세트에 학습 이미지를 추가할 수도 있습니다.
비어 있지 않은 데이터 세트에 학습 이미지를 추가하려면 다음 단계를 완료하세요.
데이터세트 페이지에서 비어 있지 않은 데이터세트를 선택합니다.
비어 있지 않은 데이터 세트를 선택하면 데이터 세트 세부정보 페이지로 이동합니다.
데이터세트 세부정보 페이지에서 가져오기 탭을 선택합니다.
가져오기 탭을 선택하면 데이터 세트 만들기 페이지로 이동합니다. 그러면 .csv 파일의 Google Cloud Storage 위치를 지정한 후 가져오기를 선택하여 이미지 가져오기 프로세스를 시작합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- dataset-id: 데이터 세트의 ID입니다. ID는 데이터 세트 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 데이터 세트 이름:
projects/project-id/locations/location-id/datasets/3104518874390609379
- 데이터 세트 ID:
3104518874390609379
- 데이터 세트 이름:
- input-storage-path: Google Cloud Storage에 저장된 CSV 파일의 경로입니다. 요청하는 사용자에게 적어도 버킷에 대한 읽기 권한이 있어야 합니다.
HTTP 메서드 및 URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData
JSON 요청 본문:
{ "inputConfig": { "gcsSource": { "inputUris": ["INPUT_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://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData"
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://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData" | Select-Object -Expand Content
다음과 비슷한 출력이 표시됩니다. 작업 ID를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T15:56:29.176485Z", "importDataDetails": {} } }
Go
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
가져온 학습 이미지에 주석 달기 주제에서는 UI의 이미지에 경계 상자와 라벨을 수동으로 추가하는 방법과 라벨 통계를 나열하는 방법을 설명합니다.
데이터 세트 관리 주제에는 데이터 세트 나열, 가져오기, 내보내기, 삭제 방법과 같은 데이터 세트 리소스 사용에 대한 자세한 정보가 포함됩니다.
장기 실행 작업 다루기
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- operation-id: 작업의 ID입니다. ID는 작업 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 작업 이름:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- 작업 ID:
IOD5281059901324392598
- 작업 이름:
HTTP 메서드 및 URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
모델 만들기 작업이 완료되면 다음과 유사한 출력이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 참조 문서를 참조하세요.