物体の数を瞬時に数えるObject Counterの使い道を考えてみる

AI実装

YOLOv5をはじめとするディープラーニングをつかった物体検出は、

  • 何処にあるか?「位置」がわかる
  • それが何なのか?「クラス」が分類できる

こんなアルゴリズムです。前の記事で、これに加えて「物体の数」をリアルタイムに把握するためカウンターをつけてみました。この記事がそこそこ人気なので、今回はいろいろなモノで試してみて使い道を考察してみました。

左上にカウンター付けました。盛大にスペルミスしていますが面倒なのでこのままにしておきます😰

Object Counter 物体検出した数を数えるスクリプトの詳細は↓をご覧ください。

物体検出はいじっているだけでも結構面白いです。実装が難しそうに思えますが、YOLOv5はかなり扱いやすく簡単に実装できますので、ご興味ありましたら試してみてください。↓に実装の仕方を細かく記載してあります。

YOLOv5のソースコードは↓です。

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

人の数を数える Person counter

物体検出といえば「人」です。人の数を数えてみます。

  • YOLOv5のPretrained Checkpoints : YOLOv5l6
  • detect.pyスクリプトへcv.putText関数でカウンターを追加(やり方の詳細はここ
  • 人は良く学習されているので細かく認識します。目を凝らさないと分からないところにいる人も認識しているので、この点は素晴らしいです👍夜でもしっかり認識しています。
  • ぱっと見で何人いるか?判断は難しいと思います。ですがカウンターをつけることである程度の人数を把握することができます。自転車、カバン、よく見ると歩きスマホも検出しています。
  • 一方で、正確な人数を数えることは難しい結果となっています😥例えばポスターの絵を人としてカウントしていたり、遠くの人をカウントするのが苦手だったりします。またカバンを2重に数えたり、複数のクラスをカウントしたりしています。
  • また、同じ人という認識がないのでフレーム毎に同じ人もカウントしていきます。なので累積何人みたいなモノは苦手ですね😅

車両の台数を数える Car counter

自動運転が話題ですが、車の認識もニーズ多そうですね。実際にやってみました!

  • スピードが出てたり、夜であっても認識してくれているので良い感じです。高速道路や交差点の混雑状況を把握するには良い指標になりそうです👍
  • 歩行者や運転している人なんかも認識しているので、車両+人の組み合わせで危険状態を把握するなんてこともできそうです😃
  • 遠くに行き過ぎた車両は認識しません。物体検出は距離的な問題はどうしても難しいですね😔
  • 車両も人同様に「同じ車両」という認識ができないので、累積台数をカウントするのは難しですね😥

果物の数を数える Fruit Counter

当ブログでも取り上げていますが、作物の数をカウントするというのはかなり使えそうです。

  • 果物は特徴的ですので良く認識してくれますね👍
  • どのくらいの数が収穫できるか?匠の作業者であれば長年の勘で分かるかもしれませんが、物体検出を併用すれば素人でもわかります😄
  • その年にどのくらい収穫できたか?という数を把握しておくと、次の年にその情報は活かせます。数えてメモしておけばいいんですが面倒ですよね。。。物体検出を使えば動画(写真)を撮るだけでOKです👍
  • 作業環境が炎天下だったり、中腰、高所だったりするとキツイので見落としが出てしまいます。こういった見落とし防止に効果あると思います。エッジデバイスの活用が必須ですが実用化すれば作業が楽になると思います。同時にデータ収集もできますし👍
  • 他のカウント同様に作物の絶対数を把握するのは難しいです😥

できそうなこと・難しそうなこと

こんなことに使えそう

  • 大まかなモノの数を把握。
    • 駅の密情報
    • 道路混雑状況
    • 果物の収穫量
  • モノ+モノ(人+自転車など)を同時に検出。
    • 危険な状態の把握
    • 作物の健康状態の把握

これは難しそう

  • 正確なモノの数のカウント。遠くのモノは認識しずらい。
  • 累積のカウント。同じモノという認識はできない。何か閾値をつくれば可能か・・・?

カウンターを付けるだけで直感的に数を把握することができるので、アイデア次第で使い道はかなりありそうと思います👍

もっと身近にするためにはアプリ化だったり、エッジデバイスの実装が必要になると思います。技術的にはできそうなので開発者さんに期待します!良ければ一緒にやりましょう👍

コメント

タイトルとURLをコピーしました