AI 画像認識を使用した乳がんの検出と分類

概要

人工知能 (AI) とは、問題解決などの認知機能の点で人間の知能を模倣できるアルゴリズムとプロセスを指します。 機械学習と深層学習は AI のサブカテゴリです。 機械学習には、データまたは 深層学習には、前処理されたデータを必要とせずに人間のニューラル ネットワークを模倣する試みが含まれます。 AI の主な用途には、音声検索と音声認識、パーソナライズされたショッピングの推奨などが含まれます。

このチュートリアルでは、深層学習のサブセットである転移学習の概念を Rescale プラットフォームに適用する方法を学習します。 転移学習は、ベース データセットとベース タスクでモデルをトレーニングし、そのトレーニングからモデルが学習した内容を別のデータセットとタスクに転送することに重点を置いています。 転移学習には XNUMX つのアプローチがあります。モデルを自分で開発する方法と、事前トレーニングされたモデルを使用する方法です。 自分でモデルを開発する場合、最初に予測モデルを選択する必要があります。 モデリング トレーニングするためのデータが豊富にある問題。 次に、モデルが基本タスクから何かを学習する、ただし学習しすぎないように、熟練したモデルを開発する必要があります。そうしないと、XNUMX 番目のタスクがあまり学習しなくなります。 次に、基本タスクから学習したモデルを XNUMX 番目のタスクの開始点として使用します。 ただし、事前トレーニング済みモデルを使用する場合は、予測モデリング問題を開発して基本タスクでトレーニングするのではなく、オープンソースの事前トレーニング済みモデルを選択し、それを XNUMX 番目のタスクの開始点として使用するだけで済みます。

Microsoft ResNet50 や Google Inception Model など、大量の事前トレーニング済みモデルがインターネット上で入手できます。 今日は、大規模な画像データセットで事前トレーニングされた画像分類モデルである Microsoft ResNet50 を使用します。このモデルは多数のクラスで予測を行う必要があります。 これにより、モデルは写真から特徴を抽出する方法を学習し、入力画像が何を示しているかをユーザーに伝えることができます。

より具体的には、このチュートリアルでは、Microsoft ResNet50 の事前トレーニング済みモデルを使用して、780 年に以下の年齢の女性から取得した 2018 枚の乳がん超音波画像の大規模なデータセット (トレーニングとも呼ばれます) のサブセットでモデルをさらにトレーニングする方法を示します。 25 歳と 75 歳の場合、同じデータセットから別の乳房超音波画像を入力して、画像内の乳房が悪性、良性、または正常 (別名: )。 Rescale Workstation でこのチュートリアルを実行するには、Google Chrome Interactive ソフトウェアと Conda Miniconda Interactive ソフトウェアを使用します。 Rescale Workstation は、リアルタイムでモデルを操作するのに役立ち、分類する画像を変更したり、コードを変更したりすることができます。 このチュートリアルでは、コードのすべてのブロックを確認するのではなく、Rescale でのセットアップと結果に焦点を当てます。

このチュートリアルはから引用されました Kaggle の「ResNet50 を使用した乳がん検出」 (Khizar Khan 著)。 乳房超音波画像データセットは以下から取得されました。 Al-Dhabyani W、Gomaa M、Khaled H、Fahmy A。乳房超音波画像のデータセット。 データの概要。 2020 28 月;104863:10.1016。 DOI: 2019.104863/j.dib.XNUMX。

ビデオチュートリアル

ワークステーションの構成

次のセクションを読んで、適切に設定してください。 .

  1. Rescale の使用を開始するには、にアクセスしてください。 platform.rescale.com アカウント情報を使用してログインします。 Rescale を使用するには、追加のソフトウェアをダウンロードしたり実装したりする必要はありません。 Rescale はブラウザベースなので、ワークステーションまたは自宅のコンピュータから分析に安全にアクセスできます。
  2. このプロジェクトに必要な XNUMX つの添付ファイルをダウンロードします。 Databust_BUSI_with_GT.zip そしてresnet50.ipynbを使用した乳がん検出
  3. まず、 ワークステーション 画面の左上隅にあるアイコン。 これにより、ワークステーションのホーム画面が表示されます。 クリック + 新しいワークステーション その後 新しいワークステーションの作成 サイド画面にプロンプ​​トが表示されたら、ワークステーションに移動します。 ページで見やすくするために変数を解析したりすることができます。
  4. 現在4人 完了するまでのステージ。

まず、ワークステーションに名前を付ける必要があります。 Rescale はすべてのワークステーションを保存するため、後で識別しやすい一意の名前を選択することをお勧めします。 プロジェクトの名前を変更するには、ウィンドウの左上隅にある現在のジョブ名の横にある鉛筆をクリックします。

次に、zip ファイル Databust_BUSI_with_GT.zip と Breast-cancer-detection-using-resnet50.ipynb をクリックしてアップロードします。 このコンピュータからアップロードする

