ディープラーニングとトラッキングアルゴリズムで交通量・通行量の計測実験
深層学習の研究が進み、カメラ映像から物体検知を行うことは比較的容易になりましたが、カウンティングや計測を行うとなれば一工夫必要です。 実験のため、既設の480p程度の低画像防犯カメラからの映像を分析し、レガシス高松ラボ前、某通りの交通量と通行量の計測を行います。
今回利用した方法
ニューラルネットにはResNet-50を、学習用データセットにはMSCOCO (Microsoft Common Objects in Context)を利用しトラック、車、通行人を検知します。今回実験に使用しているのは、低画素の防犯カメラで赤外線モードも無いため自転車は夜間の検知が難しく、計測から除外しました。トラッキングを容易にするため、Nvidia RTX3070相当のGPUを利用して演算しています。 トラッキングは主にカルマンフィルタを使用しています。トラッキングアルゴリズムはなかなかに複雑なためパラメータ説明は省略しますが、GPUのおかげで30FPSで検知できていますので大雑把なトラッキング設定でもしっかりトラッキングできています。
AIカウント実験結果
日中の計測精度はほぼ100%に近いものとなりました。日没後は使用中のカメラが夜間用カメラではないため映像が暗く、計測精度が低下していますが傾向を把握するには十分でした。 自動車データにおいては、夜間の暗い映像にもかかわらず正確に計測できました。今回のカメラ設置場所では車の停止なども多かったため、重複カウントが無いように、しっかりとトラッキングすることが重要なポイントとなりました。
2021年12月~2022年22年10月までの歩行者、自動車、トラック、それぞれの通行量を日次チャートにしました。このようなデータ収集が簡単に行えるのはAIカメラの利点ですね。
AIカメラカウンター実装のポイント
- カメラアングルは物体検知で非常に重要な要素です。本プロジェクトは実験ですので既設のカメラを利用していますが、本番で既設カメラ映像を使う場合は用途に適したアングルと解像度が取得可能か確認しましょう
- ハードウェア費用にコストをかけるか、トラッキングアルゴリズムにコストをかけるか。エンベデッドシステムなどでは物体検知に時間がかかり、トラッキングアルゴリズムに工夫が必要
- カメラの解像度は高い方がよいと思われがちだが、検知スピードにも影響するため利用するCPUやGPUの仕様とセットで計画する
- 単純にトラッキングして数を数えるだけでは同一物体のフレームインアウト繰り返し等で、かなり重複が発生するため重複排除は必須。検知が低速で8FPSを下回るようだと精度の高い計測はかなり難易度が高くなりますのでエッジコンピューターを利用する際は留意しましょう。