質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2201閲覧

動画から人物をトラッキングしたい

o0OR2O0o

総合スコア2

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/04 08:42

編集2021/04/04 08:53

動画から人物をトラッキングしたいです。現時点では

  • SSDでトラッキングを始めたい動画の最初のフレーム(静止画)から人物を検知し、矩形を得る。
  • OpenCVなどのトラッキングアルゴリズムに対し矩形を渡すことでトラッキングを行う。

という手法を取ろうとしているのですが、このような静止画から人物を検知したのちにトラッキングアルゴリズムに渡してあげる、と言う形だと途中からフレームに入ってきた人物を認識することができません。何か良い方法はないでしょうか。できれば

  • Python (OpenCV, PyTorch)

で実装可能なものを教えていただけると幸いです。YOLOv3を使うことも考えたのですがこれだといっぺんに動画を突っ込んでトラッキング結果(座標など)を返す、という形にできないためとりあえず脚下しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Pythonで動く追跡可能な方法は?とのことで、検出器はSSDやYOLOでいけます。

YOLOv3を使うことも考えたのですがこれだといっぺんに動画を突っ込んでトラッキング結果(座標など)を返す、という形にできない

推論結果を変数に収めて、変数をfor文の中か内包表記で分解しながら後述する中心座標だけ取り出せれば使えます。for文で回しながら変数の中身の要素をprintすると、「検出位置の位置、幅、高さ、種類等」の情報が要素に収まっていることを確認できます。

追跡する座標)
これらの推論モジュール(SSDやYOLO)であれこれ座標や種類等のもろもろの情報が出せますが、結局のところ必要なのはその中でも追跡する座標だけです。追跡するだけであれば「Opticalflowでやっているように代表する点の追跡」ができれば普通は十分だと思います。吐き出される情報にいろいろ含まれていますが、幅や高さ等は必要ないはずです。ですので、人の頭の位置の中心座標や、人の全身の中心座標のようなものを追跡する座標として設定すればよいと思います。

追跡する方法)
Opticalflowでのカルマンフィルタはよくある組み合わせで有名ですしPythonの例も多いです。

※カルマンフィルタはロボットなどのセンサーで取得した値と実際の値の誤差を見て、何を信じてどこが本物の値だろうかと探る方法です。これを座標に対して行うと、この慣性で動くボールは1秒後この辺かな、と探りながらそれっぽい座標を追跡してくれます。同時に、新しく入ってきた対象物は別のものとして識別できます。

いかがでしょうか?

投稿2021/04/04 09:54

編集2021/04/04 13:44
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o0OR2O0o

2021/04/05 06:49

ご回答ありがとうございます。カルマンフィルタを実装したところうまくトラッキングできました!
cxx

2022/07/25 05:22

失礼します自分も人物トラッキングの実装に挑戦しているのですがカルマンフィルタでの実装の際に用いたコードを参考にしたいのですがお見せしていただくことは可能でしょうか
退会済みユーザー

退会済みユーザー

2022/07/25 09:57

私の場合、全部自力で実装すると大変なので、いつも可能な限りライセンス的に大丈夫な人様のコードを探すところから始めます。 例えば「kalman filter tracking python site:github.com」 https://www.google.com/search?q=kalman+filter+tracking+python+site%3Agithub.com と探すと、 https://github.com/mabhisharma/Multi-Object-Tracking-with-Kalman-Filter に行き当たります。確かこのコードは1、2個バグがいくらかあったと思う(私のコードは紛失しました…)のでそこは直さないといけませんが、ほぼほぼポン付けで使えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問