このステップが完了すると、 添付ファイル セットアップ ページは以下のようになります。

に移動するには 分析のセクション。 次に、分析に使用するソフトウェア モジュールを選択する必要があります。 下にスクロールするか、検索バーを使用してソフトウェアを検索できます。 このデモでは、下にスクロールして [Google Chrome Interactive] と [Conda Miniconda Interactive] をクリックします。

次、 設定する必要があります。

  • ドロップダウン セレクターを使用すると、ユーザーは Google Chrome Interactive と Conda Miniconda Interactive の優先バージョンを選択できます。
  • このチュートリアルで使用される入力ファイルは、Google Chrome Interactive バージョンの最新版と Conda Miniconda Interactive バージョン 4.8.4_e2ed でテストされているため、それらのオプションを選択してください。 Google Chrome Interactive を使用すると、Google Chrome 上でコードを操作し、その入力をリアルタイムで変更できます。 Conda Miniconda Interactive を使用すると、さまざまなソフトウェア環境を作成、保存、ロード、切り替えたり、ローカル コンピューター上でパッケージを管理したりできます。 

完了すると、 ページは以下のようになります。

使用する分析コードを選択したので、次のステップは、ワークステーションに必要なコンピューティング ハードウェアを選択することです。 クリックしてください ハードウェアの設定 のアイコンをクリックします。

  • このページでは、希望するものを選択する必要があります こちら このジョブに使用するコアを入力し、その数を入力します。 「コア」は仮想化されたコンピューティング ユニットであり、各コアは物理コンピューターの単一のコアを表します。 このデモでは、次を選択します ルビー オンデマンド優先。 このハードウェアが選択された理由の詳細については、「 Coretype 冒険者 見出しの下 さらなる(オプションの)ステップ
  • また, コア数 ワークステーションを完全に終了するのに十分なメモリを提供できるように、ハードウェアを十分なコアで実行する必要があります。 
  • また, 地域 - ワークステーションが自動的に停止するまでの実行時間です。 ワークステーションが停止すると (所要時間切れになるか、赤いボタンをクリックすることによって)、 Force Stop 画面右上隅のボタン)を押すと、再起動できません。 ワークステーションの実行にかかる金銭的コストとのバランスをとりながら、ワークステーションを完了し、ワークステーションが必要な出力ファイルをすべて生成できる適切な時間を選択する必要があります。 長過ぎる。 このワークステーションでは、エラーを考慮し、入力画像を変更してコードを操作するのに十分な時間を確保できるように、ウォールタイムを 8 時間に設定します。 

あなたの ハードウェアの設定 画面は次のようになります。

最後に、に移動します レビュー の段階 設定が正しいことを確認してください。 以下のようになります。

さて、 Submit: ボタンをクリックします。 

デフォルトのアクセス設定ポップアップが表示されたら、 をクリックします。 なし。 ただし、ローカル クライアントを使用して視覚化する場合は、次のオプションを選択できます。 このIPを使用してください

ワークステーションの監視

ワークステーションのホーム画面からワークステーションの進行状況を監視できるようになりました。 

ソフトウェア設定ページで、下図のように ワークステーション ホーム画面、あなたは見ることができます 私のワークステーション Rescale ユーザーとして作成したすべてのワークステーションを表示するには、次のようにします。

または、見ることができます アクティブなワークステーション 現在実行しているワークステーションを確認するには:

両者に 私のワークステーションアクティブなワークステーション、以下を参照してワークステーションのステータスを追跡できます。 Status:。 ご覧のとおり、ResNet50 ワークステーションを使用した乳がん検出のステータスは現在「開始中」です。これは、ワークステーションが、選択した添付ファイル、ソフトウェア、およびハードウェアをロードしていることを意味します。 Rescale Workstation の対話型部分を準備するステージ。 

送信されると、ワークステーションは数分間「開始中」ステータスになります。 約 8 分後、ステータスが「アクティブ」に変わり、青色のランプが表示されます。 お問合せ ボタンが次のポップアップに表示されます お名前 使用しようとしているワークステーション:

それが起こったら、それを押すと、別のブラウザタブ、つまりブラウザ内ワークステーションに移動します。

ここで、Rescale ワークステーション上の乳がん分類モデルを操作できるようになります。 

ブラウザが表示されたら、 ターミナルエミュレータ

ターミナルで次のように入力します。 ジュピターノート。 Jupyter ノートブックを使用します。これは、Python、Java、R など、さまざまな種類のプログラミング言語でプロジェクトを作成および実行するのに役立つオープンソース ソフトウェアとサービスを提供するためです。 jupyter にアクセスするには、ポップアップされる最初のリンクをクリックします。ノートブックを開き、新しいブラウザが表示されるまで数秒待ちます。

