Cloud Healthcare APIのDICOM tutorialsを試したので手順をまとめておきます。結構いったりきたりで漏れはあるかも。
DICOMチュートリアルは、いわゆる教師あり機械学習の学習から予測までの一連の作業をGoogle Cloud Platform上で行うものであり、JupyterをベースとしたCloud Datalabを用いて、
- TCIA CBIS-DDSMからマンモグラフィー画像をDICOMデータとしてアップロードし、画像をMLモデルへ入力可能なJPEGへ変換する。(Preparing your images)
- 出力(教師)データである乳腺濃度(breast density)を数値化した値もラベルとして取得し、画像URIとラベルを対とするCSVファイルを作成する。(Create a CSV file with image URIs and labels)
- 入出力データをもとに学習をおこなう。
- 別途取得した検査データの予測をおこなう。
といった流れで作業を進めていきます。
学習フェーズには、
1. Cloud AutoML Visionを使ったお任せでいい塩梅にモデルをトレーニングする手順
2. Cloud ML Engine(AI Platform)を使って細やかにトレーニングしていく手順
の2通りがあり、Notebookが別になっています。
説明はAutoMLを前提にしていますが、学習フェーズ以外の手順はほぼ同じです。
手順
TCIA REST APIキー入手
TCIA CBIS-DDSMからデータセット取得のため、事前にAPI-KEYを取得しておきます。
文面は適当です。Request受付が即座に返され、半日後にはいただけました。人的作業もありそうなので、時間帯や平日・休日による前後はありそうです。gmailアカウントで自分が取得できたぐらいなので、おそらく誰でも入手できると思います。
Google Cloud Platformアカウント開設
ほぼ年中ですが、いまなら12ヶ月トライアル無料で\$300のクレジットがついてきます。その他、アナウンスされているか知りませんが、プロモーションでAutoML初回利用時にAutoML関連で使用できる約$900分のクレジットがついてきているようです。課金を有効にするため、少なくとも個人はクレジットカードを登録する必要があります。
誤ってAutoML関連のクレジットが付けられていたようで、使う間も無く訂正されました。
ちなみに、チュートリアル実施にかかる費用は、トライアル期間ならほぼ\$0、そうでないならだいたい\$10前後かと思います。
Google Healthcare APIプロジェクト作成
Google Healthcare APIを有効にしたプロジェクトを作成または割り当てます。
途中gcloudコマンドを使用していますので、Cloud SDKもインストールしておきましょう。
Datalabインスタンス作成
Google Cloud Datalabは事実上Google Cloud AI Platform Notebooksにアップグレードされています。サイトの手順に従ってください。
GitHubチュートリアルのML Codelabs on Cloud Healthcare APIの手順に従い、Datalabインスタンスを作成します。
最初に、Cloud Datalab APIを有効化しておくのを忘れないでください。
続いてサービスアカウントに権限を付与しておきます。
PROJECT_ID=<YOUR PROJECT_ID>
gcloud config set project ${PROJECT_ID}
PROJECT_NUMBER=`gcloud projects describe ${PROJECT_ID} | grep projectNumber | sed 's/[^0-9]//g'`
COMPUTE_ENGINE_SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member "serviceAccount:${COMPUTE_ENGINE_SERVICE_ACCOUNT}" --role roles/pubsub.admin
そうしましたらDatalabインスタンスを作成します。
ZONE="us-central1-c"
gcloud components install datalab
datalab create mydatalab --machine-type n1-standard-4 --zone ${ZONE}
初回インスタンス作成時は、そのまま作業用のローカルサーバーを立ててくれますが、次回からは自分で接続します。
datalab connect --zone us-central1-c --port 8081 mydatalab
サーバーが立ち上がってWEBページを開いたら、Notebookを追加して、このチュートリアルのリポジトリ自身をgit cloneでコンテンツに追加します。
!git clone https://github.com/GoogleCloudPlatform/healthcare.git
あとは、Notebookである
healthcare/imaging/ml_codelab/breast_density_auto_ml.ipynb
を開いて、説明を読みながらコードセルを上から順次実行していきます。
その際、
- @paramとコメントのある変数は適宜自分の環境に合わせて書き換えておきます。
- python3だと、ところどころつまづきます。
Googleのベータは、ベータであってベータでなかったりもしますが、チュートリアルは結構つまずきどころ満載でした。Forkして修正とコメントを入れておきましたので、手っ取り早く動かしたい場合は、こちらを使用するか、参考にしてください。
!git clone https://github.com/tatsu/healthcare.git -b try-tutorials
整理できたらプルリクしておきます。