物体検出アルゴリズムYOLOを用いた水槽内の魚検出
はじめに
はじめまして。株式会社タスデザイングループの学生アルバイトをしております、大学4年のフセです。
大学では生物情報学を専攻しており、主に機械学習を用いたRNAの解析などを行なっております。このアルバイトでは主に、同じく機械学習を用いたタスクを扱っており、大学での知識をアルバイトで活かしたり、アルバイトで得た知識を大学の研究に活かしたり、非常に有意義な時間であります。
今までのタスク
このアルバイトでは以下のようなタスクを扱いました。
LLM(大規模言語モデル)を用いた小説の要約
LLMをプレイヤーをしたゲーム(じゃんけん、まるばつゲーム、ポーカー)
物体検出ソフトウェアyoloを用いた水槽内の魚の物体検出
この記事では、これらのタスクの1つである「物体検出アルゴリズムYOLOを用いた水槽内の魚検出」について紹介します。
物体検出アルゴリズムYOLOを用いた水槽内の魚の物体検出
YOLOとは
YOLOとは、物体を検出する時に使用される代表的なアルゴリズムです。このタスクではこのYOLOを用いた物体検出モデルを、魚でファインチューニングすることで、魚検出モデルを作成します。
YOLOとは?他の手法との違いやメリット・デメリットについて解説
タスク詳細
以下を行うアプリケーションの開発です。
水槽内の動画から魚(鯛、鰤、鮭など)を検出
検出した魚の大きさを推定(→収穫時期の推定)
手順
以下の手順で開発を行いました。
1. 水槽内画像で魚のラベル付け(教師データの作成)
提供していただいた水槽内の動画(鯛、鰤、鮭のそれぞれ)から、適当な枚数の静止画を切り出す。
AWSのラベリングジョブを使用し、画像内の魚をラベル付け。
画像から魚が確認しにくい場合(水質の問題など)は、既存の水質改善モデルを用いた。
例) 水質改善モデルCLAHE用いた結果(鮭)
⭕️ 画像が鮮明になり、モデルも鮭を検出しやすくなりました。
2. 魚でYOLOモデルをファインチューニング(モデルの学習&予測)
ラベル付けした画像からトレーニングデータとテストデータを作成。
YOLOモデルの学習と予測。
例) 鮭の教師データと予測結果
⭕️ 鮭をおおかた正しく検出できていることがわかります。
3. 検出した魚の大きさ推定(未)
深度推定モデルを用いて、検出した魚のカメラからの距離を推定(しようとした)
例) 鮭の深度推定
⭕️ 複数の鮭のカメラからの距離の違いを認識できている
❌ 深度の値がカメラからの距離ではなく、モデル独自の値であるので、大きさの推定ができない。
推定したカメラからの距離を用いて、魚の大きさを推定(未)
❓ 魚のカメラからの距離がわかれば、カメラの焦点距離や画像上の魚の大きさなどから、実際の魚の大きさが推定できる。
まとめ
今回はYOLOモデルをベースとした魚検出モデルの作成をしました。魚の検出に関しては、画像の水質改善モデルなどを駆使することで、大方達成することができました。しかし魚の大きさ推定に関してはまだ未遂であり、今後も他の深度推定モデルを試すなど模索する予定です。
最後に
このタスクをはじめ、タスデザイングループの学生アルバイトは、大学ではできないような機械学習の応用に触れることができる機会で、自分にとってとても為になる経験です。この経験は今後、社会に出た際に活かしていきたいと思います。