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

このクラスは、包括的な人工ニューラルネットワークの作成と操作を可能にする。続き...

#include <opencv2/dnn/dnn.hpp>

Collaboration diagram for cv::dnn::Net:

公開型

typedef DictValue LayerId
 文字列と整数のコンテナ。
 

公開メンバ関数

 Net ()
 デフォルトコンストラクタ。
 
 ~Net ()
 デストラクタは、ネットワークへの参照がもう存在しない場合にのみネットワークを解放する。
 
int addLayer (const String &name, const String &type, const int &dtype, LayerParams &params)
 新しいレイヤーをネットワークに追加する。
 
int addLayer (const String &name, const String &type, LayerParams &params)
 
int addLayerToPrev (const String &name, const String &type, const int &dtype, LayerParams &params)
 新しいレイヤーを追加し、その最初の入力を直前に追加したレイヤーの最初の出力に接続する。
 
int addLayerToPrev (const String &name, const String &type, LayerParams &params)
 
const ArgDataargData (Arg arg) const
 
ArgKind argKind (Arg arg) const
 
const std::string & argName (Arg arg) const
 
MatargTensor (Arg arg) const
 
int argType (Arg arg) const
 
void connect (int outLayerId, int outNum, int inpLayerId, int inpNum)
 最初のレイヤーの #outNum 番目の出力を、2番目のレイヤーの #inNum 番目の入力に接続する。
 
void connect (String outPin, String inpPin)
 最初のレイヤーの出力を2番目のレイヤーの入力に接続する。
 
void disableKVCache ()
 すべての AttentionOnnxI レイヤーでKVキャッシュを無効にする。
 
String dump ()
 ネットワークを文字列にダンプする。
 
std::ostream & dumpArg (std::ostream &strm, Arg arg, int indent, bool comma=true, bool dump_details=false) const
 
std::ostream & dumpDim (std::ostream &strm, int value) const
 
void dumpToFile (CV_WRAP_FILE_PATH const String &path)
 ネットワークの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンをdotファイルにダンプする。
 
void dumpToPbtxt (CV_WRAP_FILE_PATH const String &path)
 ネットワークの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンをpbtxtファイルにダンプする。
 
void dumpToStream (std::ostream &strm) const
 ネットワークの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンを指定した出力ストリームにダンプする。
 
bool empty () const
 
void enableFusion (bool fusion)
 ネットワークのレイヤーフュージョンを有効または無効にする。
 
void enableKVCache ()
 すべての AttentionOnnxI レイヤーでKVキャッシュを有効にする。
 
void enableWinograd (bool useWinograd)
 Winograd計算ブランチを有効または無効にする。Winograd計算ブランチはわずかな精度の低下と引き換えに3x3畳み込みを高速化できる。
 
void finalizeNet ()
 ネットワークの構成を確定し、推論の準備を整える。
 
int findDim (const std::string &name, bool insert=false)
 
Mat forward (const String &outputName=String())
 順伝播を実行し、名前 outputName のレイヤーの出力を計算する。
 
void forward (CV_ND OutputArrayOfArrays outputBlobs, const std::vector< String > &outBlobNames)
 順伝播を実行し、outBlobNames に列挙されたレイヤーの出力を計算する。
 
void forward (CV_ND OutputArrayOfArrays outputBlobs, const String &outputName=String())
 順伝播を実行し、名前 outputName のレイヤーの出力を計算する。
 
void forward (std::vector< std::vector< Mat > > &outputBlobs, const std::vector< String > &outBlobNames)
 順伝播を実行し、outBlobNames に列挙されたレイヤーの出力を計算する。
 
AsyncArray forwardAsync (const String &outputName=String())
 順伝播を実行し、名前 outputName のレイヤーの出力を計算する。
 
Arg getArg (const std::string &name)
 
int64 getFLOPS (const int layerId, const MatShape &netInputShape, const int &netInputType) const
 
int64 getFLOPS (const int layerId, const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes) const
 
int64 getFLOPS (const MatShape &netInputShape, const int &netInputType) const
 
int64 getFLOPS (const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes) const
 指定した入力形状で、読み込まれたモデル全体のFLOPを計算する。
 
Impl * getImpl () const
 
Impl & getImplRef () const
 
Ptr< LayergetLayer (const LayerId &layerId) const
 
Ptr< LayergetLayer (const String &layerName) const
 
Ptr< LayergetLayer (int layerId) const
 ネットワークが使用する、指定したIDまたは名前のレイヤーへのポインタを返す。
 
int getLayerId (const String &layer) const
 レイヤーの文字列名を整数の識別子に変換する。
 
std::vector< Ptr< Layer > > getLayerInputs (int layerId) const
 特定のレイヤーの入力レイヤーへのポインタを返す。
 
std::vector< StringgetLayerNames () const
 
int getLayersCount (const String &layerType) const
 指定した型のレイヤーの数を返す。
 
void getLayerShapes (const MatShape &netInputShape, const int &netInputType, const int layerId, std::vector< MatShape > &inLayerShapes, std::vector< MatShape > &outLayerShapes) const
 読み込まれたモデル内の指定したIDのレイヤーについて、入力形状と出力形状を返す。事前の推論は不要である。
 
void getLayerShapes (const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes, const int layerId, std::vector< MatShape > &inLayerShapes, std::vector< MatShape > &outLayerShapes) const
 
void getLayersShapes (const MatShape &netInputShape, const int &netInputType, std::vector< int > &layersIds, std::vector< std::vector< MatShape > > &inLayersShapes, std::vector< std::vector< MatShape > > &outLayersShapes) const
 
