AutoML Vision은 ML 전문 지식이 별로 없는 개발자들도 고품질 이미지 인식 모델을 학습할 수 있게 해 줍니다. AutoML UI에 이미지를 업로드하면 사용하기 쉬운 REST API를 통해 예측을 생성하기 위해 GCP에서 즉시 사용할 수있는 모델을 학습시킬 수 있습니다.
이번 시간에는 이미지를 Cloud Storage에 업로드하고 이를 사용하여 다양한 유형의 구름 (적운, 적란운 등)을 인식하도록 커스텀 모델을 학습시킵니다.
배울 것
1. 라벨이 지정된 데이터 세트를 Cloud Storage에 업로드하고 CSV 라벨 파일을 사용하여 AutoML Vision에 연결하기
2. AutoML Vision으로 모델을 학습시키고 정확성을 평가하기
3. 학습 된 모델에 대한 예측을 생성하기
AutoML Vision은 이미지 분류 모델 학습 및 예측 생성의 모든 단계를위한 인터페이스를 제공합니다. Cloud AutoML API를 사용 설정하여 시작합니다.
Navigation 메뉴에서 APIs & Services > Library를 선택합니다.
검색 창에 'Cloud AutoML'을 입력합니다. Cloud AutoML API를 선택하고 Enable을 클릭합니다.
설정하는 데 1 분 정도 걸립니다.
Cloud Shell에서 다음 명령어를 사용하여 프로젝트 ID 및 사용자 이름에 대한 환경 변수를 만들고 <USERNAME>은 실습에 로그인 한 사용자 이름으로 바꿉니다 .
export PROJECT_ID=$DEVSHELL_PROJECT_ID
export QWIKLABS_USERNAME=<USERNAME>
다음 명령어를 실행하여 AutoML 권한을 부여합니다.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="user:$QWIKLABS_USERNAME" \
--role="roles/automl.admin"
이제 다음을 실행하여 storage bucket을 만듭니다.
gsutil mb -p $PROJECT_ID \
-c standard \
-l us-central1 \
gs://$PROJECT_ID-vcm/
Google Cloud 콘솔에서 Navigation 메뉴 를 열고 Storage 를 클릭 하여 확인합니다.
모델을 학습하여 클라우드 이미지를 분류하려면 모델이 다양한 유형의 구름 이미지 특징을 이해할 수 있도록 레이블이 지정된 학습 데이터를 제공해야합니다. 이 예에서 모델은 권운, 적운 및 적란운의 세 가지 유형의 구름을 분류하는 방법을 배웁니다. AutoML Vision을 사용하려면 Cloud Storage에 학습 이미지를 넣어야합니다.
클라우드 이미지를 추가하기 전에 버킷 이름으로 환경 변수를 생성하십시오.
Cloud Shell에서 다음 명령어를 실행합니다.
export BUCKET=$PROJECT_ID-vcm
학습 이미지는 Cloud Storage 버킷에서 공개적으로 사용할 수 있습니다.
gsutilCloud Storage command line utility를 사용하여 학습 이미지를 버킷에 복사합니다.
gsutil -m cp -r gs://automl-codelab-clouds/* gs://${BUCKET}
이미지 복사가 완료되면 Storage 브라우저 상단의 새로 고침 버튼을 클릭 한 다음 버킷 이름을 클릭합니다. 분류 할 3가지 클라우드 유형 각각에 대해 3개의 사진 폴더가 표시되어야합니다.
각 폴더에서 개별 이미지 파일을 클릭하면 각 클라우드 유형에 대해 모델을 훈련하는 데 사용할 사진을 볼 수 있습니다.
이제 학습 데이터가 Cloud Storage에 있으므로 AutoML Vision이 데이터에 액세스 할 수있는 방법이 필요합니다. 각 행에 학습 이미지에 대한 URL과 해당 이미지에 대한 관련 레이블이 포함 된 CSV 파일을 생성합니다. 이 CSV 파일을 버킷 이름으로 업데이트하기 만하면됩니다.
다음 명령어를 실행하여 파일을 Cloud Shell 인스턴스에 복사합니다.
gsutil cp gs://automl-codelab-metadata/data.csv .
그런 다음 프로젝트의 파일로 CSV를 업데이트합니다.
sed -i -e "s/placeholder/${BUCKET}/g" ./data.csv
이제 이 파일을 Cloud Storage 버킷에 업로드합니다.
gsutil cp ./data.csv gs://${BUCKET}
명령이 완료되면 스토리지 브라우저 상단의 새로 고침 버튼을 클릭 한 다음 버킷 이름을 클릭합니다. data.csv버킷에 파일 이 표시되는지 확인합니다 .
이제 새 브라우저 에서 AutoML UI 링크를 엽니다 .
콘솔 상단에서 +New Dataset를 클릭 합니다.
데이터 세트 이름으로 "clouds"를 입력합니다.
"Single-Label Classification"를 선택합니다.
Create Dataset 를 클릭합니다 .
Cloud Storage에서 CSV 파일 선택을 선택하고 방금 업로드 한 파일의 URL에 파일 이름을 추가합니다.
파일의 URL을 얻기 위해서 Cloud Console로 돌아가서 data.csv파일을 클릭합니다. URI 필드에서 copy 아이콘을 클릭 합니다.
Continue를 클릭 합니다.
이미지를 가져 오는 데 2 ~ 5 분 정도 걸립니다. 가져 오기가 완료되면 데이터 세트의 모든 이미지가있는 페이지로 이동합니다.
가져 오기가 완료되면 Image 탭을 클릭하여 업로드 한 이미지를 확인합니다.
테스트 이미지를 검토하려면 왼쪽 메뉴에서 다른 레이블로 필터링 해봅니다.
참고 : 프로덕션 모델을 구축하는 경우 높은 정확성을 보장하기 위해 라벨 당 최소 100 개의 이미지가 필요합니다. 이것은 데모 일 뿐이므로 모델이 빠르게 학습 할 수 있도록 20 개의 이미지 만 사용되었습니다.
이미지 라벨이 잘못 지정된 경우 이미지를 클릭하여 라벨을 전환 할 수 있습니다.
각 라벨에 대해 보유한 이미지 수에 대한 요약을 보려면 페이지 상단의 Label Stats를 클릭 하세요. 브라우저 오른쪽에 다음과 같은 내용이 표시되어야합니다.
구름 모델을 학습하기 위해, Train 탭을 선택 후 Start Training을 클릭합니다.
모델 이름을 입력하거나 기본 자동 생성 이름을 사용합니다.
Cloud-hosted 가 선택된 채로 Continue를 클릭합니다.
노드 시간을 8로 설정합니다.
Start Training을 클릭합니다 .
이것은 작은 데이터 세트이기때문에 완료하는 데 약 25 ~ 30 분 정도 걸립니다.
Evaluate 탭에서 모델의 Precision 및 Recall에 대한 정보를 볼 수 있습니다.
Score Threshold 값을 변경할 수도 있습니다 .
마지막으로 아래로 스크롤하여 Confusion Matrix을 확인 합니다.
이 기능들은 모델 정확도를 평가하고 학습 데이터를 개선 할 수있는 부분을 확인할 수 있는 일반적인 기계 학습 지표를 제공합니다.
이제 가장 중요한 부분 인 이전에는 보지 못한 데이터를 사용하여 학습 된 모델에 대한 예측을 생성 할 때입니다.
AutoML UI 의 Test&Use 탭으로 이동합니다 .
Deploy Model 한 다음 Deploy합니다.
배포하는 데 약 20 분이 소요 됩니다.
예측을 생성하는 몇 가지 방법이 있습니다. 이 실습에서는 UI를 사용하여 이미지를 업로드합니다. 모델이이 두 이미지를 분류하는 방법을 볼 수 있습니다 (첫 번째 이미지는 권운 구름이고 두 번째 이미지는 적란운입니다).
이미지를 각각 마우스 오른쪽 버튼으로 클릭하여 로컬 컴퓨터에 다운로드합니다.
AutoML Vision UI로 돌아가서 이미지 업로드를 클릭 하고 클라우드를 온라인 예측 UI에 업로드합니다. 예측 요청이 완료되면 다음과 같은 내용이 표시됩니다.
모델이 각 유형의 클라우드를 올바르게 분류한것을 확인 할 수 있습니다!
커스텀 머신러닝 모델을 훈련하고 웹 UI를 통해 예측을 생성하는 방법을 배웠습니다.
이제 자신의 이미지 데이터 세트에서 모델을 학습할 수 있겠죠?