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

ストリーミング向けにコンパイルされた計算(グラフ)を表す。 詳細...

#include <opencv2/gapi/gstreaming.hpp>

Collaboration diagram for cv::GStreamingCompiled:

公開メンバ関数

GAPI_WRAP GStreamingCompiled ()
 
const GMetaArgsmetas () const
 このグラフがコンパイルされた対象のメタデータのベクトル。
 
 operator bool () const
 コンパイル済みオブジェクトが有効(空でない)かどうかを確認する。
 
const GMetaArgsoutMetas () const
 グラフ出力のメタデータ記述のベクトル。
 
bool pull (cv::GOptRunArgsP &&outs)
 パイプラインから次に利用可能なデータを取得する。
 
bool pull (cv::GRunArgsP &&outs)
 パイプラインから次の処理済みフレームを取得する。
 
GAPI_WRAP bool running () const
 パイプラインが実行中かどうかを調べる。
 
template<typename T , typename... Args>
void setSource (Args &&... args)
 指定した引数を用いて、単一入力の計算パイプライン用の入力ビデオストリームを構築し、指定する。
 
void setSource (const gapi::wip::IStreamSource::Ptr &s)
 単一入力の計算パイプライン用の入力ビデオストリームを指定する。
 
void setSource (GRunArgs &&ins)
 処理対象としてGStreamingCompiledに入力データを指定する。汎用版。
 
GAPI_WRAP void start ()
 パイプラインの実行を開始する。
 
GAPI_WRAP void stop ()
 パイプラインの処理を停止(中断)する。
 
bool try_pull (cv::GRunArgsP &&outs)
 パイプラインから次の処理済みフレームの取得を試みる。
 

詳細説明

ストリーミング向けにコンパイルされた計算(グラフ)を表す。

このクラスはグラフコンパイル(cv::GComputation::compileStreaming()の呼び出し)の成果物を表す。このクラスのオブジェクトは実際にストリーム処理を行い、パイプライン実行の全体的な複雑さがこのクラスのオブジェクトにカプセル化されている。実行モデルは2つのレベルを持つ。最上位ではヘテロジニアスグラフの実行が積極的にパイプライン化され、最下層では各内部ブロックの実行がそれに関連付けられたバックエンドによって決定される。バックエンドは、コンパイル引数を介して渡されるカーネルパッケージに基づいて選択される(詳細はG-API グラフコンパイル引数、GNetworkPackage、GKernelPackageを参照)。

GStreamingCompiledオブジェクトは「プレイヤー」のようなセマンティクスを持ち、start()stop()といったメソッドを備える。GStreamingCompiledはビデオストリームを完全に制御するため、ステートフルである。setSource()を使って入力ストリームデータを指定し、その後start()を呼び出して実際に処理を開始する必要がある。その後は、pull()またはtry_pull()を使って、それぞれブロッキングまたは非ブロッキングの方法でグラフから次の処理済みデータフレームを取得する。

現時点では、1つのGStreamingCompiledは一度に1つのビデオストリームしか処理できない。同じグラフを複数のビデオストリームに対して実行するには、複数のGStreamingCompiledオブジェクトを生成する。

参照
GCompiled

構築子と解体子の詳解

◆ GStreamingCompiled()

GAPI_WRAP cv::GStreamingCompiled::GStreamingCompiled ( )
Python:
cv.GStreamingCompiled() -> <GStreamingCompiled object>

メンバ関数詳解

◆ metas()

const GMetaArgs & cv::GStreamingCompiled::metas ( ) const

このグラフがコンパイルされた対象のメタデータのベクトル。

戻り値
reshapeがサポートされていない場合を除き、戻り値はこのコンパイル済みオブジェクトを生成するためにcv::GComputation::compile()に渡されたものと同じベクトルである。そうでない場合は、reshape()に渡された最新のメタデータベクトルである(その呼び出しが成功していた場合)。

◆ operator bool()

cv::GStreamingCompiled::operator bool ( ) const
explicit

コンパイル済みオブジェクトが有効(非空)かどうかを確認する

戻り値
オブジェクトが実行可能(有効)であればtrue、そうでなければfalse

◆ outMetas()

