이 자습서의 이전 단계에서는 사용자 고유의 Windows Machine Learning 모델 및 앱을 만드는 필수 구성 요소를 설명하고 사용할 이미지 집합을 다운로드했습니다. 이 단계에서는 웹 기반 Custom Vision 인터페이스를 사용하여 이미지 집합을 이미지 분류 모델로 전환하는 방법을 알아봅니다.
Azure Custom Vision은 고유한 이미지 식별자를 빌드, 배포 및 개선할 수 있는 이미지 인식 서비스입니다. Custom Vision Service는 Custom Vision 웹 사이트의 웹 기반 인터페이스뿐만 아니라 네이티브 SDK 집합으로 사용할 수 있습니다.
Custom Vision 리소스 및 프로젝트 만들기
Custom Vision 리소스 만들기
Custom Vision Service를 사용하려면 Azure에서 Custom Vision 리소스를 만들어야 합니다.
- Azure 계정의 기본 페이지로 이동하여 선택합니다
Create a resource
.
- 검색 상자에서
Custom Vision
를 검색하면 Azure Marketplace에 들어갑니다. Custom Vision 만들기 페이지에서 대화 상자를 열려면 선택합니다Create 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
: 음식 분류. -
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로 내보낼 수 없습니다.
중요합니다
로그인한 계정이 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
. 태그 지정 옵션이 열립니다.vegetable-fruit
을(를)My Tags
필드에 입력하고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
.
- 필요한 경우 float 옵션을 선택할
ONNX 16
수 있지만 이 자습서에서는 설정을 변경할 필요가 없습니다.Export and Download
를 선택합니다.
- 다운로드한 .zip 파일을 열고
model.onnx
파일을 추출합니다. 이 파일에는 분류자 모델이 포함되어 있습니다.
축하합니다! 분류 모델을 성공적으로 빌드하고 내보냅니다.
다음 단계
이제 분류 모델이 있으므로 다음 단계는 Windows 애플리케이션을 빌드하고 Windows 디바이스에서 로컬로 실행하는 것입니다.