OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
正在載入...
正在搜尋...
未找到匹配項
深度神經網路模組

主題

 已實現層級的部分列表
 
 新層級註冊實用程式
 

詳細說明

此模組包含

此模組的功能僅設計用於前向傳播計算(即網路推理)。原則上不支援網路訓練。

類  cv::dnn::BackendNode
 該類的派生類封裝了特定後端的函式。更多...
 
類  cv::dnn::BackendWrapper
 該類的派生類為不同的後端和目標封裝了 cv::Mat更多...
 
類  cv::dnn::ClassificationModel
 此類代表分類模型的高階 API。更多...
 
類  cv::dnn::DetectionModel
 此類代表物件檢測網路的高階 API。更多...
 
類  cv::dnn::Dict
 此類實現名稱-值字典,值為 DictValue 的例項。更多...
 
結構體  cv::dnn::DictValue
 此結構體儲存以下型別之一的標量值(或陣列):double、cv::String 或 int64。更多...
 
結構體  cv::dnn::Image2BlobParams
 影像轉 Blob 的處理引數。更多...
 
類  cv::dnn::KeypointsModel
 此類代表關鍵點模型的高階 API。更多...
 
類  cv::dnn::Layer
 此介面類允許構建新的層級——即網路的構建模組。更多...
 
類  cv::dnn::LayerParams
 此類提供初始化層級所需的所有資料。更多...
 
類  cv::dnn::Model
 此類為神經網路提供高階 API。更多...
 
類  cv::dnn::Net
 此類允許建立和操作綜合人工神經網路。更多...
 
類  cv::dnn::SegmentationModel
 此類代表分割模型的高階 API。更多...
 
類  cv::dnn::TextDetectionModel
 文字檢測網路的基類。更多...
 
類  cv::dnn::TextDetectionModel_DB
 此類代表與 DB 模型相容的文字檢測深度學習網路的高階 API。更多...
 
類  cv::dnn::TextDetectionModel_EAST
 此類代表與 EAST 模型相容的文字檢測深度學習網路的高階 API。更多...
 
類  cv::dnn::TextRecognitionModel
 此類代表文字識別網路的高階 API。更多...
 

型別定義 (Typedefs)

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  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  cv::dnn::ImagePaddingMode {
  cv::dnn::DNN_PMODE_NULL = 0 ,
  cv::dnn::DNN_PMODE_CROP_CENTER = 1 ,
  cv::dnn::DNN_PMODE_LETTERBOX = 2
}
 影像處理模式列舉。用於滿足 DNN 模型的特殊預處理要求。例如,Yolo 系列模型中常用的 letter box更多...
 
enum class  cv::dnn::SoftNMSMethod {
  cv::dnn::SoftNMSMethod::SOFTNMS_LINEAR = 1 ,
  cv::dnn::SoftNMSMethod::SOFTNMS_GAUSSIAN = 2
}
 Soft NMS 方法列舉。更多...
 
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
}
 計算目標裝置的列舉。更多...
 

函式

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)
 在給定邊界框和相應得分的情況下執行非極大值抑制 (NMS)。
 
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)
 跨不同類別對給定邊界框和相應得分執行批次非極大值抑制。
 
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 NMS。參考文獻: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 格式儲存的二進位制網路建立文字表示。
 

型別定義文件 (Typedef Documentation)

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

列舉型別文件 (Enumeration Type Documentation)

◆ Backend

#include <opencv2/dnn/dnn.hpp>

層級支援的計算後端列舉。

另請參閱
Net::setPreferableBackend
列舉值 (Enumerator)
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>

模型推理的資料佈局列舉。

另請參閱
Image2BlobParams
列舉值 (Enumerator)
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>

影像處理模式列舉。用於滿足 dnn 模型的特殊預處理要求。例如,Yolo 系列模型中常用的 letter box

另請參閱
Image2BlobParams
列舉值 (Enumerator)
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 方法列舉。

另請參閱
softNMSBoxes
列舉值 (Enumerator)
SOFTNMS_LINEAR 
SOFTNMS_GAUSSIAN 

◆ Target

#include <opencv2/dnn/dnn.hpp>

計算目標裝置的列舉。

另請參閱
Net::setPreferableTarget
列舉值 (Enumerator)
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

使用推理引擎的異構外掛,具有 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

函式文件 (Function Documentation)

◆ blobFromImage() [1/2]

