Cloud AutoML은 머신러닝 전문가가 부족한 환경에서 비즈니스 요구에 맞춰 모델을 생성할 수 있는 Google Cloud의 머신러닝 제품입니다.
그림 1 Cloud AutoML Vision Workflow
1) 프로젝트 환경구성
GCP 콘솔에서 Manage resources 메뉴로 이동한 후 프로젝트를 생성합니다.
AutoML Vision API를 활성화 합니다.
ENABLE THE APIS 링크로 이동 후 적용 Project 선택
gcloud 명령줄 도구를 설치합니다.
https://cloud.google.com/sdk/downloads#interactive
서비스계정을 만들고 키 파일을 다운로드 합니다.
<서비스 계정 생성 및 관리>
https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating_a_service_account
<서비스 계정 키 생성 및 관리>
https://cloud.google.com/iam/docs/creating-managing-service-account-keys
서비스 계정을 만들 때 다운로드한 서비스 계정 키 파일 경로로 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정합니다.
export GOOGLE_APPLICATION_CREDENTIALS=key-file
AutoML editor 역할을 서비스 계정에 추가합니다.
project-id : GCP 프로젝트 id
service-account-name : 새 서비스 계정의 이름
(예: service-account1@myproject.iam.gserviceaccount.com)
gcloud auth login
gcloud projects add-iam-policy-binding project-id
--member="user:your-userid@your-domain" \
--role="roles/automl.admin"
gcloud projects add-iam-policy-binding project-id \
--member=serviceAccount:service-account-name --role="roles/automl.editor"
AutoML Vision 서비스 계정으로 Google Cloud 프로젝트 리소스에 액세스 할 수 있도록 설정 합니다.
gcloud projects add-iam-policy-binding project-id \
--member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \
--role="roles/storage.admin"
클라이언트 라이브러리를 설치합니다.
https://cloud.google.com/vision/automl/docs/client-libraries
PROJECT_ID 및 REGION_NAME 환경 변수를 설정합니다.
project-id : GCP 프로젝트 id
REGION_NAME : 현재 AutoML Vision은 us-central1 위치
export PROJECT_ID="project-id"
export REGION_NAME="us-central1"
Google Cloud Storage 버킷을 만들고 커스텀 모델 학습에 사용할 문서를 저장합니다.
버킷 이름은 $PROJECT_ID-vcm 형식이어야 합니다. 다음 명령으로 us-central1 지역에
$PROJECT_ID-vcm이라는 Storage 버킷을 만듭니다.
gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
모델 학습에 사용할 데이터를 위에 생성한 버킷에 입력합니다.
<gsutil 사용 dir : 원천데이터 위치 gs://my-bucket : 저장될 버킷>
gsutil -m cp -r dir gs://my-bucket
<콘솔 사용>
Storage – Browser 메뉴에서 복사할 폴더를 선택한 후 Upload files/Upload folder 기능으로
데이터 복사 수행
학습을 위해서는 버킷에 저장한 이미지들의 위치와 라벨을 .csv 형식으로 제공해야 합니다. 아래의 형식을 참고해서 작성이 필요 합니다.
<example>
Labeled: gs://calm-trees-123-vcm/flowers/images/100080576_f52e8ee070_n.jpg,daisy
Not labeled: gs://calm-trees-123-vcm/flowers/images/10140303196_b88d3d6cec.jpg
Multi-label: gs://calm-trees-123-vcm/flowers/images/5217892384_3edce91761_m.jpg,dandelion,tulip,rose
Assigned to a set: TEST,gs://calm-trees-123-vcm/flowers/images/120080580_e33a8cd011_n.jpg,daisy
<엑셀 예>
업데이트된 .csv 파일을 버킷에 복사합니다.
gsutil cp all_data.csv gs://$PROJECT_ID-vcm/csv/
2) 애플리케이션 실행
데이터세트 만들기
AutoML Vision 웹사이트(http://beta-dot-custom-vision.appspot.com/)에서 데이터세트를 만들고 모델을 학습시키는 과정을 시작합니다.
해당 메시지가 나타나면 Cloud Storage 버킷에 사용한 프로젝트를 선택합니다.
AutoML Vision 페이지에서 새 데이터세트를 클릭합니다.
데이터세트의 이름을 지정합니다.
CSV 파일의 Cloud Storage URI를 지정합니다. 빠른 시작에서 CSV 파일의 위치는 gs://your-project-123-vcm/csv/all_data.csv입니다. 여기에서 your-project-123을 사용자의 고유 프로젝트 ID로 바꾸어야 합니다.
이미지에 라벨이 둘 이상인 경우 다중 라벨 분류 사용 설정을 선택합니다.
데이터세트 만들기를 클릭합니다. 가져오기를 완료할 때까지 몇 분 정도 걸릴 수 있습니다. 완료되면 데이터세트에서 식별된 모든 이미지(라벨이 있는 이미지 및 라벨이 없는 이미지)에 대한 세부정보를 보여주는 다음 페이지로 이동합니다. 라벨 필터링에서 라벨을 선택하여 이미지를 라벨로 필터링할 수 있습니다.
CSV 파일을 가져온 후 이미지를 더 추가하고 새로 추가한 이미지 및 기존 이미지의 라벨을 업데이트할 수 있습니다.
모델 생성
데이터 세트가 준비되면, 이를 사용해 모델을 학습/테스트/평가 작업을 수행합니다. 모델 학습 완료까지는 몇 시간 정 도 소요될 수도 있으며, AutoML API를 사용해 학습 상태를 확인할 수 있습니다.
메뉴의 “TRAIN” 항목을 클릭하면 데이터 세트의 상태가 출력되고, 하단의 “START TRAINING” 버튼을 클릭하여 모델 학습을 시작합니다. 학습이 완료되면 모델이 자동으로 배포됩니다.
모델 생성 후 정보는 AutoML Visoin의 Models 메뉴에서 확인할 수 있습니다.
모델 평가
모델 학습 완료 후 테스트 데이터 세트를 사용해 새로 생성한 모델의 정밀도, 재현율 등을 살펴볼 수 있습니다.
“EVALUATE” 탭을 클릭하면 정밀도, 재현율 등의 정보를 출력해 줍니다. 라벨 필터링에서 각 라벨을 클릭하면 True Positives, True Negatives, False Positives, False Negatives에 대한 상세 내용을 확인할 수 있습니다.
실제 예측하기
모델을 학습시킨 후 모델을 사용하여 이미지에 대한 예측을 수행할 수 있습니다. 즉, 커스텀 모델을 어떻게 만들었는지에 따라 이미지의 내용을 기술하는 하나 이상의 라벨을 가져올 수 있습니다.
학습완료 후 모델이 생성되면 Predict 페이지에서 모델을 테스트할 수 있습니다.
모델을 선택한 후 UPLOAD IMAGES 버튼 클릭 후 테스트 할 이미지를 입력합니다.
입력한 이미지에 대한 예측값을 UI를 통해 확인할 수 있습니다.