2019년 하반기 [머신러닝 통합반] 코세라 & 퀵랩

AutoML Vision을 사용하여 클라우드에서 클라우드 이미지 분류

개요

AutoML Vision은 ML 전문 지식이 부족한 개발자가 고품질 이미지 인식 모델을 교육하는 데 도움이됩니다. AutoML UI에 이미지를 업로드하면 사용하기 쉬운 REST API를 통해 예측을 생성하기 위해 GCP에서 즉시 사용할 수있는 모델을 학습 할 수 있습니다.

이 실습에서는 이미지를 Cloud Storage에 업로드하고이를 사용하여 다양한 유형의 구름 (적운, 적란운 등)을 인식하도록 사용자 지정 모델을 학습합니다.

당신이 배울 것

  • 라벨이 지정된 데이터 세트를 Google Cloud Storage에 업로드하고 CSV 라벨 파일을 사용하여 AutoML Vision에 연결합니다.

  • AutoML Vision으로 모델을 교육하고 정확도를 평가하십시오.

  • 훈련 된 모델에서 예측을 생성합니다.

Google Cloud Shell 활성화

Google Cloud Shell은 개발 도구가로드 된 가상 머신입니다. 영구적 인 5GB 홈 디렉토리를 제공하며 Google 클라우드에서 실행됩니다. Google Cloud Shell은 GCP 리소스에 대한 명령 줄 액세스를 제공합니다.

  1. GCP 콘솔의 오른쪽 상단 툴바에서 Open Cloud Shell 버튼을 클릭합니다.

  2. 계속을 클릭하십시오 . 

환경을 프로비저닝하고 연결하는 데 약간의 시간이 걸립니다. 연결되면 이미 인증되었으며 프로젝트는 PROJECT_ID 로 설정됩니다 . 예를 들면 다음과 같습니다.

gcloud 는 Google Cloud Platform 용 명령 줄 도구입니다. Cloud Shell에 사전 설치되어 제공되며 탭 완성을 지원합니다.

이 명령으로 활성 계정 이름을 나열 할 수 있습니다.

gcloud auth list

AutoML Vision 설정

AutoML Vision은 이미지 분류 모델을 훈련시키고 예측을 생성하는 모든 단계에 대한 인터페이스를 제공합니다. Cloud AutoML API를 활성화하여 시작하십시오.

탐색 메뉴를 열고 API 및 서비스 > 라이브러리를 선택하십시오 . 검색 창에 "Cloud AutoML API"를 입력하십시오. 온 클릭 클라우드 AutoML의 API의 결과 다음 클릭 사용 .

1 분 정도 걸릴 수 있습니다. 이제 다음 페이지에 있어야합니다 (활성화 상태가 Enabled 로 설정되어 있는지 확인하십시오 ).

진행 상황 확인을 클릭 하여 목표를 확인하십시오

이제 새 탭을 열고 AutoML UI로 이동하십시오 . 랩 자격 증명을 선택하고 허용  클릭 하여 로그인합니다.

Chrome 사용자를위한 참고 사항 : 이 페이지가 표시되지 않으면 현재 Chrome 사용자 프로필에서 로그 아웃 한 후 다시 열어보십시오.

Google Cloud 프로젝트를 지정하라는 메시지가 표시됩니다. 드롭 다운 메뉴에서 Qwiklabs 프로젝트 ID를 선택하고 계속을 클릭하십시오 .

지금 설정 버튼을 클릭하십시오 . 시간이 조금 걸립니다.

GCP 콘솔로 돌아갑니다. Cloud Shell에서이 명령을 복사하여 프로젝트 ID 및 Qwiklabs Username에 대한 환경 변수를 작성 <QWIKLABS_USERNAME>하고 실험실에 로그인 한 사용자 이름으로 바꾸십시오.

export PROJECT_ID=$DEVSHELL_PROJECT_ID
export QWIKLABS_USERNAME=<QWIKLABS_USERNAME>

다음 명령을 실행하여 AutoML 권한을 부여하십시오.

gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$QWIKLABS_USERNAME" \
    --role="roles/automl.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \
    --role="roles/ml.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \
    --role="roles/storage.admin"

이제 다음을 실행하여 스토리지 버킷을 생성하십시오.

gsutil mb -p $PROJECT_ID \
    -c regional    \
    -l us-central1 \
    gs://$PROJECT_ID-vcm/

Google Cloud Storage에 교육 이미지 업로드

구름의 이미지를 분류하기 위해 모델을 훈련 시키려면 모델이 다른 유형의 구름과 관련된 이미지 기능에 대한 이해를 개발할 수 있도록 레이블이 지정된 훈련 데이터를 제공해야합니다. 이 예제에서 모델은 3 가지 다른 유형의 구름, 권운, 적운 및 적란운을 분류하는 방법을 배웁니다. AutoML Vision을 사용하려면 훈련 이미지를 Google Cloud Storage에 넣어야합니다.

GCP 콘솔에서 탐색 메뉴를 열고 저장소 > 브라우저를 선택하십시오 .

일단 거기에 도달하면 마지막 단계에서 생성 한 버킷이 표시됩니다.

클라우드 이미지를 추가하기 전에 Cloud Shell에서 다음 명령을 실행하고 아래 명령에서 버킷 이름으로 바꾸어 버킷 이름으로 환경 변수를 생성 YOUR_BUCKET_NAME하십시오.

export BUCKET=YOUR_BUCKET_NAME

교육 이미지는 Cloud Storage 버킷에서 공개적으로 사용할 수 있습니다. gsutilCloud Storage 용 명령 줄 유틸리티를 사용하여 교육 이미지를 버킷에 복사하십시오.

gsutil -m cp -r gs://automl-codelab-clouds/* gs://${BUCKET}

이미지 복사가 완료되면 Cloud 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 Vision 탭으로 다시 이동 하십시오. 여전히 "Google 클라우드 프로젝트 설정 완료"상태 인 경우 다시 확인을 클릭하십시오 .

이제 페이지가 다음과 유사해야합니다.

이전 버전 일 수 있으니 아래 이미지 참고

 

콘솔 상단에서 + NEW DATASET을 클릭하십시오 .

데이터 세트 이름으로 "clouds"를 입력하십시오.

Cloud Storage에서 CSV 파일 선택을 선택하고 방금 업로드 한 파일의 URL에 파일 이름을 추가하십시오 gs://your-project-name-vcm/data.csv.

이 실습에서는 "다중 라벨 분류 사용"을 선택하지 마십시오. 자신의 프로젝트에서 다중 클래스 분류를 수행하는 경우이 확인란을 선택하고 싶을 수 있습니다 .

데이터 세트 작성을 선택 하십시오 .

이미지를 가져 오는 데 약 2 분이 걸립니다. 가져 오기가 완료되면 데이터 세트의 모든 이미지가 포함 된 페이지가 나타납니다.

진행 상황 확인을 확인

이미지 검사

가져 오기가 완료되면 이미지 탭으로 이동합니다.

왼쪽 메뉴에서 다른 레이블 (예 : 적운 클릭)로 필터링하여 교육 이미지를 검토하십시오.

참고 : 프로덕션 모델을 구축하는 경우 높은 정확도를 보장하기 위해 
레이블 당 최소 100 개의 이미지가 필요합니다. 
이것은 단지 데모 일 뿐이므로 20 개의 이미지 만 사용되므로 모델을 빠르게 학습 할 수 있습니다.

이미지에 잘못 레이블이 지정된 경우 이미지를 클릭하여 레이블을 전환하거나 학습 세트에서 이미지를 삭제할 수 있습니다.

각 라벨에 몇 개의 이미지가 있는지에 대한 요약을 보려면 LABEL STATS를 클릭하십시오 . 브라우저 왼쪽에 다음이 표시됩니다.

참고 : 아직 레이블이 지정되지 않은 데이터 세트로 작업중인 경우 
AutoML Vision은 사내 휴먼 레이블링 서비스를 제공합니다.

모델 훈련