void getLayersShapes (const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes, std::vector< int > &layersIds, std::vector< std::vector< MatShape > > &inLayersShapes, std::vector< std::vector< MatShape > > &outLayersShapes) const
 読み込まれたモデル内のすべてのレイヤーについて、入力形状と出力形状を返す。事前の推論は不要である。
 
void getLayerTypes (std::vector< String > &layersTypes) const
 モデルで使用されているレイヤーの型のリストを返す。
 
Ptr< GraphgetMainGraph () const
 
void getMemoryConsumption (const int layerId, const MatShape &netInputShape, const int &netInputType, size_t &weights, size_t &blobs) const
 
void getMemoryConsumption (const int layerId, const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes, size_t &weights, size_t &blobs) const
 
void getMemoryConsumption (const MatShape &netInputShape, const int &netInputType, size_t &weights, size_t &blobs) const
 
void getMemoryConsumption (const MatShape &netInputShape, const int &netInputType, std::vector< int > &layerIds, std::vector< size_t > &weights, std::vector< size_t > &blobs) const
 
void getMemoryConsumption (const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes, size_t &weights, size_t &blobs) const
 モデルのすべての重みと中間ブロブを格納するために必要なバイト数を計算する。
 
void getMemoryConsumption (const std::vector< MatShape > &netInputShapes, const std::vector< int > &netInputTypes, std::vector< int > &layerIds, std::vector< size_t > &weights, std::vector< size_t > &blobs) const
 各レイヤーごとに、すべての重みと中間ブロブを格納するために必要なバイト数を計算する。
 
ModelFormat getModelFormat () const
 現在のモデル形式を取得する。DNN_MODEL_* を参照。
 
Mat getParam (const String &layerName, int numParam=0) const
 
Mat getParam (int layer, int numParam=0) const
 レイヤーのパラメータブロブを返す。
 
int64 getPerfProfile (std::vector< double > &timings)
 推論全体の所要時間と、各レイヤーのタイミング(ティック単位)を返す。
 
void getPerfProfile (std::vector< std::string > &names, std::vector< std::string > &timems, std::vector< std::string > &counts) const
 直前のフォワードパス中に取得したプロファイリングデータを返す。
 
ProfilingMode getProfilingMode () const
 現在のプロファイリングモードを取得する。
 
TracingMode getTracingMode () const
 現在のトレーシングモードを取得する。
 
std::vector< int > getUnconnectedOutLayers () const
 出力が未接続のレイヤーのインデックスを返す。
 
std::vector< StringgetUnconnectedOutLayersNames () const
 出力が未接続のレイヤーの名前を返す。
 
bool haveArg (const std::string &name) const
 
bool isConstArg (Arg arg) const
 
void printPerfProfile () const
 直前のフォワードパス中に取得したプロファイルを CV_LOG_INFO を用いて整形した表形式で出力する。
 
int registerOutput (const std::string &outputName, int layerId, int outputPort)
 ネットワークの出力を名前付きで登録する。
 
void resetKVCache ()
 すべての AttentionOnnxI レイヤーのKVキャッシュをリセットする。
 
void setInput (CV_ND InputArray blob, const String &name="", double scalefactor=1.0, const Scalar &mean=Scalar())
 ネットワークの新しい入力値を設定する。
 
void setInputShape (const String &inputName, const MatShape &shape)
 ネットワーク入力の形状を指定する。
 
void setInputsNames (const std::vector< String > &inputBlobNames)
 ネットワークの入力擬似レイヤーの出力名を設定する。
 
void setParam (const String &layerName, int numParam, CV_ND const Mat &blob)
 名前または出力テンソル名で識別されるレイヤーのパラメータブロブを設定する。
 
void setParam (int layer, int numParam, CV_ND const Mat &blob)
 レイヤーの学習済みパラメータに新しい値を設定する。
 
void setPreferableBackend (int backendId)
 サポートされている場合に、指定した計算バックエンドを使用するようネットワークに要求する。
 
void setPreferableTarget (int targetId)
 特定のターゲットデバイス上で計算を行うようネットワークに要求する。
 
void setProfilingMode (ProfilingMode profilingMode)
 プロファイリングモードを設定する。
 
void setTracingMode (TracingMode tracingMode)
 トレーシングモードを設定する。
 

静的公開メンバ関数

static Net readFromModelOptimizer (const std::vector< uchar > &bufferModelConfig, const std::vector< uchar > &bufferWeights)
 Intelの Model Optimizer の、中間表現 (IR) を持つメモリ内バッファからネットワークを作成する。
 
static Net readFromModelOptimizer (const uchar *bufferModelConfigPtr, size_t bufferModelConfigSize, const uchar *bufferWeightsPtr, size_t bufferWeightsSize)
 Intelの Model Optimizer の、中間表現 (IR) を持つメモリ内バッファからネットワークを作成する。
 
static Net readFromModelOptimizer (CV_WRAP_FILE_PATH const String &xml, CV_WRAP_FILE_PATH const String &bin)
 Intelの Model Optimizer の中間表現 (IR) からネットワークを作成する。
 

限定公開変数類

Ptr< Impl > impl
 

フレンド

class accessor::DnnNetAccessor
 

詳細説明

このクラスは、包括的な人工ニューラルネットワークの作成と操作を可能にする。

ニューラルネットワークは有向非巡回グラフ (DAG) として表現される。頂点は Layer インスタンスであり、辺はレイヤーの入力と出力の間の関係を指定する。

各ネットワークレイヤーは、そのネットワーク内で一意の整数IDと一意の文字列名を持つ。LayerIdはレイヤー名またはレイヤーIDのいずれかを格納できる。

