OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.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 は [247] [248] [249] [250] で説明されている高速な局所オプティカルフロー手法であり、[38] で提案されたピラミッド型反復 Lucas-Kanade 法に類似している。さらなる詳細と実験は次の論文 [251] に記載されている。実装は optflow::calcOpticalFlowPyrLK() から派生したものである。この RLOF 実装は、改良されたピラミッド型反復 Lucas-Kanade と見なすことができ、一連の改良モジュールを含む。ピラミッド型反復 Lucas-Kanade に対する主な改良点は次のとおりである:

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

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

◆ globalMotionRansacThreshold

float cv::optflow::RLOFOpticalFlowParameter::globalMotionRansacThreshold

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

◆ 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

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

◆ normSigma1

float cv::optflow::RLOFOpticalFlowParameter::normSigma1

[247] で導入された縮小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 を使用する場合は [248] の引用を検討すること。

◆ supportRegionType

SupportRegionType cv::optflow::RLOFOpticalFlowParameter::supportRegionType

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

◆ useGlobalMotionPrior

bool cv::optflow::RLOFOpticalFlowParameter::useGlobalMotionPrior

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

◆ useIlluminationModel

bool cv::optflow::RLOFOpticalFlowParameter::useIlluminationModel

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

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

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

◆ useInitialFlow

bool cv::optflow::RLOFOpticalFlowParameter::useInitialFlow

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


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