こんにちは。Shinonです。

突然ですが、サバゲーをプレイしたことはありますか?薄暗い森や障害物の多いフィールドで、ふと目の前に人影が現れた瞬間。「味方か?敵か?」と躊躇した0.5秒の間に撃たれてしまう、あるいは誤って味方を撃ってしまう「フレンドリーファイア」は、サバゲーマーにとって永遠の課題です。

「このアナログでシビアな課題を、画像処理とAIの力で解決できないか?」

そんな思いつきから、カメラに映る人物のマーカー色(赤・黄)を自動識別し、ゲームや映画のARのように画面上でターゲットを枠で囲む「敵味方識別システム(IFF)」のプロトタイプ開発に着手しました。今回は、その開発アプローチと技術的な試行錯誤のプロセスをご紹介します。

 

1. 方式の比較検討:どのように「敵と味方」を見分けるか

システムを設計するにあたり、最も重要なのは「いかにして人と色を正確に認識するか」です。単に技術を盛り込むのではなく、実現可能性とコストの観点から以下の2つのアプローチを比較検討しました。

アプローチA:物体検出モデルの独自学習(YOLOフルスクラッチ)

最新の物体検出AI(YOLOなど)に対して、「赤いマーカーをつけた人」「黄色いマーカーをつけた人」という独自の画像データを大量に読み込ませ、AIそのものに直接判断させる手法です。

  • メリット:泥汚れや日陰といった環境光の変化に強く、一度学習してしまえば非常に精度の高い検出が期待できます。

  • デメリット:学習のために「様々な角度・明るさのサバゲーマーの画像」を数千枚単位で収集し、手作業でアノテーション(タグ付け)を行うという膨大な手間がかかります。また、クラウド環境でのGPU学習コストも発生します。

アプローチB:ハイブリッド方式(AIでの人検出 + 画像処理での色判定)

既存の「人を見つける学習済みAI」をそのまま流用し、人が検出された座標データをもとに、古典的な画像処理(OpenCV)で色の判定を行う手法です。

  • メリット:AIの再学習が不要なため、データ収集の手間がゼロ。開発費0円で、アイデアを思いついたその日のうちにプロトタイプを構築できます。

  • デメリット:カメラの性能や環境光(逆光や暗所)の変化に弱く、純粋な画像処理だけでは色判定の精度がブレやすいという弱点があります。

 

2. 採用した方式と「アジャイルな思考」

結論から言うと、今回は「アプローチB(ハイブリッド方式)」を採用しました。

最大の理由は、「まずは最小のコストと時間で動くもの(PoC:概念実証)を作る」という開発思考を重視したためです。最初から完璧な精度を求めて多大なコストをかけるのではなく、まずはコアとなる仮説が技術的に成り立つかを最速で検証すべきだと判断しました。

また、将来的にはこのシステムをRaspberry Pi Zeroのような、バッテリー駆動の非力なエッジデバイス(小型端末)に組み込んで動かすことはできないかと試行錯誤しています。計算資源を大量に消費する巨大なAIモデルを動かすよりも、「AIは人の検知だけ」「色は軽量な画像処理」とタスクを切り分けた方が、ハードウェアの制約に合わせて処理の最適化をコントロールしやすいという狙いもありました。

 

3. プロトタイプの実装と動作検証

開発環境にはPythonを使用し、軽量な物体検出モデルである「YOLOv8 Nano」と、画像処理ライブラリの「OpenCV」を組み合わせました。

誤検知を防ぎ、処理を軽くする「ROI」の工夫

実装において最も工夫したのは、画像全体から色を探さないことです。 もし画面全体から「赤色」を探してしまうと、背景にある赤いカラーコーンや、誰かが置いた赤いジュースの缶まで「敵だ!」と誤検知してしまいます。

そこで、まずはYOLOv8に「人」だけを検出させます。そして、AIが見つけ出した人の枠内(ROI:Region of Interest=関心領域)の画像データだけを切り抜き、その狭い範囲の中だけで赤と黄色の面積を計算する設計にしました。さらに、色の判定にはRGBではなく、明るさの変化に強い「HSV色空間」を採用しています。 これにより、背景のノイズによる誤検知を完全に防ぐと同時に、画像処理にかかる計算負荷を激減させることに成功しました。

いざ、動作検証

 

 

実際にPCのWebカメラを起動し、自分の顔の近くに赤いペンや黄色のアイテムをかざしてテストを行いました。

カメラの前に立つと、軽量化されたYOLOが瞬時に私を「人」として捉えます。そして、赤色のアイテムをかざした瞬間、切り抜かれた領域内でOpenCVが色を検知し、リアルタイムの映像上に「Red Team」という真っ赤なバウンディングボックス(枠)が重なって表示されました。黄色に持ち替えると、即座に「Yellow Team」へと切り替わります。

自分が思い描いていた「SF映画のようなAR視点」が、自らのコードで画面上に実現した瞬間の感動は、エンジニアリングの大きな醍醐味だと感じました。

 

4. 今後の展望:現場で使えるプロダクトを目指して

今回はPCのWebカメラを用いた概念実証(PoC)でしたが、現場の課題を解決するシステムとしては、これがスタートラインです。

今後は、誰もが手軽に使えるようにiOS(Swift)のCore MLを用いたスマホアプリへの移植や、私が作成した二輪ドローンへの組み込みを挑戦したいと考えています。さらに、ハイブリッド方式の弱点であった「環境光の変化」を克服するために、実際のフィールドで映像データを収集し、最終的にはアプローチAの「独自AIモデル」へのアップデートも視野に入れています。