const GMetaArgs & cv::GStreamingCompiled::outMetas ( ) const

グラフ出力のメタデータ記述のベクトル。

戻り値
グラフの出力オブジェクトのフォーマット/解像度を持つベクトル。この計算を構成する演算によって、入力メタデータベクトルから自動的に推論される。
覚え書き
異なる入力メタを持つ同一のcv::GComputiationグラフから生成されたGCompiledオブジェクトは、このベクトルで異なる値を返すことがある。

◆ pull() [1/2]

bool cv::GStreamingCompiled::pull ( cv::GOptRunArgsP && outs)
Python:
cv.GStreamingCompiled.pull() -> retval

パイプラインから次に利用可能なデータを取得する。

このメソッドはcv::optionalオブジェクトのベクトルを受け取る。呼び出し時点でその値が利用可能(準備完了)であればオブジェクトに値が割り当てられ、利用できなければオブジェクトはempty()にリセットされる。

これはブロッキングメソッドであり、戻り時に何らかのデータが出力ベクトルに書き込まれていることを保証する。

このメソッドを使う意味があるのは、グラフに非同期化された部分(cv::gapi::desyncを参照)がある場合のみである。グラフに非同期化された部分がない場合、このメソッドの挙動は通常のpull()と同一である(すべてのデータオブジェクトは出力ベクトルに同期的に生成される)。

出力引数のベクトルを作成するにはgout()を使用する。

出力ベクトルは、cv::GComputationのプロトコルで(その構築時点で)定義されたものと同じ数の要素を持たなければならない。要素の形状もプロトコルに準拠しなければならない(例えば、cv::GMatが出力として宣言されている箇所にはcv::optional<cv::Mat>を渡す必要がある、など)。型が一致しない場合は実行時例外が発生する。

このメソッドは出力ベクトルを介して渡されたオブジェクトに新しいデータを書き込む。準備完了のデータがまだない場合、このメソッドはブロックする。非ブロッキング版が必要な場合はtry_pull()を使用する。

引数
outs取得する出力パラメータのベクトル。
戻り値
次の結果が取得できればtrue、falseはストリームの終端を示す。
参照
cv::gapi::desync

◆ pull() [2/2]

bool cv::GStreamingCompiled::pull ( cv::GRunArgsP && outs)
Python:
cv.GStreamingCompiled.pull() -> retval

パイプラインから次の処理済みフレームを取得する。

出力引数のベクトルを作成するにはgout()を使用する。

出力ベクトルは、cv::GComputationのプロトコルで(その構築時点で)定義されたものと同じ数の要素を持たなければならない。要素の形状もプロトコルに準拠しなければならない(例えば、cv::GMatが出力として宣言されている箇所にはcv::Matを渡す必要がある、など)。型が一致しない場合は実行時例外が発生する。

このメソッドは出力ベクトルを介して渡されたオブジェクトに新しいデータを書き込む。準備完了のデータがまだない場合、このメソッドはブロックする。非ブロッキング版が必要な場合はtry_pull()を使用する。

引数
outs取得する出力パラメータのベクトル。
戻り値
次の結果が取得できればtrue、falseはストリームの終端を示す。

◆ running()

GAPI_WRAP bool cv::GStreamingCompiled::running ( ) const
Python:
cv.GStreamingCompiled.running() -> retval

パイプラインが実行中かどうかを調べる。

覚え書き
このメソッドは現時点では(ユーザー側に関して)スレッドセーフではない。アプリケーション内で同じオブジェクトに対して複数のスレッドからstart()/stop()/setSource()が呼び出される可能性がある場合は、アクセスを保護すること。
戻り値
現在のストリームがまだ終わっていなければtrue。

◆ setSource() [1/3]

template<typename T , typename... Args>
void cv::GStreamingCompiled::setSource ( Args &&... args)
inline
Python:
cv.GStreamingCompiled.setSource(callback) -> None

指定した引数を用いて、単一入力の計算パイプライン用の入力ビデオストリームを構築し、指定する。

パイプラインがすでに実行中の場合は例外をスローする。新しいビデオストリームでグラフを実行するには、stop()を呼び出してからsetSource()を使用する。

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
argsストリームソースを構築および初期化するために使用される引数。
この関数の呼び出しグラフ:

