모델 사용자 지정(버전 4.0 미리 보기)

모델 사용자 지정을 사용하면 고유한 사용 사례에 맞게 특수화된 이미지 분석 모델을 학습할 수 있습니다. 사용자 지정 모델은 이미지 분류(태그가 전체 이미지에 적용됨) 또는 개체 감지(태그가 이미지의 특정 영역에 적용됨)를 수행할 수 있습니다. 사용자 지정 모델이 만들어지고 학습되면 Vision 리소스에 속하며 Analyze Image API를 사용하여 호출할 수 있습니다.

빠른 시작을 수행하여 모델 사용자 지정을 빠르고 쉽게 구현합니다.

Important

Custom Vision 서비스 또는 모델 사용자 지정으로 이미지 분석 4.0 서비스를 사용하여 사용자 지정 모델을 학습시킬 수 있습니다. 다음 표에서는 두 개의 서비스를 비교합니다.

지역 Custom Vision 서비스 이미지 분석 4.0 서비스
작업 이미지 분류
개체 감지
이미지 분류
개체 감지
베이스 모델 CNN 변환기 모델
레이블 지정 Customvision.ai AML Studio
웹 포털 Customvision.ai Vision Studio
라이브러리 REST, SDK REST, Python 샘플
필요한 최소 학습 데이터 범주당 15개 이미지 범주당 2~5개 이미지
학습 데이터 스토리지 서비스에 업로드 고객의 Blob 스토리지 계정
모델 호스팅 클라우드 및 에지 클라우드 호스팅 전용, 에지 컨테이너 호스팅 예정
AI 품질
context이미지 분류
(top-1 정확도, 22개 데이터 세트)
개체 감지
(mAP@50, 59개 데이터 세트)
2샷51.4733.3
3샷56.7337.0
5샷63.0143.4
10샷68.9554.0
full85.2576.6
context이미지 분류
(top-1 정확도, 22개 데이터 세트)
개체 감지
(mAP@50, 59개 데이터 세트)
2샷73.0249.2
3샷75.5161.1
5샷79.1468.2
10샷81.3175.0
full90.9885.4
가격 책정 Custom Vision 가격 책정 Image Analysis 가격 책정

시나리오 구성 요소

모델 사용자 지정 시스템의 주요 구성 요소는 학습 이미지, COCO 파일, 데이터 세트 개체 및 모델 개체입니다.

학습 이미지

학습 이미지 집합에는 검색하려는 각 레이블의 몇 가지 예가 포함되어야 합니다. 또한 학습된 모델을 테스트하기 위해 몇 가지 추가 이미지를 수집하는 것이 좋습니다. 모델에 액세스하려면 이미지를 Azure Storage 컨테이너에 저장해야 합니다.

모델을 효과적으로 학습시키려면 다양한 시각적 이미지를 사용합니다. 다음에 따라 달라지는 이미지를 선택합니다.

  • 카메라 각도
  • 조명
  • 백그라운드
  • 표시 스타일
  • 개별/그룹화된 피사체
  • size
  • type

또한 모든 학습 이미지가 다음 기준을 충족하는지 확인합니다.

  • 이미지는 JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF 또는 MPO 형식으로 표시해야 합니다.
  • 이미지의 파일 크기가 20MB보다 작아야 합니다.
  • 이미지의 크기가 50x50픽셀보다 크고 16,000x16,000픽셀보다 작아야 합니다.

COCO 파일

COCO 파일은 모든 학습 이미지를 참조하고 레이블 지정 정보와 연결합니다. 개체 감지의 경우 각 이미지에 각 태그의 경계 상자 좌표를 지정했습니다. 이 파일은 특정 형식의 JSON 파일인 COCO 형식이어야 합니다. COCO 파일은 학습 이미지와 동일한 Azure Storage 컨테이너에 저장해야 합니다.

COCO 파일 정보

COCO 파일은 특정 필수 필드("images", "annotations""categories")가 있는 JSON 파일입니다. 샘플 COCO 파일은 다음과 같습니다.

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

COCO 파일 필드 참조

