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

トピック

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

詳細説明

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

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

クラス

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のいずれかの型のスカラー値(または配列)を格納する。 詳細...
 
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を表す。 詳細...
 

型定義

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

列挙型

enum  cv::dnn::Backend {
  cv::dnn::DNN_BACKEND_DEFAULT = 0 ,
  cv::dnn::DNN_BACKEND_HALIDE ,
  cv::dnn::DNN_BACKEND_INFERENCE_ENGINE ,
  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::DataLayout {
  cv::dnn::DNN_LAYOUT_UNKNOWN = 0 ,
  cv::dnn::DNN_LAYOUT_ND = 1 ,
  cv::dnn::DNN_LAYOUT_NCHW = 2 ,
  cv::dnn::DNN_LAYOUT_NCDHW = 3 ,
  cv::dnn::DNN_LAYOUT_NHWC = 4 ,
  cv::dnn::DNN_LAYOUT_NDHWC = 5 ,
  cv::dnn::DNN_LAYOUT_PLANAR = 6
}
 モデル推論のためのデータレイアウトのenum。 詳細...
 
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 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。 詳細...
 

関数

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配列として出力する。
 
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 >())
 サポートされている形式のいずれかで表現された深層学習ネットワークを読み込む。
 
Net cv::dnn::readNet (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config="", const String &framework="")
 サポートされている形式のいずれかで表現された深層学習ネットワークを読み込む。
 
Net cv::dnn::readNetFromCaffe (const char *bufferProto, size_t lenProto, const char *bufferModel=NULL, size_t lenModel=0)
 メモリ上に格納されたCaffeモデルのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromCaffe (const std::vector< uchar > &bufferProto, const std::vector< uchar > &bufferModel=std::vector< uchar >())
 メモリ上に格納されたCaffeモデルのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromCaffe (CV_WRAP_FILE_PATH const String &prototxt, CV_WRAP_FILE_PATH const String &caffeModel=String())
 Caffeフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromDarknet (const char *bufferCfg, size_t lenCfg, const char *bufferModel=NULL, size_t lenModel=0)
 Darknetのモデルファイルに格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromDarknet (const std::vector< uchar > &bufferCfg, const std::vector< uchar > &bufferModel=std::vector< uchar >())
 Darknetのモデルファイルに格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromDarknet (CV_WRAP_FILE_PATH const String &cfgFile, CV_WRAP_FILE_PATH const String &darknetModel=String())
 Darknetのモデルファイルに格納されたネットワークモデルを読み込む。
 
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)
 メモリ上のバッファからONNXのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromONNX (const std::vector< uchar > &buffer)
 メモリ上のバッファからONNXのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromONNX (CV_WRAP_FILE_PATH const String &onnxFile)
 ONNXのネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTensorflow (const char *bufferModel, size_t lenModel, const char *bufferConfig=NULL, size_t lenConfig=0)
 TensorFlowフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTensorflow (const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >())
 TensorFlowフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTensorflow (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config=String())
 TensorFlowフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTFLite (const char *bufferModel, size_t lenModel)
 TFLiteフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTFLite (const std::vector< uchar > &bufferModel)
 TFLiteフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTFLite (CV_WRAP_FILE_PATH const String &model)
 TFLiteフレームワークの形式で格納されたネットワークモデルを読み込む。
 
Net cv::dnn::readNetFromTorch (CV_WRAP_FILE_PATH const String &model, bool isBinary=true, bool evaluate=true)
 Torch7フレームワークの形式で格納されたネットワークモデルを読み込む。
 
Mat cv::dnn::readTensorFromONNX (CV_WRAP_FILE_PATH const String &path)
 .pbファイルからblobを作成する。
 
Mat cv::dnn::readTorchBlob (const String &filename, bool isBinary=true)
 Torch7フレームワークのtorch.Tensorオブジェクトとしてシリアライズされたblobを読み込む。
 
void cv::dnn::shrinkCaffeModel (CV_WRAP_FILE_PATH const String &src, CV_WRAP_FILE_PATH const String &dst, const std::vector< String > &layersTypes=std::vector< String >())
 Caffeネットワークのすべての重みを半精度浮動小数点に変換する。
 
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

◆ MatShape

typedef std::vector<int> cv::dnn::MatShape

#include <opencv2/dnn/dnn.hpp>

列挙型詳解

◆ 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_HALIDE 
Python: cv.dnn.DNN_BACKEND_HALIDE
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

◆ DataLayout

