Custom Vision을 사용하여 모델 학습
이 자습서의 이전 단계에서는 고유 Windows Machine Learning 모델 및 앱을 만들기 위한 사전 요구 사항을 설명하고 사용할 이미지 세트를 다운로드했습니다. 이 단계에서는 웹 기반 Custom Vision 인터페이스를 사용하여 이미지 세트를 이미지 분류 모델로 전환시키는 방법을 알아봅니다.
Azure Custom Vision은 고유한 이미지 식별자를 빌드, 배포 및 개선할 수 있는 이미지 인식 서비스입니다. Custom Vision Service는 네이티브 SDK 세트로는 물론 Custom Vision 웹 사이트의 웹 기반 인터페이스를 통해 제공됩니다.
Custom Vision 리소스 및 프로젝트 만들기
Custom Vision 리소스 만들기
Custom Vision Service를 사용하려면 Azure에서 Custom Vision 리소스를 만들어야 합니다.
- Azure 계정의 기본 페이지로 이동하고
Create a resource
를 선택합니다.
- 검색 상자에서
Custom Vision
을 검색하고 Azure Marketplace로 이동합니다.Create Custom Vision
을 선택하여 Custom Vision 만들기 페이지에서 대화 상자를 엽니다.
- Custom Vision 대화 상자 페이지에서 다음을 선택합니다.
Training
및Prediction
리소스를 모두 선택합니다.- 배포된 리소스를 관리할 구독을 선택합니다. 메뉴에 Azure 구독이 표시되지 않으면 로그아웃하고 계정을 열었던 동일한 자격 증명을 사용하여 Azure 계정을 다시 엽니다.
- 새 리소스 그룹을 만들고 이름을 지정합니다. 이 자습서에서는
MLTraining
으로 이름을 지정했지만 원하는 대로 고유한 이름을 선택하거나 기존 리소스 그룹이 있으면 해당 이름을 사용해도 됩니다. - 프로젝트에 이름을 지정합니다. 이 자습서에서는
classificationApp
으로 이름을 지정했지만 원하는 대로 다른 이름을 사용할 수 있습니다. Training
및Prediction
리소스 모두 위치를 (미국) 미국 동부로 설정하고 가격 책정 계층을 무료 FO로 설정합니다.
Review + create
를 눌러 Custom Vision 리소스를 배포합니다. 리소스를 배포하려면 몇 분 정도 걸릴 수 있습니다.
Custom Vision 내에서 새 프로젝트 만들기
이제 리소스를 만들었으므로 Custom Vision 내에서 학습 프로젝트를 만들어야 합니다.
웹 브라우저에서 Custom Vision 페이지로 이동하고
Sign in
을 선택합니다. Azure Portal에 로그인하는 데 사용한 것과 동일한 계정으로 로그인합니다.New Project
를 선택하여 새 프로젝트 대화 상자를 엽니다.
- 다음과 같이 새 프로젝트를 만듭니다.
Name
: FoodClassification입니다.Description
: 다양한 유형의 음식 분류입니다.Resource
: 이전에 연 동일한 리소스(ClassificationApp [F0]
)를 유지합니다.Project Types
:classification
Classification Types
:Multilabel (Multiple tags per image)
Domains
:Food (compact)
.Export Capabilities
:Basic platforms (Tensorflow, CoreML, ONNX, ...)
참고 항목
ONNX 형식으로 내보내려면 Food (compact)
도메인을 선택해야 합니다. 압축되지 않은 도메인은 ONNX로 내보낼 수 없습니다.
Important
로그인한 계정이 Azure 계정과 연결된 경우 리소스 그룹 드롭다운에는 Custom Vision Service 리소스를 포함하는 모든 Azure 리소스 그룹이 표시됩니다. 사용 가능한 리소스 그룹이 없는 경우 Azure Portal에 로그인하는 데 사용한 계정과 동일한 계정으로 customvision.ai에 로그인했는지 확인합니다.
- 대화 상자를 입력한 후
Create project
를 선택합니다.
학습 데이터 세트 업로드
이제 프로젝트를 만들었으므로 Kaggle Open Datasets에서 이전에 준비한 음식 이미지 데이터 세트를 업로드합니다.
FoodClassification
프로젝트를 선택하여 Custom Vision 웹 사이트의 웹 기반 인터페이스를 엽니다.Add images
단추를 선택하고Browse local files
를 선택합니다.
이미지 데이터 세트 위치로 이동하고 학습 폴더
vegetable-fruit
를 선택합니다. 폴더에서 이미지를 모두 선택하고open
을 선택합니다. 태그 지정 옵션이 열립니다.My Tags
필드에vegetable-fruit
를 입력하고Upload
를 누릅니다.
이미지의 첫 번째 그룹이 프로젝트에 업로드될 때까지 기다린 후 done
을 누릅니다. 태그 선택은 업로드하도록 선택한 전체 이미지 그룹에 적용됩니다. 따라서 이미 사전 빌드된 이미지 그룹에서 이미지를 쉽게 업로드할 수 있습니다. 언제든지 개별 이미지를 업로드한 후에 태그를 변경할 수도 있습니다.
- 첫 번째 이미지 그룹이 성공적으로 업로드된 후 프로세스를 두 번 더 반복하여 후식과 수프 이미지를 업로드합니다. 관련 태그로 레이블을 지정해야 합니다.
마지막으로 학습에 사용할 수 있도록 세 가지 이미지 그룹이 준비됩니다.
모델 분류자 학습
이제 이전 부분에서 다운로드한 이미지 세트로부터 채소, 수프 및 후식을 분류하도록 모델을 학습시켜야 합니다.
- 학습 프로세스를 시작하려면 오른쪽 위 모서리에서
Train
단추를 선택합니다. 분류자는 이미지를 사용하여 각 태그의 시각적 품질을 식별하는 모델을 만듭니다.
왼쪽 위 모서리에 있는 슬라이더를 사용하여 확률 임계값을 변경할 수 있습니다. 확률 임계값은 올바른 것으로 간주되기 위해 예측이 가져야 하는 신뢰도 수준을 설정합니다. 확률 임계값이 너무 높으면 분류가 더 정확해지지만 감지되는 결과 수가 줄어듭니다. 반면에 확률 임계값이 너무 낮으면 감지되는 분류 수가 늘어나지만 신뢰도가 낮거나 가양성 결과가 늘어납니다.
이 자습서에서는 확률 임계값을 50%로 유지할 수 있습니다.
- 여기서는
Quick Training
프로세스가 사용됩니다.Advanced Training
에는 더 많은 설정이 있으며, 학습에 사용되는 시간을 구체적으로 설정할 수 있지만 이 정도의 제어 수준은 여기에서 필요하지 않습니다.Train
을 눌러 학습 프로세스를 시작합니다.
빠른 학습 프로세스는 완료하는 데 몇 분 정도만 걸립니다. 이 시간 동안 학습 프로세스에 대한 정보가 Performance
탭에 표시됩니다.
평가 및 테스트
결과 평가
학습이 완료되면 첫 번째 학습 반복에 대한 요약이 표시됩니다. 여기에는 모델 성능에 대한 평가(정밀도 및 재현율)가 포함됩니다.
- 정밀도 는 올바른 식별된 분류의 비율을 나타냅니다. 이 모델에서는 정밀도가 98.2%이므로, 모델로 이미지가 분류되면 올바르게 예측되었을 가능성이 매우 높습니다.
- 재현율은 올바르게 식별된 실제 분류의 비율을 나타냅니다. 이 모델에서는 재현율이 97.5%이므로, 모델이 제공된 매우 다양한 이미지를 적절하게 분류합니다.
- AP는 추가 성능을 의미합니다. 이것은 정밀도 및 재현율을 서로 다른 임계값으로 요약해서 보여주는 추가적인 메트릭을 제공합니다.
모델 테스트
모델을 내보내기 전에 성능을 테스트할 수 있습니다.
- 상단 메뉴 모음의 오른쪽 위 모서리에서
Quick Test
를 선택하여 새 테스트 창을 엽니다.
이 창에서 테스트할 이미지 URL을 제공하거나 Browse local files
를 선택하여 로컬로 저장된 이미지를 사용합니다.
Browse local files
를 선택하고 음식 데이터 세트로 이동하고, 유효성 검사 폴더를 엽니다.fruit-vegetable
폴더에서 아무 이미지나 선택하고open
을 누릅니다.
테스트 결과가 화면에 표시됩니다. 이 테스트 모드에서는 99.8% 정확도로 이미지를 성공적으로 분류했습니다.
Predictions
탭에서 학습에 대한 예측을 사용하여 모델 성능을 향상시킬 수 있습니다. 자세한 내용은 분류자 개선 방법을 참조하세요.
참고 항목
Azure Custom Vision API에 대해 자세히 알고 싶으면 Custom Vision Service 설명서에서 Custom Vision 웹 포털 및 SDK에 대해 자세히 알아보세요.
모델을 ONNX로 내보내기
이제 모델을 학습시켰으므로 이를 ONNX로 내보낼 수 있습니다.
Performance
탭을 선택한 후Export
를 선택하여 내보내기 창을 엽니다.
ONNX
를 선택하여 모델을 ONNX 형식으로 내보냅니다.
- 필요한 경우
ONNX 16
float 옵션을 선택할 수 있지만 이 자습서에서는 설정을 변경할 필요가 없습니다.Export and Download
을(를) 선택합니다.
- 다운로드한 .zip 파일을 열고 여기에서
model.onnx
파일을 추출합니다. 이 파일에는 분류자 모델이 포함되어 있습니다.
축하합니다! 분류 모델을 성공적으로 빌드하고 내보냈습니다.
다음 단계
이제 분류 모델이 준비되었으므로 다음 단계는 Windows 애플리케이션을 빌드하고 Windows 디바이스에서 이를 로컬로 실행하는 단계입니다.