OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::optflow::DenseRLOFOpticalFlow クラスabstract

ロバストな局所オプティカルフロー(RLOF)アルゴリズムと疎から密への補間スキームに基づく、高速な密オプティカルフロー計算。 続き...

#include <opencv2/optflow/rlofflow.hpp>

Collaboration diagram for cv::optflow::DenseRLOFOpticalFlow:

公開メンバ関数

virtual int getEPICK () const =0
 ximgproc::EdgeAwareInterpolator() の K 値を参照。
 
virtual float getEPICLambda () const =0
 ximgproc::EdgeAwareInterpolator() の lambda 値を参照。
 
virtual float getEPICSigma () const =0
 ximgproc::EdgeAwareInterpolator() の sigma 値を参照。
 
virtual float getFgsLambda () const =0
 ximgproc::EdgeAwareInterpolator() を参照。
 
virtual float getFgsSigma () const =0
 ximgproc::EdgeAwareInterpolator() を参照。
 
virtual float getForwardBackward () const =0
 順方向・逆方向の信頼性チェックのしきい値。
 
virtual Size getGridStep () const =0
 動きベクトルを生成するグリッドのサイズ。
 
virtual InterpolationType getInterpolation () const =0
 密なオプティカルフローの計算に用いる補間。
 
virtual int getRICSLICType () const =0
 使用するスーパーピクセルアルゴリズムの種類を選択する引数:
 
virtual int getRICSPSize () const =0
 過剰セグメンテーションに使用するスーパーピクセルのおおよそのサイズを調整するための引数。
 
virtual Ptr< RLOFOpticalFlowParametergetRLOFOpticalFlowParameter () const =0
 RLOF アルゴリズムの設定。
 
virtual bool getUsePostProc () const =0
 ximgproc::fastGlobalSmootherFilter を有効にする
 
virtual bool getUseVariationalRefinement () const =0
 VariationalRefinement を有効にする
 
virtual void setEPICK (int val)=0
 ximgproc::EdgeAwareInterpolator() の K 値を参照。
 
virtual void setEPICLambda (float val)=0
 ximgproc::EdgeAwareInterpolator() の lambda 値を参照。
 
virtual void setEPICSigma (float val)=0
 ximgproc::EdgeAwareInterpolator() の sigma 値を参照。
 
virtual void setFgsLambda (float val)=0
 ximgproc::EdgeAwareInterpolator() を参照。
 
virtual void setFgsSigma (float val)=0
 ximgproc::EdgeAwareInterpolator() を参照。
 
virtual void setForwardBackward (float val)=0
 順方向・逆方向の信頼性チェックのしきい値。
 
virtual void setGridStep (Size val)=0
 動きベクトルを生成するグリッドのサイズ。
 
virtual void setInterpolation (InterpolationType val)=0
 密なオプティカルフローの計算に用いる補間。
 
virtual void setRICSLICType (int val)=0
 使用するスーパーピクセルアルゴリズムの種類を選択する引数:
 
virtual void setRICSPSize (int val)=0
 過剰セグメンテーションに使用するスーパーピクセルのおおよそのサイズを調整するための引数。
 
virtual void setRLOFOpticalFlowParameter (Ptr< RLOFOpticalFlowParameter > val)=0
 RLOF アルゴリズムの設定。
 
virtual void setUsePostProc (bool val)=0
 ximgproc::fastGlobalSmootherFilter を有効にする
 
virtual void setUseVariationalRefinement (bool val)=0
 VariationalRefinement を有効にする
 
- Public Member Functions inherited from cv::DenseOpticalFlow
virtual void calc (InputArray I0, InputArray I1, InputOutputArray flow)=0
 オプティカルフローを計算する。
 
virtual void collectGarbage ()=0
 すべての内部バッファを解放する。
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 アルゴリズムの状態をクリアする。
 
virtual bool empty () const
 Algorithm が空の場合(たとえば開始直後や読み込みに失敗した後)に true を返す。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 ファイルストレージからアルゴリズムの引数を読み込む。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name) const
 

静的公開メンバ関数

