이 문서는 AutoML Vision용이며 Vertex AI와는 다릅니다. Vertex AI를 사용하는 경우 Vertex AI 문서를 참조하세요.

학습 데이터 준비

이미지 준비

  • 이미지는 지원되는 파일 유형을 사용해야 합니다(아래 목록 참조).

  • AutoML Vision 모델은 현실의 물체를 찍은 사진에 최적화되어 있습니다.

  • 학습 데이터는 예측을 수행할 데이터와 최대한 유사해야 합니다. 예를 들어 사용 사례에 보안 카메라 영상처럼 흐릿한 저해상도 이미지가 포함된다면 학습 데이터도 흐릿한 저해상도 이미지로 구성해야 합니다. 또한 일반적으로 다양한 각도, 해상도, 배경으로 촬영한 학습 이미지를 제공하는 것이 좋습니다.

  • 인간이 지정할 수 없는 라벨은 AutoML Vision 모델도 일반적으로 예측할 수 없습니다. 따라서 이미지를 1~2초 보고 라벨을 지정하도록 사람을 학습시킬 수 없다면 이 모델도 그렇게 하도록 학습시킬 수 없습니다.

  • 권장되는 학습 이미지 개수는 라벨당 1,000개입니다. 라벨당 최소 개수는 10개, 고급 모델은 50개입니다. 이미지 하나에 라벨이 여러 개인 모델을 학습시키는 경우 일반적으로 라벨당 필요한 예의 수가 늘어나며, 결과 점수를 해석하기도 어려워집니다.

  • 모델 학습 시 지원되는 이미지 형식은 다음과 같습니다. 최대 파일 크기는 30MB입니다.

    • JPEG
    • PNG
    • GIF
    • BMP
    • ICO

    모델에서 예측을 요청(쿼리)할 때 지원되는 이미지 형식은 다음과 같습니다. 최대 파일 크기는 1.5MB입니다.

    • JPEG
    • PNG
    • GIF
  • 가장 흔한 라벨의 이미지가 가장 흔하지 않은 라벨의 이미지보다 최대 100배 많을 때 모델의 성능이 가장 좋습니다. 빈도가 극히 낮은 라벨은 삭제하는 것이 좋습니다.

  • 정의된 라벨과 일치하지 않는 이미지 및 None_of_the_above 라벨을 포함할 수도 있습니다. 예를 들어 꽃 데이터 세트의 경우 라벨을 지정한 품종에 속하지 않는 꽃의 이미지를 포함하고 여기에 None_of_the_above 라벨을 붙일 수 있습니다. 이렇게 하면 모델의 정확성이 향상될 수 있습니다. 라벨 이름은 무엇이든 상관 없지만 None_of_the_above는 시스템에서 특별하게 처리되며, UI의 라벨 목록에서 항상 마지막에 표시됩니다.

학습 데이터 세트와 평가 데이터 세트

모델 학습 시 데이터세트의 데이터는 학습 데이터세트, 검증 데이터세트, 테스트 데이터세트라는 3가지 데이터세트로 나눠집니다.

학습 데이터세트는 모델을 구축하는 데 사용됩니다. 모델은 여러 가지 알고리즘과 매개변수를 시도하면서 학습 데이터의 패턴을 찾습니다. 모델은 패턴이 발견되면 검증 데이터세트를 사용하여 알고리즘과 패턴을 테스트합니다. 학습 단계에서 발견된 것 중에서 성능이 가장 우수한 알고리즘과 패턴이 선택됩니다.

성능이 가장 우수한 알고리즘과 패턴이 발견되었으면 테스트 데이터세트를 사용하여 오류율, 품질, 정확성을 테스트합니다.

모델의 편향을 방지하기 위해 검증 데이터세트와 테스트 데이터세트가 모두 사용됩니다. 검증 단계에서는 최적 모델 매개변수가 사용되므로 측정항목이 편향될 수 있습니다. 검증 단계 후에 테스트 데이터 세트를 사용하여 모델의 품질을 평가하면 모델의 품질이 편향 없이 평가됩니다.

기본적으로 AutoML Vision은 데이터 세트를 무작위로 3가지 세트로 분할합니다.

  • 이미지 중 80%는 학습에 사용됩니다.
  • 이미지 중 10%는 초매개변수를 미세 조정하고 학습 중지 시점을 결정하는 데 사용됩니다.
  • 이미지 중 10%는 모델을 평가하는 데 사용됩니다. 이러한 이미지는 학습에 사용되지 않습니다.

CSV 파일의 각 이미지가 속할 데이터 세트를 지정하려면 다음 섹션의 설명대로 .csv 파일을 사용하세요.