모델 훈련을 시작할 준비가되었습니다! AutoML Vision은 모델 코드를 작성할 필요없이 자동으로이를 처리합니다.

당신의 구름 모델을 학습하기 위해, 이동 기차 탭을 클릭 시작 훈련 .

모델 이름을 입력하거나 기본 자동 생성 이름을 사용하십시오.

남겨 클라우드 호스팅 을 선택하고 클릭 시작 훈련 .

이는 작은 데이터 세트이므로 완료하는 데 약 5 분이 걸립니다.

모델 평가

에서 평가 탭, 당신은 모델의 정밀도 및 호출에 대한 정보를 볼 수 있습니다. 다음과 유사해야합니다.

당신은 또한 점수 임계 값으로 놀 수 있습니다 :

마지막으로 아래로 스크롤하여 Confusion 매트릭스를 봅니다.

이 모든 것은 모델 정확도를 평가하고 교육 데이터를 개선 할 수있는 위치를 확인할 수있는 일반적인 머신 러닝 메트릭을 제공합니다. 이 실습에서는 정확도에 중점을 두지 않았으므로 예측 섹션에 대한 다음 섹션으로 넘어갑니다. 직접 정확도 측정 항목을 찾아보세요.

 

예측 생성

이제 가장 중요한 부분이되었습니다 : 이전에는 보지 못한 데이터를 사용하여 훈련 된 모델에 대한 예측 생성.

AutoML UI에서 예측 탭으로 이동 하십시오.

예측을 생성하는 몇 가지 방법이 있습니다. 이 실습에서는 UI를 사용하여 이미지를 업로드합니다. 모델이이 두 이미지를 분류하는 방법을 볼 수 있습니다 (첫 번째는 권운, 두 번째는 적란운입니다).

이 이미지들을 각각 마우스 오른쪽 버튼으로 클릭하여 로컬 컴퓨터로 다운로드하십시오.

AutoML Vision UI로 돌아가서 이미지 업로드를 클릭 하고 클라우드를 온라인 예측 UI에 업로드하십시오. 예측 요청이 완료되면 다음과 같은 내용이 표시됩니다.

진행 상황 확인 - pedictions를 실행 

매우 멋지다-모델은 각 구름 유형을 올바르게 분류했습니다!

축하합니다!

웹 UI를 통해 사용자 정의 기계 학습 모델을 학습하고 예측을 생성하는 방법을 배웠습니다. 이제 자신의 이미지 데이터 세트에서 모델을 훈련하는 데 필요한 것을 얻었습니다.무엇을 다루 었는가

  • Cloud Storage에 교육 이미지를 업로드하고 이러한 이미지를 찾기 위해 AutoML Vision 용 CSV를 생성하십시오.
  • AutoML Vision UI에서 라벨 검토 및 모델 교육
  • 새로운 클라우드 이미지에 대한 예측 생성

 

 

2019년 하반기 [머신러닝 통합반] 코세라 & 퀵랩

개요

Google Cloud Speech API를 사용하면 Google 음성 인식 기술을 개발자 응용 프로그램에 쉽게 통합 할 수 있습니다. Speech API를 사용하면 서비스에서 오디오를 보내고 텍스트를받을 수 있습니다 (자세한 내용은 Google Cloud Speech API 란 무엇입니까? 참조).

당신이 할 일

  • API 키 생성

  • 음성 API 요청 만들기

  • 음성 API 요청을 호출

설정 및 요구 사항

Google Cloud Shell

Google Cloud Shell 활성화

Google Cloud Shell은 개발 도구가로드 된 가상 머신입니다. 영구적 인 5GB 홈 디렉토리를 제공하며 Google 클라우드에서 실행됩니다. Google Cloud Shell은 GCP 리소스에 대한 명령 줄 액세스를 제공합니다.

  1. GCP 콘솔의 오른쪽 상단 툴바에서 Open Cloud Shell 버튼을 클릭합니다.

  1. 계속을 클릭하십시오 . 