static Ptr< DenseRLOFOpticalFlowcreate (Ptr< RLOFOpticalFlowParameter > rlofParam=Ptr< RLOFOpticalFlowParameter >(), float forwardBackwardThreshold=1.f, Size gridStep=Size(6, 6), InterpolationType interp_type=InterpolationType::INTERP_EPIC, int epicK=128, float epicSigma=0.05f, float epicLambda=999.0f, int ricSPSize=15, int ricSLICType=100, bool use_post_proc=true, float fgsLambda=500.0f, float fgsSigma=1.5f, bool use_variational_refinement=false)
 optflow::DenseRLOFOpticalFlow のインスタンスを生成する。
 
- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 ファイルからアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 文字列からアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 ファイルノードからアルゴリズムを読み込む。
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

ロバストローカルオプティカルフロー (RLOF) アルゴリズムと sparse-to-dense 補間方式に基づく高速な密なオプティカルフローの計算。

RLOF は [244] [245] [246] および [247] で説明されている高速なローカルオプティカルフロー手法であり、[38] で提案されたピラミッド型反復 Lucas-Kanade 法に類似している。さらに詳細と実験は次の学位論文 [248] にある。実装は optflow::calcOpticalFlowPyrLK() から派生している。

sparse-to-dense 補間方式により、RLOF を用いた密なオプティカルフローの高速な計算が可能になる ([105] を参照)。この方式では次の手順を適用する。

  1. 等間隔にサンプリングしたグリッド上に配置した動きベクトルを計算する。このグリッドの粗さは setGridStep で設定できる
  2. (省略可能) 誤った動きベクトルを forward backward の信頼度に基づいてフィルタリングする。しきい値は setForwardBackward で設定できる。フィルタはしきい値が >0 の場合のみ適用されるが、その場合は後方フローの推定が加わるため実行時間が2倍になる。
  3. 動きベクトルの集合にベクトル場の補間を適用し、密なベクトル場を得る。

RLOF の設定については、詳細を optflow::RLOFOpticalFlowParameter を参照すること。引数については [244] [245] [246] および [247] で説明されている。

覚え書き
グリッドサイズが (1,1) に設定され、かつ順方向・逆方向しきい値が <= 0 である場合、補間を使わず RLOF によってピクセル単位の密なオプティカルフロー場が計算される。
出力において、I0I1 の間で対応点が見つからない場合、flow は 0 に設定されることに注意。
参照
optflow::calcOpticalFlowDenseRLOF(), optflow::RLOFOpticalFlowParameter

メンバ関数詳解

◆ create()

static Ptr< DenseRLOFOpticalFlow > cv::optflow::DenseRLOFOpticalFlow::create ( Ptr< RLOFOpticalFlowParameter > rlofParam = PtrRLOFOpticalFlowParameter >(),
float forwardBackwardThreshold = 1.f,
Size gridStep = Size(6, 6),
InterpolationType interp_type = InterpolationType::INTERP_EPIC,
int epicK = 128,
float epicSigma = 0.05f,
float epicLambda = 999.0f,
int ricSPSize = 15,
int ricSLICType = 100,
bool use_post_proc = true,
float fgsLambda = 500.0f,
float fgsSigma = 1.5f,
bool use_variational_refinement = false )
static
Python:
cv.optflow.DenseRLOFOpticalFlow.create([, rlofParam[, forwardBackwardThreshold[, gridStep[, interp_type[, epicK[, epicSigma[, epicLambda[, ricSPSize[, ricSLICType[, use_post_proc[, fgsLambda[, fgsSigma[, use_variational_refinement]]]]]]]]]]]]]) -> retval
cv.optflow.DenseRLOFOpticalFlow_create([, rlofParam[, forwardBackwardThreshold[, gridStep[, interp_type[, epicK[, epicSigma[, epicLambda[, ricSPSize[, ricSLICType[, use_post_proc[, fgsLambda[, fgsSigma[, use_variational_refinement]]]]]]]]]]]]]) -> retval

optflow::DenseRLOFOpticalFlow のインスタンスを生成する。

引数
rlofParamoptflow::RLOFOpticalFlowParameter を参照。
forwardBackwardThresholdsetForwardBackward を参照
gridStepsetGridStep を参照
interp_typesetInterpolation を参照
epicKsetEPICK を参照
epicSigmasetEPICSigma を参照
epicLambdasetEPICLambda を参照
ricSPSizesetRICSPSize を参照
ricSLICTypesetRICSLICType を参照
use_post_procsetUsePostProc を参照
fgsLambdasetFgsLambda を参照
fgsSigmasetFgsSigma を参照
use_variational_refinementsetUseVariationalRefinement を参照

◆ getEPICK()