このクラスはインスタンスの参照カウントをサポートする。すなわち、コピーは同一のインスタンスを指す。

samples/dnn/colorization.cpp, および samples/dnn/openpose.cpp

型定義メンバ詳解

◆ LayerId

文字列と整数のコンテナ。

非推奨Deprecated
int型の結果を持つ getLayerId() を使用すること。

構築子と解体子の詳解

◆ Net()

cv::dnn::Net::Net ( )
Python:
cv.dnn.Net() -> <dnn_Net object>

デフォルトコンストラクタ。

◆ ~Net()

cv::dnn::Net::~Net ( )

デストラクタは、ネットへの参照がもう存在しない場合にのみネットを解放する。

メンバ関数詳解

◆ addLayer() [1/2]

int cv::dnn::Net::addLayer ( const String & name,
const String & type,
const int & dtype,
LayerParams & params )
Python:
cv.dnn.Net.addLayer(name, type, dtype, params) -> retval

ネットに新しいレイヤを追加する。

引数
name追加するレイヤーの一意な名前。
type追加するレイヤーの型名 (型は LayerRegister に登録されている必要がある)。
dtype出力ブロブのデータ型。
params作成するレイヤーの初期化に使われる引数。
戻り値
作成されたレイヤの一意な識別子。失敗した場合は -1。

◆ addLayer() [2/2]

int cv::dnn::Net::addLayer ( const String & name,
const String & type,
LayerParams & params )
Python:
cv.dnn.Net.addLayer(name, type, dtype, params) -> retval

◆ addLayerToPrev() [1/2]

int cv::dnn::Net::addLayerToPrev ( const String & name,
const String & type,
const int & dtype,
LayerParams & params )
Python:
cv.dnn.Net.addLayerToPrev(name, type, dtype, params) -> retval

新しいレイヤを追加し、その最初の入力を直前に追加したレイヤの最初の出力に接続する。

参照
addLayer()

◆ addLayerToPrev() [2/2]

int cv::dnn::Net::addLayerToPrev ( const String & name,
const String & type,
LayerParams & params )
Python:
cv.dnn.Net.addLayerToPrev(name, type, dtype, params) -> retval

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

◆ argData()

const ArgData & cv::dnn::Net::argData ( Arg arg) const

◆ argKind()

ArgKind cv::dnn::Net::argKind ( Arg arg) const

◆ argName()

const std::string & cv::dnn::Net::argName ( Arg arg) const

◆ argTensor()

Mat & cv::dnn::Net::argTensor ( Arg arg) const

◆ argType()

int cv::dnn::Net::argType ( Arg arg) const

◆ connect() [1/2]

void cv::dnn::Net::connect ( int outLayerId,
int outNum,
int inpLayerId,
int inpNum )
Python:
cv.dnn.Net.connect(outPin, inpPin) -> None

1つ目のレイヤの #outNum 番目の出力を、2つ目のレイヤの #inNum 番目の入力に接続する。

引数
outLayerId1番目のレイヤーの識別子
outNum1番目のレイヤー出力の番号
inpLayerId2番目のレイヤーの識別子
inpNum2番目のレイヤー入力の番号

◆ connect() [2/2]

void cv::dnn::Net::connect ( String outPin,
String inpPin )
Python:
cv.dnn.Net.connect(outPin, inpPin) -> None

1つ目のレイヤの出力を2つ目のレイヤの入力に接続する。

引数
outPin1番目のレイヤー出力の記述子。
inpPin2番目のレイヤー入力の記述子。

記述子は次のテンプレート <layer_name>[.input_number] を持つ:

  • テンプレートの最初の部分 layer_name は、追加したレイヤの文字列名である。この部分が空の場合はネットワーク入力の擬似レイヤが使用される;
  • テンプレートの2つ目の省略可能な部分 input_number は、レイヤ入力の番号またはラベルのいずれかである。この部分を省略した場合は最初のレイヤ入力が使用される。

    参照
    setNetInputs(), Layer::inputNameToIndex(), Layer::outputNameToIndex()

◆ disableKVCache()

void cv::dnn::Net::disableKVCache ( )
Python:
cv.dnn.Net.disableKVCache() -> None

すべての AttentionOnnxI レイヤーでKVキャッシュを無効にする。

◆ dump()

String cv::dnn::Net::dump ( )
Python:
cv.dnn.Net.dump() -> retval

ネットを文字列にダンプする。

戻り値
構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンを含む文字列。このメソッドは setInput() の後に呼び出すこと。正しいバックエンド、ターゲット、フュージョンを確認するには forward() の後に実行すること。

◆ dumpArg()

std::ostream & cv::dnn::Net::dumpArg ( std::ostream & strm,
Arg arg,
int indent,
bool comma = true,
bool dump_details = false ) const

◆ dumpDim()

std::ostream & cv::dnn::Net::dumpDim ( std::ostream & strm,
int value ) const

◆ dumpToFile()

void cv::dnn::Net::dumpToFile ( CV_WRAP_FILE_PATH const String & path)
Python:
cv.dnn.Net.dumpToFile(path) -> None

ネットの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンを dot ファイルにダンプする。

引数
path.dot 拡張子の出力ファイルへのパス
参照
dump()

◆ dumpToPbtxt()

void cv::dnn::Net::dumpToPbtxt ( CV_WRAP_FILE_PATH const String & path)
Python:
cv.dnn.Net.dumpToPbtxt(path) -> None

ネットの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンを pbtxt ファイルにダンプする。

引数
path.pbtxt 拡張子の出力ファイルへのパス