환경을 프로비저닝하고 연결하는 데 약간의 시간이 걸립니다. 연결되면 이미 인증되었으며 프로젝트는 PROJECT_ID 로 설정됩니다 . 예를 들면 다음과 같습니다.

gcloud 는 Google Cloud Platform 용 명령 줄 도구입니다. Cloud Shell에 사전 설치되어 제공되며 탭 완성을 지원합니다.

 

API 키 생성

curlSpeech API에 요청을 보내는 데 사용하므로 요청 URL을 전달할 API 키를 생성해야합니다.

API 키를 작성하려면 탐색 메뉴 > API 및 서비스 > 신뢰 정보를 클릭하십시오 .

그런 다음 신뢰 정보 작성을 클릭 하십시오 .

드롭 다운 메뉴에서 API 키를 선택하십시오 .

방금 생성 한 키를 복사하십시오.

이제 API 키가 있으므로 각 요청에 API 키 값을 삽입하지 않아도되도록 환경 변수로 저장합니다.

다음 단계를 수행하려면 ssh를 통해 프로비저닝 된 인스턴스에 연결하십시오. 탐색 메뉴를 열고 Compute Engine을 선택하십시오 . 다음과 같은 프로비저닝 된 Linux 인스턴스가 표시되어야합니다.

SSH 버튼을 클릭하십시오. 대화식 쉘로 이동합니다. 명령 행에 <YOUR_API_KEY>방금 복사 한 키로 다음을 입력하십시오 .

export API_KEY=<YOUR_API_KEY>

나머지 실습을 위해이 SSH 세션을 유지하십시오.

Speech API 요청 만들기

참고 : Google Cloud Storage에서 사용 가능한 사전 기록 된 파일을 사용합니다 gs://cloud-samples-tests/speech/brooklyn.flac. 당신은 음성 API로 전송하기 전에이 파일을들을 수 있습니다 여기에 .

request.jsonSSH 명령 행에서 작성하십시오 . 이를 사용하여 음성 API에 대한 요청을 작성합니다.

touch request.json

이제 열 request.json사용하여 원하는 명령 줄 편집기 ( nano, vim, emacs) 또는 gcloud. 샘플 원시 오디오 파일 request.json의 uri값을 사용 하여 파일에 다음을 추가 하십시오.

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

요청 본문에는 config및 audio객체가 있습니다.

에서 config, 당신은 어떻게 요청을 처리 할 수있는 음성 API 알려주기 :

  •  encoding매개 변수는 파일이 API로 전송되는 동안 사용중인 오디오 인코딩 유형을 API에 알려줍니다. FLAC.raw 파일의 인코딩 유형입니다 (자세한 내용은 인코딩 유형에 대한 설명서 ).

config객체에 추가 할 수있는 다른 매개 변수 encoding가 있지만 유일한 매개 변수 입니다.

에서 audio객체, 당신은 API를 클라우드 스토리지에있는 오디오 파일의 URI를 전달합니다.

이제 Speech API를 호출 할 준비가되었습니다!

Speech API 호출

다음 curl명령 을 사용하여 API 키 환경 변수와 함께 요청 본문을 Speech API로 전달합니다 (모두 하나의 명령 줄에 모두 있음).

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json \
"https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

응답은 다음과 같아야합니다.

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

 transcript값은 음성 파일의 오디오 파일 텍스트 녹음을 반환하며 confidenceAPI가 오디오를 정확하게 녹음했는지 확인합니다.

syncrecognize위 요청 에서 메소드 를 호출했음을 알 수 있습니다 . Speech API는 동기식 및 비동기식 음성 텍스트 변환을 모두 지원합니다. 이 예제에서는 완전한 오디오 파일을 보냈지 만 syncrecognize, 사용자가 여전히 말하고있는 동안이 방법을 사용하여 텍스트 음성을 텍스트 음성으로 스트리밍 할 수 있습니다 .

Speech API 요청을 만든 다음 Speech API를 호출했습니다. 다음 명령을 실행하여 응답을 result.json파일 에 저장 하십시오.

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json \
"https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}" > result.json

 

 

 

 

 

 

+ Recent posts