1. HOME
  2. ブログ
  3. IT技術
  4. 【前処理編】肺のCT画像からCOVID19かどうかの判断は可能か?【機械学習】
【前処理編】肺のCT画像からCOVID19かどうかの判断は可能か?

【前処理編】肺のCT画像からCOVID19かどうかの判断は可能か?【機械学習】

前処理編~肺のCT画像からCOVID19か予想できるのか?

肺のCT画像

今回は、肺の CT 画像から、COVID 19か否かを予測する深層学習モデルを、「PyTorch」で実装してみたいと思います。

PyTorch を採用した理由は、「Kaggle」での実装例も多く、公式ドキュメントも充実しているためです。

というわけで、Kaggle に公開されているデータセットを用いて、「二値分類」をしていきたいと思います。

実行は、すべて Kaggle の notebook 上で行っているので、自宅にGPUがない方でも、すぐに試すことができます。

ちなみに、こちらの記事は「プログラミングで分類に挑戦する」ということが目的で、COVID 19を確実に分類できるわけではありませんので、予めご了承をお願い致します。

こちらの記事もオススメ!



データの下見と前処理

今回使用するデータセットは、「COVID 19の画像」と「そうではない画像」とで、フォルダ分けして与えられています。

DataFrameにまとめる

使いやすいよう、「Pandas」のデータフレームに、まとめておくことにしました。

以下のように、「covid」の列が疾患か否かを示しており、疾患である場合のラベルは「1」です。

DataFrameにまとめる

「train」「test」ともに、COVID 19である割合は、5割ほどで乖離はなさそうでした。

画像をみてみる

画像分類をするとき、「何枚かの画像は、自分の目で見る」ということが大事です。

特に医療画像では、作成された過程などにより、かなりの差異が生じます。

たとえば、下の3枚の画像が似ていないことは、明らかですね。

肺のレントゲン画像1
肺のレントゲン画像2
肺のレントゲン画像3

また、画像のサイズも、均一ではなさそうです。

この差をなくすために、前処理が一般的に必要とされていますが、今回はお試しなので割愛します。

ちなみに COVID 19では、肺の部分が、白く抜けたようになります。

交差検証をする

機械学習モデルの作成において大事なことは、「特徴量生成」や「どのモデルを使うか」より、適切な Validation をとることだ。

という金言があるように、データの分け方を考えることは、かなり重要です。

とりあえずの層化抽出

今回は、「正例」と「負例」との割合と、fold ごとに等しくする層化抽出を行います。

メタデータが与えられている場合なら、他の分け方を考えても良いと思います。

CT 画像の形式としてよくある「DICOM データ」では、患者 ID が付随している可能性が高いです。

この場合は、「GroupKFold」を用いることが、選択肢となります。

理由は、同じ患者の画像が別の fold に混ざることで、不当に精度が上がることを防ぐため。

同じ患者であれば、「画像が似ている」か「同じ疾患を持っている」、という判断もできます。

準備編へつづく!

こちらの記事は、【準備編】へつづきます。

こちらの記事もオススメ!



書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア