記事概要
- 目的
- キャチロボのお菓子(箱型のお菓子, 5種類)の分類+追跡+3D位置出力を、YOLOv12 + BoT-SORT、Realsense D435を利用して試作した
- 結果
- 小規模データ(≈200個/クラス)でも検出がある程度は可能になった
- 検出単体より、トラッキングを入れた方が、クラスのちらつきが減少し、認識精度が向上した
はじめに
今回、友人にお誘いいただき、第15回キャチロボバトルコンテストに参加させていただきました。
その際、自動でお菓子をロボットが取るために、お菓子を画像認識したいという目的で、
開発させてもらいました。
今回は、自動化まで行けずに採用見送りとなりましたが、開発結果の報告をさせていただきます。
処理の概要
入力->画像認識->トラッキング->出力の流れで処理を行います。
入力として、RealsenseD435からRGB画像とDepth画像を取得します。
画像認識にはYOLOv12 クラスタリングモデルを使い、5種類のお菓子を認識します。
トラッキングにはSORTを使い、認識したオブジェクトにIDを振り、追跡します。
出力として、認識したオブジェクトの3次元位置を出しています。
物体認識
物体認識ではYOLOv12を使い、5種類のお菓子を認識します。
学習には、キャチロボのお菓子5種類を用意し、各オブジェクト200個程度のデータセットを作成しました。
物体認識単体だと、認識時のクラスのチラツキがひどく、精度が高くありませんでした。
クラスのちらつきがひどい原因として、データ数不足、物体の見た目の類似性、背景の影響などが考えられます。
トラッキング
画像認識単体だとクラス分類のちらつきがひどかったので、トラッキングを導入しました。
トラッキングにはUltralytics YOLOのBoT-SORTを使い、認識したオブジェクトにIDを振り、フレーム間で追跡することを行いました。
トラッキングを導入することで、クラスのチラツキが減り、認識精度が向上しました。
まとめ・感想
キャチロボ用お菓子の画像認識・トラッキングを試しました。
画像認識はYOLOv12, トラッキングはSORTを使うことで、各オブジェクト200枚くらいのデータセットで、物体認識がある程度できるということは確認できました。
しかし、実用するためには、認識精度自体を上げないと使えないかも?