◆ setSource() [2/3]

void cv::GStreamingCompiled::setSource ( const gapi::wip::IStreamSource::Ptr & s)
Python:
cv.GStreamingCompiled.setSource(callback) -> None

単一入力の計算パイプライン用の入力ビデオストリームを指定する。

パイプラインがすでに実行中の場合は例外をスローする。新しいビデオストリームでグラフを実行するには、stop()を呼び出してからsetSource()を使用する。

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
s入力ビデオストリームを表す IStreamSource への共有ポインタ。

◆ setSource() [3/3]

void cv::GStreamingCompiled::setSource ( GRunArgs && ins)
Python:
cv.GStreamingCompiled.setSource(callback) -> None

処理対象としてGStreamingCompiledに入力データを指定する。汎用版。

入力引数のベクトルを作成するにはgin()を使用する。

入力ベクトルは、cv::GComputationのプロトコルで(その構築時点で)定義されたものと同じ数の要素を持たなければならない。要素の形状もプロトコルに準拠しなければならない(例えば、cv::GMatが入力として宣言されている箇所にはcv::Matを渡す必要がある、など)。型が一致しない場合は実行時例外が発生する。

通常のGCompiledとは対照的に、親GComputationGMat引数に対してGVideoCapture型のオブジェクトを渡すこともできる。コンパイル済みパイプラインはそのGVideoCaptureからデータの取得を開始し、それをパイプラインに供給する。GVideoCaptureがストリームの終端を示したとき(またはstop()が呼び出されたとき)にパイプラインは停止する。

GMat引数に対して通常のMatを渡すと、それは「無限」のソースとなる。明示的に停止されるまで、パイプラインはこのMatを供給しながら永久に実行され続ける可能性がある。

現在、入力としてサポートされているのは単一のGVideoCaptureのみである。親GComputationが複数の入力GMatで宣言されている場合、そのうちの1つをGVideoCaptureとして指定できるが、他のすべては通常のMatオブジェクトでなければならない。

パイプラインがすでに実行中の場合は例外をスローする。新しいビデオストリームでグラフを実行するには、stop()を呼び出してからsetSource()を使用する。

覚え書き
このメソッドは現時点では(ユーザー側に関して)スレッドセーフではない。アプリケーション内で同じオブジェクトに対して複数のスレッドからstart()/stop()/setSource()が呼び出される可能性がある場合は、アクセスを保護すること。
引数
ins処理する入力のベクトル。
参照
gin

◆ start()

GAPI_WRAP void cv::GStreamingCompiled::start ( )
Python:
cv.GStreamingCompiled.start() -> None

パイプラインの実行を開始する。

データを取得するにはpull()/try_pull()を使用する。ビデオソースが指定されていない場合は例外をスローする。

パイプラインがすでに動作していて停止された場合(stop()による明示的な停止、またはストリーム完了による停止)であっても、まずsetSource()を呼び出す必要がある

覚え書き
このメソッドは現時点では(ユーザー側に関して)スレッドセーフではない。アプリケーション内で同じオブジェクトに対して複数のスレッドからstart()/stop()/setSource()が呼び出される可能性がある場合は、アクセスを保護すること。

◆ stop()

GAPI_WRAP void cv::GStreamingCompiled::stop ( )
Python:
cv.GStreamingCompiled.stop() -> None

パイプラインの処理を停止(中断)する。

注意 - これは一時停止ではなく完全な停止である。start()を呼び出すと、G-APIはストリームを最初から処理し始める。

パイプラインが実行中でない場合は例外をスローする。

◆ try_pull()

bool cv::GStreamingCompiled::try_pull ( cv::GRunArgsP && outs)

パイプラインから次の処理済みフレームの取得を試みる。

出力引数のベクトルを作成するにはgout()を使用する。

このメソッドは出力ベクトルを介して渡されたオブジェクトに新しいデータを書き込む。準備完了のデータがまだない場合、出力ベクトルは変更されず、falseが返される。

戻り値
データが取得できればtrue、取得できなければfalse。注意: ここでのfalseはストリームの終端を示すものではない。

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