구글 클라우드 인사이트 BigQuery ML을 이용한 이미지 분류 구글 인사이트 by Miyeon. Jo 2023년 07월 25일 2023년 07월 25일 462 구글 PS1팀 김소원목차개요BigQuery ML을 사용한 이미지 데이터 분류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’) 선택하여 쿼리를 실행하며 실행 결과는 다음과 같습니다. 출처https://cloud.google.com/blog/products/data-analytics/build-an-image-data-classification-model-with-bigquery-ml?hl=enhttps://cloud.google.com/bigquery/docs/inference-tutorial-resnet#required_permissionshttps://tfhub.dev/tensorflow/resnet_50/classification/1?tf-hub-format=compressed