jupyter ノートブックが表示されたら、 フォルダ、次に shared フォルダをクリックし、 resnet50.ipynb を使用した乳がんの検出。 これにより、乳房分類ノートブックの jupyter ノートブックが開くはずです。

次に、ターミナルエミュレータに戻ります。

File 左上隅にある をクリックし、 ターミナルを開く.

Microsoft ResNet50 モデルを使用して乳がん分類モデルを使用するために必要なパッケージをインストールするには、順不同で次のコマンドをターミナルに入力する必要があります。

  • python3 -m pip インストール tensorflow
  • pip3 インストール opencv-python
  • ピップインストールパンダ 
  • pip インストール matplotlib
  • ピップインストール枕 
  • pip install -U scikit-learn scipy matplotlib

次に、自分のコンピュータに従って、赤いアスタリスクのテキストの単語をすべて入力します。 このステップを実装すると、ResNet50 をトレーニングする画像のデータセットにコードが確実にアクセスできるようになります。 コードにファイル パスを挿入しないと、コードは画像のデータセットにアクセスできなくなります。 この画像データセットは、ワークステーションの最初のステップで添付したものと同じである必要があります。 : 添付ファイル。

一番右のファイルアイコンにカーソルを合わせてから、 フォルダ。 クリック 開いたフォルダ

一度に フォルダをクリックし、 shared フォルダにコピーします。 

次に、 データセット_BUSI_with_GT フォルダにコピーします。

フォルダーの上に検索バーがあるはずです。 この検索バー内の内容をコピーします。

次に、コピーした内容をコードの XNUMX 番目のブロックの赤い二重引用符の中に貼り付けます。

最後に、コードの最初の XNUMX ブロックを実行します。コードの XNUMX 番目のブロックにある XNUMX 番目の赤いテキストを変更するには、コードの XNUMX 番目のブロックの出力が必要になります。

ここで、コードを適切に実行するために変更する必要がある 0 番目の赤いテキストは、0 番目のブロックのコードの最初の行に対応する番号が、出力内のどの番号キー「良性」に対応しているかを確認することです。コードの 1 番目のブロック。 たとえば、以下のコードでは、「良性」が辞書の最初のキーです。辞書には、最初に「良性」、次に「正常」、次に「悪性」がリストされます。 コードの 2 番目と 2 番目のブロックは、特に「良性」キーを処理するために記述されているため、「良性」に対応する番号を辞書キーとして入力する必要があります。 Python では最初の番号付けが XNUMX であるため、辞書内の最初のキーは XNUMX、XNUMX 番目のキーは XNUMX、XNUMX 番目のキーは XNUMX として参照されることになります。したがって、このチュートリアルの例では、「良性」は辞書の XNUMX 番目のキーの場合、赤いテキストに入力される数字は XNUMX になります。 

最後に、コードの最後の (16 番目) ブロックにある XNUMX 番目の赤いテキストでは、最初のステップでインポートした画像データセットから分類する画像を選択する必要があります。 セットアップ: アタッチメントこれは、上で変更する必要があった赤いテキストの最初のコードにインポートしたものと同じです。

まず、右端のファイル アイコンにカーソルを合わせてから、 フォルダ。 クリック 開いた フォルダ.

一度に フォルダをクリックし、 shared フォルダにコピーします。

次に、 データセット_BUSI_with_GT フォルダ。 これは、トレーニングされたモデルに基づいて分類できるすべての画像を含む画像データセットです。

画像データセット フォルダーに移動したら、モデルを分類するために、それぞれ良性、悪性、または正常の画像を含むサブフォルダー (良性、悪性、または正常) を選択できます。 このようにして、悪性の乳房の超音波画像を入力している場合、モデルはがんが検出されたことを通知するはずであることがわかります。 この例では、特別な理由があるわけではありませんが、通常の乳房超音波画像 (より具体的には、通常 (3).png) を入力します。 そこで、 通常の このフォルダーには、通常の乳房超音波画像がすべて含まれています。

スクロールして通常の (3).png 画像を見つけます。 見つけたら右クリックして、 コピー ボタン。 これにより、画像のファイル パスがコピーされ、コードがコンピュータ内をトレースして画像を見つけることができるようになります。

最後に、コードの最後のブロックの赤いテキストで、二重引用符内にコピーしたファイル パス リンクを貼り付けます。 繰り返しますが、これはモデルが良性、悪性、または正常のいずれかに分類する画像です。 Dataset_BUSI_with_GT.zip とは異なる画像を分類する場合は、その画像のファイル パスをコピーし、通常の (3).png の代わりにコードの最後のブロックに貼り付ける必要があります。 

