다음을 통해 공유


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 리소스를 만들어야 합니다.

  1. Azure 계정의 기본 페이지로 이동하고 Create a resource를 선택합니다.

Azure resources selection

  1. 검색 상자에서 Custom Vision을 검색하고 Azure Marketplace로 이동합니다. Create Custom Vision을 선택하여 Custom Vision 만들기 페이지에서 대화 상자를 엽니다.

Packages selection

  1. Custom Vision 대화 상자 페이지에서 다음을 선택합니다.
  • TrainingPrediction 리소스를 모두 선택합니다.
  • 배포된 리소스를 관리할 구독을 선택합니다. 메뉴에 Azure 구독이 표시되지 않으면 로그아웃하고 계정을 열었던 동일한 자격 증명을 사용하여 Azure 계정을 다시 엽니다.
  • 새 리소스 그룹을 만들고 이름을 지정합니다. 이 자습서에서는 MLTraining으로 이름을 지정했지만 원하는 대로 고유한 이름을 선택하거나 기존 리소스 그룹이 있으면 해당 이름을 사용해도 됩니다.
  • 프로젝트에 이름을 지정합니다. 이 자습서에서는 classificationApp으로 이름을 지정했지만 원하는 대로 다른 이름을 사용할 수 있습니다.
  • TrainingPrediction 리소스 모두 위치를 (미국) 미국 동부로 설정하고 가격 책정 계층무료 FO로 설정합니다.
  1. Review + create를 눌러 Custom Vision 리소스를 배포합니다. 리소스를 배포하려면 몇 분 정도 걸릴 수 있습니다.

Deploy a new Custom Vision resource

Custom Vision 내에서 새 프로젝트 만들기

이제 리소스를 만들었으므로 Custom Vision 내에서 학습 프로젝트를 만들어야 합니다.

  1. 웹 브라우저에서 Custom Vision 페이지로 이동하고 Sign in을 선택합니다. Azure Portal에 로그인하는 데 사용한 것과 동일한 계정으로 로그인합니다.

  2. New Project를 선택하여 새 프로젝트 대화 상자를 엽니다.

Create a new project

  1. 다음과 같이 새 프로젝트를 만듭니다.
  • 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에 로그인했는지 확인합니다.

  1. 대화 상자를 입력한 후 Create project를 선택합니다.

Finalize your project

학습 데이터 세트 업로드

이제 프로젝트를 만들었으므로 Kaggle Open Datasets에서 이전에 준비한 음식 이미지 데이터 세트를 업로드합니다.

  1. FoodClassification 프로젝트를 선택하여 Custom Vision 웹 사이트의 웹 기반 인터페이스를 엽니다.

  2. Add images 단추를 선택하고 Browse local files를 선택합니다.

Add images dialog

  1. 이미지 데이터 세트 위치로 이동하고 학습 폴더 vegetable-fruit를 선택합니다. 폴더에서 이미지를 모두 선택하고 open을 선택합니다. 태그 지정 옵션이 열립니다.

  2. My Tags 필드에 vegetable-fruit를 입력하고 Upload를 누릅니다.

Upload images

이미지의 첫 번째 그룹이 프로젝트에 업로드될 때까지 기다린 후 done을 누릅니다. 태그 선택은 업로드하도록 선택한 전체 이미지 그룹에 적용됩니다. 따라서 이미 사전 빌드된 이미지 그룹에서 이미지를 쉽게 업로드할 수 있습니다. 언제든지 개별 이미지를 업로드한 후에 태그를 변경할 수도 있습니다.

Image upload progress

  1. 첫 번째 이미지 그룹이 성공적으로 업로드된 후 프로세스를 두 번 더 반복하여 후식과 수프 이미지를 업로드합니다. 관련 태그로 레이블을 지정해야 합니다.

마지막으로 학습에 사용할 수 있도록 세 가지 이미지 그룹이 준비됩니다.

Image tags display

모델 분류자 학습

이제 이전 부분에서 다운로드한 이미지 세트로부터 채소, 수프 및 후식을 분류하도록 모델을 학습시켜야 합니다.

  1. 학습 프로세스를 시작하려면 오른쪽 위 모서리에서 Train 단추를 선택합니다. 분류자는 이미지를 사용하여 각 태그의 시각적 품질을 식별하는 모델을 만듭니다.