고유의 COCO 파일을 처음부터 생성하는 경우 모든 필수 필드가 올바른 세부 정보로 채워져 있는지 확인합니다. 다음 표는 COCO 파일의 각 필드를 설명합니다.

"images"

형식 설명 필수 여부
id 정수 1부터 시작하는 고유한 이미지 ID
width 정수 이미지의 너비(픽셀)
height 정수 이미지 높이(픽셀)
file_name string 이미지의 고유 이름입니다.
absolute_url 또는 coco_url string Blob 컨테이너의 Blob에 대한 절대 URI로서의 이미지 경로입니다. Vision 리소스에는 주석 파일과 모든 참조 이미지 파일을 읽을 수 있는 권한이 있어야 합니다.

absolute_url의 값은 Blob 컨테이너의 속성에서 찾을 수 있습니다.

absolute url

"annotations"

형식 설명 필수 여부
id 정수 주석의 ID
category_id 정수 categories 섹션에 정의된 범주의 ID
image_id 정수 이미지의 ID
area 정수 '너비' x '높이' 값(bbox의 세 번째 및 네 번째 값) 아니요
bbox list[float] 경계 상자의 상대 좌표(0~1), '왼쪽', '상단', '너비', '높이' 순서

"categories"

형식 설명 필수 여부
id 정수 각 범주(레이블 클래스)의 고유 ID입니다. 이들은 annotations 섹션에 있어야 합니다.
name string 범주 이름(레이블 클래스)

COCO 파일 확인

Python 샘플 코드를 사용하여 COCO 파일의 형식을 확인할 수 있습니다.

데이터 세트 개체

데이터 세트 개체는 연관 파일을 참조하는 이미지 분석 서비스에 의해 저장되는 데이터 구조입니다. 모델을 만들고 학습시키려면 먼저 데이터 세트 개체를 만들어야 합니다.

모델 개체

모델 개체는 사용자 지정 모델을 나타내는 이미지 분석 서비스에 의해 저장되는 데이터 구조입니다. 초기 학습을 수행하려면 데이터 세트와 연결되어야 합니다. 학습이 완료되면 Analyze Image API 호출model-name 쿼리 매개 변수에 이름을 입력하여 모델을 쿼리할 수 있습니다.

할당량 한도

다음 표에서는 사용자 지정 모델 프로젝트의 규모 제한에 대해 설명합니다.

범주 일반 이미지 분류자 일반 개체 감지기
최대 # 학습 시간 288(12일) 288(12일)
최대 # 학습 이미지 1,000,000 200,000
최대 # 평가 이미지 100,000 100,000
범주당 최소 # 학습 이미지 2 2
이미지당 최대 # 태그 multiclass: 1 해당 없음
이미지당 최대 # 지역 해당 없음 1,000
최대 # 범주 2,500 1,000
최소 # 범주 2 1
최대 이미지 크기(학습) 20MB 20MB
최대 이미지 크기(예측) 동기화: 6MB, 일괄 처리: 20MB 동기화: 6MB, 일괄 처리: 20MB
최대 이미지 너비/높이(학습) 10,240 10,240
최소 이미지 너비/높이(예측) 50 50
사용 가능한 지역 미국 서부 2, 미국 동부, 서유럽 미국 서부 2, 미국 동부, 서유럽
허용되는 이미지 형식 jpg, png, bmp, gif, jpeg jpg, png, bmp, gif, jpeg

자주 묻는 질문

Blob Storage에서 가져올 때 내 COCO 파일 가져오기가 실패하는 이유는 무엇인가요?

현재 Microsoft는 Vision Studio에서 시작할 때 대용량 데이터 세트에서 COCO 파일 가져오기가 실패하는 문제를 해결하고 있습니다. 대규모 데이터 세트를 사용하여 학습하려면 대신 REST API를 사용하는 것이 좋습니다.

학습이 지정된 예산보다 오래/짧게 소요되는 이유는 무엇인가요?

지정된 학습 예산은 실제 시간이 아니라 보정된 컴퓨팅 시간입니다. 차이점에 대한 몇 가지 일반적인 이유는 다음과 같습니다.

  • 지정된 예산보다 깁니다.

    • 이미지 분석은 높은 학습 트래픽을 경험하며 GPU 리소스가 부족할 수 있습니다. 작업이 큐에서 대기하거나 학습 중에 보류될 수 있습니다.
    • 백 엔드 학습 프로세스에서 예기치 않은 오류가 발생하여 논리를 다시 시도했습니다. 실패한 실행은 예산을 소비하지 않지만 일반적으로 학습 시간이 길어질 수 있습니다.
    • 데이터는 Vision 리소스와 다른 지역에 저장되므로 데이터 전송 시간이 길어집니다.
  • 지정된 예산보다 짧음: 다음 요소는 특정 벽시계 시간에 더 많은 예산을 사용하는 대가로 학습 속도를 높입니다.

    • 이미지 분석은 데이터에 따라 여러 GPU로 학습하는 경우가 있습니다.
    • 이미지 분석은 경우에 따라 동시에 여러 GPU에서 여러 탐색 시도를 학습합니다.
    • 이미지 분석은 경우에 따라 프리미어(빠른) GPU SKU를 사용하여 학습합니다.

내 학습이 실패하는 이유는 무엇이며 어떻게 해야 하나요?

다음은 학습 실패에 대한 몇 가지 일반적인 이유입니다.

  • diverged: 학습이 데이터에서 의미 있는 것을 배울 수 없습니다. 몇 가지 일반적인 원인은 다음과 같습니다.
    • 데이터가 충분하지 않습니다. 더 많은 데이터를 제공하면 도움이 될 것입니다.
    • 데이터 품질이 좋지 않음: 이미지가 저해상도인지, 가로 세로 비율이 극단적인지 또는 주석이 잘못되었는지 확인합니다.
  • notEnoughBudget: 지정된 예산이 학습 중인 데이터 세트 및 모델 형식의 크기에 충분하지 않습니다. 더 큰 예산을 지정합니다.
  • datasetCorrupt: 일반적으로 이는 제공된 이미지에 액세스할 수 없거나 주석 파일의 형식이 잘못되었음을 의미합니다.
  • datasetNotFound: 데이터 세트를 찾을 수 없습니다.
  • unknown: 백 엔드 문제일 수 있습니다. 조사하려면 지원을 요청하세요.

모델 평가에 사용되는 메트릭은 무엇인가요?

다음 메트릭이 사용됩니다.

  • 이미지 분류: 평균 정밀도, 정확도 상위 1위, 정확도 상위 5위
  • 개체 감지: mAP(mean Average Precision) @ 30, mAP(mean Average Precision) @ 50, mAP(mean Average Precision) @ 75

내 데이터 세트 등록이 실패하는 이유는 무엇인가요?

API 응답은 충분한 정보를 제공해야 합니다. 화면은 다음과 같습니다.

  • DatasetAlreadyExists: 같은 이름의 데이터 세트가 있습니다.
  • DatasetInvalidAnnotationUri: "데이터 세트 등록 시 주석 URI 중에 잘못된 URI가 제공되었습니다.

합리적인/양호한/최고의 모델 품질을 위해 필요한 이미지는 몇 개인가요?

Florence 모델에는 뛰어난 소수점 기능(제한된 데이터 가용성 하에서 뛰어난 모델 성능 달성)이 있지만 일반적으로 데이터가 많을수록 학습된 모델이 더 우수하고 강력해집니다. 일부 시나리오에는 데이터가 거의 필요하지 않지만(예: 바나나와 사과 분류) 다른 시나리오에는 더 많은 데이터가 필요합니다(예: 열대우림에서 200종의 곤충 검색). 이로 인해 단일 권장 사항을 제공하기가 어렵습니다.

