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

これはロバスト局所オプティカルフロー (RLOF) アルゴリズムの引数を格納および設定するために使用される。 続き...

#include <opencv2/optflow/rlofflow.hpp>

Collaboration diagram for cv::optflow::RLOFOpticalFlowParameter:

公開メンバ関数

 RLOFOpticalFlowParameter ()
 
int getCrossSegmentationThreshold () const
 
float getGlobalMotionRansacThreshold () const
 
int getLargeWinSize () const
 
int getMaxIteration () const
 
int getMaxLevel () const
 
float getMinEigenValue () const
 
float getNormSigma0 () const
 
float getNormSigma1 () const
 
int getSmallWinSize () const
 
SolverType getSolverType () const
 
SupportRegionType getSupportRegionType () const
 
bool getUseGlobalMotionPrior () const
 
bool getUseIlluminationModel () const
 
bool getUseInitialFlow () const
 
void setCrossSegmentationThreshold (int val)
 
void setGlobalMotionRansacThreshold (float val)
 
void setLargeWinSize (int val)
 
void setMaxIteration (int val)
 
void setMaxLevel (int val)
 
void setMinEigenValue (float val)
 
void setNormSigma0 (float val)
 
void setNormSigma1 (float val)
 
void setSmallWinSize (int val)
 
void setSolverType (SolverType val)
 
void setSupportRegionType (SupportRegionType val)
 
void setUseGlobalMotionPrior (bool val)
 
void setUseIlluminationModel (bool val)
 
void setUseInitialFlow (bool val)
 
void setUseMEstimator (bool val)
 M推定量を有効にするか、無効にして最小二乗推定量を使用する。
 

静的公開メンバ関数

static Ptr< RLOFOpticalFlowParametercreate ()
 optflow::RLOFOpticalFlowParameter のインスタンスを生成する。
 

公開変数類

int crossSegmentationThreshold
 
float globalMotionRansacThreshold
 
int largeWinSize
 
int maxIteration
 
int maxLevel
 
float minEigenValue
 
float normSigma0
 
float normSigma1
 
int smallWinSize
 
SolverType solverType
 
SupportRegionType supportRegionType
 
bool useGlobalMotionPrior
 
bool useIlluminationModel
 
bool useInitialFlow
 

詳細説明

ロバスト局所オプティカルフロー (RLOF) アルゴリズムの引数を格納・設定するために使用される。

RLOFは [244] [245] [246] および [247] で説明されている高速な局所オプティカルフロー手法であり、[38] で提案されているピラミッド型反復Lucas-Kanade法に類似している。詳細と実験は以下の学位論文 [248] に記載されている。この実装は optflow::calcOpticalFlowPyrLK() から派生したものである。このRLOF実装は改良されたピラミッド型反復Lucas-Kanadeとみなすことができ、複数の改良モジュールを含んでいる。ピラミッド型反復Lucas-Kanadeに対する主な改良点は次のとおりである:

  • 動き境界や出現・消失するピクセルにおける精度を改善するための、よりロバストな再降下型M推定器フレームワーク([244] を参照)。
  • 動き境界での精度を改善し、コロナ効果、すなわち動き/物体境界におけるPLKの過平滑化を低減するための、適応的サポート領域戦略。[246] で提案されたクロスベースのセグメンテーション戦略 (SR_CROSS) は、サポート領域の最適な形状を得るために単純なセグメンテーション手法を用いる。
  • 照明変化(屋外シーンや影)に対処するため、輝度一定性の仮定に基づくオプティカルフロー方程式に、Gennert and Negahdaripourの照明モデルが採用されている([247] を参照)。このモデルは useIlluminationModel 変数によってオン/オフを切り替えられる。
  • 反復精緻化に対する大域的動き事前分布の初期化([247] を参照)を用いることで、大きな変位に対する精度を大幅に改善できる。この初期化は useGlobalMotionPrior 変数によってオン/オフを切り替えられる。

RLOFは、特徴の集合を追跡するための SparseOpticalFlow クラスまたは関数インターフェースを用いて、あるいは密なオプティカルフローを計算するための DenseOpticalFlow クラスまたは関数インターフェースを用いて計算できる。

参照
optflow::DenseRLOFOpticalFlow, optflow::calcOpticalFlowDenseRLOF(), optflow::SparseRLOFOpticalFlow, optflow::calcOpticalFlowSparseRLOF()

構築子と解体子の詳解

◆ RLOFOpticalFlowParameter()

cv::optflow::RLOFOpticalFlowParameter::RLOFOpticalFlowParameter ( )
inline

メンバ関数詳解

◆ create()

static Ptr< RLOFOpticalFlowParameter > cv::optflow::RLOFOpticalFlowParameter::create ( )
static
Python:
cv.optflow.RLOFOpticalFlowParameter.create() -> retval
cv.optflow.RLOFOpticalFlowParameter_create() -> retval

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

