YOLO3でポリープ検出AI作ってみた
今回作ってみたもの
このような画像から
以下のように、ポリープを検出AIを作ってみました!
経緯
・Udemyで物体検出を学び、
・Qiitaで記事を見て、背中をそっと押してもらえたので、作ってみました。
学習
当初はルンバを改造して、何かしらを追尾させたいと思い学習を始めました。
独学より効率がよいと思い立ち以下の講座を受けました。アンカーボックスなど基本的な概念など学ぶことができました:)
実践
受講後に何作ろかと考えている時に、以下の記事を読み、自分も真似てポリープ検出AIを作ってみることに!
作成の流れ
大体記事通りですが、以下です。
データ準備
以下から内視鏡の画像データをDL。
以下のツールを使い、アノテーションファイルを作成。
記事と同様に500枚の学習データ準備。
Training
記事と同様にYOLOv3を採用。
https://github.com/qqwweee/keras-yolo3
順調に学習していたと思いきや、ResourceExhaustedErrorが発生。。。(悲)
エラー回避
GPUのメモリが足りないようなので、以下の変更で必要なメモリサイズをコンパクトにして無事動いた。
・画像サイズの削減
416x416 -> 128x128
・batchサイズの削減
64 -> 32
検出
こんな感じでわかりやすいものは検出できるようになりました!
ただ、以下の画像の様に検出できないものもありました。
まだまだ改善の余地はありますね。
人の目で見ても見づらいので、画像サイズを削減したせいでしょうか。
今後
画像サイズ削減しないで学習させてみたいと思います。