데이터 레이블 지정 예산이 제한된 경우 권장 워크플로는 다음 단계를 반복하는 것입니다.

  1. 클래스당 N개의 이미지를 수집합니다. 여기서 N개의 이미지는 쉽게 수집할 수 있습니다(예: N=3).

  2. 모델을 학습하고 평가 집합에서 테스트합니다.

  3. 모델 성능이 다음과 같은 경우:

    • 충분히 좋음(수집된 데이터가 적은 이전 실험에 가까운 성능 또는 예상보다 성능이 좋음): 여기에서 중지하고 이 모델을 사용합니다.
    • 좋지 않음(성능이 여전히 기대 이하이거나 합리적인 이익으로 수집된 데이터가 적은 이전 실험보다 우수함):
    • 각 클래스에 대해 더 많은 이미지(수집하기 쉬운 번호)를 수집하고 2단계로 돌아갑니다.
    • 몇 번의 반복 후에도 성능이 더 이상 개선되지 않는 경우 다음과 같은 이유 때문일 수 있습니다.
      • 이 문제는 잘 정의되어 있지 않거나 너무 어렵습니다. 사례별로 분석하려면 문의하세요.
      • 학습 데이터의 품질이 낮을 수 있습니다. 주석이 잘못되었거나 픽셀이 매우 낮은 이미지가 있는지 확인합니다.

학습 예산을 얼마나 지정해야 하나요?

소비할 예산의 상한선을 지정해야 합니다. 이미지 분석은 백 엔드에서 AutoML 시스템을 사용하여 다양한 모델과 학습 레시피를 시도하여 사용 사례에 가장 적합한 모델을 찾습니다. 지정된 예산이 많을수록 더 나은 모델을 찾을 가능성이 높아집니다.

AutoML 시스템은 예산이 남아 있어도 더 이상 시도할 필요가 없다고 판단되면 자동으로 중지됩니다. 따라서 지정된 예산이 항상 모두 사용되는 것은 아닙니다. 지정된 예산을 초과하여 청구되지 않도록 보장합니다.

하이퍼 매개 변수를 제어하거나 학습에 자체 모델을 사용할 수 있나요?

아니요, 이미지 분석 모델 사용자 지정 서비스는 백 엔드에서 하이퍼 매개변수 검색 및 베이스 모델 선택을 처리하는 낮은 코드 AutoML 학습 시스템을 사용합니다.

학습 후 내 모델을 내보낼 수 있나요?

예측 API는 클라우드 서비스를 통해서만 지원됩니다.

개체 감지 모델에 대한 평가가 실패하는 이유는 무엇인가요?

가능한 이유는 다음과 같습니다.

  • internalServerError: 알 수 없는 오류가 발생했습니다. 나중에 다시 시도하세요.
  • modelNotFound: 지정된 모델을 찾을 수 없습니다.
  • datasetNotFound: 지정된 데이터 세트를 찾을 수 없습니다.
  • datasetAnnotationsInvalid: 테스트 데이터 세트와 연결된 실측 정보 주석을 다운로드하거나 구문 분석하는 동안 오류가 발생했습니다.
  • datasetEmpty: 테스트 데이터 세트에 "지상 실측" 주석이 포함되어 있지 않습니다.

사용자 지정 모델을 사용한 예측의 예상 대기 시간은 얼마인가요?

대기 시간이 길 수 있으므로 비즈니스에 중요한 환경에는 사용자 지정 모델을 사용하지 않는 것이 좋습니다. 고객이 Vision Studio에서 사용자 지정 모델을 학습할 때 해당 사용자 지정 모델은 학습을 받은 Azure AI Vision 리소스에 속하며 고객은 이미지 분석 API를 사용하여 해당 모델을 호출할 수 있습니다. 이러한 호출을 수행하면 사용자 지정 모델이 메모리에 로드되고 예측 인프라가 초기화됩니다. 이런 일이 발생하는 동안 고객은 예측 결과를 받는 데 예상보다 긴 대기 시간을 경험할 수 있습니다.

데이터 개인 정보 보호 및 보안

모든 Azure AI 서비스와 마찬가지로 이미지 분석 모델 사용자 지정을 사용하는 개발자는 고객 데이터에 대한 Microsoft의 정책을 알고 있어야 합니다. 자세한 내용은 Microsoft 보안 센터의 Azure AI 서비스 페이지를 참조하세요.

다음 단계

사용자 지정 모델 만들기 및 학습