#include <opencv2/dnn/dnn.hpp>

モデル推論のためのデータレイアウトのenum。

参照
Image2BlobParams
列挙値
DNN_LAYOUT_UNKNOWN 
Python: cv.dnn.DNN_LAYOUT_UNKNOWN
DNN_LAYOUT_ND 
Python: cv.dnn.DNN_LAYOUT_ND

2DデータのためのOpenCVデータレイアウト。

DNN_LAYOUT_NCHW 
Python: cv.dnn.DNN_LAYOUT_NCHW

4DデータのためのOpenCVデータレイアウト。

DNN_LAYOUT_NCDHW 
Python: cv.dnn.DNN_LAYOUT_NCDHW

5DデータのためのOpenCVデータレイアウト。

DNN_LAYOUT_NHWC 
Python: cv.dnn.DNN_LAYOUT_NHWC

4DデータのためのTensorflow風データレイアウト。

DNN_LAYOUT_NDHWC 
Python: cv.dnn.DNN_LAYOUT_NDHWC

5DデータのためのTensorflow風データレイアウト。

DNN_LAYOUT_PLANAR 
Python: cv.dnn.DNN_LAYOUT_PLANAR

Tensorflow風データレイアウト。tfまたはtfliteモデルの解析時にのみ使用すべきである。

◆ 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

◆ 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

関数詳解

◆ 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 から抽出された画像を含む 2D Mat の配列。浮動小数点精度 (CV_32F)。正規化も平均加算もされていない。返される画像の数は blob の最初の次元(バッチサイズ)に等しい。各画像のチャンネル数は blob の 2 番目の次元(ビット深度)に等しい。

◆ 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 >() )
Python:
cv.dnn.readNet(model[, config[, framework]]) -> retval
cv.dnn.readNet(framework, bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

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

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

引数
[in]framework元のフレームワーク名。
[in]bufferModel重みを格納したバイナリファイルの内容を持つバッファ
[in]bufferConfigネットワーク構成を含むテキストファイルの内容を持つバッファ。
戻り値
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 = "" )
Python:
cv.dnn.readNet(model[, config[, framework]]) -> retval
cv.dnn.readNet(framework, bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
[in]model学習済みの重みを含むバイナリファイル。フレームワークごとに、モデルには以下のファイル拡張子が想定される:
[in]configネットワーク構成を含むテキストファイル。以下の拡張子を持つファイルとなる場合がある:
[in]frameworkフォーマットを判別するための明示的なフレームワーク名タグ。
戻り値
Net オブジェクト。

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

◆ readNetFromCaffe() [1/3]

Net cv::dnn::readNetFromCaffe ( const char * bufferProto,
size_t lenProto,
const char * bufferModel = NULL,
size_t lenModel = 0 )
Python:
cv.dnn.readNetFromCaffe(prototxt[, caffeModel]) -> retval
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

メモリ上のCaffeモデルに格納されたネットワークモデルを読み込む。

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

引数
bufferProto.prototxt ファイルの内容を含むバッファ
lenProtobufferProto の長さ
bufferModel.caffemodel ファイルの内容を含むバッファ
lenModelbufferModel の長さ
戻り値
Net オブジェクト。

◆ readNetFromCaffe() [2/3]

Net cv::dnn::readNetFromCaffe ( const std::vector< uchar > & bufferProto,
const std::vector< uchar > & bufferModel = std::vector< uchar >() )
Python:
cv.dnn.readNetFromCaffe(prototxt[, caffeModel]) -> retval
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

メモリ上のCaffeモデルに格納されたネットワークモデルを読み込む。

引数
bufferProto.prototxt ファイルの内容を含むバッファ
bufferModel.caffemodel ファイルの内容を含むバッファ
戻り値
Net オブジェクト。

◆ readNetFromCaffe() [3/3]

Net cv::dnn::readNetFromCaffe ( CV_WRAP_FILE_PATH const String & prototxt,
CV_WRAP_FILE_PATH const String & caffeModel = String() )
Python:
cv.dnn.readNetFromCaffe(prototxt[, caffeModel]) -> retval
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
prototxtネットワークアーキテクチャのテキスト記述を含む .prototxt ファイルへのパス。
caffeModel学習済みネットワークを含む .caffemodel ファイルへのパス。
戻り値
Net オブジェクト。

◆ readNetFromDarknet() [1/3]

Net cv::dnn::readNetFromDarknet ( const char * bufferCfg,
size_t lenCfg,
const char * bufferModel = NULL,
size_t lenModel = 0 )
Python:
cv.dnn.readNetFromDarknet(cfgFile[, darknetModel]) -> retval
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

Darknet のモデルファイルに格納されたネットワークモデルを読み込む。

引数
bufferCfgネットワークアーキテクチャのテキスト記述を含む .cfg ファイルの内容を持つバッファ。
lenCfgbufferCfg から読み込むバイト数
bufferModel学習済みネットワークを含む .weights ファイルの内容を持つバッファ。
lenModelbufferModel から読み込むバイト数
戻り値
Net オブジェクト。

◆ readNetFromDarknet() [2/3]

Net cv::dnn::readNetFromDarknet ( const std::vector< uchar > & bufferCfg,
const std::vector< uchar > & bufferModel = std::vector< uchar >() )
Python:
cv.dnn.readNetFromDarknet(cfgFile[, darknetModel]) -> retval
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

Darknet のモデルファイルに格納されたネットワークモデルを読み込む。

引数
bufferCfgネットワークアーキテクチャのテキスト記述を含む .cfg ファイルの内容を持つバッファ。
bufferModel学習済みネットワークを含む .weights ファイルの内容を持つバッファ。
戻り値
Net オブジェクト。

◆ readNetFromDarknet() [3/3]

Net cv::dnn::readNetFromDarknet ( CV_WRAP_FILE_PATH const String & cfgFile,
CV_WRAP_FILE_PATH const String & darknetModel = String() )
Python:
cv.dnn.readNetFromDarknet(cfgFile[, darknetModel]) -> retval
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

Darknet のモデルファイルに格納されたネットワークモデルを読み込む。

引数
cfgFileネットワークアーキテクチャのテキスト記述を含む .cfg ファイルへのパス。
darknetModel学習済みネットワークを含む .weights ファイルへのパス。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ 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 )
Python:
cv.dnn.readNetFromONNX(onnxFile) -> retval
cv.dnn.readNetFromONNX(buffer) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
bufferバッファの先頭バイトのメモリアドレス。
sizeBufferバッファのサイズ。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ readNetFromONNX() [2/3]