◆ getCrossSegmentationThreshold()

int cv::optflow::RLOFOpticalFlowParameter::getCrossSegmentationThreshold ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getCrossSegmentationThreshold() -> retval

◆ getGlobalMotionRansacThreshold()

float cv::optflow::RLOFOpticalFlowParameter::getGlobalMotionRansacThreshold ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getGlobalMotionRansacThreshold() -> retval

◆ getLargeWinSize()

int cv::optflow::RLOFOpticalFlowParameter::getLargeWinSize ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getLargeWinSize() -> retval

◆ getMaxIteration()

int cv::optflow::RLOFOpticalFlowParameter::getMaxIteration ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getMaxIteration() -> retval

◆ getMaxLevel()

int cv::optflow::RLOFOpticalFlowParameter::getMaxLevel ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getMaxLevel() -> retval

◆ getMinEigenValue()

float cv::optflow::RLOFOpticalFlowParameter::getMinEigenValue ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getMinEigenValue() -> retval

◆ getNormSigma0()

float cv::optflow::RLOFOpticalFlowParameter::getNormSigma0 ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getNormSigma0() -> retval

◆ getNormSigma1()

float cv::optflow::RLOFOpticalFlowParameter::getNormSigma1 ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getNormSigma1() -> retval

◆ getSmallWinSize()

int cv::optflow::RLOFOpticalFlowParameter::getSmallWinSize ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getSmallWinSize() -> retval

◆ getSolverType()

SolverType cv::optflow::RLOFOpticalFlowParameter::getSolverType ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getSolverType() -> retval

◆ getSupportRegionType()

SupportRegionType cv::optflow::RLOFOpticalFlowParameter::getSupportRegionType ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getSupportRegionType() -> retval

◆ getUseGlobalMotionPrior()

bool cv::optflow::RLOFOpticalFlowParameter::getUseGlobalMotionPrior ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getUseGlobalMotionPrior() -> retval

◆ getUseIlluminationModel()

bool cv::optflow::RLOFOpticalFlowParameter::getUseIlluminationModel ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getUseIlluminationModel() -> retval

◆ getUseInitialFlow()

bool cv::optflow::RLOFOpticalFlowParameter::getUseInitialFlow ( ) const
Python:
cv.optflow.RLOFOpticalFlowParameter.getUseInitialFlow() -> retval

◆ setCrossSegmentationThreshold()

