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

トピック

 実装済みレイヤーの一部リスト
 
 新規レイヤー登録のためのユーティリティ
 

詳細説明

このモジュールには次のものが含まれる:

このモジュールの機能は、フォワードパスの計算(すなわちネットワークのテスト)のみを対象として設計されている。ネットワークの学習は原則としてサポートされていない。

クラス

struct  cv::dnn::Arg
 
struct  cv::dnn::ArgData
 
class  cv::dnn::BackendNode
 このクラスの派生クラスは、特定のバックエンドの機能をカプセル化する。 詳細...
 
class  cv::dnn::BackendWrapper
 このクラスの派生クラスは、さまざまなバックエンドやターゲット向けに cv::Mat をラップする。続きを読む...
 
class  cv::dnn::ClassificationModel
 このクラスは分類モデルのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::DetectionModel
 このクラスは物体検出ネットワークのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::Dict
 このクラスは名前と値の辞書を実装する。値はDictValueのインスタンスである。 詳細...
 
struct  cv::dnn::DictValue
 この構造体は、double、cv::String、int64のいずれかの型のスカラー値(または配列)を格納する。 詳細...
 
class  cv::dnn::Graph
 モデルのグラフまたはサブグラフを表す。このグラフ(数学的には多重グラフ)は、トポロジカルソートされた線形の演算列として表現される。各演算は Layer(その派生クラスのインスタンス)へのスマートポインタであり、入力と出力のリストに加えて、省略可能なサブグラフのリスト(例: 'If' は2つのサブグラフを含む)を持つ。続きを読む...
 
struct  cv::dnn::Image2BlobParams
 画像をblobに変換する際の処理パラメータ。 詳細...
 
class  cv::dnn::KeypointsModel
 このクラスはキーポイントモデルのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::Layer
 このインターフェースクラスは、ネットワークの構成要素である新しいLayerの構築を可能にする。 詳細...
 
class  cv::dnn::LayerParams
 このクラスはレイヤーを初期化するために必要なすべてのデータを提供する。 詳細...
 
class  cv::dnn::Model
 このクラスはニューラルネットワークのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::Net
 このクラスは、包括的な人工ニューラルネットワークの作成と操作を可能にする。 詳細...
 
class  cv::dnn::SegmentationModel
 このクラスはセグメンテーションモデルのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::TextDetectionModel
 テキスト検出ネットワークの基底クラス。 詳細...
 
class  cv::dnn::TextDetectionModel_DB
 このクラスは、DBモデルに対応したテキスト検出DLネットワークのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::TextDetectionModel_EAST
 このクラスは、EASTモデルに対応したテキスト検出DLネットワークのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::TextRecognitionModel
 このクラスはテキスト認識ネットワークのための高レベルAPIを表す。 詳細...
 
class  cv::dnn::Tokenizer
 DNN 利用向けの高レベルなトークナイザのラッパー。続きを読む...
 

型定義

typedef std::map< std::string, std::vector< LayerFactory::Constructor > > cv::dnn::LayerFactory_Impl
 
typedef int cv::dnn::MatType
 

列挙型

enum  cv::dnn::ArgKind {
  cv::dnn::DNN_ARG_EMPTY =0 ,
  cv::dnn::DNN_ARG_CONST =1 ,
  cv::dnn::DNN_ARG_INPUT =2 ,
  cv::dnn::DNN_ARG_OUTPUT =3 ,
  cv::dnn::DNN_ARG_TEMP =4 ,
  cv::dnn::DNN_ARG_PATTERN =5
}
 
enum  cv::dnn::Backend {
  cv::dnn::DNN_BACKEND_DEFAULT = 0 ,
  cv::dnn::DNN_BACKEND_INFERENCE_ENGINE = 2 ,
  cv::dnn::DNN_BACKEND_OPENCV ,
  cv::dnn::DNN_BACKEND_VKCOM ,
  cv::dnn::DNN_BACKEND_CUDA ,
  cv::dnn::DNN_BACKEND_WEBNN ,
  cv::dnn::DNN_BACKEND_TIMVX ,
  cv::dnn::DNN_BACKEND_CANN
}
 レイヤーがサポートする計算バックエンドのenum。 詳細...
 
enum  cv::dnn::EngineType {
  cv::dnn::ENGINE_CLASSIC =1 ,
  cv::dnn::ENGINE_NEW =2 ,
  cv::dnn::ENGINE_AUTO =3 ,
  cv::dnn::ENGINE_ORT =4
}
 
enum  cv::dnn::ImagePaddingMode {
  cv::dnn::DNN_PMODE_NULL = 0 ,
  cv::dnn::DNN_PMODE_CROP_CENTER = 1 ,
  cv::dnn::DNN_PMODE_LETTERBOX = 2
}
 画像処理モードのenum。dnnモデルの前処理要件の特殊化を容易にする。たとえば、Yoloシリーズのモデルでよく使われるletter boxなどである。 詳細...
 
enum  cv::dnn::ModelFormat {
  cv::dnn::DNN_MODEL_GENERIC = 0 ,
  cv::dnn::DNN_MODEL_ONNX = 1 ,
  cv::dnn::DNN_MODEL_TF = 2 ,
  cv::dnn::DNN_MODEL_TFLITE = 3
}
 
enum  cv::dnn::ProfilingMode {
  cv::dnn::DNN_PROFILE_NONE = 0 ,
  cv::dnn::DNN_PROFILE_SUMMARY = 1 ,
  cv::dnn::DNN_PROFILE_DETAILED = 2
}
 
enum class  cv::dnn::SoftNMSMethod {
  cv::dnn::SoftNMSMethod::SOFTNMS_LINEAR = 1 ,
  cv::dnn::SoftNMSMethod::SOFTNMS_GAUSSIAN = 2
}
 Soft NMS手法のenum。 詳細...
 
