사용자 지정 프로젝트 만들기
사용자 지정 Azure AI Vision 모델을 만들려면 먼저 Azure AI Services 리소스(또는 Azure AI Vision 리소스)가 필요합니다. 해당 리소스가 구독에 배포되면 사용자 지정 프로젝트를 만들어야 합니다.
Custom Vision 프로젝트의 구성 요소
사용자 지정 프로젝트의 첫 번째 구성 요소는 데이터 세트입니다. 데이터 세트는 모델을 학습하는 동안 사용할 이미지 컬렉션과 해당 이미지에 대한 레이블 정보를 정의하는 COCO 파일 입니다. 데이터 세트는 Azure Blob Storage 컨테이너에 저장되며, 이 단원에서는 COCO 파일에 대해 자세히 설명합니다.
이미지 및 클래스 레이블이 정의되면 사용자 지정 모델을 학습시킬 수 있습니다. 모델을 학습할 때 학습할 모델 유형, 사용할 데이터 세트 및 학습 예산(시간)을 지정합니다. 모델 학습이 완료되면 성능을 보고 예측을 위해 모델을 사용할 수 있습니다.
대부분의 경우 수행하는 단계는 다음과 같습니다.
- Blob Storage 컨테이너를 만들고 학습 이미지만 업로드합니다.
- 프로젝트에 대한 데이터 세트를 만들고 Blob Storage 컨테이너에 연결합니다. 데이터 세트를 만들 때 프로젝트 유형(이미지 분류, 개체 검색 또는 제품 인식)을 정의합니다.
- Blob Storage 컨테이너에 COCO 파일을 만드는 Azure Machine Learning 데이터 레이블 지정 프로젝트의 데이터에 레이블을 지정합니다.
- 레이블이 지정된 이미지의 완성된 COCO 파일을 데이터 세트에 커넥트.
- 만든 데이터 세트 및 레이블에 대한 사용자 지정 모델을 학습시킵니다.
- 성능을 확인하고 학습된 성능이 기대에 맞지 않는지 반복합니다.
성능에 만족하면 Vision Studio 또는 사용자 고유의 애플리케이션에서 모델을 사용할 수 있습니다.
COCO 파일
COCO 파일은 다음을 정의하는 특정 형식의 JSON 파일입니다.
- 이미지: Blob Storage, 이름, 너비, 높이 및 ID에서 이미지 위치를 정의합니다.
- 주석: 이미지가 분류되는 범주, 영역 및 경계 상자를 포함하여 분류(또는 개체)를 정의합니다(개체 검색을 위해 레이블을 지정하는 경우).
- categories: 명명된 레이블 클래스의 ID를 정의합니다.
대부분의 경우 COCO 파일은 Azure Machine Learning 데이터 레이블 지정 프로젝트에서 학습 이미지에 레이블을 지정하여 생성됩니다. 이전 Custom Vision 프로젝트에서 마이그레이션하는 경우 마이그레이션 스크립트를 사용하여 COCO 파일을 만들 수 있습니다.
샘플 COCO 파일은 다음과 같습니다.
{
"images": [
{
"id": 1,
"width": 1024,
"height": 768,
"file_name": "abc.jpg",
"coco_url": "AmlDatastore://fruit/abc.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/abc.jpg",
"date_captured": "<date>"
},
{
"id": 2,
"width": 1024,
"height": 768,
"file_name": "xyz.jpg",
"coco_url": "AmlDatastore://fruit/xyz.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/xyz.jpg",
"date_captured": "<date>"
},
<...>
],
"annotations": [
{
"id": 1,
"category_id": 1,
"image_id": 1,
"area": 0.0
},
{
"id": 2,
"category_id": 1,
"image_id": 2,
"area": 0.0
},
<...>
],
"categories": [
{
"id": 1,
"name": "apple"
},
{
"id": 2,
"name": "orange"
},
{
"id": 3,
"name": "banana"
}
]
}
개체 검색 데이터 세트에 레이블을 지정하는 경우 COCO 파일의 각 주석에는 배열의 값이 Left, Top, Width 및 Height인 경계 상자 배열도 포함됩니다.
"bbox": [
0.11803319477782331,
0.41586723392402375,
0.7765206955096307,
0.3483334397217212
]
데이터 세트 만들기
Blob Storage 컨테이너에 이미지가 있으면 REST API를 사용하거나 Vision Studio를 사용하여 학습할 데이터 세트를 만들 수 있습니다. REST 요청은 다음 REST 호출과 유사합니다.
curl -X PUT https://<endpoint>/computervision/datasets/<dataset-name>?api-version=<version>\
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <subscription-key>" \
--data-ascii "
{
'annotationKind':'imageClassification',
'annotationFileUris':['<URI>']
}"
Vision Studio를 사용하는 경우 사용자 지정 모델 타일로 이동하여 리소스를 선택하고 데이터 세트를 만듭니다. 여기에서 Azure Machine Learning 데이터 레이블 지정 프로젝트를 열거나 만들거나 기존 COCO 파일을 업로드할 수 있습니다. 이 모듈의 연습에서는 이러한 방식으로 데이터 세트를 만드는 방법을 안내합니다.
Vision Studio를 사용하면 REST 요청에서 COCO 파일을 지정하는 대신 Azure Machine Learning에서 레이블 지정 프로젝트에 연결할 수 있습니다. 이 모듈의 나머지 예제에서는 Vision Studio를 사용하지만 REST가 선호하는 방법인 경우 설명서 페이지에서 사용할 수 있습니다.