海城中高物理部

Yoloで文化祭の人数を測りたかった

by: Koki Muramoto

目的

2023文化祭は久々の通常開催となり、私が在学中は初めてですがさぁ今年は何人の来校者がくるのかな〜〜といったところですが、過去の通常開催時でも来校者の集計は行っておらず、今年の分実は本当にパンフの枚数とかで人数が読めずに苦労した(らしい)ので、来年のために来校者を把握しようということになりますた。厳密には物理部ではなく分実の活動なのですが、まぁ文章を残すって意味で部誌を書きます。

仕様

校門の前にWebカメラとPCを置きます(予定)。そこから入場する人間の数を調べます。簡単にいうと個体識別してある地点を通過した人間をカウントするだけです。退場した人間も同時にカウントできればいいのですが、画角の問題でそれを同時にやることは不可能なので、入場のデータだけでも取れたら価値があると思うのでそれで行きます。集計した後の時間ごとのデータを可視化できたらいいなと思っていますが、そこまで手が伸びるかどうかはわかりません。また、yoloなので、完全な精度は出すことができません。おそらく10%ぐらい数えもらしがあるはずです(人同士が重なって映ったり処理速度の問題があったり画質とか光の影とかの問題があったりするので)。

ソフトウェア

  • Python
  • Yolov8
  • Deepsort
  • 開発環境(自分はAnacondaを使いました) 大体この三つです。yolov8は自分で学習しようか迷いましたが、面倒だったのでpersonに絞って認識させるようにしました。 Deepsortというものを使うことによって、個体識別を行い、動きを追跡することができます。Yolov5でやってる人はいましたが、そもそもの参考サイトがなくて辛かったです。 あとはpythonのopencvなどを使って座標を指定し、個体が座標を通過したかどうかを判定して追加していきます。
  • さらっと書いてるけど結構だるいんだこれが

結論

結論から言うと、このプロジェクトは夏休みが終わる前に終了しました。理由はいくつかあります。

  • 当日動作するPCがない
  • 設置場所がない
  • 外に置いておくと灼熱で動作できなくなる(経験済み)
  • 去年野外で撮影を一時間ほどしているとカメラがアチアチになって撮影できません!乙!ってなった
  • リアルタイムでやれるほどの計算資源がない
  • 死ぬほど重い

みたいな感じで、割と時間かけててほとんど完成してたけど当日動かせないしメリットがないということで終了してしまいました。お疲れ様でした。