はじめに
こんにちは、しがない高校生をしているBasalteと申します。
今回は、クラッシュしたプロジェクトの供養をする記事です。
大まかにいうと、校門にカメラを置いてあるラインを超えた人数を計測する装置です。
最近Twitterなどで話題になっていますが、DeepSortという技術を使って人間の個体識別をするだけです。
目的
2023年の文化祭はコロナなどない久しぶりの通常開催で、何人外部から人が来るか本当にわからない状態で、パンフレットや食品などを不透明な状態で数を用意することになりました。
ですが、リアルタイムで来場者数が分かれば、1日目、2日目でパンフレットを配るペース配分などを計算できるのではないかということや、来年度以降の準備の参考になるという目的で始まりました。
ただ単に自分が調べたかったのもある
技術スタック
・Python3
・Anaconda
・Yolov8
・DeepSORT
・OPenCV
Yolov8はともかく、DeepSortは触ったことがなかったので勉強しながらという感じでした。
実装
やってることはObject RecogitionとTrakingと位置判定です。
車の台数を数えるサンプルなどもあり、意外とサクッと実装出来ました。リアルタイムでやってるものは少なかったです。
動作映像はファイルの奥深くに消えてしまいました。すいません。
エラー
わざわざDeepSortを使ったのはYolov8のtrackが使えなかったからなのですが、これは単純にultralyticsのバージョンが古かったらしく、先日updateしたら普通に使えました。泣きたいです。
設置までの課題
実際に当日設置するにはいくつかの課題を乗り越えなければなりませんでした。
当日動作するPCがない
私は計算資源が貧弱なMac Bookかデスクトップしか持っていなかったので、ある程度計算能力のあるノートPCが必要でしたが、当日確保できる見通しが立ちませんでした。
設置場所がない
当日、校門前はもちろん、校舎内、中庭も人でごった返し、三脚を立てる場所もテントを立てる場所もないです。また、私の学校は謎に校門が広く、入場門と退場門が分かれており、どちらも視認できる画角がほぼ存在しなかったため入退場を管理できないという結論になりました。
外に置くと高温でPC、カメラ共に逝く
これはさらに前年度の文化祭で知ったのですが、屋外で30分ほど撮影をしていると日射で熱が溜まって撮影できなくなってしまいます。PCも同じで、少しの間外で日光を浴びていただけで動作不能になってしまうことが容易に想像できます。
精度が出ない
たくさんの人が来るので、ピークの時は(カメラから見て)たくさんの人が重なり合ってしまうので、天下のYolov8様でも人を全て認識するのはほぼ不可能です。また、日光の加減でもパラメーターの閾値が変わってしまうため、一日を通して一定して精度を出すのは難しいです。
活用できる場面がない
この装置のいいところはリアルタイムで校内にいる人数と全入場者数を調べられることですが、それを活用する場所があまりありませんでした。
モニターや放送で使うにも他の文化祭実行委員との連携が必要で、きちんと運用できるかも不透明だったため、準備をするのが難しかったです。
また、来年度の準備に使用できるということも、パンフの消費枚数や食品の消費のデータをそのまま使用できるため、あまり効果がないということに気づきました。
結果
上のような課題が山積してしまい、特にやる意味も感じれなくなってしまったため、モチベとともにプロジェクトが終了を迎えました。(自分1人でやってたので一瞬で終了させました)
今後復活させる予定はないですが、他の小さめのイベントなどでやってみるのもいいかもしれませんね。