低解像度画像からの物体検出

作成期間
Mar 15, 2023 → May 17, 2023
タグ
物体検出

YOLOを用いた血液細胞の検出

背景

AIの進歩により、AIを用いた画像診断ができるようになっている。しかし画像診断を行うコンピュータには高価なGPUや高い処理性能のコンピュータ、高解像度の画像が使われるのが一般的である。

目的

医療画像の診断をRaspberry piを用いて行えば、安価に診断機器を作れる可能性がある。今回は画素数が違う医療画像を用いて、血液細胞の検出を行った。データセットとしては比較的素人でも結果がわかりやすい血液細胞の画像を用いた。

概要

YOLOv5を用いて、低解像度の血液細胞の画像から、白血球・赤血球を検出した。

結果

白血球(白枠)・赤血球(黒枠)を検出した画像。
左から(256x256)、(128x128)、(64x64、100epochs)、(64x64、500epochs)
白血球(白枠)・赤血球(黒枠)を検出した画像。 左から(256x256)、(128x128)、(64x64、100epochs)、(64x64、500epochs)
まずは、画像の解像度を低くして、YOLOでの物体検出の精度(mAP)がどのように変化するのかを調べたところ、解像度が低くなるに連れて、精度が下がることがわかった。
解像度が低い状態で、精度を上げるにはどうすればいいか、試行錯誤した。
結論を述べると、低解像度な画像は学習不足に陥っており、学習数を増やすと、精度が向上した。
学習回数と精度(mAP)の関係
学習回数と精度(mAP)の関係
256x256の解像度の画像ではエポック数が100程度でmAPが1に近づいているが、128x128や64x64ではmAPがエポック数100程度ではまだ学習の余地があることがわかった。
 

工夫点・反省点

notion image
精度を上げるため次の4つの前処理を行った。
  • グレースケール化
  • エッジ検出
  • グレースケール化 + エッジ検出
  • エッジ検出 + グレースケール化
しかし、上記の図の通り、精度は改善できなかった。
notion image
原因としては次のことが考えられる。
  • CNNを用いるYOLOでは色情報を使うので色情報が失われると精度が低くなる?
  • 畳み込み(CNN)は、フィルタを使用して画像内のピクセルを滑らかにし、これにより、エッジが強調され、前処理が効果が出ない?
結果としては学習不足が発生していて、学習回数を上げると精度が上がった。
Built with Potion.so