다음을 통해 공유


ML.NET 및 Windows Machine Learning을 사용한 이미지 분류

Image classification flow

이 가이드에서는 ML.NET Model Builder를 사용하여 음식 이미지를 분류하도록 신경망 모델을 학습시키고, 모델을 ONNX 형식으로 내보내고, Windows 디바이스에서 로컬로 실행되는 Windows Machine Learning 애플리케이션에서 모델을 배포하는 방법을 보여줍니다. 기계 학습에 대한 이전의 전문 지식은 필요하지 않으며, 단계별 안내에 따라 프로세스를 진행할 수 있습니다.

ML.NET Model Builder로 모델을 빌드하고 학습시키는 방법을 알아보려면 모델 학습으로 이동합니다.

모델이 있고 처음부터 WinML 앱을 만드는 방법을 알아보려면 전체 WinML 앱 자습서로 이동합니다.

WinML 앱을 위해 미리 정의된 솔루션을 이용하려면 솔루션 파일을 복제하고 즉시 테스트할 수 있습니다.

시나리오

이 자습서에서는 Windows 디바이스에서 실행되는 기계 학습 음식 분류 애플리케이션을 만듭니다. 이 모델은 음식 이미지를 분류하기 위해 특정 유형의 패턴을 인식하도록 학습됩니다. 이 모델은 특정 이미지가 제공될 때 분류 태그를 반환하고 해당 분류와 연관된 신뢰도 값을 백분율로 반환합니다.

모델 학습을 위한 사전 요구 사항

모델을 빌드하고 학습시키려면 Visual Studio에서 ML.NET Model Buider를 사용해야 합니다.

참고 항목

Azure 등록 옵션 및 Azure 체험 계정에 대해 자세히 알아보려면 Azure 계정 만들기를 확인하세요.

ML.NET Model Builder는 사용자 지정 기계 학습 모델을 빌드, 학습, 배포하기 위해 사용되는 직관적인 그래픽 Visual Studio 확장 기능입니다. AutoML(자동화된 Machine Learning)을 사용하여 여러 기계 학습 알고리즘과 설정을 탐색하고 시나리오에 가장 적합한 것을 찾을 수 있게 해줍니다.

ML.NET Model Builder는 .NET 워크로드 중 하나를 설치할 때 Visual Studio 버전 16.6.1 이상과 함께 제공됩니다. Visual Studio를 다운로드하거나 수정할 때 설치 프로그램에서 ML.NET Model Builder 구성 요소를 선택해야 합니다. VS에 ML.NET Model Builder 구성 요소가 포함되었는지 확인하려면 확장으로 이동하고 확장 관리를 선택합니다. 검색 창에 Model Builder를 입력하고 확장 결과를 확인합니다.

Model builder extension

ML.NET Model Builder는 현재 미리 보기 기능입니다. 따라서 이 도구를 사용하려면 Visual Studio에서 도구 > 옵션 > 환경 > 미리 보기 기능으로 이동하고, ML.NET Model Builder를 사용하도록 설정해야 합니다.

Enable the model builder extension

참고 항목

ML.NET Model Builder 및 여러 지원 시나리오에 대해 자세히 알아보려면 Model Builder 문서를 참조하세요.

Windows ML 앱 배포를 위한 사전 요구 사항

Windows ML 앱을 만들고 배포하려면 다음이 필요합니다.

참고 항목

Windows ML API는 최신 버전의 Windows 10(1809 이상) 및 Windows Server 2019에 내장되어 있습니다. 대상 플랫폼이 이전 버전의 Windows인 경우 WinML 앱을 재배포 가능한 NuGet 패키지(Windows 8.1 이상)로 이식할 수 있습니다.

데이터 준비

기계 학습 모델은 기존 데이터로 학습시켜야 합니다. 이 가이드에서는 Kaggle Open Datasets의 음식 이미지 데이터 세트를 사용합니다. 이 데이터 세트는 공용 도메인 라이선스로 배포됩니다.

Important

이 데이터 세트를 사용하려면 Kaggle 사이트 사용 약관과 Food-11 데이터 세트 자체에 포함된 라이선스 약관을 따라야 합니다. Microsoft는 해당 사이트 및 이 데이터 세트와 관련하여 어떠한 보증이나 표현도 하지 않습니다.

데이터 세트는 평가, 학습 및 유효성 검사의 세 가지로 분할되며, 11개 주요 음식 범주로 묶인 16643개 음식 이미지를 포함합니다. 각 음식 범주의 데이터 세트에 있는 이미지는 개별 폴더에 배치되어 있어서 모델 학습 프로세스를 더 편리하게 해줍니다.

여기에서 데이터 세트를 다운로드합니다. 데이터 세트는 크기가 약 1GB입니다. 데이터를 다운로드하려면 Kaggle 웹 사이트에서 계정을 만들어야 할 수 있습니다.

Food image dataset

필요한 경우 관련 이미지가 포함된 다른 데이터 세트도 사용할 수 있습니다. 최소한 초기 학습 집합에서 태그당 30개 이상의 이미지를 사용하는 것이 좋습니다. 또한 모델을 학습한 후 테스트하기 위해 몇 가지 추가 이미지를 수집하려고 합니다.

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

  • .jpg, .png, .bmp, 또는 .gif 형식
  • 크기 6MB 이하(예측 이미지의 경우 4MB)
  • 가장 짧은 가장자리가 256픽셀 이상. 256픽셀보다 짧은 이미지는 Custom Vision Service에서 자동으로 확장됩니다.

다음 단계

이제 사전 요구 사항을 확인하고 데이터 세트를 준비했으므로 WinML 모델 만들기로 진행할 수 있습니다. 다음 부분에서는 ML.NET Model Builder를 사용하여 분류 모델을 만들고 학습시킵니다.