OpenCV 4.5.3(日本語機械翻訳)
|
This interface class allows to build new Layers - are building blocks of networks. [詳解]
#include <dnn.hpp>
cv::Algorithmを継承しています。
cv::dnn::AccumLayer, cv::dnn::ActivationLayer, cv::dnn::BaseConvolutionLayer, cv::dnn::BlankLayer, cv::dnn::ConcatLayer, cv::dnn::ConstLayer, cv::dnn::CorrelationLayer, cv::dnn::CropAndResizeLayer, cv::dnn::CropLayer, cv::dnn::DataAugmentationLayer, cv::dnn::DetectionOutputLayer, cv::dnn::EltwiseLayer, cv::dnn::FlattenLayer, cv::dnn::FlowWarpLayer, cv::dnn::InnerProductLayer, cv::dnn::InterpLayer, cv::dnn::LRNLayer, cv::dnn::LSTMLayer, cv::dnn::MVNLayer, cv::dnn::MaxUnpoolLayer, cv::dnn::NormalizeBBoxLayer, cv::dnn::PaddingLayer, cv::dnn::PermuteLayer, cv::dnn::PoolingLayer, cv::dnn::PriorBoxLayer, cv::dnn::ProposalLayer, cv::dnn::RNNLayer, cv::dnn::RegionLayer, cv::dnn::ReorgLayer, cv::dnn::ReshapeLayer, cv::dnn::ResizeLayer, cv::dnn::ScaleLayer, cv::dnn::ShiftLayer, cv::dnn::ShuffleChannelLayer, cv::dnn::SliceLayer, cv::dnn::SoftmaxLayer, cv::dnn::SplitLayer (計37項目)に継承されています。
公開メンバ関数 |
|
virtual CV_DEPRECATED_EXTERNAL void | finalize (const std::vector< Mat * > &input, std::vector< Mat > &output) |
入力、出力、blobに応じて内部パラメータを計算、設定します。[【詳解】(英語]
|
|
virtual CV_WRAP void | finalize (InputArrayOfArrays inputs, OutputArrayOfArrays outputs) |
入力、出力、blobに応じて内部パラメータを計算、設定します。[【詳解】(英語]
|
|
virtual CV_DEPRECATED_EXTERNAL void | forward (std::vector< Mat * > &input, std::vector< Mat > &output, std::vector< Mat > &internals) |
blobが与えられるとinput blobが与えられると、出力を計算するblobs .[【詳解】(英語]
|
|
virtual void | forward (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
blobが与えられるとinput blobが与えられると、出力を計算するblobs .[【詳解】(英語]
|
|
void | forward_fallback (InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) |
blobが与えられるとinput blobが与えられると、出力を計算するblobs .[【詳解】(英語]
|
|
CV_DEPRECATED_EXTERNAL void | finalize (const std::vector< Mat > &inputs, CV_OUT std::vector< Mat > &outputs) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。[【詳解】(英語]
|
|
CV_DEPRECATED std::vector< Mat > | finalize (const std::vector< Mat > &inputs) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。[【詳解】(英語]
|
|
CV_DEPRECATED CV_WRAP void | run (const std::vector< Mat > &inputs, CV_OUT std::vector< Mat > &outputs, CV_IN_OUT std::vector< Mat > &internals) |
レイヤーを割り当て、出力を計算します。[【詳解】(英語]
|
|
virtual int | inputNameToIndex (String inputName) |
入力blobのインデックスを入力配列に返します。[【詳解】(英語]
|
|
virtual CV_WRAP int | outputNameToIndex (const String &outputName) |
出力配列に出力blobのインデックスを返します。[【詳解】(英語]
|
|
virtual bool | supportBackend (int backendId) |
計算を行うために特定のバックエンドをサポートしているかどうかをレイヤーに尋ねます。[【詳解】(英語]
|
|
virtual Ptr< BackendNode > | initHalide (const std::vector< Ptr< BackendWrapper > > &inputs) |
Halide バックエンドノードを返します。[【詳解】(英語]
|
|
virtual Ptr< BackendNode > | initInfEngine (const std::vector< Ptr< BackendWrapper > > &inputs) |
virtual Ptr< BackendNode > | initNgraph (const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendNode > > &nodes) |
virtual Ptr< BackendNode > | initVkCom (const std::vector< Ptr< BackendWrapper > > &inputs) |
virtual Ptr< BackendNode > | initCUDA (void *context, const std::vector< Ptr< BackendWrapper > > &inputs, const std::vector< Ptr< BackendWrapper > > &outputs) |
CUDA バックエンドノードを返します[【詳解】(英語]
|
|
virtual void | applyHalideScheduler (Ptr< BackendNode > &node, const std::vector< Mat * > &inputs, const std::vector< Mat > &outputs, int targetId) const |
レイヤーのハイパーパラメータに基づいたHalideの自動スケジューリング[【詳解】(英語]
|
|
virtual Ptr< BackendNode > | tryAttach (const Ptr< BackendNode > &node) |
レイヤーフュージングの実装[【詳解】(英語]
|
|
virtual bool | setActivation (const Ptr< ActivationLayer > &layer) |
活性化された後続のレイヤーをそのレイヤーに添付しようとします。つまり、部分的なケースでレイヤーフュージョンを行います。[【詳解】(英語]
|
|
virtual bool | tryFuse (Ptr< Layer > &top) |
現在のレイヤと次のレイヤの融合を試みる[【詳解】(英語]
|
|
virtual void | getScaleShift (Mat &scale, Mat &shift) const |
チャネル単位の乗算と加算でレイヤーのパラメータを返します。[【詳解】(英語]
|
|
virtual void | unsetAttached () |
"Deattaches" all the layers, attached to particular layer.
|
|
virtual bool | getMemoryShapes (const std::vector< MatShape > &inputs, const int requiredOutputs, std::vector< MatShape > &outputs, std::vector< MatShape > &internals) const |
virtual int64 | getFLOPS (const std::vector< MatShape > &inputs, const std::vector< MatShape > &outputs) const |
virtual bool | updateMemoryShapes (const std::vector< MatShape > &inputs) |
Layer (const LayerParams ¶ms) | |
フィールドのみを初期化します。name,typeおよびblobsフィールドだけを初期化します。 |
|
void | setParamsFrom (const LayerParams ¶ms) |
フィールドのみを初期化します。name,typeおよびblobsフィールドだけを初期化します。 |
|
![]() |
|
virtual CV_WRAP void | clear () |
アルゴリズムの状態をクリアする[【詳解】(英語]
|
|
virtual void | write (FileStorage &fs) const |
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
|
|
CV_WRAP void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 |
|
virtual CV_WRAP void | read (const FileNode &fn) |
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
|
|
virtual CV_WRAP bool | empty () const |
が空の場合はtrueを返します。Algorithmが空の場合は真を返します。[【詳解】(英語]
|
|
virtual CV_WRAP void | save (const String &filename) const |
virtual CV_WRAP String | getDefaultName () const |
公開変数類 |
|
CV_PROP_RW std::vector< Mat > | blobs |
学習したパラメータのリストをここに保存しておくことで、使用者が読み込めるようになります。Net::getParam(). |
|
CV_PROP String | name |
レイヤーインスタンスの名前。ログ記録やその他の内部的な目的に使用できます。 |
|
CV_PROP String | type |
レイヤファクトリでレイヤを作成する際に使用された名前を入力してください。 |
|
CV_PROP int | preferableTarget |
フォワーディングの対象となるレイヤー |
|
その他の継承メンバ |
|
![]() |
|
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
|
|
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
ファイルからアルゴリズムを読み込む[【詳解】(英語]
|
|
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
文字列からアルゴリズムを読み込む[【詳解】(英語]
|
|
![]() |
|
void | writeFormat (FileStorage &fs) const |
このインターフェースクラスは、ネットワークの構成要素であるレイヤーを新たに構築することができます。
から派生した各クラスはLayerから派生した各クラスは,allocate()メソッドを実装して,自分の出力を宣言したりforward()を実装する必要があります。また、新しいレイヤーをネットワークに使用する前に、次のいずれかのマクロを使用してレイヤーを登録する必要があります。LayerFactoryマクロを使用する必要があります。
|
virtual |
レイヤーのハイパーパラメータに基づいたHalideの自動スケジューリング
[in]. | node | Halide関数を持つバックエンドノード。 |
[in]. | inputs | フォワード起動で使用されるBlob。 |
[in]. | outputs | フォワード起動で使用されるBlob。 |
[in]. | targetId | ターゲット識別子 |
Layerのように、独自のHalide::Funcメンバーを使用しないでください。このようにして、融合された関数はスケジュールされなければなりません。
|
virtual |
入力、出力、blobに応じて内部パラメータを計算、設定します。
[in]. | input | 既に割り当てられた入力blobのベクトル |
[out]. | output | 既に割り当てられている出力blobのベクトル |
このメソッドが、ネットワークが入力および出力blobにすべてのメモリを割り当てた後、推論前に呼び出された場合は
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_DEPRECATED_EXTERNAL void cv::dnn::Layer::finalize | ( | const std::vector< Mat > & | inputs, |
CV_OUT std::vector< Mat > & | outputs | ||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
|
virtual |
入力、出力、blobに応じて内部パラメータを計算、設定します。
[in]. | inputs | 既に割り当てられた入力blobのベクトル |
[out]. | outputs | 既に割り当てられている出力blobのベクトル |
このメソッドが、ネットワークが入力および出力blobにすべてのメモリを割り当てた後、推論前に呼び出された場合は
|
virtual |
blobが与えられるとinput
blobが与えられると、出力を計算するblobs
.
[in]. | inputs | 入力blobを使用します。 |
[out]. | outputs | 割り当てられた出力blobは、計算結果を格納します。 |
[out]. | internals | 割り当てられた内部blob |
|
virtual |
blobが与えられるとinput
blobが与えられると、出力を計算するblobs
.
[in]. | input | 入力blobを使用します。 |
[out]. | output | 割り当てられた出力blobは、計算結果を格納します。 |
[out]. | internals | 割り当てられた内部blob |
void cv::dnn::Layer::forward_fallback | ( | InputArrayOfArrays | inputs, |
OutputArrayOfArrays | outputs, | ||
OutputArrayOfArrays | internals | ||
) |
blobが与えられるとinput
blobが与えられると、出力を計算するblobs
.
[in]. | inputs | 入力blobを使用します。 |
[out]. | outputs | 割り当てられた出力blobは、計算結果を格納します。 |
[out]. | internals | 割り当てられた内部blob |
チャネル単位の乗算と加算でレイヤーのパラメータを返します。
[out]. | scale | チャンネル単位の乗算器。値の総数は、チャンネル数と同じでなければなりません。 |
[out]. | shift | チャンネルごとのオフセット。値の総数は、チャンネル数と等しくなります。 |
いくつかのレイヤーは、その変換を他のレイヤーと融合させることができます。例えば、コンボリューション+バッチノーマライゼーション。この方法では、ベースレイヤーは後のレイヤーの重みを使用します。融合したレイヤーはスキップされます。デフォルトではscale
およびshift
は空であり,それはレイヤーが要素単位の乗算や加算を持たないことを意味します。
|
virtual |
CUDA バックエンドノードを返します
context | void CSLContext オブジェクトへのポインタ |
inputs | レイヤーの入力 |
outputs | レイヤーの出力 |
|
virtual |
Halide バックエンドノードを返します。
[in]. | inputs | 入力ハライドバッファ。 |
入力バッファは、前方の呼び出しで使用されるものと全く同じでなければなりません。入力形状のみに基づいてHalide::ImageParamを使用することができるにもかかわらず、これはいくつかのメモリ管理の問題を防ぐのに役立ちます(何か間違ったことがあれば、Halideのテストは失敗します)。
|
virtual |
入力blobのインデックスを入力配列に返します。
inputName | 入力blobのラベル |
各レイヤーの入力と出力には、"%<レイヤー名%>[.出力名]"という表記を使って、簡単に識別できるラベルを付けることができます。このメソッドは、入力blobのラベルを入力ベクトルのインデックスにマッピングします。
cv::dnn::LSTMLayer出再実装されます。
|
virtual |
CV_DEPRECATED CV_WRAP void cv::dnn::Layer::run | ( | const std::vector< Mat > & | inputs, |
CV_OUT std::vector< Mat > & | outputs, | ||
CV_IN_OUT std::vector< Mat > & | internals | ||
) |
レイヤーを割り当て、出力を計算します。
|
virtual |
活性化された後続のレイヤーをそのレイヤーに添付しようとします。つまり、部分的なケースでレイヤーフュージョンを行います。
[in]. | layer | 後続の活性化層を指定します。 |
活性化層の取り付けが成功した場合、trueを返します。
|
virtual |
計算を行うために特定のバックエンドをサポートしているかどうかをレイヤーに尋ねます。
[in]. | backendId | 計算バックエンドの識別子。 |
|
virtual |
レイヤーフュージングの実装
[in]. | node | 下位レイヤーのバックエンドノード。 |
グラフベースのバックエンドでは実際に使用されます。活性化層が正常に取り付けられた場合は、空ではないcv::Ptrを同じバックエンドのノードに返します。最後の関数にのみ融合します。
現在のレイヤと次のレイヤの融合を試みる
[in]. | top | 次に融合されるレイヤー。 |