Azure AI 비전 사용자 지정 모델을 사용하여 이미지 분류

Azure AI 비전을 사용하면 사용자 지정 모델을 학습하여 지정한 레이블로 개체를 분류하고 검색할 수 있습니다. 이 랩에서는 과일 이미지를 분류하기 위한 사용자 지정 이미지 분류 모델을 빌드해 보겠습니다.

이 과정용 리포지토리 복제

이 랩에서 작업 중인 환경에 아직 Azure AI 비전 코드 리포지토리를 복제하지 않은 경우 다음 단계에 따라 복제합니다. 리포지토리를 복제한 경우에는 Visual Studio Code에서 복제한 폴더를 엽니다.

  1. Visual Studio Code 시작
  2. 팔레트를 열고(Shift+Ctrl+P) Git: Clone 명령을 실행하여 https://github.com/MicrosoftLearning/mslearn-ai-vision 리포지토리를 로컬 폴더(아무 폴더나 관계없음)에 복제합니다.
  3. 리포지토리가 복제되면 Visual Studio Code에서 폴더를 엽니다.
  4. 리포지토리의 C# 코드 프로젝트를 지원하는 추가 파일이 설치되는 동안 기다립니다.

    참고: 빌드 및 디버깅에 필요한 자산을 추가하라는 메시지가 표시되면 나중에를 선택합니다. 폴더에서 Azure 함수 프로젝트를 발견했습니다라는 메시지가 표시되면 해당 메시지를 안전하게 닫을 수 있습니다.

Azure 리소스 프로비전

구독에 아직 없는 경우 Azure AI 서비스 리소스를 프로비전해야 합니다.

  1. https://portal.azure.com의 Azure Portal을 열고 Azure 구독과 연관된 Microsoft 계정을 사용하여 로그인합니다.
  2. 상단 검색 창에서 Azure AI 서비스를 검색하고 Azure AI 서비스를 선택한 후 다음 설정을 사용하여 Azure AI 서비스 다중 서비스 계정 리소스를 만듭니다.
    • 구독: ‘Azure 구독’
    • 리소스 그룹: 리소스 그룹 선택 또는 만들기(제한된 구독을 사용 중이라면 새 리소스 그룹을 만들 권한이 없을 수도 있으므로 제공된 리소스 그룹 사용)**
    • 지역: 미국 동부, 서유럽, 미국 서부 2 중에서 선택*
    • 이름: 고유 이름 입력
    • 가격 책정 계층: 표준 S0

    *Azure AI 비전 4.0 사용자 지정 모델 태그는 현재 이 지역에서만 사용할 수 있습니다.

  3. 필요한 확인란을 선택하고 리소스를 만듭니다.

학습 이미지를 저장하려면 스토리지 계정도 필요합니다.

  1. Azure Portal에서 스토리지 계정을 검색하여 선택하고 다음 설정을 사용하여 새 스토리지 계정을 만듭니다.
    • 구독: ‘Azure 구독’
    • 리소스 그룹: Azure AI Service 리소스를 만든 것과 동일한 리소스 그룹을 선택합니다.
    • 스토리지 계정 이름: customclassifySUFFIX
      • 참고: 리소스 이름이 전역적으로 고유하도록 SUFFIX 토큰을 이니셜이나 다른 값으로 바꿉니다.
    • 지역: Azure AI Service 리소스에 사용한 것과 동일한 지역을 선택합니다.
    • 기본 서비스: Azure Blob Storage 또는 Azure Data Lake Storage Gen 2
    • 기본 워크로드: 기타
    • 성능: 표준
    • 중복도: LRS(로컬 중복 스토리지)
  2. 스토리지 계정이 만들어지는 동안 Visual Studio Code로 이동하여 Labfiles/02-image-classification 폴더를 확장합니다.
  3. 해당 폴더에서 replace.ps1을 선택하고 코드를 검토합니다. 이후 단계에서 사용하는 JSON 파일(COCO 파일)의 자리 표시자에 대한 스토리지 계정 이름이 바뀌는 것을 확인할 수 있습니다. 파일의 첫 번째 줄에만 자리 표시자를 스토리지 계정 이름으로 바꿉니다. 파일을 저장합니다.
  4. 02-image-classification 폴더를 마우스 오른쪽 단추로 클릭하고 통합 터미널을 엽니다. 다음 명령을 실행합니다.

     ./replace.ps1
    
  5. COCO 파일을 검토하여 스토리지 계정 이름이 있는지 확인할 수 있습니다. training-images/training_labels.json을 선택하고 처음 몇 개의 항목을 확인합니다. absolute_url 필드에 “https://myStorage.blob.core.windows.net/fruit/… 과 유사한 내용이 표시되어야 합니다. 예상된 변경 내용이 표시되지 않으면 PowerShell 스크립트에서 첫 번째 자리 표시자만 업데이트했는지 확인합니다.
  6. JSON 및 PowerShell 파일을 모두 닫고 브라우저 창으로 돌아갑니다.
  7. 스토리지 계정이 완료되어야 합니다. 스토리지 계정으로 이동합니다.
  8. 스토리지 계정에 대한 공용 액세스를 사용하도록 설정합니다. 왼쪽 창에서 설정 그룹의 구성으로 이동하여 Blob 익명 액세스 허용을 사용하도록 설정합니다. 저장을 선택합니다.
  9. 왼쪽 창의 데이터 스토리지에서 컨테이너를 선택하고 fruit라는 이름의 컨테이너를 새로 만든 다음 익명 액세스 수준컨테이너(컨테이너 및 블롭에 대한 익명 읽기 권한) 로 설정합니다.

    참고: 익명 액세스 수준이 사용하지 않도록 설정된 경우 브라우저 페이지를 새로 고침합니다.

  10. fruit(으)로 이동하여 업로드를 선택하고 Labfiles/02-image-classification/training-images에 있는 이미지(및 하나의 JSON 파일)를 해당 컨테이너에 업로드합니다.