Net cv::dnn::readNetFromONNX ( const std::vector< uchar > & buffer)
Python:
cv.dnn.readNetFromONNX(onnxFile) -> retval
cv.dnn.readNetFromONNX(buffer) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
bufferONNX モデルのバイト列を格納するメモリ内バッファ。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ readNetFromONNX() [3/3]

Net cv::dnn::readNetFromONNX ( CV_WRAP_FILE_PATH const String & onnxFile)
Python:
cv.dnn.readNetFromONNX(onnxFile) -> retval
cv.dnn.readNetFromONNX(buffer) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
onnxFileネットワークアーキテクチャのテキスト記述を含む .onnx ファイルへのパス。
戻り値
フォワード処理の準備が整ったネットワークオブジェクト。失敗時には例外をスローする。

◆ readNetFromTensorflow() [1/3]

Net cv::dnn::readNetFromTensorflow ( const char * bufferModel,
size_t lenModel,
const char * bufferConfig = NULL,
size_t lenConfig = 0 )
Python:
cv.dnn.readNetFromTensorflow(model[, config]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

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

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

引数
bufferModelpb ファイルの内容を含むバッファ
lenModelbufferModel の長さ
bufferConfigpbtxt ファイルの内容を含むバッファ
lenConfigbufferConfig の長さ

◆ readNetFromTensorflow() [2/3]

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

#include <opencv2/dnn/dnn.hpp>

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

引数
bufferModelpb ファイルの内容を含むバッファ
bufferConfigpbtxt ファイルの内容を含むバッファ
戻り値
Net オブジェクト。

◆ readNetFromTensorflow() [3/3]

Net cv::dnn::readNetFromTensorflow ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & config = String() )
Python:
cv.dnn.readNetFromTensorflow(model[, config]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
modelネットワークアーキテクチャのバイナリ protobuf 記述を含む .pb ファイルへのパス
configprotobuf 形式のテキストグラフ定義を含む .pbtxt ファイルへのパス。結果として得られる Net オブジェクトは、バイナリファイルの重みを用いてテキストグラフから構築される。これによってより柔軟に扱えるようになる。
戻り値
Net オブジェクト。

◆ readNetFromTFLite() [1/3]

Net cv::dnn::readNetFromTFLite ( const char * bufferModel,
size_t lenModel )
Python:
cv.dnn.readNetFromTFLite(model) -> retval
cv.dnn.readNetFromTFLite(bufferModel) -> retval

#include <opencv2/dnn/dnn.hpp>

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

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

引数
bufferModeltflite ファイルの内容を含むバッファ
lenModelbufferModel の長さ

◆ readNetFromTFLite() [2/3]

Net cv::dnn::readNetFromTFLite ( const std::vector< uchar > & bufferModel)
Python:
cv.dnn.readNetFromTFLite(model) -> retval
cv.dnn.readNetFromTFLite(bufferModel) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
bufferModeltflite ファイルの内容を含むバッファ
戻り値
Net オブジェクト。

◆ readNetFromTFLite() [3/3]

Net cv::dnn::readNetFromTFLite ( CV_WRAP_FILE_PATH const String & model)
Python:
cv.dnn.readNetFromTFLite(model) -> retval
cv.dnn.readNetFromTFLite(bufferModel) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
modelネットワークアーキテクチャのバイナリ flatbuffers 記述を含む .tflite ファイルへのパス
戻り値
Net オブジェクト。

◆ readNetFromTorch()

Net cv::dnn::readNetFromTorch ( CV_WRAP_FILE_PATH const String & model,
bool isBinary = true,
bool evaluate = true )
Python:
cv.dnn.readNetFromTorch(model[, isBinary[, evaluate]]) -> retval

#include <opencv2/dnn/dnn.hpp>

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

引数
modeltorch.save() 関数を用いて Torch からダンプされたファイルへのパス。
isBinaryネットワークが ascii モードでシリアライズされたか、バイナリでシリアライズされたかを指定する。
evaluateネットワークのテストフェーズを指定する。trueの場合、Torchのevaluate()メソッドに似た動作になる。
戻り値
Net オブジェクト。
覚え書き
Torchシリアライザのアスキーモードの方が望ましい。バイナリモードはC言語の long 型を多用するが、その型はシステムによってビット長が異なるためである。

読み込むファイルには、インポート対象のネットワークを含むシリアライズ済みの nn.Module オブジェクトが含まれていなければならない。インポートエラーを避けるため、シリアライズデータからカスタムオブジェクトを排除するよう努めること。

サポートされているレイヤーの一覧(すなわちTorchのnn.Moduleクラスから派生したオブジェクトインスタンス):

  • nn.Sequential
  • nn.Parallel
  • nn.Concat
  • nn.Linear
  • nn.SpatialConvolution
  • nn.SpatialMaxPooling, nn.SpatialAveragePooling
  • nn.ReLU, nn.TanH, nn.Sigmoid
  • nn.Reshape
  • nn.SoftMax, nn.LogSoftMax

また、cunn、cudnn、fbcunn由来のこれらクラスの同等品も正常にインポートできる場合がある。

◆ 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.

◆ readTorchBlob()

Mat cv::dnn::readTorchBlob ( const String & filename,
bool isBinary = true )
Python:
cv.dnn.readTorchBlob(filename[, isBinary]) -> retval

#include <opencv2/dnn/dnn.hpp>

Torch7フレームワークのtorch.Tensorオブジェクトとしてシリアライズされたblobを読み込む。

警告
この関数は readNetFromTorch() と同じ制限を持つ。

◆ shrinkCaffeModel()

void cv::dnn::shrinkCaffeModel ( CV_WRAP_FILE_PATH const String & src,
CV_WRAP_FILE_PATH const String & dst,
const std::vector< String > & layersTypes = std::vector< String >() )
Python:
cv.dnn.shrinkCaffeModel(src, dst[, layersTypes]) -> None

#include <opencv2/dnn/dnn.hpp>

Caffeネットワークのすべての重みを半精度浮動小数点に変換する。

引数
src単精度浮動小数点の重みを含むCaffeフレームワーク由来の元モデルへのパス(通常は.caffemodel拡張子を持つ)。
dst更新された重みを持つ出力先モデルへのパス。
layersTypesパラメータを変換するレイヤー型の集合。デフォルトでは、畳み込み層と全結合層の重みのみを変換する。
覚え書き
縮小されたモデルは元のfloat32の重みを持たないため、元のCaffeフレームワークでは使用できなくなる。ただしデータ構造はNVidiaのCaffeフォーク https://github.com/NVIDIA/caffe から取られている。そのため、得られたモデルはそちらで使用できる。

◆ 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作成する出力テキストファイルへのパス。
覚え書き
出力ファイルのサイズを削減するため、学習済みの重みは含まれない。