virtual int cv::optflow::DenseRLOFOpticalFlow::getEPICK ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getEPICK() -> retval

ximgproc::EdgeAwareInterpolator() の K 値を参照。

K は局所アフィンモデルをフィッティングする際に考慮する最近傍マッチの数である。通常は128程度であるべきだが、値を小さくすると補間が目に見えて高速になる。

参照
ximgproc::EdgeAwareInterpolator, setEPICK

◆ getEPICLambda()

virtual float cv::optflow::DenseRLOFOpticalFlow::getEPICLambda ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getEPICLambda() -> retval

ximgproc::EdgeAwareInterpolator() の lambda 値を参照。

Lambda は測地距離におけるエッジを考慮した項の重みを定義する引数であり、0から1000の範囲であるべきである。

参照
ximgproc::EdgeAwareInterpolator, setEPICSigma

◆ getEPICSigma()

virtual float cv::optflow::DenseRLOFOpticalFlow::getEPICSigma ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getEPICSigma() -> retval

ximgproc::EdgeAwareInterpolator() の sigma 値を参照。

Sigma は局所重み付きアフィンフィッティングにおいて重みがどれだけ速く減少するかを定義する引数である。値を大きくすると細部を保持しやすくなり、値を小さくすると出力フローのノイズを除去しやすくなる。

参照
ximgproc::EdgeAwareInterpolator, setEPICSigma

◆ getFgsLambda()

virtual float cv::optflow::DenseRLOFOpticalFlow::getFgsLambda ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getFgsLambda() -> retval

ximgproc::EdgeAwareInterpolator() を参照。

対応する fastGlobalSmootherFilter() の引数を設定する。

参照
ximgproc::EdgeAwareInterpolator, setFgsLambda

◆ getFgsSigma()

virtual float cv::optflow::DenseRLOFOpticalFlow::getFgsSigma ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getFgsSigma() -> retval

ximgproc::EdgeAwareInterpolator() を参照。

対応する fastGlobalSmootherFilter() の引数を設定する。

参照
ximgproc::EdgeAwareInterpolator, ximgproc::fastGlobalSmootherFilter, setFgsSigma

◆ getForwardBackward()

virtual float cv::optflow::DenseRLOFOpticalFlow::getForwardBackward ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getForwardBackward() -> retval

順方向・逆方向の信頼性チェックのしきい値。

参照
setForwardBackward

◆ getGridStep()

virtual Size cv::optflow::DenseRLOFOpticalFlow::getGridStep ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getGridStep() -> retval

動きベクトルを生成するグリッドのサイズ。

各グリッド点について動きベクトルが計算される。一部の動きベクトルは順方向・逆方向しきい値(>0 に設定された場合)により除去される。残りがベクトル場の補間のベースとなる。

参照
getForwardBackward, setGridStep

◆ getInterpolation()

virtual InterpolationType cv::optflow::DenseRLOFOpticalFlow::getInterpolation ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getInterpolation() -> retval

密なオプティカルフローの計算に用いる補間。

参照
ximgproc::EdgeAwareInterpolator, setInterpolation

◆ getRICSLICType()

virtual int cv::optflow::DenseRLOFOpticalFlow::getRICSLICType ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getRICSLICType() -> retval

使用するスーパーピクセルアルゴリズムの種類を選択する引数:

参照
setRICSLICType

◆ getRICSPSize()

virtual int cv::optflow::DenseRLOFOpticalFlow::getRICSPSize ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getRICSPSize() -> retval

過剰セグメンテーションに使用するスーパーピクセルのおおよそのサイズを調整するための引数。

参照
setRICSPSize

◆ getRLOFOpticalFlowParameter()

virtual Ptr< RLOFOpticalFlowParameter > cv::optflow::DenseRLOFOpticalFlow::getRLOFOpticalFlowParameter ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getRLOFOpticalFlowParameter() -> retval

RLOF アルゴリズムの設定。

参照
optflow::RLOFOpticalFlowParameter, setRLOFOpticalFlowParameter

◆ getUsePostProc()

virtual bool cv::optflow::DenseRLOFOpticalFlow::getUsePostProc ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getUsePostProc() -> retval

◆ getUseVariationalRefinement()

virtual bool cv::optflow::DenseRLOFOpticalFlow::getUseVariationalRefinement ( ) const
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.getUseVariationalRefinement() -> retval

◆ setEPICK()