사용자 지정 모델 학습 프로젝트 만들기

다음으로 Vision Studio에서 사용자 지정 이미지 분류를 위한 새 학습 프로젝트를 만듭니다.

  1. 웹 브라우저에서 https://portal.vision.cognitive.azure.com/으로 이동하여 Azure AI 리소스를 만든 Microsoft 계정으로 로그인합니다.
  2. 이미지로 모델 사용자 지정 타일(기본 보기에 표시되지 않는 경우 이미지 분석 탭에서 찾을 수 있음)을 선택합니다.
  3. 생성한 Azure AI 서비스 계정을 선택합니다.
  4. 프로젝트 상단에서 새 데이터 세트 추가를 선택합니다. 다음 설정을 사용하여 구성합니다.
    • 데이터 세트 이름: training_images
    • 모델 형식: 이미지 분류
    • Azure Blob Storage 컨테이너 선택: 컨테이너 선택을 선택합니다.
      • 구독: ‘Azure 구독’
      • 스토리지 계정: 만든 스토리지 계정
      • Blob 컨테이너: 과일
    • “Vision Studio가 Blob Storage를 읽고 쓸 수 있도록 허용” 상자를 선택합니다.
  5. training_images 데이터 세트를 선택합니다.

프로젝트 만들기의 이 시점에서는 일반적으로 Azure ML 데이터 레이블 지정 프로젝트 만들기를 선택하고 이미지에 레이블을 지정하여 COCO 파일을 만듭니다. 시간이 있으면 이 방법을 시도해 보시기 바랍니다. 하지만 이 랩의 목적을 위해 우리는 이미 이미지에 레이블을 지정하고 결과 COCO 파일을 제공했습니다.

  1. COCO 파일 추가를 선택합니다.
  2. 드롭다운에서 Blob 컨테이너에서 COCO 파일 가져오기를 선택합니다.
  3. fruit라는 컨테이너를 이미 연결했으므로 Vision Studio는 해당 컨테이너에서 COCO 파일을 검색합니다. 드롭다운에서 training_labels.json을 선택하고 COCO 파일을 추가합니다.
  4. 왼쪽의 사용자 지정 모델로 이동하여 새 모델 학습을 선택합니다. 다음 설정을 사용합니다.
    • 모델 이름: classifyfruit
    • 모델 형식: 이미지 분류
    • 학습 데이터 세트 선택: training_images
    • 나머지는 기본값으로 두고 모델 학습을 선택합니다.

학습에는 다소 시간이 걸릴 수 있습니다. 기본 예산은 최대 1시간이지만 이 작은 데이터 세트의 경우 일반적으로 그보다 훨씬 빠릅니다. 작업 상태가 성공이 될 때까지 몇 분마다 새로 고침 단추를 선택합니다. 모델을 선택합니다.

여기에서 학습 작업의 성과를 볼 수 있습니다. 학습된 모델의 정밀도와 정확도를 검토합니다.

사용자 지정 모델 테스트

모델이 학습되어 테스트할 준비가 되었습니다.

  1. 사용자 지정 모델 페이지 상단에서 시도를 선택합니다.
  2. 사용할 모델을 지정하는 드롭다운에서 classifyfruit 모델을 선택하고 02-image-classification\test-images 폴더를 찾습니다.
  3. 각 이미지를 선택하고 결과를 확인합니다. 전체 JSON 응답을 검사하려면 결과 상자에서 JSON 탭을 선택합니다.

리소스 정리

다른 학습 모듈을 위해 이 랩에서 만들어진 Azure 리소스를 사용하지 않는 경우 해당 리소스를 삭제하여 추가 요금이 발생하지 않도록 할 수 있습니다.

  1. https://portal.azure.com에서 Azure Portal을 열고 상단 검색 창에서 이 랩에서 만든 리소스를 검색합니다.

  2. 리소스 페이지에서 삭제를 선택하고 지침에 따라 리소스를 삭제합니다. 또는 전체 리소스 그룹을 삭제하여 모든 리소스를 동시에 정리할 수 있습니다.