이미지 URI 및 라벨이 포함된 CSV 파일 만들기

파일이 필수 형식(gs://bucket-name-vcm)으로 Cloud Storage 버킷을 업로드하면 모든 학습 데이터와 이 데이터의 카테고리 라벨이 나열된 CSV 파일을 만들 수 있습니다. CSV 파일 이름에는 제한이 없지만 파일이 이미지 파일과 같은 버킷에 있어야 하고, UTF-8로 인코딩되어야 하며, .csv 확장자로 끝나야 합니다. 이 파일에는 업로드하는 세트의 이미지마다 행이 하나씩 있으며, 각 행에는 다음과 같은 열이 있습니다.

  1. 이 행에 지정된 콘텐츠의 집합 이 필드는 선택사항이며 다음 값 중 하나일 수 있습니다.

    • TRAIN - image을 사용하여 모델을 학습시킵니다.
    • VALIDATION - image을 사용하여 학습 중에 모델이 반환하는 결과를 검증합니다.
    • TEST - image을 사용하여 모델이 학습된 후 모델의 결과를 확인합니다.

    행의 이미지에 세트를 지정하지 않으면 AutoML Vision에서 이를 자동으로 세 가지 세트 중 하나에 배치하여 학습, 검증, 테스트에 콘텐츠가 충분히 존재하도록 합니다. AutoML Vision은 콘텐츠 문서 중 80%를 학습에, 10%를 검증에, 10%를 테스트에 사용합니다. 테스트 데이터세트의 최대 크기는 50,000개의 이미지이며, 전체 데이터세트의 10%가 이 최대값을 초과하는 경우에도 마찬가지입니다.

  2. 분류 대상 콘텐츠 이 필드에는 이미지의 Google Cloud Storage URI가 포함됩니다. Google Cloud Storage URI는 대소문자를 구분합니다.

  3. 이미지의 카테고리 지정 방식을 식별하는, 쉼표로 구분된 라벨 목록 라벨은 문자로 시작해야 하며 문자, 숫자, 밑줄만 포함할 수 있습니다. 각 이미지에 최대 20개의 라벨을 포함할 수 있습니다. UI 또는 수동 라벨 지정 서비스를 통한 수동 라벨 지정을 위해 라벨을 비워둘 수도 있습니다.

예를 들면 다음과 같습니다.

  • 라벨링됨: gs://my-storage-bucket-vcm/flowers/images/img100.jpg,daisy
  • 라벨링되지 않음: gs://my-storage-bucket-vcm/flowers/images/img403.jpg
  • 멀티 라벨: gs://my-storage-bucket-vcm/flowers/images/img384.jpg,dandelion,tulip,rose
  • 집합에 할당됨: TEST,gs://my-storage-bucket-vcm/flowers/images/img805.jpg,daisy

콘텐츠를 Cloud Storage 버킷에 CSV 파일로 저장합니다.

Cloud Storage에 저장된 라벨이 지정되지 않은 이미지의 CSV 파일 생성

이미 라벨이 지정되지 않은 이미지를 Cloud Storage에 업로드했으며 이를 가리키는 CSV를 생성하려면 Cloud Shell에서 다음 코드를 실행합니다.

for f in $(gsutil ls gs://YOUR_BUCKET/YOUR_IMAGES_FOLDER/);
do echo UNASSIGNED,$f;
done >> labels.csv;

그런 다음 생성된 CSV 파일을 Google Storage 버킷에 복사합니다.

gsutil cp labels.csv gs://YOUR_BUCKET/labels.csv

일반적인 CSV 관련 오류

  • 라벨에 유니코드 문자 사용. 예를 들어 일본어 문자는 지원되지 않습니다.
  • 라벨에 공백 및 영숫자가 아닌 문자 사용
  • 빈 줄
  • 빈 열(줄에 쉼표가 연속으로 두 개 나오는 경우)
  • Cloud Storage 이미지 경로의 대소문자 오류
  • 이미지 파일에 대한 액세스 제어 구성 오류. 서비스 계정에 읽기 이상의 액세스 권한이 있거나 파일이 공개 읽기가 가능한 상태여야 합니다.
  • 이미지가 아닌 파일(예: PDF, PSD 파일)에 대한 참조. 마찬가지로, 이미지 파일이 아니지만 이미지 파일 확장자로 이름이 변경된 파일은 오류를 발생시킵니다.
  • 이미지의 URI가 현재 프로젝트와 다른 버킷을 가리킵니다. 프로젝트 버킷에 있는 파일만 액세스할 수 있습니다.
  • CSV 형식이 아닌 파일