モデルを可視化するには Netron (https://netron.app) を使って対象ファイルを開く。このメソッドは setInput() の後に呼び出すこと。正しいバックエンド、ターゲット、フュージョンを確認するには forward() の後に実行すること。

◆ dumpToStream()

void cv::dnn::Net::dumpToStream ( std::ostream & strm) const

ネットワークの構造、ハイパーパラメータ、バックエンド、ターゲット、フュージョンを指定した出力ストリームにダンプする。

引数
strm対象のストリーム

◆ empty()

bool cv::dnn::Net::empty ( ) const
Python:
cv.dnn.Net.empty() -> retval

ネットワークにレイヤが存在しない場合に true を返す。

◆ enableFusion()

void cv::dnn::Net::enableFusion ( bool fusion)
Python:
cv.dnn.Net.enableFusion(fusion) -> None

ネットワークのレイヤフュージョンを有効または無効にする。

引数
fusionフュージョンを有効にする場合は true、無効にする場合は false。フュージョンはデフォルトで有効。

◆ enableKVCache()

void cv::dnn::Net::enableKVCache ( )
Python:
cv.dnn.Net.enableKVCache() -> None

すべての AttentionOnnxI レイヤーでKVキャッシュを有効にする。

◆ enableWinograd()

void cv::dnn::Net::enableWinograd ( bool useWinograd)
Python:
cv.dnn.Net.enableWinograd(useWinograd) -> None

Winograd 計算ブランチを有効または無効にする。Winograd 計算ブランチは、わずかな精度低下と引き換えに 3x3 の畳み込みを高速化できる。

引数
useWinogradWinograd 計算ブランチを有効にする場合は true。デフォルトは true。

◆ finalizeNet()

void cv::dnn::Net::finalizeNet ( )
Python:
cv.dnn.Net.finalizeNet() -> None

ネットワークの構成を確定し、推論の準備を整える。

このメソッドは setPreferableBackend()setPreferableTarget() でバックエンド/ターゲットを設定した後、かつ最初の forward() 呼び出しの前に呼び出す必要がある。設定されたバックエンド/ターゲット上で、基盤となる実行セッション(例: ONNX Runtime セッション)を生成する。明示的に呼び出さなかった場合は、最初の forward() が自動的にこれを呼び出す。

早めに finalizeNet() を呼び出すと、一度きりのセットアップコストを予測可能なタイミングで支払い、推論の前に設定エラーを検出できる。

◆ findDim()

int cv::dnn::Net::findDim ( const std::string & name,
bool insert = false )

◆ forward() [1/4]

Mat cv::dnn::Net::forward ( const String & outputName = String())
Python:
cv.dnn.Net.forward([, outputName]) -> retval
cv.dnn.Net.forward([, outputBlobs[, outputName]]) -> outputBlobs
cv.dnn.Net.forward(outBlobNames[, outputBlobs]) -> outputBlobs
cv.dnn.Net.forwardAndRetrieve(outBlobNames) -> outputBlobs

名前が outputName のレイヤの出力を計算するために順伝播を実行する。

引数
outputName出力を取得したいレイヤーの名前
戻り値
指定したレイヤの最初の出力のブロブ。

デフォルトではネットワーク全体の順伝播を実行する。

samples/dnn/colorization.cpp、および samples/dnn/openpose.cpp

◆ forward() [2/4]

void cv::dnn::Net::forward ( CV_ND OutputArrayOfArrays outputBlobs,
const std::vector< String > & outBlobNames )
Python:
cv.dnn.Net.forward([, outputName]) -> retval
cv.dnn.Net.forward([, outputBlobs[, outputName]]) -> outputBlobs
cv.dnn.Net.forward(outBlobNames[, outputBlobs]) -> outputBlobs
cv.dnn.Net.forwardAndRetrieve(outBlobNames) -> outputBlobs

outBlobNames に列挙されたレイヤの出力を計算するために順伝播を実行する。

引数
outputBlobs指定されたレイヤーの最初の出力のブロブを格納する。
outBlobNames出力を取得したいレイヤーの名前

◆ forward() [3/4]

void cv::dnn::Net::forward ( CV_ND OutputArrayOfArrays outputBlobs,
const String & outputName = String() )
Python:
cv.dnn.Net.forward([, outputName]) -> retval
cv.dnn.Net.forward([, outputBlobs[, outputName]]) -> outputBlobs
cv.dnn.Net.forward(outBlobNames[, outputBlobs]) -> outputBlobs
cv.dnn.Net.forwardAndRetrieve(outBlobNames) -> outputBlobs

名前が outputName のレイヤの出力を計算するために順伝播を実行する。

引数
outputBlobs指定されたレイヤーのすべての出力ブロブを格納する。
outputName出力を取得したいレイヤーの名前

outputName が空の場合、ネットワーク全体の順伝播を実行する。

◆ forward() [4/4]

void cv::dnn::Net::forward ( std::vector< std::vector< Mat > > & outputBlobs,
const std::vector< String > & outBlobNames )
Python:
cv.dnn.Net.forward([, outputName]) -> retval
cv.dnn.Net.forward([, outputBlobs[, outputName]]) -> outputBlobs
cv.dnn.Net.forward(outBlobNames[, outputBlobs]) -> outputBlobs
cv.dnn.Net.forwardAndRetrieve(outBlobNames) -> outputBlobs

outBlobNames に列挙されたレイヤの出力を計算するために順伝播を実行する。

引数
outputBlobsoutBlobNames で指定された各レイヤーのすべての出力ブロブを格納する。
outBlobNames出力を取得したいレイヤーの名前

◆ forwardAsync()

AsyncArray cv::dnn::Net::forwardAsync ( const String & outputName = String())
Python:
cv.dnn.Net.forwardAsync([, outputName]) -> retval

名前が outputName のレイヤの出力を計算するために順伝播を実行する。

引数
outputName出力を取得したいレイヤーの名前

デフォルトではネットワーク全体の順伝播を実行する。

これは forward(const String&) の非同期版である。dnn::DNN_BACKEND_INFERENCE_ENGINE バックエンドが必要である。

◆ getArg()

Arg cv::dnn::Net::getArg ( const std::string & name)

◆ getFLOPS() [1/4]

int64 cv::dnn::Net::getFLOPS ( const int layerId,
const MatShape & netInputShape,
const int & netInputType ) const
Python:
cv.dnn.Net.getFLOPS(netInputShapes, netInputTypes) -> retval

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

◆ getFLOPS() [2/4]

int64 cv::dnn::Net::getFLOPS ( const int layerId,
const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes ) const
Python:
cv.dnn.Net.getFLOPS(netInputShapes, netInputTypes) -> retval

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

◆ getFLOPS() [3/4]

int64 cv::dnn::Net::getFLOPS ( const MatShape & netInputShape,
const int & netInputType ) const
Python:
cv.dnn.Net.getFLOPS(netInputShapes, netInputTypes) -> retval

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

◆ getFLOPS() [4/4]

int64 cv::dnn::Net::getFLOPS ( const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes ) const
Python:
cv.dnn.Net.getFLOPS(netInputShapes, netInputTypes) -> retval

指定した入力形状でロード済みモデル全体の FLOP を計算する。

引数
netInputShapesすべてのネット入力に対する形状のベクトル。
netInputTypesすべてのネットワーク入力に対する型のベクトル。
戻り値
計算された FLOP。

◆ getImpl()

Impl * cv::dnn::Net::getImpl ( ) const
inline

◆ getImplRef()

Impl & cv::dnn::Net::getImplRef ( ) const
inline

◆ getLayer() [1/3]

Ptr< Layer > cv::dnn::Net::getLayer ( const LayerId & layerId) const
Python:
cv.dnn.Net.getLayer(layerId) -> retval
cv.dnn.Net.getLayer(layerName) -> retval

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

非推奨Deprecated
削除予定

◆ getLayer() [2/3]

Ptr< Layer > cv::dnn::Net::getLayer ( const String & layerName) const
inline
Python:
cv.dnn.Net.getLayer(layerId) -> retval
cv.dnn.Net.getLayer(layerName) -> retval

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

非推奨Deprecated
int getLayerId(const String &layer) を使用すること
この関数の呼び出しグラフ:

◆ getLayer() [3/3]

Ptr< Layer > cv::dnn::Net::getLayer ( int layerId) const
Python:
cv.dnn.Net.getLayer(layerId) -> retval
cv.dnn.Net.getLayer(layerName) -> retval

ネットワークが使用する、指定した id または名前のレイヤへのポインタを返す。

◆ getLayerId()

int cv::dnn::Net::getLayerId ( const String & layer) const
Python:
cv.dnn.Net.getLayerId(layer) -> retval

レイヤの文字列名を整数の識別子に変換する。

戻り値
レイヤの id。レイヤが見つからなかった場合は -1。

◆ getLayerInputs()

std::vector< Ptr< Layer > > cv::dnn::Net::getLayerInputs ( int layerId) const

特定のレイヤの入力レイヤへのポインタを返す。

◆ getLayerNames()

std::vector< String > cv::dnn::Net::getLayerNames ( ) const
Python:
cv.dnn.Net.getLayerNames() -> retval

◆ getLayersCount()

int cv::dnn::Net::getLayersCount ( const String & layerType) const
Python:
cv.dnn.Net.getLayersCount(layerType) -> retval

指定した型のレイヤの数を返す。

引数
layerType型。
戻り値
レイヤの数

◆ getLayerShapes() [1/2]

void cv::dnn::Net::getLayerShapes ( const MatShape & netInputShape,
const int & netInputType,
const int layerId,
std::vector< MatShape > & inLayerShapes,
std::vector< MatShape > & outLayerShapes ) const
Python:
cv.dnn.Net.getLayerShapes(netInputShapes, netInputTypes, layerId) -> inLayerShapes, outLayerShapes

ロード済みモデル内の指定した id を持つレイヤの入力形状と出力形状を返す。事前の推論は不要である。

引数
netInputShapeネット入力レイヤーにおける入力ブロブの形状。
netInputTypeネットワークの入力レイヤーにおける入力型。
layerIdレイヤーのid。
inLayerShapes入力レイヤーの形状を返すための出力パラメータ。順序は layersIds と同じ。
outLayerShapes出力レイヤーの形状を格納する出力パラメータ。順序は layersIds と同じである。

このオーバーロードは非推奨とすべきである

◆ getLayerShapes() [2/2]

void cv::dnn::Net::getLayerShapes ( const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes,
const int layerId,
std::vector< MatShape > & inLayerShapes,
std::vector< MatShape > & outLayerShapes ) const
Python:
cv.dnn.Net.getLayerShapes(netInputShapes, netInputTypes, layerId) -> inLayerShapes, outLayerShapes

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

5.x で残すべき getLayerShapes の唯一のオーバーロード

◆ getLayersShapes() [1/2]

void cv::dnn::Net::getLayersShapes ( const MatShape & netInputShape,
const int & netInputType,
std::vector< int > & layersIds,
std::vector< std::vector< MatShape > > & inLayersShapes,
std::vector< std::vector< MatShape > > & outLayersShapes ) const

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

このオーバーロードは非推奨とすべきである

◆ getLayersShapes() [2/2]

void cv::dnn::Net::getLayersShapes ( const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes,
std::vector< int > & layersIds,
std::vector< std::vector< MatShape > > & inLayersShapes,
std::vector< std::vector< MatShape > > & outLayersShapes ) const

ロード済みモデル内の全レイヤの入力形状と出力形状を返す。事前の推論は不要である。

引数
netInputShapesネットワークの入力レイヤーにおける、すべての入力ブロブの形状。
netInputTypesネットワークの入力レイヤーにおけるすべての入力ブロブの型。
layersIdsレイヤーIDを格納する出力パラメータ。
inLayersShapes入力レイヤーの形状を返すための出力パラメータ。順序は layersIds と同じ。
outLayersShapes出力レイヤーの形状を格納する出力パラメータ。順序は layersIds と同じである。

このオーバーロードは非推奨とすべきである

◆ getLayerTypes()

void cv::dnn::Net::getLayerTypes ( std::vector< String > & layersTypes) const
Python:
cv.dnn.Net.getLayerTypes() -> layersTypes

モデル内で使用されているレイヤの型のリストを返す。

引数
layersTypes型を返すための出力パラメータ。

◆ getMainGraph()

Ptr< Graph > cv::dnn::Net::getMainGraph ( ) const

◆ getMemoryConsumption() [1/6]

void cv::dnn::Net::getMemoryConsumption ( const int layerId,
const MatShape & netInputShape,
const int & netInputType,
size_t & weights,
size_t & blobs ) const
Python:
cv.dnn.Net.getMemoryConsumption(netInputShapes, netInputTypes) -> weights, blobs

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

◆ getMemoryConsumption() [2/6]

void cv::dnn::Net::getMemoryConsumption ( const int layerId,
const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes,
size_t & weights,
size_t & blobs ) const
Python:
cv.dnn.Net.getMemoryConsumption(netInputShapes, netInputTypes) -> weights, blobs

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

◆ getMemoryConsumption() [3/6]

void cv::dnn::Net::getMemoryConsumption ( const MatShape & netInputShape,
const int & netInputType,
size_t & weights,
size_t & blobs ) const
Python:
cv.dnn.Net.getMemoryConsumption(netInputShapes, netInputTypes) -> weights, blobs

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

◆ getMemoryConsumption() [4/6]

void cv::dnn::Net::getMemoryConsumption ( const MatShape & netInputShape,
const int & netInputType,
std::vector< int > & layerIds,
std::vector< size_t > & weights,
std::vector< size_t > & blobs ) const
Python:
cv.dnn.Net.getMemoryConsumption(netInputShapes, netInputTypes) -> weights, blobs

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

これは非推奨とすべきである

◆ getMemoryConsumption() [5/6]

void cv::dnn::Net::getMemoryConsumption ( const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes,
size_t & weights,
size_t & blobs ) const
Python:
cv.dnn.Net.getMemoryConsumption(netInputShapes, netInputTypes) -> weights, blobs

モデルの全ての重みと中間ブロブを格納するために必要なバイト数を計算する。

引数
netInputShapesすべてのネット入力に対する形状のベクトル。
netInputTypesすべてのネットワーク入力に対する型のベクトル。
weights重みの結果バイト数を格納する出力パラメータ。
blobs中間ブロブの結果バイト数を格納する出力パラメータ。

◆ getMemoryConsumption() [6/6]

void cv::dnn::Net::getMemoryConsumption ( const std::vector< MatShape > & netInputShapes,
const std::vector< int > & netInputTypes,
std::vector< int > & layerIds,
std::vector< size_t > & weights,
std::vector< size_t > & blobs ) const
Python:
cv.dnn.Net.getMemoryConsumption(netInputShapes, netInputTypes) -> weights, blobs

各レイヤの全ての重みと中間ブロブを格納するために必要なバイト数を計算する。

引数
netInputShapesすべてのネット入力に対する形状のベクトル。
netInputTypesすべてのネットワーク入力に対する型のベクトル。
layerIdsレイヤーIDを保存する出力ベクトル。
weights重みの結果バイト数を格納する出力パラメータ。
blobs中間ブロブの結果バイト数を格納する出力パラメータ。

これは非推奨とすべきである

◆ getModelFormat()

ModelFormat cv::dnn::Net::getModelFormat ( ) const
Python:
cv.dnn.Net.getModelFormat() -> retval

現在のモデル形式を取得する。DNN_MODEL_* を参照。

◆ getParam() [1/2]

Mat cv::dnn::Net::getParam ( const String & layerName,
int numParam = 0 ) const
inline
Python:
cv.dnn.Net.getParam(layer[, numParam]) -> retval
cv.dnn.Net.getParam(layerName[, numParam]) -> retval
この関数の呼び出しグラフ:

◆ getParam() [2/2]

Mat cv::dnn::Net::getParam ( int layer,
int numParam = 0 ) const
Python:
cv.dnn.Net.getParam(layer[, numParam]) -> retval
cv.dnn.Net.getParam(layerName[, numParam]) -> retval

レイヤのパラメータブロブを返す。

引数
layerレイヤーの名前またはID。
numParamLayer::blobs 配列内におけるレイヤーパラメータのインデックス。
参照
Layer::blobs

◆ getPerfProfile() [1/2]

int64 cv::dnn::Net::getPerfProfile ( std::vector< double > & timings)
Python:
cv.dnn.Net.getPerfProfile() -> retval, timings
cv.dnn.Net.getPerfProfile() -> names, timems, counts

推論の総時間と、各レイヤのタイミング (ティック単位) を返す。

返されるベクトルのインデックスはレイヤの id に対応する。一部のレイヤは他のレイヤと融合されることがあり、その場合スキップされたレイヤに対してはティック数 0 が返される。DNN_TARGET_CPU 上の DNN_BACKEND_OPENCV でのみサポートされる。

引数
[out]timingsすべてのレイヤーのティックタイミングを格納するベクトル。
戻り値
モデル推論の総ティック数。

◆ getPerfProfile() [2/2]

void cv::dnn::Net::getPerfProfile ( std::vector< std::string > & names,
std::vector< std::string > & timems,
std::vector< std::string > & counts ) const
Python:
cv.dnn.Net.getPerfProfile() -> retval, timings
cv.dnn.Net.getPerfProfile() -> names, timems, counts

直近の forward パスで取得されたプロファイリングデータを返す。

エントリは時間の降順でソートされる。プロファイリングが無効(DNN_PROFILE_NONE)の場合は空のベクトルが返される。

◆ getProfilingMode()

ProfilingMode cv::dnn::Net::getProfilingMode ( ) const
Python:
cv.dnn.Net.getProfilingMode() -> retval

現在のプロファイリングモードを取得する。

◆ getTracingMode()

TracingMode cv::dnn::Net::getTracingMode ( ) const
Python:
cv.dnn.Net.getTracingMode() -> retval

現在のトレーシングモードを取得する。

◆ getUnconnectedOutLayers()

std::vector< int > cv::dnn::Net::getUnconnectedOutLayers ( ) const
Python:
cv.dnn.Net.getUnconnectedOutLayers() -> retval

出力が未接続のレイヤのインデックスを返す。

FIXIT: API を registerOutput() 方式に作り直し、この呼び出しを非推奨にする

◆ getUnconnectedOutLayersNames()

std::vector< String > cv::dnn::Net::getUnconnectedOutLayersNames ( ) const
Python:
cv.dnn.Net.getUnconnectedOutLayersNames() -> retval

出力が未接続のレイヤの名前を返す。

FIXIT: API を registerOutput() 方式に作り直し、この呼び出しを非推奨にする

◆ haveArg()

bool cv::dnn::Net::haveArg ( const std::string & name) const

◆ isConstArg()

bool cv::dnn::Net::isConstArg ( Arg arg) const

◆ printPerfProfile()

void cv::dnn::Net::printPerfProfile ( ) const
Python:
cv.dnn.Net.printPerfProfile() -> None

直近の forward パスで取得されたプロファイルを、CV_LOG_INFO を用いて整形された表形式で出力する。

DNN_PROFILE_DETAILED モードでは、レイヤごとのラベル、時間、割合を出力する。DNN_PROFILE_SUMMARY モードでは、型ごとの件数、時間、割合を出力する。プロファイリングが無効(DNN_PROFILE_NONE)の場合、またはすべての計測値がゼロの場合は何もしない。

◆ readFromModelOptimizer() [1/3]

static Net cv::dnn::Net::readFromModelOptimizer ( const std::vector< uchar > & bufferModelConfig,
const std::vector< uchar > & bufferWeights )
static
Python:
cv.dnn.Net.readFromModelOptimizer(xml, bin) -> retval
cv.dnn.Net.readFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval
cv.dnn.Net_readFromModelOptimizer(xml, bin) -> retval
cv.dnn.Net_readFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

中間表現 (IR) を持つ Intel の Model Optimizer のメモリ内バッファからネットワークを作成する。

引数
[in]bufferModelConfigモデルの構成を格納したバッファ。
[in]bufferWeightsモデルの学習済み重みを格納したバッファ。
戻り値
Net オブジェクト。

◆ readFromModelOptimizer() [2/3]

static Net cv::dnn::Net::readFromModelOptimizer ( const uchar * bufferModelConfigPtr,
size_t bufferModelConfigSize,
const uchar * bufferWeightsPtr,
size_t bufferWeightsSize )
static
Python:
cv.dnn.Net.readFromModelOptimizer(xml, bin) -> retval
cv.dnn.Net.readFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval
cv.dnn.Net_readFromModelOptimizer(xml, bin) -> retval
cv.dnn.Net_readFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

中間表現 (IR) を持つ Intel の Model Optimizer のメモリ内バッファからネットワークを作成する。

引数
[in]bufferModelConfigPtrモデルの構成のバッファポインタ。
[in]bufferModelConfigSizeモデルの構成のバッファサイズ。
[in]bufferWeightsPtrモデルの学習済み重みのバッファポインタ。
[in]bufferWeightsSizeモデルの学習済み重みのバッファサイズ。
戻り値
Net オブジェクト。

◆ readFromModelOptimizer() [3/3]

static Net cv::dnn::Net::readFromModelOptimizer ( CV_WRAP_FILE_PATH const String & xml,
CV_WRAP_FILE_PATH const String & bin )
static
Python:
cv.dnn.Net.readFromModelOptimizer(xml, bin) -> retval
cv.dnn.Net.readFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval
cv.dnn.Net_readFromModelOptimizer(xml, bin) -> retval
cv.dnn.Net_readFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

Intel の Model Optimizer の中間表現 (IR) からネットワークを作成する。

引数
[in]xmlネットワークのトポロジーを記述した XML 構成ファイル。
[in]bin学習済み重みを格納したバイナリファイル。Intelの Model Optimizer からインポートされたネットワークは、IntelのInference Engineバックエンドで実行される。

◆ registerOutput()

int cv::dnn::Net::registerOutput ( const std::string & outputName,
int layerId,
int outputPort )
Python:
cv.dnn.Net.registerOutput(outputName, layerId, outputPort) -> retval

ネットワーク出力を名前付きで登録する。

この関数は追加の 'Identity' レイヤを作成することがある。

引数
outputName出力の識別子
layerId2番目のレイヤーの識別子
outputPort2番目のレイヤー入力の番号
戻り値
束縛されたレイヤのインデックス (layerId と同じか、新たに作成されたもの)

◆ resetKVCache()

void cv::dnn::Net::resetKVCache ( )
Python:
cv.dnn.Net.resetKVCache() -> None

すべての AttentionOnnxI レイヤの KV-Cache をリセットする。

◆ setInput()

void cv::dnn::Net::setInput ( CV_ND InputArray blob,
const String & name = "",
double scalefactor = 1.0,
const Scalar & mean = Scalar() )
Python:
cv.dnn.Net.setInput(blob[, name[, scalefactor[, mean]]]) -> None

ネットワークに新しい入力値を設定する。

引数
blob新しいブロブ。ビット深度は CV_32F または CV_8U であるべきである。
name入力レイヤーの名前。
scalefactor省略可能な正規化スケール。
mean省略可能な平均値の減算値。
参照
記述子の format を知るには connect(String, String) を参照すること。

スケール値または平均値が指定された場合、最終的な入力ブロブは次のように計算される:

\[input(n,c,h,w) = scalefactor \times (blob(n,c,h,w) - mean_c)\]

samples/dnn/colorization.cpp、および samples/dnn/openpose.cpp

◆ setInputShape()

void cv::dnn::Net::setInputShape ( const String & inputName,
const MatShape & shape )
Python:
cv.dnn.Net.setInputShape(inputName, shape) -> None

ネットワーク入力の形状を指定する。

◆ setInputsNames()

void cv::dnn::Net::setInputsNames ( const std::vector< String > & inputBlobNames)
Python:
cv.dnn.Net.setInputsNames(inputBlobNames) -> None

ネットワーク入力の擬似レイヤの出力名を設定する。

各ネットは常に id=0 を持つ専用のネットワーク入力擬似レイヤを持つ。このレイヤはユーザーのブロブのみを格納し、何の計算も行わない。実際、このレイヤはユーザーデータをネットワークに渡す唯一の手段を提供する。他のレイヤと同様に、このレイヤは自身の出力にラベルを付けることができ、この関数はそれを簡単に行う手段を提供する。

◆ setParam() [1/2]

void cv::dnn::Net::setParam ( const String & layerName,
int numParam,
CV_ND const Mat & blob )
Python:
cv.dnn.Net.setParam(layer, numParam, blob) -> None
cv.dnn.Net.setParam(layerName, numParam, blob) -> None

名前または出力テンソル名で識別されるレイヤのパラメータ blob を設定する。

引数
layerNameレイヤー名(クラシックエンジン)または生のONNX出力テンソル名(ENGINE_NEW)。
numParam更新する定数の重み入力のインデックス(0 = カーネル、1 = バイアス、など)。
blob新しいパラメータ値。

◆ setParam() [2/2]

void cv::dnn::Net::setParam ( int layer,
int numParam,
CV_ND const Mat & blob )
Python:
cv.dnn.Net.setParam(layer, numParam, blob) -> None
cv.dnn.Net.setParam(layerName, numParam, blob) -> None

レイヤの学習済みパラメータに新しい値を設定する。

引数
layerレイヤーの名前またはID。
numParamLayer::blobs 配列内におけるレイヤーパラメータのインデックス。
blob新しい値。
参照
Layer::blobs
覚え書き
新しいブロブの形状が以前の形状と異なる場合、以降の順伝播が失敗することがある。

◆ setPreferableBackend()

void cv::dnn::Net::setPreferableBackend ( int backendId)
Python:
cv.dnn.Net.setPreferableBackend(backendId) -> None

サポートされている場合に、ネットワークに特定の計算バックエンドを使用するよう指示する。

引数
[in]backendIdバックエンド識別子。
参照
Backend
samples/dnn/colorization.cpp.

◆ setPreferableTarget()

void cv::dnn::Net::setPreferableTarget ( int targetId)
Python:
cv.dnn.Net.setPreferableTarget(targetId) -> None

特定のターゲットデバイス上で計算を行うようネットワークに指示する。

引数
[in]targetIdターゲット識別子。
参照
Target

サポートされているバックエンド / ターゲットの組み合わせの一覧:

DNN_BACKEND_OPENCV DNN_BACKEND_INFERENCE_ENGINE 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 +
samples/dnn/colorization.cpp.

◆ setProfilingMode()

void cv::dnn::Net::setProfilingMode ( ProfilingMode profilingMode)
Python:
cv.dnn.Net.setProfilingMode(profilingMode) -> None

プロファイリングモードを設定する。

引数
[in]profilingModeプロファイリングモード。DNN_PROFILE_* を参照。

◆ setTracingMode()

void cv::dnn::Net::setTracingMode ( TracingMode tracingMode)
Python:
cv.dnn.Net.setTracingMode(tracingMode) -> None

トレーシングモードを設定する。

引数
[in]tracingModeトレーシングモード。DNN_TRACE_* を参照。

Friends And Related Symbol Documentation

◆ accessor::DnnNetAccessor

friend class accessor::DnnNetAccessor
friend

メンバ変数詳解

◆ impl

Ptr<Impl> cv::dnn::Net::impl
protected

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