ローカル出力とファイル ディレクトリに基づいて XNUMX つの赤いテキストをすべて変更し、上記のすべての手順を完了すると、コードを実行できるようになります。 クリック カーネル Jupyter Notebook の上部にあるバーで、を押します。 再起動してすべて実行。 これにより、以前の実行や変数が邪魔をすることなく、コードを上から下までスムーズに実行できるようになります。

コード 14 と 15 のブロックでは、XNUMX つの別々のグラフがそれぞれ出力されます。

両方のグラフでは、エポック数が増加するにつれて、トレーニング データセットと検証データセットの両方の精度の履歴が増加し、トレーニング データセットと検証データセットの両方の損失の履歴が減少していることがわかります。 エポックとは、モデルを通るトレーニング データセットの XNUMX 回の完全なパスを意味します。 この場合、トレーニング データセットは、Databust_BUSI_with_GT.zip の画像のより小さなサブセットでした。 これは、モデルがトレーニング データセット上で自身をトレーニングすればするほど、モデルが検証セットから画像を予測し、画像の正しい分類 (良性、悪性、正常) を伝える精度が高くなるということを意味します。

すべてのコードの実行が完了すると、画面の下部に数字が表示されることがわかります。 この数字は、モデルが画像をどのように分類したかを示します。数字「0」は入力乳房超音波画像が正常であることを意味し、数字「1」は入力乳房超音波画像が良性であることを意味し、数字「2」は良性であることを意味します。入力された乳房超音波画像が悪性です。 この場合、コードから出力される数値が「0」であるため、モデルが入力された通常の乳房超音波画像を正しく分類したことがわかります。

Coretype Explorer によるワークロードの改善

オプションで、最適化を支援できます。 ワークロード Rescale の Coretype Explorer を使用して、パフォーマンスやコストを向上させます。

Rescale の機能 Coretype Explorer は、プロジェクトを完了するときにどのコア タイプといくつのコアを使用するかを決定するときに役立ちます。 Coretype Explorer を使用すると、コア/ノード、メモリ/ノード、ストレージ/ノード、 GPU/ノード、価格 - オンデマンド、および価格 - オンデマンドの優先順位は、財務、メモリ、プロジェクトのニーズに最適なコア タイプを選択するのに役立ちます。 Coretype Explorer を使用するには、次の場所にアクセスする必要があります。 ハードウェアの設定 セクションに 。 の右下隅にあるはずです。 ハードウェア設定の指定 テーブル:

以下に示すように、Citrine、Iolite-1、Emerald、Ruby の 1 つの異なるコアタイプが、コア/ノード、メモリ/Dode、ストレージ/ノード、価格 - ODP (オンデマンド優先) に基づいて比較されました。 これら 1 つのコアタイプが比較対象として選択された理由は、Emerald はコストが安いためジョブやワークステーションの実行に非常に人気があり、Citrine、Iolite-XNUMX、および Ruby はすべて互いに同様のコストを持っているため、メモリ、ストレージ、およびコアがテストされる。 この特定のチュートリアルのために Ruby が選択されたのは、Citrine や Iolite-XNUMX と同じ価格で Emerald よりも高価ですが、他のすべてのコア タイプよりも大幅に高いコア/ノード、メモリ/ノード、およびストレージ/ノードを備えているためです。これは、大量のメモリ使用量を必要とするプロジェクトや、Rescale Workstation のような対話型環境でコードを実行する必要があるプロジェクトに最適です。 ただし、メモリ、ストレージ、コアよりも価格を重視する場合は、おそらく Emerald を選択するでしょう。

要約

このチュートリアルでは、2018 年に収集され、Microsoft ResNet50 画像分類モデルを使用してトレーニングされた特定の乳房超音波画像データセットから画像を分類する方法を説明します。 将来的には、別の画像ファイル パスをコピーしてコードの最後のブロックに貼り付けることで、画像データセットから分類する画像を変更できます。 同じ原理と Microsoft ResNet50 を使用して、異なる画像データセットをトレーニングして、画像の異なるトピックを分類してみることもできます。

さらに、次を使用して、異なるコアタイプを相互に比較できます。 ワークステーションを実行するために使用するものを選択するのに役立ちます。 セットアップ: ハードウェア設定 あなたのプロジェクトと財務上のニーズに応じて。 参照してください さらなる(オプションの)ステップ このオプションを操作する方法の詳細については、「」を参照してください。 画像分類モデルは、衛星画像での物体識別、動物分類、医療画像処理、ブレーキライト検出などの人工知能や機械学習で広く使用されています。

Rescale でこのチュートリアルを完了すると、高いコンピューティング能力を活用し、さまざまなタイプのハードウェアとソフトウェアにアクセスして、同じ単純なワークステーションのスケーラビリティと多様性をテストできるようになります。また、リアルタイムでコードを操作し、分類する入力画像を変更できるようになります。また、コンピュータ上のローカル Python プログラムでコードを実行する場合と比較して、コードの実行時間は半分以下に短縮されます。