Train button

왼쪽 위 모서리에 있는 슬라이더를 사용하여 확률 임계값을 변경할 수 있습니다. 확률 임계값은 올바른 것으로 간주되기 위해 예측이 가져야 하는 신뢰도 수준을 설정합니다. 확률 임계값이 너무 높으면 분류가 더 정확해지지만 감지되는 결과 수가 줄어듭니다. 반면에 확률 임계값이 너무 낮으면 감지되는 분류 수가 늘어나지만 신뢰도가 낮거나 가양성 결과가 늘어납니다.

이 자습서에서는 확률 임계값을 50%로 유지할 수 있습니다.

  1. 여기서는 Quick Training 프로세스가 사용됩니다. Advanced Training에는 더 많은 설정이 있으며, 학습에 사용되는 시간을 구체적으로 설정할 수 있지만 이 정도의 제어 수준은 여기에서 필요하지 않습니다. Train을 눌러 학습 프로세스를 시작합니다.

Choose training type

빠른 학습 프로세스는 완료하는 데 몇 분 정도만 걸립니다. 이 시간 동안 학습 프로세스에 대한 정보가 Performance 탭에 표시됩니다.

Training process

평가 및 테스트

결과 평가

학습이 완료되면 첫 번째 학습 반복에 대한 요약이 표시됩니다. 여기에는 모델 성능에 대한 평가(정밀도재현율)가 포함됩니다.

  • 정밀도 는 올바른 식별된 분류의 비율을 나타냅니다. 이 모델에서는 정밀도가 98.2%이므로, 모델로 이미지가 분류되면 올바르게 예측되었을 가능성이 매우 높습니다.
  • 재현율은 올바르게 식별된 실제 분류의 비율을 나타냅니다. 이 모델에서는 재현율이 97.5%이므로, 모델이 제공된 매우 다양한 이미지를 적절하게 분류합니다.
  • AP는 추가 성능을 의미합니다. 이것은 정밀도 및 재현율을 서로 다른 임계값으로 요약해서 보여주는 추가적인 메트릭을 제공합니다.

Model training evaluation

모델 테스트

모델을 내보내기 전에 성능을 테스트할 수 있습니다.

  1. 상단 메뉴 모음의 오른쪽 위 모서리에서 Quick Test를 선택하여 새 테스트 창을 엽니다.

Test button

이 창에서 테스트할 이미지 URL을 제공하거나 Browse local files를 선택하여 로컬로 저장된 이미지를 사용합니다.

Select image for testing

  1. Browse local files를 선택하고 음식 데이터 세트로 이동하고, 유효성 검사 폴더를 엽니다. fruit-vegetable 폴더에서 아무 이미지나 선택하고 open을 누릅니다.

테스트 결과가 화면에 표시됩니다. 이 테스트 모드에서는 99.8% 정확도로 이미지를 성공적으로 분류했습니다.

Test classification results

Predictions 탭에서 학습에 대한 예측을 사용하여 모델 성능을 향상시킬 수 있습니다. 자세한 내용은 분류자 개선 방법을 참조하세요.

참고 항목

Azure Custom Vision API에 대해 자세히 알고 싶으면 Custom Vision Service 설명서에서 Custom Vision 웹 포털 및 SDK에 대해 자세히 알아보세요.

모델을 ONNX로 내보내기

이제 모델을 학습시켰으므로 이를 ONNX로 내보낼 수 있습니다.

  1. Performance 탭을 선택한 후 Export를 선택하여 내보내기 창을 엽니다.

Export button

  1. ONNX를 선택하여 모델을 ONNX 형식으로 내보냅니다.

Choose your format

  1. 필요한 경우 ONNX 16 float 옵션을 선택할 수 있지만 이 자습서에서는 설정을 변경할 필요가 없습니다. Export and Download을(를) 선택합니다.

Choose your platform

  1. 다운로드한 .zip 파일을 열고 여기에서 model.onnx 파일을 추출합니다. 이 파일에는 분류자 모델이 포함되어 있습니다.

축하합니다! 분류 모델을 성공적으로 빌드하고 내보냈습니다.

다음 단계

이제 분류 모델이 준비되었으므로 다음 단계는 Windows 애플리케이션을 빌드하고 Windows 디바이스에서 이를 로컬로 실행하는 단계입니다.