0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Farnebackの仕組み・実行とパラメータ調整

Posted at

Farnebackの仕組み

Farnebackの実行とパラメータ調整

Farnebackの実行

Farnebackの実行にあたってはOpenCVを用いることが多いです。OpenCVにはPythonバインディングも用意されており、Pythonからも使用することができます。以下ではPythonを用いた実行について確認します。

import cv2 as cv

image1_gray = cv.cvtColor(image1, cv.COLOR_BGR2GRAY)
image2_gray = cv.cvtColor(image2, cv.COLOR_BGR2GRAY)

flow = cv.calcOpticalFlowFarneback(image1_gray, image2_gray, None, 0.5, 3, 15, 3, 5, 1.2, 0)

Farnebackは上記のようなPython実装を用いることで実行することができます。image1image2はRGBの3チャネルを持った画像を読み込んだものであり、Farnebackのアルゴリズムによってimage1からimage2の変化を各ピクセル毎に(dense)縦横の2Dのベクトルで出力します。

ライブラリのインストールにあたってはpip install opencv-pythonを実行することで入手することができます。

Farnebackのパラメータ調整

calcOpticalFlowFarnebackの実行にあたっては下記のような引数を用います。

メソッド 概要
prev Source(変化する前の画像)
next Target(変化後の画像)
flow 計算されたflow(Noneを用いることで省略可能)
pyr_scale 画像のピラミッドを作成する際の小さくする比率
levels 作成するピラミッドの数(元画像を含んで数える)
winsize averagingに用いるWindowのサイズ
iterations それぞれのピラミッドで行う繰り返し演算の数
poly_n
poly_sigma
flags

前項のコードは下記のようにパラメータを明示的に指定して実行することもできます。

import cv2 as cv

image1_gray = cv.cvtColor(image1, cv.COLOR_BGR2GRAY)
image2_gray = cv.cvtColor(image2, cv.COLOR_BGR2GRAY)

flow = cv.calcOpticalFlowFarneback(prev=image1_gray, next=image2_gray, flow=None, pyr_scale=0.5, levels=3, winsize=15, iterations=3, poly_n=5, poly_sigma=1.2, flags=0)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?