void cv::optflow::RLOFOpticalFlowParameter::setCrossSegmentationThreshold ( int val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setCrossSegmentationThreshold(val) -> None

◆ setGlobalMotionRansacThreshold()

void cv::optflow::RLOFOpticalFlowParameter::setGlobalMotionRansacThreshold ( float val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setGlobalMotionRansacThreshold(val) -> None

◆ setLargeWinSize()

void cv::optflow::RLOFOpticalFlowParameter::setLargeWinSize ( int val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setLargeWinSize(val) -> None

◆ setMaxIteration()

void cv::optflow::RLOFOpticalFlowParameter::setMaxIteration ( int val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setMaxIteration(val) -> None

◆ setMaxLevel()

void cv::optflow::RLOFOpticalFlowParameter::setMaxLevel ( int val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setMaxLevel(val) -> None

◆ setMinEigenValue()

void cv::optflow::RLOFOpticalFlowParameter::setMinEigenValue ( float val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setMinEigenValue(val) -> None

◆ setNormSigma0()

void cv::optflow::RLOFOpticalFlowParameter::setNormSigma0 ( float val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setNormSigma0(val) -> None

◆ setNormSigma1()

void cv::optflow::RLOFOpticalFlowParameter::setNormSigma1 ( float val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setNormSigma1(val) -> None

◆ setSmallWinSize()

void cv::optflow::RLOFOpticalFlowParameter::setSmallWinSize ( int val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setSmallWinSize(val) -> None

◆ setSolverType()

void cv::optflow::RLOFOpticalFlowParameter::setSolverType ( SolverType val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setSolverType(val) -> None

◆ setSupportRegionType()

void cv::optflow::RLOFOpticalFlowParameter::setSupportRegionType ( SupportRegionType val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setSupportRegionType(val) -> None

◆ setUseGlobalMotionPrior()

void cv::optflow::RLOFOpticalFlowParameter::setUseGlobalMotionPrior ( bool val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setUseGlobalMotionPrior(val) -> None

◆ setUseIlluminationModel()

void cv::optflow::RLOFOpticalFlowParameter::setUseIlluminationModel ( bool val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setUseIlluminationModel(val) -> None

◆ setUseInitialFlow()

void cv::optflow::RLOFOpticalFlowParameter::setUseInitialFlow ( bool val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setUseInitialFlow(val) -> None

◆ setUseMEstimator()

void cv::optflow::RLOFOpticalFlowParameter::setUseMEstimator ( bool val)
Python:
cv.optflow.RLOFOpticalFlowParameter.setUseMEstimator(val) -> None

M推定器を有効にするか、無効にして最小二乗推定器を使用する。

シグマパラメータを (3.2, 7.0) に設定してM推定器を有効にする。M推定器を無効にすると実行時間を短縮でき、有効にすると精度を改善できる。

引数
valtrue の場合は M推定量が使用される。false の場合は最小二乗推定量が使用される。
参照
setNormSigma0, setNormSigma1

メンバ変数詳解

◆ crossSegmentationThreshold

int cv::optflow::RLOFOpticalFlowParameter::crossSegmentationThreshold

[246] に従ったクロスベースのセグメンテーションで使用される色類似度のしきい値。(supportRegionType が SR_CROSS の場合のみ使用される)。クロスベースのセグメンテーションにより、動き境界をより正確に計算できる。

◆ globalMotionRansacThreshold

float cv::optflow::RLOFOpticalFlowParameter::globalMotionRansacThreshold

大域的動き事前分布を適用するため、規則的にサンプリングされた点上で動きベクトルが計算され、これがRANSACを用いたホモグラフィ推定の基礎となる。再投影しきい値は、動きベクトルの大きさのn番目のパーセンタイル(この値 [0 ... 100] で与えられる)に基づく。詳細は [247] を参照。

◆ largeWinSize

int cv::optflow::RLOFOpticalFlowParameter::largeWinSize

サポート領域の最大ウィンドウサイズ。supportRegionType が SR_FIXED の場合、これが正確なサポート領域サイズを与える。RLOFの速度は適用されるウィンドウサイズに関係する。ウィンドウサイズが小さいほど実行時間は短くなるが、その分ノイズに敏感になる。

◆ maxIteration

int cv::optflow::RLOFOpticalFlowParameter::maxIteration

反復精緻化に用いられる最大反復回数。値を小さくすると実行時間を短縮できるが、精度も低下する。

◆ maxLevel

int cv::optflow::RLOFOpticalFlowParameter::maxLevel

使用するピラミッドレベルの最大数。この値が大きいほど、長距離の動きに対して正確な解が得られやすくなる。実行時間はこのパラメータに線形に関係する。

◆ minEigenValue

float cv::optflow::RLOFOpticalFlowParameter::minEigenValue

勾配行列の最小固有値に対するしきい値。反復精緻化を打ち切るタイミングを定める。

◆ normSigma0

float cv::optflow::RLOFOpticalFlowParameter::normSigma0

[244] で導入された縮小Hampelノルムの &sigma パラメータ。&sigma = std::numeric_limist<float>::max() の場合、M推定器の代わりに最小二乗推定器が使用される。M推定器はサポート領域内の外れ値に対してよりロバストであるが、最小二乗は計算が高速である。

◆ normSigma1

float cv::optflow::RLOFOpticalFlowParameter::normSigma1

[244] で導入された縮小Hampelノルムの &sigma パラメータ。&sigma = std::numeric_limist<float>::max() の場合、M推定器の代わりに最小二乗推定器が使用される。M推定器はサポート領域内の外れ値に対してよりロバストであるが、最小二乗は計算が高速である。

◆ smallWinSize

int cv::optflow::RLOFOpticalFlowParameter::smallWinSize

サポート領域の最小ウィンドウサイズ。このパラメータは supportRegionType が SR_CROSS の場合にのみ使用される。

◆ solverType

SolverType cv::optflow::RLOFOpticalFlowParameter::solverType

反復精緻化の戦略を指定する変数。ST_BILINEAR を使用する際は [245] の引用を検討すること。

◆ supportRegionType

SupportRegionType cv::optflow::RLOFOpticalFlowParameter::supportRegionType

サポート領域の形状抽出または縮小戦略を指定する変数。

◆ useGlobalMotionPrior

bool cv::optflow::RLOFOpticalFlowParameter::useGlobalMotionPrior

大域的動き事前分布の初期化を使用する。[247] で導入された。長距離の動きに対してより正確になる。大域的動き事前分布の初期化を有効にすると計算量がわずかに増加する。

◆ useIlluminationModel

bool cv::optflow::RLOFOpticalFlowParameter::useIlluminationModel

輝度一定制約の代わりに、Gennert and Negahdaripourの照明モデルを使用する。([247] で提案)このモデルは次のように定義される:

\[ I(\mathbf{x},t) + m \cdot I(\mathbf{x},t) + c = I(\mathbf{x},t+1) \]

また、乗算項 m と加算項 c を含み、照明変化に対して推定をよりロバストにする。照明モデルを有効にすると計算量が増加する。

◆ useInitialFlow

bool cv::optflow::RLOFOpticalFlowParameter::useInitialFlow

次の点のリストを初期値として使用する。良好な初期化はアルゴリズムの精度を改善し、反復精緻化の収束を速めることで実行時間を短縮できる。


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