【Tensorflow】オプティカルフローPWCネットネットワーク出力運動を使用する方法

対応する項目:PWC-Netの
対応紙:PWC-ネット:CNNsオプティカルフローのピラミッド、反り、およびコストのボリューム、CVPR 2018(オーラル)を使用して
、元のプロジェクトはpytorchとcaffeeの使用は、私が探していますので、あるので、ここをバージョンtensorflow
プロジェクトアドレス

PWCネットは、二つの光学像、オプティカルフローベクトルの対応するフロー図を出力することができます

コンセプト

  • オプティカルフローのために

    • 代表色相ベクトル方向
    • ベクトルの長さは、飽和表します
  • オプティカルフロー推定法--angularエラーと終点誤差の品質の評価

    • 角度誤差(AE):ARCCOS((U0、V0)*(U1、V1))
    • エンドポイント誤差(PE)SQRT((U0、U1)^ 2)
    • (U0、V0)、(U1、V1)は、2つのオプティカルフローベクトルの
    • AE * PE、より良い品質

基本的な考え方

FlowNet2追加ドメイン知識に基づいてPWC

位置が変化し、ほとんどまだ明るさを維持しているものの、基本的な考え方は、フレーム2、フレーム1から切り替え処理の画素のオプティカルフローを推定することです。我々は2つのパッチ間の関係の数を最大化するために、2はフレーム内の別の小さなパッチを見つけ、フレーム1の小さなパッチをつかむことができました

スライドフレーム1パッチでは、コストのボリュームを生成し、ピークを見つけるために、この結果は非常に堅牢ですが、あまりにも計算コストが高いです。いくつかのケースでは、さらに複雑さを向上させるために、誤検出枠1の数を減らすために、より大きなパッチを必要とします

生成されたコストのボリュームを減らすために、

低解像度画像スライド小さなパッチを使用して最適化、ピラミッド処理の最初のステップは、より小さなバージョンでフレーム2のフレーム1から検索を行います。よりターゲットを絞った検索を実行するためのピラミッドの次の層へのヒントとして、したがって小さい動きベクトルを返し、その後、動きベクトル

そのような「マルチレイヤ動き推定」が実行される画像領域またはドメイン(図convnet用いて還元機能発生)で特徴づけることができます。

それは、より高い解像度のピラミッド層の移動の小さい増分を検索することができるので、PWCは、推定された動きフローサンプリングバージョン経糸フレーム1のより低い解像度を使用します

ここで、二層プロセスを記載されているピラミッド
ここに画像を挿入説明

次の3つの方法SpyNetの、FlowNet2に対して、PWC-Netは画像のためではありません

ここに画像を挿入説明
ここではピラミッド、反りが、コストのボリュームは、メソッドを最適化されています。

また、データの拡張子はより良いパフォーマンスを得ることができ、トレーニングデータセット(Sintel +キティ+ HD1K)複数の堅牢性を向上させることができます

方法のアルゴリズムは、同じ制限画像のみを使用してアルゴリズムのみ、2つの連続するフレームで実行されるため。つまり、オブジェクトがフレームから削除された場合、その後の予測フローはそうEPEの多くを持つことである、である。したがって、フレームのより多くの使用は、耐障害性を向上させることができますが、時にはオブジェクトを移動する小さな速いため、モデルは失敗します

使用コード

コードはpwcnet_predict_from_img_pairs.ipynbファイルで使用される
このコードに

# Build a list of image pairs to process
img_pairs = []
for pair in range(1, 4):
    image_path1 = f'./samples/mpisintel_test_clean_ambush_1_frame_00{pair:02d}.png'
    image_path2 = f'./samples/mpisintel_test_clean_ambush_1_frame_00{pair+1:02d}.png'
    image1, image2 = imread(image_path1), imread(image_path2)
    img_pairs.append((image1, image2))

ファイルの場所を変更し、その場所などは、二つの絵に変更されました

2枚の画像が同じサイズ、それ以外の場合はエラーでなければならないことに注意してください

ファイル名を指定して実行、最終的なオプティカルフローダイアグラム取得するために
ここに画像を挿入説明
、またにより、フォルダ内のビデオ画像ファイルの数のコースを取られます

files=os.listdir(srcPath)

このフォルダ内のすべての画像を取得し、その後、オフペアのサイクルを実行するには、全体の動きの光ストリーミングビデオを得ることができます

公開された112元の記事 ウォンの賞賛108 ・は 70000 +を見て

おすすめ

転載: blog.csdn.net/qq_37465638/article/details/104688942