enum  cv::dnn::Target {
  cv::dnn::DNN_TARGET_CPU = 0 ,
  cv::dnn::DNN_TARGET_OPENCL ,
  cv::dnn::DNN_TARGET_OPENCL_FP16 ,
  cv::dnn::DNN_TARGET_MYRIAD ,
  cv::dnn::DNN_TARGET_VULKAN ,
  cv::dnn::DNN_TARGET_FPGA ,
  cv::dnn::DNN_TARGET_CUDA ,
  cv::dnn::DNN_TARGET_CUDA_FP16 ,
  cv::dnn::DNN_TARGET_HDDL ,
  cv::dnn::DNN_TARGET_NPU ,
  cv::dnn::DNN_TARGET_CPU_FP16
}
 計算対象のターゲットデバイスのenum。 詳細...
 
enum  cv::dnn::TracingMode {
  cv::dnn::DNN_TRACE_NONE = 0 ,
  cv::dnn::DNN_TRACE_ALL = 1 ,
  cv::dnn::DNN_TRACE_OP = 2
}
 

関数

std::string cv::dnn::argKindToString (ArgKind kind)
 
Mat cv::dnn::blobFromImage (InputArray image, double scalefactor=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 画像から4次元のblobを作成する。必要に応じてimageを中心からリサイズおよびクロップし、mean値を減算し、scalefactorで値をスケーリングし、青と赤のチャンネルを入れ替える。
 
void cv::dnn::blobFromImage (InputArray image, OutputArray blob, double scalefactor=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 画像から4次元のblobを作成する。
 
Mat cv::dnn::blobFromImages (InputArrayOfArrays images, double scalefactor=1.0, Size size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 一連の画像から4次元のblobを作成する。必要に応じてimagesを中心からリサイズおよびクロップし、mean値を減算し、scalefactorで値をスケーリングし、青と赤のチャンネルを入れ替える。
 
void cv::dnn::blobFromImages (InputArrayOfArrays images, OutputArray blob, double scalefactor=1.0, Size size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 一連の画像から4次元のblobを作成する。
 
Mat cv::dnn::blobFromImagesWithParams (InputArrayOfArrays images, const Image2BlobParams &param=Image2BlobParams())
 指定したパラメータで一連の画像から4次元のblobを作成する。
 
void cv::dnn::blobFromImagesWithParams (InputArrayOfArrays images, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
Mat cv::dnn::blobFromImageWithParams (InputArray image, const Image2BlobParams &param=Image2BlobParams())
 指定したパラメータで画像から4次元のblobを作成する。
 
void cv::dnn::blobFromImageWithParams (InputArray image, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
void cv::dnn::enableModelDiagnostics (bool isDiagnosticsMode)
 CV DNN APIによるDNNモデル読み込みの詳細なログ出力を有効にする。
 
std::vector< std::pair< Backend, Target > > cv::dnn::getAvailableBackends ()
 
std::vector< Targetcv::dnn::getAvailableTargets (dnn::Backend be)
 
LayerFactory_Implcv::dnn::getLayerFactoryImpl ()
 
Mutexcv::dnn::getLayerFactoryMutex ()
 LayerFactory_Implを保護するミューテックスを取得する。getLayerFactoryImpl()関数を参照。
 
void cv::dnn::imagesFromBlob (const cv::Mat &blob_, OutputArrayOfArrays images_)
 4Dのblobをパースしてそこにふくまれるイメージをよりシンプルなデータ構造(std::vector<cv::Mat>)を通じて2D配列として出力する。
 
std::string cv::dnn::modelFormatToString (ModelFormat modelFormat)
 
void cv::dnn::NMSBoxes (const std::vector< Rect > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 与えられたボックスと対応するスコアに対して、non maximum suppressionを実行する。
 
void cv::dnn::NMSBoxes (const std::vector< Rect2d > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 
void cv::dnn::NMSBoxes (const std::vector< RotatedRect > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 
void cv::dnn::NMSBoxesBatched (const std::vector< Rect > &bboxes, const std::vector< float > &scores, const std::vector< int > &class_ids, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 与えられたボックスと対応するスコアに対して、異なるクラスをまたいでバッチ化したnon maximum suppressionを実行する。
 
void cv::dnn::NMSBoxesBatched (const std::vector< Rect2d > &bboxes, const std::vector< float > &scores, const std::vector< int > &class_ids, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 
Net cv::dnn::readNet (const String &framework, const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >(), int engine=ENGINE_AUTO)
 サポートされている形式のいずれかで表現された深層学習ネットワークを読み込む。
 
Net cv::dnn::readNet (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config="", const String &framework="", int engine=ENGINE_AUTO)
 サポートされている形式のいずれかで表現された深層学習ネットワークを読み込む。
 
Net cv::dnn::readNetFromModelOptimizer (const std::vector< uchar > &bufferModelConfig, const std::vector< uchar > &bufferWeights)
 IntelのModel Optimizerの中間表現からネットワークを読み込む。
 
Net cv::dnn::readNetFromModelOptimizer (const uchar *bufferModelConfigPtr, size_t bufferModelConfigSize, const uchar *bufferWeightsPtr, size_t bufferWeightsSize)
 IntelのModel Optimizerの中間表現からネットワークを読み込む。
 
Net cv::dnn::readNetFromModelOptimizer (CV_WRAP_FILE_PATH const String &xml, CV_WRAP_FILE_PATH const String &bin="")
 IntelのModel Optimizerの中間表現からネットワークを読み込む。
 
Net cv::dnn::readNetFromONNX (const char *buffer, size_t sizeBuffer, int engine=ENGINE_AUTO)
 メモリ上のバッファからONNXのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromONNX (const std::vector< uchar > &buffer, int engine=ENGINE_AUTO)
 メモリ上のバッファからONNXのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromONNX (CV_WRAP_FILE_PATH const String &onnxFile, int engine=ENGINE_AUTO)
 ONNXのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTensorflow (const char *bufferModel, size_t lenModel, const char *bufferConfig=NULL, size_t lenConfig=0, int engine=ENGINE_AUTO, const std::vector< String > &extraOutputs=std::vector< String >())
 TensorFlowフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTensorflow (const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >(), int engine=ENGINE_AUTO, const std::vector< String > &extraOutputs=std::vector< String >())
 TensorFlowフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTensorflow (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config=String(), int engine=ENGINE_AUTO, const std::vector< String > &extraOutputs=std::vector< String >())
 TensorFlowフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTFLite (const char *bufferModel, size_t lenModel, int engine=ENGINE_AUTO)
 TFLiteフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTFLite (const std::vector< uchar > &bufferModel, int engine=ENGINE_AUTO)
 TFLiteフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTFLite (CV_WRAP_FILE_PATH const String &model, int engine=ENGINE_AUTO)
 TFLiteフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Mat cv::dnn::readTensorFromONNX (CV_WRAP_FILE_PATH const String &path)
 .pbファイルからblobを作成する。
 
void cv::dnn::softNMSBoxes (const std::vector< Rect > &bboxes, const std::vector< float > &scores, std::vector< float > &updated_scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, size_t top_k=0, const float sigma=0.5, SoftNMSMethod method=SoftNMSMethod::SOFTNMS_GAUSSIAN)
 与えられたボックスと対応するスコアに対して、soft non maximum suppressionを実行する。参考: https://arxiv.org/abs/1704.04503
 
void cv::dnn::writeTextGraph (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &output)
 protocol buffer形式で格納されたバイナリネットワークのテキスト表現を作成する。
 

型定義詳解

◆ LayerFactory_Impl

typedef std::map<std::string, std::vector<LayerFactory::Constructor> > cv::dnn::LayerFactory_Impl

◆ MatType

typedef int cv::dnn::MatType

#include <opencv2/dnn/dnn.hpp>

列挙型詳解

◆ ArgKind

#include <opencv2/dnn/dnn.hpp>

列挙値
DNN_ARG_EMPTY 
Python: cv.dnn.DNN_ARG_EMPTY

Arg.idx==0 の場合のみ有効。「引数なし」を表す。

DNN_ARG_CONST 
Python: cv.dnn.DNN_ARG_CONST

定数引数。

DNN_ARG_INPUT 
Python: cv.dnn.DNN_ARG_INPUT

モデル全体への入力。Net::forward() の前、または Net::forward() 内で、すべての入力を設定しておかなければならない。

DNN_ARG_OUTPUT 
Python: cv.dnn.DNN_ARG_OUTPUT

モデルの出力。

DNN_ARG_TEMP 
Python: cv.dnn.DNN_ARG_TEMP

中間結果。ある演算の結果であり、他の演算への入力となるもの。

DNN_ARG_PATTERN 
Python: cv.dnn.DNN_ARG_PATTERN

現時点では未使用。

◆ Backend

#include <opencv2/dnn/dnn.hpp>

レイヤーがサポートする計算バックエンドのenum。

参照
Net::setPreferableBackend
列挙値
DNN_BACKEND_DEFAULT 
Python: cv.dnn.DNN_BACKEND_DEFAULT

DNN_BACKEND_DEFAULTはOPENCV_DNN_BACKEND_DEFAULTと等しく、CMakeまたは設定パラメータで定義できる。

DNN_BACKEND_INFERENCE_ENGINE 
Python: cv.dnn.DNN_BACKEND_INFERENCE_ENGINE

Intel OpenVINO計算バックエンド。サポートされるターゲット: CPU, OPENCL, OPENCL_FP16, MYRIAD, HDDL, NPU

覚え書き
OpenVINOを使ってOpenCVをビルドする方法のチュートリアル: OpenVINOでのOpenCV利用
DNN_BACKEND_OPENCV 
Python: cv.dnn.DNN_BACKEND_OPENCV
DNN_BACKEND_VKCOM 
Python: cv.dnn.DNN_BACKEND_VKCOM
DNN_BACKEND_CUDA 
Python: cv.dnn.DNN_BACKEND_CUDA
DNN_BACKEND_WEBNN 
Python: cv.dnn.DNN_BACKEND_WEBNN
DNN_BACKEND_TIMVX 
Python: cv.dnn.DNN_BACKEND_TIMVX
DNN_BACKEND_CANN 
Python: cv.dnn.DNN_BACKEND_CANN

◆ EngineType

#include <opencv2/dnn/dnn.hpp>

列挙値
ENGINE_CLASSIC 
Python: cv.dnn.ENGINE_CLASSIC

4.x ブランチと同様の古い dnn エンジンの使用を強制する。

ENGINE_NEW 
Python: cv.dnn.ENGINE_NEW

新しい dnn エンジンの使用を強制する。このエンジンは現時点で非CPUバックエンドをサポートしていない。

ENGINE_AUTO 
Python: cv.dnn.ENGINE_AUTO

新しいエンジンの使用を試み、その後従来版にフォールバックする。

ENGINE_ORT 
Python: cv.dnn.ENGINE_ORT

ONNX Runtime ラッパーの使用を試みる(ONNX のみ、WITH_ONNXRUNTIME=ON でのビルドが必要)。

◆ ImagePaddingMode

#include <opencv2/dnn/dnn.hpp>

画像処理モードのenum。dnnモデルの前処理要件の特殊化を容易にするためのもの。例えば、Yolo系のモデルでよく使われる letter box などがある。

参照
Image2BlobParams
列挙値
DNN_PMODE_NULL 
Python: cv.dnn.DNN_PMODE_NULL
DNN_PMODE_CROP_CENTER 
Python: cv.dnn.DNN_PMODE_CROP_CENTER
DNN_PMODE_LETTERBOX 
Python: cv.dnn.DNN_PMODE_LETTERBOX

◆ ModelFormat

#include <opencv2/dnn/dnn.hpp>

列挙値
DNN_MODEL_GENERIC 
Python: cv.dnn.DNN_MODEL_GENERIC

何らかの汎用的なモデル形式。

DNN_MODEL_ONNX 
Python: cv.dnn.DNN_MODEL_ONNX

ONNX モデル。

DNN_MODEL_TF 
Python: cv.dnn.DNN_MODEL_TF

TF モデル。

DNN_MODEL_TFLITE 
Python: cv.dnn.DNN_MODEL_TFLITE

TFLite モデル。

◆ ProfilingMode

#include <opencv2/dnn/dnn.hpp>

列挙値
DNN_PROFILE_NONE 
Python: cv.dnn.DNN_PROFILE_NONE

プロファイリングを行わない。

DNN_PROFILE_SUMMARY 
Python: cv.dnn.DNN_PROFILE_SUMMARY

レイヤー種別ごと(例: すべての「Conv2D」やすべての「Add」)に集計統計を収集し、実行時間順(最も高コストなレイヤーが先頭)にソートして最後に出力する。これによりオーバーヘッドが生じ、特に非CPUバックエンドの場合に処理が遅くなる可能性がある点に注意すること。

DNN_PROFILE_DETAILED 
Python: cv.dnn.DNN_PROFILE_DETAILED

個々のレイヤーの実行時間を出力する。これによりオーバーヘッドが生じ、特に非CPUバックエンドの場合に処理が遅くなる可能性がある点に注意すること。

◆ SoftNMSMethod

enum class cv::dnn::SoftNMSMethod
strong

#include <opencv2/dnn/dnn.hpp>

Soft NMS手法のenum。

参照
softNMSBoxes
列挙値
SOFTNMS_LINEAR 
SOFTNMS_GAUSSIAN 

◆ Target

#include <opencv2/dnn/dnn.hpp>

計算に用いるターゲットデバイスのenum。

参照
Net::setPreferableTarget
列挙値
DNN_TARGET_CPU 
Python: cv.dnn.DNN_TARGET_CPU
DNN_TARGET_OPENCL 
Python: cv.dnn.DNN_TARGET_OPENCL
DNN_TARGET_OPENCL_FP16 
Python: cv.dnn.DNN_TARGET_OPENCL_FP16
DNN_TARGET_MYRIAD 
Python: cv.dnn.DNN_TARGET_MYRIAD
DNN_TARGET_VULKAN 
Python: cv.dnn.DNN_TARGET_VULKAN
DNN_TARGET_FPGA 
Python: cv.dnn.DNN_TARGET_FPGA

Inference EngineのHeterogeneousプラグインを用い、CPUフォールバックを伴うFPGAデバイス。

DNN_TARGET_CUDA 
Python: cv.dnn.DNN_TARGET_CUDA
DNN_TARGET_CUDA_FP16 
Python: cv.dnn.DNN_TARGET_CUDA_FP16
DNN_TARGET_HDDL 
Python: cv.dnn.DNN_TARGET_HDDL
DNN_TARGET_NPU 
Python: cv.dnn.DNN_TARGET_NPU
DNN_TARGET_CPU_FP16 
Python: cv.dnn.DNN_TARGET_CPU_FP16

◆ TracingMode

#include <opencv2/dnn/dnn.hpp>

列挙値
DNN_TRACE_NONE 
Python: cv.dnn.DNN_TRACE_NONE

何もトレースしない。

DNN_TRACE_ALL 
Python: cv.dnn.DNN_TRACE_ALL

実行されたすべての演算を出力テンソルとともに表示する。おおむね ONNX Runtime と互換性がある。

DNN_TRACE_OP 
Python: cv.dnn.DNN_TRACE_OP

実行されたすべての演算を表示する。すべての入力と出力の型と形状が表示されるが、内容は表示されない。

関数詳解

◆ argKindToString()

std::string cv::dnn::argKindToString ( ArgKind kind)

#include <opencv2/dnn/dnn.hpp>

◆ blobFromImage() [1/2]

Mat cv::dnn::blobFromImage ( InputArray image,
double scalefactor = 1.0,
const Size & size = Size(),
const Scalar & mean = Scalar(),
bool swapRB = false,
bool crop = false,
int ddepth = CV_32F )
Python:
cv.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

画像から4次元のblobを生成する。省略可能で image を中心からリサイズおよびクロップし、mean 値を減算し、scalefactor で値をスケーリングし、青と赤のチャンネルを入れ替える。

引数
image入力画像(1、3、または 4 チャンネル)。
scalefactorimages の値に対する乗数。
size出力画像の空間サイズ
meanチャンネルから減算される平均値を持つスカラー。image が BGR 順で swapRB が true の場合、値は (mean-R, mean-G, mean-B) の順であることを想定している。
swapRB3 チャンネル画像において、最初と最後のチャンネルを入れ替える必要があることを示すフラグ。
cropリサイズ後に画像をクロップするかどうかを示すフラグ
ddepth出力 blob のビット深度。CV_32F または CV_8U を選択する。

crop がtrueの場合、リサイズ後に一方の辺が size の対応する次元と等しくなり、もう一方の辺がそれ以上となるように入力画像がリサイズされる。その後、中心からクロップが行われる。crop がfalseの場合は、クロップを行わずアスペクト比を保持した直接的なリサイズが行われる。

戻り値
NCHW の次元順を持つ4次元の Mat
覚え書き
scalefactormean の順序および用法は (input - mean) * scalefactor である。

◆ blobFromImage() [2/2]

void cv::dnn::blobFromImage ( InputArray image,
OutputArray blob,
double scalefactor = 1.0,
const Size & size = Size(),
const Scalar & mean = Scalar(),
bool swapRB = false,
bool crop = false,
int ddepth = CV_32F )
Python:
cv.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

画像から4次元のblobを生成する。

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

◆ blobFromImages() [1/2]

Mat cv::dnn::blobFromImages ( InputArrayOfArrays images,
double scalefactor = 1.0,
Size size = Size(),
const Scalar & mean = Scalar(),
bool swapRB = false,
bool crop = false,
int ddepth = CV_32F )
Python:
cv.dnn.blobFromImages(images[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

一連の画像から4次元のblobを生成する。省略可能で images を中心からリサイズおよびクロップし、mean 値を減算し、scalefactor で値をスケーリングし、青と赤のチャンネルを入れ替える。

引数
images入力画像群(すべて 1、3、または 4 チャンネル)。
size出力画像の空間サイズ
meanチャンネルから減算される平均値を持つスカラー。image が BGR 順で swapRB が true の場合、値は (mean-R, mean-G, mean-B) の順であることを想定している。
scalefactorimages の値に対する乗数。
swapRB3 チャンネル画像において、最初と最後のチャンネルを入れ替える必要があることを示すフラグ。
cropリサイズ後に画像をクロップするかどうかを示すフラグ
ddepth出力 blob のビット深度。CV_32F または CV_8U を選択する。

crop がtrueの場合、リサイズ後に一方の辺が size の対応する次元と等しくなり、もう一方の辺がそれ以上となるように入力画像がリサイズされる。その後、中心からクロップが行われる。crop がfalseの場合は、クロップを行わずアスペクト比を保持した直接的なリサイズが行われる。

戻り値
NCHW の次元順を持つ4次元の Mat
覚え書き
scalefactormean の順序および用法は (input - mean) * scalefactor である。

◆ blobFromImages() [2/2]

void cv::dnn::blobFromImages ( InputArrayOfArrays images,
OutputArray blob,
double scalefactor = 1.0,
Size size = Size(),
const Scalar & mean = Scalar(),
bool swapRB = false,
bool crop = false,
int ddepth = CV_32F )
Python:
cv.dnn.blobFromImages(images[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

一連の画像から4次元のblobを生成する。

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

◆ blobFromImagesWithParams() [1/2]

Mat cv::dnn::blobFromImagesWithParams ( InputArrayOfArrays images,
const Image2BlobParams & param = Image2BlobParams() )
Python:
cv.dnn.blobFromImagesWithParams(images[, param]) -> retval
cv.dnn.blobFromImagesWithParams(images[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

指定したパラメータを用いて一連の画像から4次元のblobを生成する。

この関数は、より多様な画像前処理のニーズに応えるための blobFromImages の拡張である。入力画像と前処理パラメータを与えると、関数はblobを出力する。

引数
images入力画像(すべて 1、3、または 4 チャンネル)。
paramImage2BlobParams 構造体。画像から blob への処理に必要なすべての引数を含む。
戻り値
4次元の Mat

◆ blobFromImagesWithParams() [2/2]

void cv::dnn::blobFromImagesWithParams ( InputArrayOfArrays images,
OutputArray blob,
const Image2BlobParams & param = Image2BlobParams() )
Python:
cv.dnn.blobFromImagesWithParams(images[, param]) -> retval
cv.dnn.blobFromImagesWithParams(images[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

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

◆ blobFromImageWithParams() [1/2]

Mat cv::dnn::blobFromImageWithParams ( InputArray image,
const Image2BlobParams & param = Image2BlobParams() )
Python:
cv.dnn.blobFromImageWithParams(image[, param]) -> retval
cv.dnn.blobFromImageWithParams(image[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

指定したパラメータを用いて画像から4次元のblobを生成する。

この関数は、より多様な画像前処理のニーズに応えるための blobFromImage の拡張である。入力画像と前処理パラメータを与えると、関数はblobを出力する。

引数
image入力画像(すべて 1、3、または 4 チャンネル)。
paramImage2BlobParams 構造体。画像から blob への処理に必要なすべての引数を含む。
戻り値
4次元の Mat

◆ blobFromImageWithParams() [2/2]

void cv::dnn::blobFromImageWithParams ( InputArray image,
OutputArray blob,
const Image2BlobParams & param = Image2BlobParams() )
Python:
cv.dnn.blobFromImageWithParams(image[, param]) -> retval
cv.dnn.blobFromImageWithParams(image[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

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

◆ enableModelDiagnostics()

void cv::dnn::enableModelDiagnostics ( bool isDiagnosticsMode)

#include <opencv2/dnn/dnn.hpp>

CV DNN APIによるDNNモデル読み込みの詳細なロギングを有効にする。

引数
[in]isDiagnosticsMode診断モードを設定すべきかどうかを示す。

診断モードは、潜在的な問題(例: 未実装のレイヤー型)を調査するために、モデル読み込み段階の詳細なロギングを提供する。

覚え書き
診断モードでは一連のアサーションがスキップされるため、想定外のアプリケーションのクラッシュにつながる可能性がある。

◆ getAvailableBackends()

std::vector< std::pair< Backend, Target > > cv::dnn::getAvailableBackends ( )

#include <opencv2/dnn/dnn.hpp>

◆ getAvailableTargets()

std::vector< Target > cv::dnn::getAvailableTargets ( dnn::Backend be)
Python:
cv.dnn.getAvailableTargets(be) -> retval

#include <opencv2/dnn/dnn.hpp>

◆ getLayerFactoryImpl()

LayerFactory_Impl & cv::dnn::getLayerFactoryImpl ( )

#include <opencv2/dnn/layer_reg.private.hpp>

DNNモデルのレイヤー型を登録する。

覚え書き
ファクトリにスレッドセーフにアクセスするには、getLayerFactoryMutex() 関数を参照すること。

◆ getLayerFactoryMutex()

Mutex & cv::dnn::getLayerFactoryMutex ( )

#include <opencv2/dnn/layer_reg.private.hpp>

LayerFactory_Impl を保護するミューテックスを取得する。getLayerFactoryImpl() 関数を参照すること。

◆ imagesFromBlob()

void cv::dnn::imagesFromBlob ( const cv::Mat & blob_,
OutputArrayOfArrays images_ )
Python:
cv.dnn.imagesFromBlob(blob_[, images_]) -> images_

#include <opencv2/dnn/dnn.hpp>

4次元のblobをパースし、それが含む画像をより単純なデータ構造 (std::vector<cv::Mat>) として2次元配列で出力する。

引数
[in]blob_画像を抽出する元となる、浮動小数点精度 (CV_32F) の 4 次元配列 (images, channels, height, width)。
[out]images_blob から抽出された画像を浮動小数点精度 (CV_32F) で格納した2Dの Mat の配列。正規化も平均値の加算も行われていない。返される画像の枚数は blob の第1次元(バッチサイズ)と等しい。各画像のチャンネル数は blob の第2次元(深さ)と等しい。

◆ modelFormatToString()

std::string cv::dnn::modelFormatToString ( ModelFormat modelFormat)

#include <opencv2/dnn/dnn.hpp>

◆ NMSBoxes() [1/3]

void cv::dnn::NMSBoxes ( const std::vector< Rect > & bboxes,
const std::vector< float > & scores,
const float score_threshold,
const float nms_threshold,
std::vector< int > & indices,
const float eta = 1.f,
const int top_k = 0 )
Python:
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

#include <opencv2/dnn/dnn.hpp>

ボックスと対応するスコアを与えて非最大抑制 (non maximum suppression) を実行する。

引数
bboxesNMS を適用するバウンディングボックスの集合。
scores対応する信頼度の集合。
score_thresholdスコアでボックスをフィルタリングするために使用するしきい値。
nms_threshold非最大抑制 (non maximum suppression) で使用するしきい値。
indicesNMS 後に保持される bbox のインデックス。
eta適応的しきい値の式における係数: \(nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\)。
top_k>0 の場合、選択されたインデックスを最大でも top_k 個まで保持する。

◆ NMSBoxes() [2/3]

void cv::dnn::NMSBoxes ( const std::vector< Rect2d > & bboxes,
const std::vector< float > & scores,
const float score_threshold,
const float nms_threshold,
std::vector< int > & indices,
const float eta = 1.f,
const int top_k = 0 )
Python:
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

#include <opencv2/dnn/dnn.hpp>

◆ NMSBoxes() [3/3]

void cv::dnn::NMSBoxes ( const std::vector< RotatedRect > & bboxes,
const std::vector< float > & scores,
const float score_threshold,
const float nms_threshold,
std::vector< int > & indices,
const float eta = 1.f,
const int top_k = 0 )
Python:
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

#include <opencv2/dnn/dnn.hpp>

◆ NMSBoxesBatched() [1/2]

void cv::dnn::NMSBoxesBatched ( const std::vector< Rect > & bboxes,
const std::vector< float > & scores,
const std::vector< int > & class_ids,
const float score_threshold,
const float nms_threshold,
std::vector< int > & indices,
const float eta = 1.f,
const int top_k = 0 )
Python:
cv.dnn.NMSBoxesBatched(bboxes, scores, class_ids, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

#include <opencv2/dnn/dnn.hpp>

与えられたボックスと対応するスコアに対し、異なるクラスをまたいでバッチ化された非最大抑制を実行する。

引数
bboxesNMS を適用するバウンディングボックスの集合。
scores対応する信頼度の集合。
class_ids対応するクラス ID の集合。ID は整数で、通常は 0 から始まる。
score_thresholdスコアでボックスをフィルタリングするために使用するしきい値。
nms_threshold非最大抑制 (non maximum suppression) で使用するしきい値。
indicesNMS 後に保持される bbox のインデックス。
eta適応的しきい値の式における係数: \(nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\)。
top_k>0 の場合、選択されたインデックスを最大でも top_k 個まで保持する。

◆ NMSBoxesBatched() [2/2]

void cv::dnn::NMSBoxesBatched ( const std::vector< Rect2d > & bboxes,
const std::vector< float > & scores,
const std::vector< int > & class_ids,
const float score_threshold,
const float nms_threshold,
std::vector< int > & indices,
const float eta = 1.f,
const int top_k = 0 )
Python:
cv.dnn.NMSBoxesBatched(bboxes, scores, class_ids, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

#include <opencv2/dnn/dnn.hpp>

◆ readNet() [1/2]

Net cv::dnn::readNet ( const String & framework,
const std::vector< uchar > & bufferModel,
const std::vector< uchar > & bufferConfig = std::vector< uchar >(),
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNet(model[, config[, framework[, engine]]]) -> retval
cv.dnn.readNet(framework, bufferModel[, bufferConfig[, engine]]) -> retval

#include <opencv2/dnn/dnn.hpp>

サポートされている形式のいずれかで表現された深層学習ネットワークを読み込む。

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

引数
[in]framework元のフレームワーク名。
[in]bufferModel重みを格納したバイナリファイルの内容を持つバッファ
[in]bufferConfigネットワーク構成を含むテキストファイルの内容を持つバッファ。
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。他のバックエンドを使用したい場合は ENGINE_CLASSIC を使用すること。
戻り値
Net オブジェクト。

◆ readNet() [2/2]

Net cv::dnn::readNet ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & config = "",
const String & framework = "",
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNet(model[, config[, framework[, engine]]]) -> retval
cv.dnn.readNet(framework, bufferModel[, bufferConfig[, engine]]) -> retval

#include <opencv2/dnn/dnn.hpp>

サポートされている形式のいずれかで表現された深層学習ネットワークを読み込む。

引数
[in]model学習済みの重みを含むバイナリファイル。異なるフレームワークのモデルでは、以下のファイル拡張子が想定される:
[in]configネットワーク構成を含むテキストファイル。以下の拡張子を持つファイルが該当する:
[in]frameworkフォーマットを判別するための明示的なフレームワーク名タグ。
[in]engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。他のバックエンドを使用したい場合は ENGINE_CLASSIC を使用すること。
戻り値
Net オブジェクト。

この関数は学習済みモデルの元のフレームワークを自動的に検出し、readNetFromTensorflowreadNetFromONNX といった適切な関数を呼び出す。modelconfig の引数の順序は問わない。

◆ readNetFromModelOptimizer() [1/3]

Net cv::dnn::readNetFromModelOptimizer ( const std::vector< uchar > & bufferModelConfig,
const std::vector< uchar > & bufferWeights )
Python:
cv.dnn.readNetFromModelOptimizer(xml[, bin]) -> retval
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

#include <opencv2/dnn/dnn.hpp>

Intelの Model Optimizerの中間表現からネットワークを読み込む。

引数
[in]bufferModelConfigネットワークのトポロジーを記述した XML 構成を含むバッファ。
[in]bufferWeights学習済みの重みを持つバイナリデータを含むバッファ。
戻り値
Net オブジェクト。Intelの Model Optimizerからインポートされたネットワークは、IntelのInference Engineバックエンドで実行される。

◆ readNetFromModelOptimizer() [2/3]

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

#include <opencv2/dnn/dnn.hpp>

Intelの Model Optimizerの中間表現からネットワークを読み込む。

引数
[in]bufferModelConfigPtrネットワークのトポロジーを記述した XML 構成を含むバッファへのポインタ。
[in]bufferModelConfigSizeXML 構成データのバイナリサイズ。
[in]bufferWeightsPtr学習済みの重みを持つバイナリデータを含むバッファへのポインタ。
[in]bufferWeightsSize学習済みの重みデータのバイナリサイズ。
戻り値
Net オブジェクト。Intelの Model Optimizerからインポートされたネットワークは、IntelのInference Engineバックエンドで実行される。

◆ readNetFromModelOptimizer() [3/3]

Net cv::dnn::readNetFromModelOptimizer ( CV_WRAP_FILE_PATH const String & xml,
CV_WRAP_FILE_PATH const String & bin = "" )
Python:
cv.dnn.readNetFromModelOptimizer(xml[, bin]) -> retval
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

#include <opencv2/dnn/dnn.hpp>

Intelの Model Optimizerの中間表現からネットワークを読み込む。

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

◆ readNetFromONNX() [1/3]

Net cv::dnn::readNetFromONNX ( const char * buffer,
size_t sizeBuffer,
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNetFromONNX(onnxFile[, engine]) -> retval
cv.dnn.readNetFromONNX(buffer[, engine]) -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX のメモリ上バッファからネットワークモデルを読み込む。

引数
bufferバッファの先頭バイトのメモリアドレス。
sizeBufferバッファのサイズ。
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ readNetFromONNX() [2/3]

Net cv::dnn::readNetFromONNX ( const std::vector< uchar > & buffer,
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNetFromONNX(onnxFile[, engine]) -> retval
cv.dnn.readNetFromONNX(buffer[, engine]) -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX のメモリ上バッファからネットワークモデルを読み込む。

引数
bufferONNX モデルのバイト列を格納するメモリ内バッファ。
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ readNetFromONNX() [3/3]

Net cv::dnn::readNetFromONNX ( CV_WRAP_FILE_PATH const String & onnxFile,
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNetFromONNX(onnxFile[, engine]) -> retval
cv.dnn.readNetFromONNX(buffer[, engine]) -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX のネットワークモデルを読み込む。

引数
onnxFileネットワークアーキテクチャのテキスト記述を含む .onnx ファイルへのパス。
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ readNetFromTensorflow() [1/3]

Net cv::dnn::readNetFromTensorflow ( const char * bufferModel,
size_t lenModel,
const char * bufferConfig = NULL,
size_t lenConfig = 0,
int engine = ENGINE_AUTO,
const std::vector< String > & extraOutputs = std::vector< String >() )
Python:
cv.dnn.readNetFromTensorflow(model[, config[, engine[, extraOutputs]]]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig[, engine[, extraOutputs]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

TensorFlow フレームワークの形式で格納されたネットワークモデルを読み込む。

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

引数
bufferModelpb ファイルの内容を含むバッファ
lenModelbufferModel の長さ
bufferConfigpbtxt ファイルの内容を含むバッファ
lenConfigbufferConfig の長さ
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが使用される。
extraOutputsグラフ解析器が見つける出力に加えて、モデルの出力を明示的に指定する。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。

◆ readNetFromTensorflow() [2/3]

Net cv::dnn::readNetFromTensorflow ( const std::vector< uchar > & bufferModel,
const std::vector< uchar > & bufferConfig = std::vector< uchar >(),
int engine = ENGINE_AUTO,
const std::vector< String > & extraOutputs = std::vector< String >() )
Python:
cv.dnn.readNetFromTensorflow(model[, config[, engine[, extraOutputs]]]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig[, engine[, extraOutputs]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

TensorFlow フレームワークの形式で格納されたネットワークモデルを読み込む。

引数
bufferModelpb ファイルの内容を含むバッファ
bufferConfigpbtxt ファイルの内容を含むバッファ
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが使用される。
extraOutputsグラフ解析器が見つける出力に加えて、モデルの出力を明示的に指定する。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。
戻り値
Net オブジェクト。

◆ readNetFromTensorflow() [3/3]

Net cv::dnn::readNetFromTensorflow ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & config = String(),
int engine = ENGINE_AUTO,
const std::vector< String > & extraOutputs = std::vector< String >() )
Python:
cv.dnn.readNetFromTensorflow(model[, config[, engine[, extraOutputs]]]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig[, engine[, extraOutputs]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

TensorFlow フレームワークの形式で格納されたネットワークモデルを読み込む。

引数
modelネットワークアーキテクチャのバイナリ protobuf 記述を含む .pb ファイルへのパス
configprotobuf 形式のテキストグラフ定義を含む .pbtxt ファイルへのパス。結果として得られる Net オブジェクトは、バイナリファイルの重みを用いてテキストグラフから構築される。これによってより柔軟に扱えるようになる。
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが使用される。
extraOutputsグラフ解析器が見つける出力に加えて、モデルの出力を明示的に指定する。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。
戻り値
Net オブジェクト。

◆ readNetFromTFLite() [1/3]

Net cv::dnn::readNetFromTFLite ( const char * bufferModel,
size_t lenModel,
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNetFromTFLite(model[, engine]) -> retval
cv.dnn.readNetFromTFLite(bufferModel[, engine]) -> retval

#include <opencv2/dnn/dnn.hpp>

TFLite フレームワークの形式で格納されたネットワークモデルを読み込む。

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

引数
bufferModeltflite ファイルの内容を含むバッファ
lenModelbufferModel の長さ
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。

◆ readNetFromTFLite() [2/3]

Net cv::dnn::readNetFromTFLite ( const std::vector< uchar > & bufferModel,
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNetFromTFLite(model[, engine]) -> retval
cv.dnn.readNetFromTFLite(bufferModel[, engine]) -> retval

#include <opencv2/dnn/dnn.hpp>

TFLite フレームワークの形式で格納されたネットワークモデルを読み込む。

引数
bufferModeltflite ファイルの内容を含むバッファ
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。
戻り値
Net オブジェクト。

◆ readNetFromTFLite() [3/3]

Net cv::dnn::readNetFromTFLite ( CV_WRAP_FILE_PATH const String & model,
int engine = ENGINE_AUTO )
Python:
cv.dnn.readNetFromTFLite(model[, engine]) -> retval
cv.dnn.readNetFromTFLite(bufferModel[, engine]) -> retval

#include <opencv2/dnn/dnn.hpp>

TFLite フレームワークの形式で格納されたネットワークモデルを読み込む。

引数
modelネットワークアーキテクチャのバイナリ flatbuffers 記述を含む .tflite ファイルへのパス
engine使用する DNN エンジンを選択する。自動選択では新しいエンジンが優先的に使用され、利用できない場合は従来版にフォールバックする。新しい DNN は現時点で非CPUバックエンドをサポートしていない点に注意すること。
戻り値
Net オブジェクト。

◆ readTensorFromONNX()

Mat cv::dnn::readTensorFromONNX ( CV_WRAP_FILE_PATH const String & path)
Python:
cv.dnn.readTensorFromONNX(path) -> retval

#include <opencv2/dnn/dnn.hpp>

.pbファイルからblobを生成する。

引数
path入力テンソルを含む.pbファイルへのパス。
戻り値
Mat.

◆ softNMSBoxes()

void cv::dnn::softNMSBoxes ( const std::vector< Rect > & bboxes,
const std::vector< float > & scores,
std::vector< float > & updated_scores,
const float score_threshold,
const float nms_threshold,
std::vector< int > & indices,
size_t top_k = 0,
const float sigma = 0.5,
SoftNMSMethod method = SoftNMSMethod::SOFTNMS_GAUSSIAN )
Python:
cv.dnn.softNMSBoxes(bboxes, scores, score_threshold, nms_threshold[, top_k[, sigma[, method]]]) -> updated_scores, indices

#include <opencv2/dnn/dnn.hpp>

ボックスと対応するスコアを与えてsoft非最大抑制 (soft non maximum suppression) を実行する。参考: https://arxiv.org/abs/1704.04503

引数
bboxesSoft NMSを適用するバウンディングボックスの集合。
scores対応する信頼度の集合。
updated_scores対応する更新後の信頼度の集合。
score_thresholdスコアでボックスをフィルタリングするために使用するしきい値。
nms_threshold非最大抑制 (non maximum suppression) で使用するしきい値。
indicesNMS 後に保持される bbox のインデックス。
top_k選択するインデックスを最大でもtop_k個に保持する。
sigmaガウス重み付けのパラメータ。
methodガウス型または線形型。
参照
SoftNMSMethod

◆ writeTextGraph()

void cv::dnn::writeTextGraph ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & output )
Python:
cv.dnn.writeTextGraph(model, output) -> None

#include <opencv2/dnn/dnn.hpp>

プロトコルバッファ形式で格納されたバイナリネットワークのテキスト表現を生成する。

引数
[in]modelバイナリネットワークへのパス。
[in]output作成する出力テキストファイルへのパス。
覚え書き
出力ファイルのサイズを削減するため、学習済みの重みは含まれない。