【機械学習活用】胸部X線画像で新型コロナウイルスの感染判別に挑戦してみた

今回開発したのは、胸部のX線画像を用いて新型コロナウイルスに感染しているかどうかを判別するモデルです。
作成において、Aidemy Premium PlanのAIアプリ開発講座で学べる技術を使用しています。

Application URl: https://detect-covid19.herokuapp.com/
メンテナンスは行っていません。リンク切れの場合もあります。

このアプリケーションは、X線画像から新型コロナウイルスに感染しているかどうかを判定するものです。 ただし、プログラミング学習目的のアプリケーションであり、正確に新型コロナウイルスに感染しているかを判定するためのツールではありません。

データセットについて

新型コロナウイルスの陽性患者のサンプルはこちらから。
健康体のX線画像はこちらから。

それぞれのデータセットから、ノイズがのってしまっている画像を取り除きました。

それぞれから67枚の画像を選び、そのうちPositive(陽性)とNegative(陰性)から各6枚ずつ計12枚をTest setとし、残りのデータを混ぜ合わせた中からランダムに選択された20%をValidation setとしました。

データのサンプル

  • Positive(陽性)
  • Negative(陰性)

事前処理

以下の事前処理を行いました。

  • 224 by 224にリサイズ
  • 10度以内(両方向)のランダム回転
  • 0-1範囲にリスケール

モデルの構造

学習済みのVGG16の最終層を取り除き、複数の層を追加しました。詳しくは以下の画像をご覧ください。

ハイパーパラメータを含む設定

  • Batch size: 1
  • Epochs: 20
  • Optimizer: Learning Rate 0.01でLR decayはLR / Epochsに設定しました。
  • Loss: Binary crossentropy

モデルの評価

バッチサイズを1に設定したためどちらの値も小刻みに変化していますが、極端なオーバーフィッティングやアンダーフィッティングはみられませんでした。

まとめ

今回はVGG16をもとに転移学習を行い、X線画像に対して2つのクラスの分類を行いました。

そもそものデータ量が少量であるため、本当に正確に判別できているかは分かりません。

また、トレーニングにかかる時間やメモリも特に気にする必要はありませんでしたし、ランダムに設定したパラメータでそこそこの数字が取れたので、チューニングは行っていません。

▼この記事はQiitaでも公開しています。

https://qiita.com/boblef/items/07f303c09d8805ebc35d

今回X線画像を活用して新型コロナウイルス感染の判別モデルの作成に挑戦したように、画像認識技術は「医療AI」の一つとして医療分野で活用されています。

Aidemy Premium PlanのAIアプリ開発講座で画像認識技術・ディープラーニングを学び医療にも活用できるスキルを身につけませんか?

プログラミング未経験からでもAIスキルが身につくAidemy Premium




PythonやAIプログラミングを学ぶなら、オンライン制スクールのAidemy Premiumがおすすめです。
「機械学習・ディープラーニングに興味がある」
「AIをどのように活用するのだろう?」
「文系の私でもプログラミング学習を続けられるだろうか?」
少しでも気になることがございましたら、ぜひお気軽にAidemy Premiumの【オンライン無料相談会】にご参加いただき、お悩みをお聞かせください!