BigQuery ML을 이용한 이미지 분류

구글 인사이트

by Miyeon. Jo
1. 개요

BigQuery의 내장된 BQML(BigQuery Machine Learning) 및 분석 기능을 통해 SQL 쿼리를 사용하여 코드 없이 predictions을 생성할 수 있습니다.

2. BigQuery ML을 사용한 이미지 데이터 분류
2-1. 데이터 세트 및 BigLake 연결 생성
  • DataSet 생성
  • BigLake 연결

BigLake 연결을 사용하면 BigQuery 액세스 제어 및 보안을 유지하며 외부 데이터 소스를 연결할 수 있습니다. 이 연결을 통해 Cloud Storage에서 개체를 읽습니다.

BigQuery Explorer 창에서 ADD DATA를 클릭합니다.

External Data Sources에 대한 연결을 클릭하고 BigLake 및 Remote functions option을 선택합니다.

2-2. Cloud Storage Bucket 생성 및 권한 부여

Cloud Storage Bucket 을 사용하여 생성하려는 모델의 이미지 파일들을 업로드 합니다.

  • Bucket 생성
    생성한 DataSet 및 Connection과 동일한 리전에 생성합니다.
  • Bucket 생성 후 이미지를 업로드 하고, Connection 서비스 계정에 필요한 권한을 부여하여 이미지에 접근합니다.

ex)
. export sa=”yourServiceAccountId@email.address”
. gsutil iam ch serviceAccount:$sa:objectViewer “gs://<<bucket>>

2-3. External Object Table 생성

Bucket 데이터에 액세스 하기 위해 BigQuery에서 외부 개체 테이블을 만듭니다.

아래와 같이 비정형 이미지를 정형 데이터처럼 생성하고 조작할 수 있습니다.

2-4. 모델 생성 및 Cloud Storage에 업로드

이 예시는 ResNet 50 모델을 사용하여, 생성한 Object 테이블에서 추론을 실행합니다.

  • 이미지가 있는 Storage 위치에 모델을 업로드 합니다.(모델 다운로드 url은 출처 3번입니다)
2-5. 모델을 BQML에 로드후 추론

생성한 External Table과 동일한 BigQuery Dataset에 모델을 로드하고 Cloud Storage에 저장한 이미지를 적용합니다.

  • Model 생성 SQL 실행
    실행이 완료되면 다음과 같이 Explorer 에서 확인 가능합니다.
  • 모델은 다음과 같습니다. (Labels에서 출력 필드를 나타내는 “activation_49” 필드를 확인할 수 있으며, Features에서 모델에 입력될 필드를 나타내는 “input_1” 필드를 확인 할 수 있습니다.)
  • 추론생성한 BQML 모델을 사용하여 추론을 수행하기 위해 BigQuery에서 해당 테스트 이미지(ex)’gs://yoga_images/Downdog/00000097.jpg’) 선택하여 쿼리를 실행하며 실행 결과는 다음과 같습니다.
문의하기 베스픽 구독하기
궁금한 점이 있다면 클릭해주세요.