Mat cv::dnn::blobFromImage ( InputArray 影像,
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 縮放值,以及交換藍色和紅色通道。

引數
影像輸入影像(1、3 或 4 通道)。
scalefactorimages 值的乘數。
size (大小)輸出影像的空間大小
mean包含從通道中減去的平均值的標量。如果 image 為 BGR 順序且 swapRB 為 true,則值應按 (mean-R, mean-G, mean-B) 順序排列。
swapRB指示是否需要交換 3 通道影像中第一個和最後一個通道的標誌。
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 影像,
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 值的乘數。
swapRB指示是否需要交換 3 通道影像中第一個和最後一個通道的標誌。
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 影像,
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。

引數
影像輸入影像(均為 1、3 或 4 通道)。
paramImage2BlobParams 結構體,包含影像到 Blob 處理所需的所有引數。
返回
4 維 Mat

◆ blobFromImageWithParams() [2/2]

void cv::dnn::blobFromImageWithParams ( InputArray 影像,
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>

解析 4D Blob,並透過更簡單的資料結構 (std::vector<cv::Mat>) 以 2D 陣列形式輸出其包含的影像。

引數
[in]blob_您想從中提取影像的浮點精度 (CV_32F) 的 4 維陣列(影像、通道、高度、寬度)。
[out]images_包含從 Blob 中提取的浮點精度 (CV_32F) 影像的 2D Mat 陣列。它們既沒有歸一化也沒有新增均值。返回的影像數量等於 Blob 的第一維(批次大小)。每張影像的通道數等於 Blob 的第二維(深度)。

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

在給定邊界框和相應得分的情況下執行非極大值抑制 (NMS)。

引數
bboxes一組應用 NMS 的邊界框。
scores一組相應的置信度。
score_threshold用於按得分過濾框的閾值。
nms_threshold非極大值抑制中使用的閾值。
indicesNMS 後保留的 bboxes 索引。
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>

跨不同類別對給定邊界框和相應得分執行批次非極大值抑制。

引數
bboxes一組應用 NMS 的邊界框。
scores一組相應的置信度。
class_ids一組相應的類別 ID。ID 是整數,通常從 0 開始。
score_threshold用於按得分過濾框的閾值。
nms_threshold非極大值抑制中使用的閾值。
indicesNMS 後保留的 bboxes 索引。
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包含網路配置文字檔案內容的緩衝區。
返回
網路 物件。

◆ 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用於確定格式的顯式框架名稱標籤。
返回
網路 物件。

此函式會自動檢測訓練模型的源框架,並呼叫相應的函式,如 readNetFromCaffe, readNetFromTensorflow, readNetFromTorchreadNetFromDarknetmodelconfig 引數的順序並不重要。

◆ 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 的長度
返回
網路 物件。

◆ 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 檔案內容的緩衝區
返回
網路 物件。

◆ 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 檔案的路徑。
返回
網路 物件。

◆ 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 檔案內容的緩衝區。
lenCfg要從 bufferCfg 讀取的位元組數
bufferModel包含訓練好的網路的 .weights 檔案內容的緩衝區。
lenModel要從 bufferModel 讀取的位元組數
返回
網路 物件。

◆ 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 檔案內容的緩衝區。
返回
網路 物件。

◆ 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 的推理引擎後端啟動。

◆ 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 的推理引擎後端啟動。

◆ 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 的推理引擎後端啟動。

◆ 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 記憶體緩衝區讀取網路模型。

引數
buffer儲存 ONNX 模型位元組的記憶體緩衝區。
返回
準備好進行前向計算的網路物件,在失敗情況下丟擲異常。

◆ 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 框架格式儲存的網路模型。

這是一個過載的成員函式,為方便起見而提供。它與上述函式的區別僅在於所接受的引數不同。

引數
bufferModel包含 pb 檔案內容的緩衝區
lenModelbufferModel 的長度
bufferConfig包含 pbtxt 檔案內容的緩衝區
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 框架格式儲存的網路模型。

引數
bufferModel包含 pb 檔案內容的緩衝區
bufferConfig包含 pbtxt 檔案內容的緩衝區
返回
網路 物件。

◆ 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 檔案的路徑
config指向包含 protobuf 格式文字圖定義的 .pbtxt 檔案的路徑。生成的 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 框架格式儲存的網路模型。

這是一個過載的成員函式,為方便起見而提供。它與上述函式的區別僅在於所接受的引數不同。

引數
bufferModel包含 tflite 檔案內容的緩衝區
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 框架格式儲存的網路模型。

引數
bufferModel包含 tflite 檔案內容的緩衝區
返回
網路 物件。

◆ 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 檔案的路徑
返回
網路 物件。

◆ 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 框架格式儲存的網路模型。

引數
model指向使用 torch.save() 函式從 Torch 轉儲的檔案的路徑。
isBinary指定網路是以 ascii 模式還是二進位制模式序列化的。
evaluate指定網路的測試階段。如果為 true,類似於 Torch 中的 evaluate() 方法。
返回
網路 物件。
注意
Torch 序列化器的 Ascii 模式更可取,因為二進位制模式廣泛使用 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 NMS。參考文獻:https://arxiv.org/abs/1704.04503

引數
bboxes應用 Soft NMS 的一組邊界框。
scores一組相應的置信度。
updated_scores一組相應的更新後的置信度。
score_threshold用於按得分過濾框的閾值。
nms_threshold非極大值抑制中使用的閾值。
indicesNMS 後保留的 bboxes 索引。
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>

為以 Protocol Buffer 格式儲存的二進位制網路建立文字表示。

引數
[in]model二進位制網路的路徑。
[in]output要建立的輸出文字檔案的路徑。
注意
為了減小輸出檔案的大小,不包含訓練好的權重。