移動する物体の追跡と指定の境界をまたいだことの検知

動画に映る物体が特定の境界線を跨いだことを検知する通過検知という技術を紹介・解説します。

はじめに

本稿では、動画に映る物体が特定の境界線を跨いだことを検知する通過検知という技術を紹介・解説します。

目次

  1. 通過検知について
    1. 通過検知とは
    2. デモ
  2. 通過検知の仕組み
    1. 物体の検出
    2. 検出した物体の追跡
    3. 境界線の設定
    4. 設定した境界線を跨いだ物体の数え上げ

通過検知について

通過検知とは

任意の動画やカメラ映像において、検出・追跡した物体が特定の境界線を跨いだ件数をカウントすることを「通過検知」としています。

通過検知とは

この技術を用いることで、人物の侵入を検知したり、道路の交通量を調査したりといったことが可能となります。

デモ

下記リンクよりデモをご覧ください。

demo

通過検知の仕組み

通過検知は大きく分けて以下の4つの要素で構成されています。

  • 物体の検出
  • 検出した物体の追跡
  • 境界線の設定
  • 設定した境界線を跨いだ物体の数え上げ

物体の検出

物体の検出にはTensorFlow.js、及びcoco-ssdを利用しました。

物体の検出

TensorFlow.jsとは

TensorFlow.jsとは、Googleが開発した、機械学習を用いたWebアプリをJavaScriptで実装できるオープンソースのライブラリです。

参考リンク

coco-ssdとは

coco-ssdとは、COCOと呼ばれるデータセットを用いて構築された、オープンソースのオブジェクト認識モデルです。

参考リンク

検出した物体の追跡

フレーム毎に検出した物体が同一のものであるかどうか追跡を行います。 今回は簡略化のために「前フレームと現フレームとで物体検出範囲が重なる程度の移動速度である」「物体同士がすれ違うなどのケースは考えない」など、簡単な条件を設定しています。

境界線の設定

物体が通り過ぎた際にカウントする基準となる境界線を設定します。

設定した境界線を跨いだ物体の数え上げ

設定した境界線を物体が跨いだ際にカウントします。今回は主に人や車を想定していますので、基準となる点は検出したbboxの下辺中央としました。