フレーム間差分
を用いた移動物体の検出を絶賛実装中。
YUIのagainを聞きつつ実装中。
n-1枚目のフレームとn枚目のフレームで差分画像その1を作り、
n枚目のフレームとn+1枚目のフレームで差分画像その2を作り、
差分画像を2値化して、差分画像1,2をAND演算にかけるとマスク画像の完成。
後はマスク画像を使って色々遊べる。
特徴としては
・実装するのが容易
・カメラが動くと検出不可能
・どの方向に動いたのかはわからない
そんな感じのアルゴリズムです。簡単な分、デメリットも多いわけで
方向を考える場合に必要なのはオプティカルフローで表現するベクトルの速度場なんですが、数式を理解し、それをソースに起こすのがしんどいのでまだやってない。
学校で出された課題自体は
「動画中の移動物体を追跡せよ」
でしたが、動物体の検出でもいいですか?って聞いたら「別になんでもいいよ、フレーム間差分とか」っていわれたので、こいつを実装する。
とりあえず、n-1・n差分はできたので、同じようにn・n+1差分を実装すればいいだけ。
片方の差分だけでも結構検出できるのでそのまま出してもいいけど、それは俺のポリシーに反するのでやらない。
UNIX環境でしかいじれないのはつらいな。
WindowsでキャプチャするにはDirectShowとかだろうけど、C++は使っちゃ駄目らしいし。
かといってvfwは時代遅れ・・・・・
OpenCVは流石にまずいかなww
学校ではV4L使ってます。
YUIのagainを聞きつつ実装中。
n-1枚目のフレームとn枚目のフレームで差分画像その1を作り、
n枚目のフレームとn+1枚目のフレームで差分画像その2を作り、
差分画像を2値化して、差分画像1,2をAND演算にかけるとマスク画像の完成。
後はマスク画像を使って色々遊べる。
特徴としては
・実装するのが容易
・カメラが動くと検出不可能
・どの方向に動いたのかはわからない
そんな感じのアルゴリズムです。簡単な分、デメリットも多いわけで
方向を考える場合に必要なのはオプティカルフローで表現するベクトルの速度場なんですが、数式を理解し、それをソースに起こすのがしんどいのでまだやってない。
学校で出された課題自体は
「動画中の移動物体を追跡せよ」
でしたが、動物体の検出でもいいですか?って聞いたら「別になんでもいいよ、フレーム間差分とか」っていわれたので、こいつを実装する。
とりあえず、n-1・n差分はできたので、同じようにn・n+1差分を実装すればいいだけ。
片方の差分だけでも結構検出できるのでそのまま出してもいいけど、それは俺のポリシーに反するのでやらない。
UNIX環境でしかいじれないのはつらいな。
WindowsでキャプチャするにはDirectShowとかだろうけど、C++は使っちゃ駄目らしいし。
かといってvfwは時代遅れ・・・・・
OpenCVは流石にまずいかなww
学校ではV4L使ってます。