OpenCV 4.5.3(日本語機械翻訳)
|
This class allows to create and manipulate comprehensive artificial neural networks. [詳解]
#include <dnn.hpp>
公開型 |
|
typedef DictValue | LayerId |
文字列と整数のコンテナです。 |
|
公開メンバ関数 |
|
CV_WRAP | Net () |
デフォルトのコンストラクタです。 |
|
CV_WRAP | ~Net () |
デストラクタは、ネットへの参照がなくなった場合にのみネットを解放します。 |
|
CV_WRAP bool | empty () const |
CV_WRAP String | dump () |
ネットを文字列にダンプ[【詳解】(英語]
|
|
CV_WRAP void | dumpToFile (const String &path) |
ネットの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンをドットファイルにダンプする[【詳解】(英語]
|
|
int | addLayer (const String &name, const String &type, LayerParams ¶ms) |
新しい層をネットに追加します。[【詳解】(英語]
|
|
int | addLayerToPrev (const String &name, const String &type, LayerParams ¶ms) |
新しいレイヤーを追加し、その最初の入力を先に追加したレイヤーの最初の出力に接続します。[【詳解】(英語]
|
|
CV_WRAP int | getLayerId (const String &layer) |
レイヤの文字列名を整数の識別子に変換します。[【詳解】(英語]
|
|
CV_WRAP std::vector< String > | getLayerNames () const |
CV_WRAP Ptr< Layer > | getLayer (LayerId layerId) |
ネットワークが使用する、指定された ID または名前のレイヤーへのポインタを返します。 |
|
std::vector< Ptr< Layer > > | getLayerInputs (LayerId layerId) |
特定のレイヤの入力レイヤへのポインタを返します。 |
|
CV_WRAP void | connect (String outPin, String inpPin) |
第1層の出力と第2層の入力を接続する。[【詳解】(英語]
|
|
void | connect (int outLayerId, int outNum, int inpLayerId, int inpNum) |
第1レイヤーの #outNum 第1レイヤーの出力を第2レイヤーの#inNum 入力に接続します。[【詳解】(英語]
|
|
CV_WRAP void | setInputsNames (const std::vector< String > &inputBlobNames) |
ネットワーク入力疑似層の出力名を設定します。[【詳解】(英語]
|
|
CV_WRAP void | setInputShape (const String &inputName, const MatShape &shape) |
ネットワーク入力の形状を指定します。 |
|
CV_WRAP Mat | forward (const String &outputName=String()) |
フォワードパスを実行して、名前を持つレイヤーの出力を計算します。outputName .[【詳解】(英語]
|
|
CV_WRAP AsyncArray | forwardAsync (const String &outputName=String()) |
フォワードパスを実行して、名前を持つレイヤーの出力を計算します。outputName .[【詳解】(英語]
|
|
CV_WRAP void | forward (OutputArrayOfArrays outputBlobs, const String &outputName=String()) |
フォワードパスを実行して、名前を持つレイヤーの出力を計算します。outputName .[【詳解】(英語]
|
|
CV_WRAP void | forward (OutputArrayOfArrays outputBlobs, const std::vector< String > &outBlobNames) |
に記載されたレイヤーの出力を計算するためにフォワードパスを実行します。outBlobNames .[【詳解】(英語]
|
|
CV_WRAP_AS(forwardAndRetrieve) void forward(CV_OUT std CV_WRAP void | setHalideScheduler (const String &scheduler) |
に記載されたレイヤーの出力を計算するためにフォワードパスを実行します。outBlobNames .[【詳解】(英語]
|
|
CV_WRAP void | setPreferableBackend (int backendId) |
ネットワークに、サポートされている特定の計算バックエンドを使うように指示します。[【詳解】(英語]
|
|
CV_WRAP void | setPreferableTarget (int targetId) |
特定のターゲットデバイスでの計算をネットワークに依頼します。[【詳解】(英語]
|
|
CV_WRAP void | setInput (InputArray blob, const String &name="", double scalefactor=1.0, const Scalar &mean=Scalar()) |
ネットワークの新しい入力値を設定します。[【詳解】(英語]
|
|
CV_WRAP void | setParam (LayerId layer, int numParam, const Mat &blob) |
層の学習済みパラメータに新しい値を設定します。[【詳解】(英語]
|
|
CV_WRAP Mat | getParam (LayerId layer, int numParam=0) |
レイヤのパラメータblobを返します。[【詳解】(英語]
|
|
CV_WRAP std::vector< int > | getUnconnectedOutLayers () const |
出力が接続されていないレイヤーのインデックスを返します。 |
|
CV_WRAP std::vector< String > | getUnconnectedOutLayersNames () const |
出力が接続されていないレイヤーの名前を返します。 |
|
CV_WRAP void | getLayersShapes (const std::vector< MatShape > &netInputShapes, CV_OUT std::vector< int > &layersIds, CV_OUT std::vector< std::vector< MatShape > > &inLayersShapes, CV_OUT std::vector< std::vector< MatShape > > &outLayersShapes) const |
読み込まれたモデルのすべてのレイヤーの入力および出力の形状を返します;予備的な推論は必要ありません。[【詳解】(英語]
|
|
CV_WRAP void | getLayersShapes (const MatShape &netInputShape, CV_OUT std::vector< int > &layersIds, CV_OUT std::vector< std::vector< MatShape > > &inLayersShapes, CV_OUT std::vector< std::vector< MatShape > > &outLayersShapes) const |
void | getLayerShapes (const MatShape &netInputShape, const int layerId, CV_OUT std::vector< MatShape > &inLayerShapes, CV_OUT std::vector< MatShape > &outLayerShapes) const |
ロードされたモデルの、指定された id を持つレイヤーの入力および出力形状を返します。[【詳解】(英語]
|
|
void | getLayerShapes (const std::vector< MatShape > &netInputShapes, const int layerId, CV_OUT std::vector< MatShape > &inLayerShapes, CV_OUT std::vector< MatShape > &outLayerShapes) const |
CV_WRAP int64 | getFLOPS (const std::vector< MatShape > &netInputShapes) const |
指定された入力形状でロードされたモデル全体のFLOPを計算します.[【詳解】(英語]
|
|
CV_WRAP int64 | getFLOPS (const MatShape &netInputShape) const |
CV_WRAP int64 | getFLOPS (const int layerId, const std::vector< MatShape > &netInputShapes) const |
CV_WRAP int64 | getFLOPS (const int layerId, const MatShape &netInputShape) const |
CV_WRAP void | getLayerTypes (CV_OUT std::vector< String > &layersTypes) const |
モデルで使用されているレイヤーのタイプのリストを返します。[【詳解】(英語]
|
|
CV_WRAP int | getLayersCount (const String &layerType) const |
指定されたタイプのレイヤーの数を返します。[【詳解】(英語]
|
|
void | getMemoryConsumption (const std::vector< MatShape > &netInputShapes, CV_OUT size_t &weights, CV_OUT size_t &blobs) const |
モデルのすべての重みと中間blobを格納するのに必要なバイト数を計算します。[【詳解】(英語]
|
|
CV_WRAP void | getMemoryConsumption (const MatShape &netInputShape, CV_OUT size_t &weights, CV_OUT size_t &blobs) const |
CV_WRAP void | getMemoryConsumption (const int layerId, const std::vector< MatShape > &netInputShapes, CV_OUT size_t &weights, CV_OUT size_t &blobs) const |
CV_WRAP void | getMemoryConsumption (const int layerId, const MatShape &netInputShape, CV_OUT size_t &weights, CV_OUT size_t &blobs) const |
void | getMemoryConsumption (const std::vector< MatShape > &netInputShapes, CV_OUT std::vector< int > &layerIds, CV_OUT std::vector< size_t > &weights, CV_OUT std::vector< size_t > &blobs) const |
各層のすべての重みと中間Blobを格納するのに必要なバイト数を計算します。[【詳解】(英語]
|
|
void | getMemoryConsumption (const MatShape &netInputShape, CV_OUT std::vector< int > &layerIds, CV_OUT std::vector< size_t > &weights, CV_OUT std::vector< size_t > &blobs) const |
CV_WRAP void | enableFusion (bool fusion) |
ネットワークでのレイヤー融合を有効または無効にします。[【詳解】(英語]
|
|
CV_WRAP int64 | getPerfProfile (CV_OUT std::vector< double > &timings) |
推論にかかる全体の時間と、レイヤーの時間(ティック単位)を返します。[【詳解】(英語]
|
|
静的公開メンバ関数 |
|
static CV_WRAP Net | readFromModelOptimizer (const String &xml, const String &bin) |
ネットワークの作成は、インテルのModelオプティマイザーの中間表現(IR)。[【詳解】(英語]
|
|
static CV_WRAP Net | readFromModelOptimizer (const std::vector< uchar > &bufferModelConfig, const std::vector< uchar > &bufferWeights) |
ネットワークの作成は、インテルのModelオプティマイザーのインメモリ・バッファから中間表現(IR)でネットワークを作成します。[【詳解】(英語]
|
|
static Net | readFromModelOptimizer (const uchar *bufferModelConfigPtr, size_t bufferModelConfigSize, const uchar *bufferWeightsPtr, size_t bufferWeightsSize) |
ネットワークの作成は、インテルのModelオプティマイザーのインメモリ・バッファから中間表現(IR)でネットワークを作成します。[【詳解】(英語]
|
|
このクラスでは、包括的な人工ニューラルネットワークを作成し、操作することができます。
ニューラルネットワークは有向非環状グラフ(DAG)として表現され、頂点はインスタンスLayerインスタンスであり、エッジは層の入力と出力の間の関係を指定します。
各ネットワーク層は、そのネットワーク内で一意の整数IDと一意の文字列名を持っています。LayerIdには、レイヤ名またはレイヤIDが格納されます。
このクラスは、そのインスタンスの参照カウントをサポートしています。
int cv::dnn::Net::addLayer | ( | const String & | name, |
const String & | type, | ||
LayerParams & | params | ||
) |
新しい層をネットに追加します。
name | 追加する層の一意の名前。 |
type | 追加するレイヤーのタイプ名 (タイプは LayerRegister で登録する必要があります) |
params | 作成レイヤーの初期化に使用されるパラメータ。 |
int cv::dnn::Net::addLayerToPrev | ( | const String & | name, |
const String & | type, | ||
LayerParams & | params | ||
) |
新しいレイヤーを追加し、その最初の入力を先に追加したレイヤーの最初の出力に接続します。
void cv::dnn::Net::connect | ( | int | outLayerId, |
int | outNum, | ||
int | inpLayerId, | ||
int | inpNum | ||
) |
第1レイヤーの #outNum
第1レイヤーの出力を第2レイヤーの#inNum
入力に接続します。
outLayerId | 第一の層の識別子 |
outNum | 第一層の出力の番号 |
inpLayerId | 第二の層の識別子 |
inpNum | 第2層の入力番号 |
CV_WRAP void cv::dnn::Net::connect | ( | String | outPin, |
String | inpPin | ||
) |
第1層の出力と第2層の入力を接続する。
outPin | 第1層の出力の記述子。 |
inpPin | 第2層の入力の記述子。 |
記述子には以下のようなテンプレートがある。<layer_name>[.input_number]
:
layer_name
は,追加される層の文字列名です.この部分が空の場合は,ネットワーク入力の疑似レイヤが使われます。テンプレートの2番目のオプション部分input_number
は,層の入力番号,ラベル1のいずれかです。この部分が省略された場合は、最初のレイヤー入力が使用されます。
CV_WRAP String cv::dnn::Net::dump | ( | ) |
ネットを文字列にダンプ
CV_WRAP void cv::dnn::Net::dumpToFile | ( | const String & | path | ) |
CV_WRAP bool cv::dnn::Net::empty | ( | ) | const |
ネットワークにレイヤーが存在しない場合は、trueを返します。
CV_WRAP void cv::dnn::Net::enableFusion | ( | bool | fusion | ) |
ネットワークでのレイヤー融合を有効または無効にします。
fusion | 融合を有効にするには true、無効にするには false を指定します。デフォルトでは、融合は有効です。 |
CV_WRAP Mat cv::dnn::Net::forward | ( | const String & |
outputName
=
String()
|
) |
フォワードパスを実行して、名前を持つレイヤーの出力を計算します。outputName
.
outputName | 出力を得るために必要な層の名前 |
デフォルトでは、ネットワーク全体のフォワードパスを実行します。
CV_WRAP void cv::dnn::Net::forward | ( | OutputArrayOfArrays | outputBlobs, |
const std::vector< String > & | outBlobNames | ||
) |
に記載されたレイヤーの出力を計算するためにフォワードパスを実行します。outBlobNames
.
outputBlobs | 指定された層の最初の出力のblobを含む。 |
outBlobNames | 出力を得るために必要な層の名前 |
CV_WRAP void cv::dnn::Net::forward | ( | OutputArrayOfArrays | outputBlobs, |
const String & |
outputName
=
String() |
||
) |
フォワードパスを実行して、名前を持つレイヤーの出力を計算します。outputName
.
outputBlobs | 指定された層のすべての出力blobを含みます。 |
outputName | 出力を得るために必要な層の名前 |
もしoutputName
が空の場合、ネットワーク全体のフォワードパスを実行します。
CV_WRAP AsyncArray cv::dnn::Net::forwardAsync | ( | const String & |
outputName
=
String()
|
) |
フォワードパスを実行して、名前を持つレイヤーの出力を計算します。outputName
.
outputName | 出力を得るために必要な層の名前 |
デフォルトでは、ネットワーク全体のフォワードパスを実行します。
これは、以下の非同期バージョンです。forward(const String&). dnn::DNN_BACKEND_INFERENCE_ENGINE バックエンドが必要です。
CV_WRAP int64 cv::dnn::Net::getFLOPS | ( | const int | layerId, |
const MatShape & | netInputShape | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP int64 cv::dnn::Net::getFLOPS | ( | const int | layerId, |
const std::vector< MatShape > & | netInputShapes | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP int64 cv::dnn::Net::getFLOPS | ( | const MatShape & | netInputShape | ) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP int64 cv::dnn::Net::getFLOPS | ( | const std::vector< MatShape > & | netInputShapes | ) | const |
指定された入力形状でロードされたモデル全体のFLOPを計算します.
netInputShapes | すべてのネットワーク入力に対する形状のベクトル. |
CV_WRAP int cv::dnn::Net::getLayerId | ( | const String & | layer | ) |
レイヤの文字列名を整数の識別子に変換します。
CV_WRAP int cv::dnn::Net::getLayersCount | ( | const String & | layerType | ) | const |
指定されたタイプのレイヤーの数を返します。
layerType | タイプを指定します。 |
void cv::dnn::Net::getLayerShapes | ( | const MatShape & | netInputShape, |
const int | layerId, | ||
CV_OUT std::vector< MatShape > & | inLayerShapes, | ||
CV_OUT std::vector< MatShape > & | outLayerShapes | ||
) | const |
ロードされたモデルの、指定された id を持つレイヤーの入力および出力形状を返します。
netInputShape | shape 入力 blob in net 入力レイヤー. |
layerId | レイヤーのid |
inLayerShapes | 入力レイヤーの形状の出力パラメータ;順番はlayersIdsと同じ |
outLayerShapes | 順番は layersIds と同じですが、出力レイヤーの形状の出力パラメータ |
void cv::dnn::Net::getLayerShapes | ( | const std::vector< MatShape > & | netInputShapes, |
const int | layerId, | ||
CV_OUT std::vector< MatShape > & | inLayerShapes, | ||
CV_OUT std::vector< MatShape > & | outLayerShapes | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP void cv::dnn::Net::getLayersShapes | ( | const MatShape & | netInputShape, |
CV_OUT std::vector< int > & | layersIds, | ||
CV_OUT std::vector< std::vector< MatShape > > & | inLayersShapes, | ||
CV_OUT std::vector< std::vector< MatShape > > & | outLayersShapes | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP void cv::dnn::Net::getLayersShapes | ( | const std::vector< MatShape > & | netInputShapes, |
CV_OUT std::vector< int > & | layersIds, | ||
CV_OUT std::vector< std::vector< MatShape > > & | inLayersShapes, | ||
CV_OUT std::vector< std::vector< MatShape > > & | outLayersShapes | ||
) | const |
読み込まれたモデルのすべてのレイヤーの入力および出力の形状を返します;予備的な推論は必要ありません。
netInputShapes | ネットの入力レイヤーにあるすべての入力blobの形状を返します。 |
layersIds | レイヤIDの出力パラメータです。 |
inLayersShapes | 入力レイヤーの形状の出力パラメータ;順番はlayersIdsと同じ |
outLayersShapes | 順番は layersIds と同じですが、出力レイヤーの形状の出力パラメータ |
CV_WRAP void cv::dnn::Net::getLayerTypes | ( | CV_OUT std::vector< String > & | layersTypes | ) | const |
モデルで使用されているレイヤーのタイプのリストを返します。
layersTypes | 型を返すための出力パラメータです。 |
CV_WRAP void cv::dnn::Net::getMemoryConsumption | ( | const int | layerId, |
const MatShape & | netInputShape, | ||
CV_OUT size_t & | weights, | ||
CV_OUT size_t & | blobs | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP void cv::dnn::Net::getMemoryConsumption | ( | const int | layerId, |
const std::vector< MatShape > & | netInputShapes, | ||
CV_OUT size_t & | weights, | ||
CV_OUT size_t & | blobs | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
CV_WRAP void cv::dnn::Net::getMemoryConsumption | ( | const MatShape & | netInputShape, |
CV_OUT size_t & | weights, | ||
CV_OUT size_t & | blobs | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
void cv::dnn::Net::getMemoryConsumption | ( | const MatShape & | netInputShape, |
CV_OUT std::vector< int > & | layerIds, | ||
CV_OUT std::vector< size_t > & | weights, | ||
CV_OUT std::vector< size_t > & | blobs | ||
) | const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
void cv::dnn::Net::getMemoryConsumption | ( | const std::vector< MatShape > & | netInputShapes, |
CV_OUT size_t & | weights, | ||
CV_OUT size_t & | blobs | ||
) | const |
モデルのすべての重みと中間blobを格納するのに必要なバイト数を計算します。
netInputShapes | すべてのネットワーク入力に対する形状のベクトル. |
weights | 重みのための結果のバイトを格納する出力パラメータ。 |
blobs | 中間Blobの結果のバイトを格納するための出力パラメータ。 |
void cv::dnn::Net::getMemoryConsumption | ( | const std::vector< MatShape > & | netInputShapes, |
CV_OUT std::vector< int > & | layerIds, | ||
CV_OUT std::vector< size_t > & | weights, | ||
CV_OUT std::vector< size_t > & | blobs | ||
) | const |
各層のすべての重みと中間Blobを格納するのに必要なバイト数を計算します。
netInputShapes | すべてのネットワーク入力に対する形状のベクトル. |
layerIds | レイヤーIDを保存するための出力ベクトル。 |
weights | 重みのための結果のバイトを格納する出力パラメータ。 |
blobs | 中間Blobの結果のバイトを格納するための出力パラメータ。 |
レイヤのパラメータblobを返します。
layer | レイヤーの名前またはID |
numParam | 配列内のレイヤーパラメータのインデックスLayer::blobs配列内のレイヤーパラメータのインデックス |
CV_WRAP int64 cv::dnn::Net::getPerfProfile | ( | CV_OUT std::vector< double > & | timings | ) |
推論にかかる全体の時間と、レイヤーの時間(ティック単位)を返します。
返されたベクトルのインデックスは、レイヤーのIDに対応しています。いくつかのレイヤーは他のレイヤーと融合している場合があり、その場合はスキップされたレイヤーのティックカウントはゼロになります。DNN_TARGET_CPU上のDNN_BACKEND_OPENCVでのみサポートされます。
[out]. | timings | 全レイヤーのティックタイミングを表すベクトル。 |
|
static |
|
static |
|
static |
CV_WRAP_AS(forwardAndRetrieve) void forward(CV_OUT std CV_WRAP void cv::dnn::Net::setHalideScheduler | ( | const String & | scheduler | ) |
に記載されたレイヤーの出力を計算するためにフォワードパスを実行します。outBlobNames
.
outputBlobs | で指定された各層のすべての出力blobを含みます。outBlobNames . |
outBlobNames | 出力を得るために必要な層の名前 |
ハライドレイヤーをコンパイルする。
[in]. | scheduler | スケジューリングディレクティブを含むYAMLファイルへのパス。 |
Halideのバックエンドをサポートするレイヤーをスケジューリングします。その後、特定のターゲット用にコンパイルします。スケジューリングファイルに記述されていないレイヤーや、手動でのスケジューリングが全く行われていない場合は、自動スケジューリングが適用されます。
CV_WRAP void cv::dnn::Net::setInput | ( | InputArray | blob, |
const String & |
name
=
"" ,
|
||
double |
scalefactor
=
1.0 ,
|
||
const Scalar & |
mean
=
Scalar() |
||
) |
ネットワークの新しい入力値を設定します。
blob | 新しいblob。CV_32F または CV_8U の深さを持ちます. |
name | 入力レイヤの名前. |
scalefactor | 任意の正規化スケール. |
mean | 平均減算値(オプション). |
scale や mean 値が指定された場合,最終的な入力blobは以下のように計算されます.
CV_WRAP void cv::dnn::Net::setInputsNames | ( | const std::vector< String > & | inputBlobNames | ) |
ネットワーク入力疑似層の出力名を設定します。
各ネットは、id=0の特別なネットワーク入力疑似層を常に持っています。この層は、ユーザーblobを保存するだけで、いかなる計算も行いません。実際、この層は、ユーザーデータをネットワークに渡す唯一の方法を提供します。他の層と同様に、この層はその出力にラベルを付けることができ、この関数はこれを簡単に行う方法を提供します。
層の学習済みパラメータに新しい値を設定します。
layer | レイヤーの名前またはID |
numParam | 配列内のレイヤーパラメータのインデックスLayer::blobs配列内のレイヤーパラメータのインデックス |
blob | 新しい値を設定します。 |
CV_WRAP void cv::dnn::Net::setPreferableBackend | ( | int | backendId | ) |
ネットワークに、サポートされている特定の計算バックエンドを使うように指示します。
[in]. | backendId | バックエンドの識別子. |
OpenCV が Intel の Inference Engine ライブラリでコンパイルされている場合, DNN_BACKEND_DEFAULT は DNN_BACKEND_INFERENCE_ENGINE を意味します.それ以外の場合は,DNN_BACKEND_OPENCV になります.
CV_WRAP void cv::dnn::Net::setPreferableTarget | ( | int | targetId | ) |
特定のターゲットデバイスでの計算をネットワークに依頼します。
[in]. | targetId | ターゲットの識別子を指定します。 |
サポートされているバックエンドとターゲットの組み合わせのリスト。
DNN_BACKEND_OPENCV | dnn_backend_inference_engine(バックエンド推論エンジン | dnn_backend_halide(バックエンド・ハライド | DNN_BACKEND_CUDA | |
---|---|---|---|---|
DNN_TARGET_CPU | + | + | + | |
DNN_TARGET_OPENCL | + | + | + | |
DNN_TARGET_OPENCL_FP16 | + | + | ||
Dnn_Target_Myriad | + | |||
DNN_TARGET_FPGA | + | |||
Dnn_Target_Cuda | + | |||
Dnn_Target_Cuda_fp16 | + | |||
Dnn_Target_Hddl | + |