데이터 세트에는 커스텀 모델이 사용할 카테고리 라벨로 지정해 분류하려는 콘텐츠 유형의 대표 샘플이 있습니다. 데이터 세트는 모델 학습을 위한 입력으로 사용됩니다.
데이터 세트 구축을 위한 주요 단계는 다음과 같습니다.
- 데이터 세트 생성 및 각 항목에 여러 개의 라벨을 적용할지 여부를 지정
- 데이터 세트로 데이터 항목 가져오기
- 항목 라벨 지정
이미 할당된 라벨이 있는 항목을 가져오면 2단계와 3단계가 결합됩니다.
데이터 세트 만들기
커스텀 모델을 생성하는 첫 단계는 모델 학습용 데이터를 저장할 비어 있는 데이터 세트를 만드는 것입니다. 데이터 세트를 생성할 때 커스텀 모델이 수행할 다음 분류 유형을 지정합니다.
- MULTICLASS는 각 분류된 문서에 단일 라벨을 부여합니다.
- MULTILABEL은 이미지에 다중 라벨을 부여합니다.
AutoML API의 v1 버전부터 이 요청은 장기 실행 작업의 ID를 반환합니다.
장기 실행 작업이 완료되면 이미지를 가져올 수 있습니다. 새로 만든 데이터 세트에는 이미지를 가져올 때까지는 어떤 데이터도 포함되지 않습니다.
데이터 세트로 이미지 가져오기나 모델 학습과 같은 다른 작업에 사용할 수 있도록 (응답에서) 새 데이터 세트의 데이터 세트 ID를 저장합니다.
웹 UI
Vision 대시보드를 엽니다.
Console의 왼쪽 탐색 메뉴 항목에서 인공지능 > Vision을 선택하여 이 페이지에 액세스할 수도 있습니다. 통합된 Vision 대시보드로 이동됩니다. AutoML Vision 카드를 선택합니다.
왼쪽 탐색 메뉴에서 데이터 세트를 선택합니다.
페이지 상단의 새 데이터 세트 버튼을 선택하고 데이터 세트 이름을 업데이트한 후(선택사항) 보유한 데이터에 따라
단일 라벨 분류 또는 다중 라벨 분류를 선택합니다.분류 유형을 지정한 후에 데이터 세트 만들기를 선택합니다.
데이터 세트 만들기 페이지에서 Google Cloud Storage의 CSV 파일 또는 로컬 이미지 파일을 선택하여 데이터 세트로 가져올 수 있습니다.
계속을 선택하여 데이터 세트로 이미지 가져오기를 시작합니다. 이미지를 가져오는 동안 데이터 세트 상태는 실행 중: 이미지 가져오기로 표시됩니다.
가져오기가 완료되면 이메일이 전송됩니다.
REST
다음 예시에서는 항목당 라벨 1개를 지원하는 데이터 세트를 만듭니다(MULTICLASS 참조).
새로 생성된 데이터 세트에는 항목을 가져올 때까지는 어떤 데이터도 포함되지 않습니다.
데이터 세트로 항목 가져오기나 모델 학습과 같은 다른 작업에 사용할 수 있도록 (응답에서) 새 데이터 세트의 "name"
을 저장합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- 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", "imageClassificationDatasetMetadata": { "classificationType": "MULTICLASS" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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(이 경우 ICN3819960680614725486
)를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "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/ICN3819960680614725486", "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/ICN5496445433112696489" } }
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
AutoML Vision UI를 사용하면 새 데이터 세트를 만들고 같은 페이지에서 항목을 가져올 수 있습니다. 데이터 세트 만들기를 참조하세요. 아래 단계는 항목을 기존 데이터 세트로 가져옵니다.
Vision Dashboard를 열고 데이터 세트 페이지에서 데이터 세트를 선택합니다.
이미지 페이지에서 제목 표시줄에 있는 항목 추가를 클릭하고 드롭다운 목록에서 가져오기 방법을 선택합니다.
다음과 같은 작업을 수행할 수 있습니다.
학습 이미지와 관련 카테고리 라벨을 포함하는 csv 파일을 로컬 컴퓨터 또는 Google Cloud Storage에서 업로드합니다.
학습 이미지를 포함하는 .txt 또는 .zip 파일을 로컬 컴퓨터에서 업로드합니다.
가져올 파일을 선택합니다.
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(이 경우 ICN3819960680614725486
)를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "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
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
학습 항목 라벨 지정하기
모델 학습에 유용하려면 데이터 세트에 있는 각 항목은 카테고리 라벨이 하나 이상 지정되어야 합니다. AutoML Vision은 카테고리 라벨이 없는 항목을 무시합니다. 다음 세 가지 방법으로 학습 항목에 라벨을 제공할 수 있습니다.
- CSV 파일에 라벨 포함
- .csv 파일에서 항목 라벨을 지정하는 방법에 대한 자세한 내용은 학습 데이터 준비를 참조하세요.
- AutoML Vision UI에서 항목에 라벨을 지정합니다.
- Google의 AI Platform 데이터 라벨링 서비스와 같은 수동 라벨링 서비스를 통해 라벨 지정을 요청합니다.
UI에서 라벨 지정
웹 UI
AutoML Vision UI에서 항목에 라벨을 지정하려면 데이터 세트 등록 페이지에서 데이터 세트를 선택하여 세부정보를 확인합니다.
사이드 바에는 라벨이 지정된 항목과 라벨이 없는 항목의 수가 요약되어 있습니다. 여기에서 라벨별로 항목 목록을 필터링하거나 새 라벨 추가를 선택하여 새 라벨을 만들 수 있습니다.
이 화면에서 이미지 라벨을 추가하거나 변경할 수도 있습니다.
라벨을 추가하거나 변경할 이미지를 선택합니다.
라벨 지정 요청
Google의 AI Platform 데이터 라벨링 서비스 서비스를 사용하여 이미지에 라벨을 지정할 수 있습니다. 자세한 내용은 제품 문서를 참조하세요.
장기 실행 작업 다루기
다음 코드 샘플을 사용하여 장기 실행 작업의 상태를 가져올 수 있습니다.
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 참조 문서를 참조하세요.