virtual void cv::optflow::DenseRLOFOpticalFlow::setEPICK ( int val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setEPICK(val) -> None

ximgproc::EdgeAwareInterpolator() の K 値を参照。

参照
ximgproc::EdgeAwareInterpolator, getEPICK

◆ setEPICLambda()

virtual void cv::optflow::DenseRLOFOpticalFlow::setEPICLambda ( float val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setEPICLambda(val) -> None

ximgproc::EdgeAwareInterpolator() の lambda 値を参照。

参照
ximgproc::EdgeAwareInterpolator, getEPICLambda

◆ setEPICSigma()

virtual void cv::optflow::DenseRLOFOpticalFlow::setEPICSigma ( float val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setEPICSigma(val) -> None

ximgproc::EdgeAwareInterpolator() の sigma 値を参照。

参照
ximgproc::EdgeAwareInterpolator, getEPICSigma

◆ setFgsLambda()

virtual void cv::optflow::DenseRLOFOpticalFlow::setFgsLambda ( float val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setFgsLambda(val) -> None

ximgproc::EdgeAwareInterpolator() を参照。

参照
ximgproc::EdgeAwareInterpolator, ximgproc::fastGlobalSmootherFilter, getFgsLambda

◆ setFgsSigma()

virtual void cv::optflow::DenseRLOFOpticalFlow::setFgsSigma ( float val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setFgsSigma(val) -> None

ximgproc::EdgeAwareInterpolator() を参照。

参照
ximgproc::EdgeAwareInterpolator, ximgproc::fastGlobalSmootherFilter, getFgsSigma

◆ setForwardBackward()

virtual void cv::optflow::DenseRLOFOpticalFlow::setForwardBackward ( float val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setForwardBackward(val) -> None

順方向・逆方向の信頼性チェックのしきい値。

各グリッド点 \( \mathbf{x} \) について動きベクトル \( d_{I0,I1}(\mathbf{x}) \) が計算される。順方向・逆方向誤差が

\[ EP_{FB} = || d_{I0,I1} + d_{I1,I0} || \]

この関数で与えられるしきい値より大きい場合、その動きベクトルは後続のベクトル場補間で使用されない。\( d_{I1,I0} \) は逆方向フローを表す。なお、順方向・逆方向テストはしきい値 > 0 の場合にのみ適用される。これにより動き推定の実行時間が倍になることがある。

参照
getForwardBackward, setGridStep

◆ setGridStep()

virtual void cv::optflow::DenseRLOFOpticalFlow::setGridStep ( Size val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setGridStep(val) -> None

動きベクトルを生成するグリッドのサイズ。

参照
getGridStep

◆ setInterpolation()

virtual void cv::optflow::DenseRLOFOpticalFlow::setInterpolation ( InterpolationType val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setInterpolation(val) -> None

密なオプティカルフローの計算に用いる補間。

2 つの補間アルゴリズムがサポートされている

◆ setRICSLICType()

virtual void cv::optflow::DenseRLOFOpticalFlow::setRICSLICType ( int val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setRICSLICType(val) -> None

使用するスーパーピクセルアルゴリズムの種類を選択する引数:

◆ setRICSPSize()

virtual void cv::optflow::DenseRLOFOpticalFlow::setRICSPSize ( int val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setRICSPSize(val) -> None

過剰セグメンテーションに使用するスーパーピクセルのおおよそのサイズを調整するための引数。

参照
cv::ximgproc::createSuperpixelSLIC, cv::ximgproc::RICInterpolator

◆ setRLOFOpticalFlowParameter()

virtual void cv::optflow::DenseRLOFOpticalFlow::setRLOFOpticalFlowParameter ( Ptr< RLOFOpticalFlowParameter > val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setRLOFOpticalFlowParameter(val) -> None

RLOF アルゴリズムの設定。

参照
optflow::RLOFOpticalFlowParameter, getRLOFOpticalFlowParameter

◆ setUsePostProc()

virtual void cv::optflow::DenseRLOFOpticalFlow::setUsePostProc ( bool val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setUsePostProc(val) -> None

◆ setUseVariationalRefinement()

virtual void cv::optflow::DenseRLOFOpticalFlow::setUseVariationalRefinement ( bool val)
pure virtual
Python:
cv.optflow.DenseRLOFOpticalFlow.setUseVariationalRefinement(val) -> None

このクラス詳解は次のファイルから抽出されました: