629 lines
22 KiB
Objective-C
629 lines
22 KiB
Objective-C
//
|
|
// This file is auto-generated. Please don't modify it!
|
|
//
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
//#import "opencv.hpp"
|
|
#import "opencv2/dnn.hpp"
|
|
#import "opencv2/dnn/dnn.hpp"
|
|
#else
|
|
#define CV_EXPORTS
|
|
#endif
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
|
|
@class ByteVector;
|
|
@class DictValue;
|
|
@class DoubleVector;
|
|
@class FloatVector;
|
|
@class IntVector;
|
|
@class Layer;
|
|
@class Mat;
|
|
@class Scalar;
|
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
// C++: class Net
|
|
/**
|
|
* This class allows to create and manipulate comprehensive artificial neural networks.
|
|
*
|
|
* Neural network is presented as directed acyclic graph (DAG), where vertices are Layer instances,
|
|
* and edges specify relationships between layers inputs and outputs.
|
|
*
|
|
* Each network layer has unique integer id and unique string name inside its network.
|
|
* LayerId can store either layer name or layer id.
|
|
*
|
|
* This class supports reference counting of its instances, i. e. copies point to the same instance.
|
|
*
|
|
* Member of `Dnn`
|
|
*/
|
|
CV_EXPORTS @interface Net : NSObject
|
|
|
|
|
|
#ifdef __cplusplus
|
|
@property(readonly)cv::Ptr<cv::dnn::Net> nativePtr;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
- (instancetype)initWithNativePtr:(cv::Ptr<cv::dnn::Net>)nativePtr;
|
|
+ (instancetype)fromNative:(cv::Ptr<cv::dnn::Net>)nativePtr;
|
|
#endif
|
|
|
|
|
|
#pragma mark - Methods
|
|
|
|
|
|
//
|
|
// cv::dnn::Net::Net()
|
|
//
|
|
- (instancetype)init;
|
|
|
|
|
|
//
|
|
// static Net cv::dnn::Net::readFromModelOptimizer(String xml, String bin)
|
|
//
|
|
/**
|
|
* Create a network from Intel's Model Optimizer intermediate representation (IR).
|
|
* @param xml XML configuration file with network's topology.
|
|
* @param bin Binary file with trained weights.
|
|
* Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine
|
|
* backend.
|
|
*/
|
|
+ (Net*)readFromModelOptimizer:(NSString*)xml bin:(NSString*)bin NS_SWIFT_NAME(readFromModelOptimizer(xml:bin:));
|
|
|
|
|
|
//
|
|
// static Net cv::dnn::Net::readFromModelOptimizer(vector_uchar bufferModelConfig, vector_uchar bufferWeights)
|
|
//
|
|
/**
|
|
* Create a network from Intel's Model Optimizer in-memory buffers with intermediate representation (IR).
|
|
* @param bufferModelConfig buffer with model's configuration.
|
|
* @param bufferWeights buffer with model's trained weights.
|
|
* @return Net object.
|
|
*/
|
|
+ (Net*)readFromModelOptimizer:(ByteVector*)bufferModelConfig bufferWeights:(ByteVector*)bufferWeights NS_SWIFT_NAME(readFromModelOptimizer(bufferModelConfig:bufferWeights:));
|
|
|
|
|
|
//
|
|
// bool cv::dnn::Net::empty()
|
|
//
|
|
/**
|
|
* Returns true if there are no layers in the network.
|
|
*/
|
|
- (BOOL)empty NS_SWIFT_NAME(empty());
|
|
|
|
|
|
//
|
|
// String cv::dnn::Net::dump()
|
|
//
|
|
/**
|
|
* Dump net to String
|
|
* @return String with structure, hyperparameters, backend, target and fusion
|
|
* Call method after setInput(). To see correct backend, target and fusion run after forward().
|
|
*/
|
|
- (NSString*)dump NS_SWIFT_NAME(dump());
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::dumpToFile(String path)
|
|
//
|
|
/**
|
|
* Dump net structure, hyperparameters, backend, target and fusion to dot file
|
|
* @param path path to output file with .dot extension
|
|
* @see `dump()`
|
|
*/
|
|
- (void)dumpToFile:(NSString*)path NS_SWIFT_NAME(dumpToFile(path:));
|
|
|
|
|
|
//
|
|
// int cv::dnn::Net::getLayerId(String layer)
|
|
//
|
|
/**
|
|
* Converts string name of the layer to the integer identifier.
|
|
* @return id of the layer, or -1 if the layer wasn't found.
|
|
*/
|
|
- (int)getLayerId:(NSString*)layer NS_SWIFT_NAME(getLayerId(layer:));
|
|
|
|
|
|
//
|
|
// vector_String cv::dnn::Net::getLayerNames()
|
|
//
|
|
- (NSArray<NSString*>*)getLayerNames NS_SWIFT_NAME(getLayerNames());
|
|
|
|
|
|
//
|
|
// Ptr_Layer cv::dnn::Net::getLayer(int layerId)
|
|
//
|
|
/**
|
|
* Returns pointer to layer with specified id or name which the network use.
|
|
*/
|
|
- (Layer*)getLayer:(int)layerId NS_SWIFT_NAME(getLayer(layerId:));
|
|
|
|
|
|
//
|
|
// Ptr_Layer cv::dnn::Net::getLayer(String layerName)
|
|
//
|
|
/**
|
|
*
|
|
* @deprecated Use int getLayerId(const String &layer)
|
|
*/
|
|
- (Layer*)getLayerByName:(NSString*)layerName NS_SWIFT_NAME(getLayer(layerName:)) DEPRECATED_ATTRIBUTE;
|
|
|
|
|
|
//
|
|
// Ptr_Layer cv::dnn::Net::getLayer(LayerId layerId)
|
|
//
|
|
/**
|
|
*
|
|
* @deprecated to be removed
|
|
*/
|
|
- (Layer*)getLayerByDictValue:(DictValue*)layerId NS_SWIFT_NAME(getLayer(layerId:)) DEPRECATED_ATTRIBUTE;
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::connect(String outPin, String inpPin)
|
|
//
|
|
/**
|
|
* Connects output of the first layer to input of the second layer.
|
|
* @param outPin descriptor of the first layer output.
|
|
* @param inpPin descriptor of the second layer input.
|
|
*
|
|
* Descriptors have the following template <DFN><layer_name>[.input_number]</DFN>:
|
|
* - the first part of the template <DFN>layer_name</DFN> is string name of the added layer.
|
|
* If this part is empty then the network input pseudo layer will be used;
|
|
* - the second optional part of the template <DFN>input_number</DFN>
|
|
* is either number of the layer input, either label one.
|
|
* If this part is omitted then the first layer input will be used.
|
|
*
|
|
* @see `setNetInputs()`, `Layer::inputNameToIndex()`, `Layer::outputNameToIndex()`
|
|
*/
|
|
- (void)connect:(NSString*)outPin inpPin:(NSString*)inpPin NS_SWIFT_NAME(connect(outPin:inpPin:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setInputsNames(vector_String inputBlobNames)
|
|
//
|
|
/**
|
|
* Sets outputs names of the network input pseudo layer.
|
|
*
|
|
* Each net always has special own the network input pseudo layer with id=0.
|
|
* This layer stores the user blobs only and don't make any computations.
|
|
* In fact, this layer provides the only way to pass user data into the network.
|
|
* As any other layer, this layer can label its outputs and this function provides an easy way to do this.
|
|
*/
|
|
- (void)setInputsNames:(NSArray<NSString*>*)inputBlobNames NS_SWIFT_NAME(setInputsNames(inputBlobNames:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setInputShape(String inputName, MatShape shape)
|
|
//
|
|
/**
|
|
* Specify shape of network input.
|
|
*/
|
|
- (void)setInputShape:(NSString*)inputName shape:(IntVector*)shape NS_SWIFT_NAME(setInputShape(inputName:shape:));
|
|
|
|
|
|
//
|
|
// Mat cv::dnn::Net::forward(String outputName = String())
|
|
//
|
|
/**
|
|
* Runs forward pass to compute output of layer with name @p outputName.
|
|
* @param outputName name for layer which output is needed to get
|
|
* @return blob for first output of specified layer.
|
|
* By default runs forward pass for the whole network.
|
|
*/
|
|
- (Mat*)forward:(NSString*)outputName NS_SWIFT_NAME(forward(outputName:));
|
|
|
|
/**
|
|
* Runs forward pass to compute output of layer with name @p outputName.
|
|
* @return blob for first output of specified layer.
|
|
* By default runs forward pass for the whole network.
|
|
*/
|
|
- (Mat*)forward NS_SWIFT_NAME(forward());
|
|
|
|
|
|
//
|
|
// AsyncArray cv::dnn::Net::forwardAsync(String outputName = String())
|
|
//
|
|
// Return type 'AsyncArray' is not supported, skipping the function
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::forward(vector_Mat& outputBlobs, String outputName = String())
|
|
//
|
|
/**
|
|
* Runs forward pass to compute output of layer with name @p outputName.
|
|
* @param outputBlobs contains all output blobs for specified layer.
|
|
* @param outputName name for layer which output is needed to get
|
|
* If @p outputName is empty, runs forward pass for the whole network.
|
|
*/
|
|
- (void)forwardOutputBlobs:(NSMutableArray<Mat*>*)outputBlobs outputName:(NSString*)outputName NS_SWIFT_NAME(forward(outputBlobs:outputName:));
|
|
|
|
/**
|
|
* Runs forward pass to compute output of layer with name @p outputName.
|
|
* @param outputBlobs contains all output blobs for specified layer.
|
|
* If @p outputName is empty, runs forward pass for the whole network.
|
|
*/
|
|
- (void)forwardOutputBlobs:(NSMutableArray<Mat*>*)outputBlobs NS_SWIFT_NAME(forward(outputBlobs:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::forward(vector_Mat& outputBlobs, vector_String outBlobNames)
|
|
//
|
|
/**
|
|
* Runs forward pass to compute outputs of layers listed in @p outBlobNames.
|
|
* @param outputBlobs contains blobs for first outputs of specified layers.
|
|
* @param outBlobNames names for layers which outputs are needed to get
|
|
*/
|
|
- (void)forwardOutputBlobs:(NSMutableArray<Mat*>*)outputBlobs outBlobNames:(NSArray<NSString*>*)outBlobNames NS_SWIFT_NAME(forward(outputBlobs:outBlobNames:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::forward(vector_vector_Mat& outputBlobs, vector_String outBlobNames)
|
|
//
|
|
/**
|
|
* Runs forward pass to compute outputs of layers listed in @p outBlobNames.
|
|
* @param outputBlobs contains all output blobs for each layer specified in @p outBlobNames.
|
|
* @param outBlobNames names for layers which outputs are needed to get
|
|
*/
|
|
- (void)forwardAndRetrieve:(NSMutableArray<NSMutableArray<Mat*>*>*)outputBlobs outBlobNames:(NSArray<NSString*>*)outBlobNames NS_SWIFT_NAME(forwardAndRetrieve(outputBlobs:outBlobNames:));
|
|
|
|
|
|
//
|
|
// Net cv::dnn::Net::quantize(vector_Mat calibData, int inputsDtype, int outputsDtype, bool perChannel = true)
|
|
//
|
|
/**
|
|
* Returns a quantized Net from a floating-point Net.
|
|
* @param calibData Calibration data to compute the quantization parameters.
|
|
* @param inputsDtype Datatype of quantized net's inputs. Can be CV_32F or CV_8S.
|
|
* @param outputsDtype Datatype of quantized net's outputs. Can be CV_32F or CV_8S.
|
|
* @param perChannel Quantization granularity of quantized Net. The default is true, that means quantize model
|
|
* in per-channel way (channel-wise). Set it false to quantize model in per-tensor way (or tensor-wise).
|
|
*/
|
|
- (Net*)quantize:(NSArray<Mat*>*)calibData inputsDtype:(int)inputsDtype outputsDtype:(int)outputsDtype perChannel:(BOOL)perChannel NS_SWIFT_NAME(quantize(calibData:inputsDtype:outputsDtype:perChannel:));
|
|
|
|
/**
|
|
* Returns a quantized Net from a floating-point Net.
|
|
* @param calibData Calibration data to compute the quantization parameters.
|
|
* @param inputsDtype Datatype of quantized net's inputs. Can be CV_32F or CV_8S.
|
|
* @param outputsDtype Datatype of quantized net's outputs. Can be CV_32F or CV_8S.
|
|
* in per-channel way (channel-wise). Set it false to quantize model in per-tensor way (or tensor-wise).
|
|
*/
|
|
- (Net*)quantize:(NSArray<Mat*>*)calibData inputsDtype:(int)inputsDtype outputsDtype:(int)outputsDtype NS_SWIFT_NAME(quantize(calibData:inputsDtype:outputsDtype:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getInputDetails(vector_float& scales, vector_int& zeropoints)
|
|
//
|
|
/**
|
|
* Returns input scale and zeropoint for a quantized Net.
|
|
* @param scales output parameter for returning input scales.
|
|
* @param zeropoints output parameter for returning input zeropoints.
|
|
*/
|
|
- (void)getInputDetails:(FloatVector*)scales zeropoints:(IntVector*)zeropoints NS_SWIFT_NAME(getInputDetails(scales:zeropoints:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getOutputDetails(vector_float& scales, vector_int& zeropoints)
|
|
//
|
|
/**
|
|
* Returns output scale and zeropoint for a quantized Net.
|
|
* @param scales output parameter for returning output scales.
|
|
* @param zeropoints output parameter for returning output zeropoints.
|
|
*/
|
|
- (void)getOutputDetails:(FloatVector*)scales zeropoints:(IntVector*)zeropoints NS_SWIFT_NAME(getOutputDetails(scales:zeropoints:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setHalideScheduler(String scheduler)
|
|
//
|
|
/**
|
|
* Compile Halide layers.
|
|
* @param scheduler Path to YAML file with scheduling directives.
|
|
* @see `-setPreferableBackend:`
|
|
*
|
|
* Schedule layers that support Halide backend. Then compile them for
|
|
* specific target. For layers that not represented in scheduling file
|
|
* or if no manual scheduling used at all, automatic scheduling will be applied.
|
|
*/
|
|
- (void)setHalideScheduler:(NSString*)scheduler NS_SWIFT_NAME(setHalideScheduler(scheduler:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setPreferableBackend(int backendId)
|
|
//
|
|
/**
|
|
* Ask network to use specific computation backend where it supported.
|
|
* @param backendId backend identifier.
|
|
* @see `Backend`
|
|
*
|
|
* If OpenCV is compiled with Intel's Inference Engine library, DNN_BACKEND_DEFAULT
|
|
* means DNN_BACKEND_INFERENCE_ENGINE. Otherwise it equals to DNN_BACKEND_OPENCV.
|
|
*/
|
|
- (void)setPreferableBackend:(int)backendId NS_SWIFT_NAME(setPreferableBackend(backendId:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setPreferableTarget(int targetId)
|
|
//
|
|
/**
|
|
* Ask network to make computations on specific target device.
|
|
* @param targetId target identifier.
|
|
* @see `Target`
|
|
*
|
|
* List of supported combinations backend / target:
|
|
* | | DNN_BACKEND_OPENCV | DNN_BACKEND_INFERENCE_ENGINE | DNN_BACKEND_HALIDE | DNN_BACKEND_CUDA |
|
|
* |------------------------|--------------------|------------------------------|--------------------|-------------------|
|
|
* | DNN_TARGET_CPU | + | + | + | |
|
|
* | DNN_TARGET_OPENCL | + | + | + | |
|
|
* | DNN_TARGET_OPENCL_FP16 | + | + | | |
|
|
* | DNN_TARGET_MYRIAD | | + | | |
|
|
* | DNN_TARGET_FPGA | | + | | |
|
|
* | DNN_TARGET_CUDA | | | | + |
|
|
* | DNN_TARGET_CUDA_FP16 | | | | + |
|
|
* | DNN_TARGET_HDDL | | + | | |
|
|
*/
|
|
- (void)setPreferableTarget:(int)targetId NS_SWIFT_NAME(setPreferableTarget(targetId:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setInput(Mat blob, String name = "", double scalefactor = 1.0, Scalar mean = Scalar())
|
|
//
|
|
/**
|
|
* Sets the new input value for the network
|
|
* @param blob A new blob. Should have CV_32F or CV_8U depth.
|
|
* @param name A name of input layer.
|
|
* @param scalefactor An optional normalization scale.
|
|
* @param mean An optional mean subtraction values.
|
|
* @see `connect(String`, `String) to know format of the descriptor.`
|
|
*
|
|
* If scale or mean values are specified, a final input blob is computed
|
|
* as:
|
|
* `$$input(n,c,h,w) = scalefactor \times (blob(n,c,h,w) - mean_c)$$`
|
|
*/
|
|
- (void)setInput:(Mat*)blob name:(NSString*)name scalefactor:(double)scalefactor mean:(Scalar*)mean NS_SWIFT_NAME(setInput(blob:name:scalefactor:mean:));
|
|
|
|
/**
|
|
* Sets the new input value for the network
|
|
* @param blob A new blob. Should have CV_32F or CV_8U depth.
|
|
* @param name A name of input layer.
|
|
* @param scalefactor An optional normalization scale.
|
|
* @see `connect(String`, `String) to know format of the descriptor.`
|
|
*
|
|
* If scale or mean values are specified, a final input blob is computed
|
|
* as:
|
|
* `$$input(n,c,h,w) = scalefactor \times (blob(n,c,h,w) - mean_c)$$`
|
|
*/
|
|
- (void)setInput:(Mat*)blob name:(NSString*)name scalefactor:(double)scalefactor NS_SWIFT_NAME(setInput(blob:name:scalefactor:));
|
|
|
|
/**
|
|
* Sets the new input value for the network
|
|
* @param blob A new blob. Should have CV_32F or CV_8U depth.
|
|
* @param name A name of input layer.
|
|
* @see `connect(String`, `String) to know format of the descriptor.`
|
|
*
|
|
* If scale or mean values are specified, a final input blob is computed
|
|
* as:
|
|
* `$$input(n,c,h,w) = scalefactor \times (blob(n,c,h,w) - mean_c)$$`
|
|
*/
|
|
- (void)setInput:(Mat*)blob name:(NSString*)name NS_SWIFT_NAME(setInput(blob:name:));
|
|
|
|
/**
|
|
* Sets the new input value for the network
|
|
* @param blob A new blob. Should have CV_32F or CV_8U depth.
|
|
* @see `connect(String`, `String) to know format of the descriptor.`
|
|
*
|
|
* If scale or mean values are specified, a final input blob is computed
|
|
* as:
|
|
* `$$input(n,c,h,w) = scalefactor \times (blob(n,c,h,w) - mean_c)$$`
|
|
*/
|
|
- (void)setInput:(Mat*)blob NS_SWIFT_NAME(setInput(blob:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setParam(int layer, int numParam, Mat blob)
|
|
//
|
|
/**
|
|
* Sets the new value for the learned param of the layer.
|
|
* @param layer name or id of the layer.
|
|
* @param numParam index of the layer parameter in the Layer::blobs array.
|
|
* @param blob the new value.
|
|
* @see `Layer::blobs`
|
|
* NOTE: If shape of the new blob differs from the previous shape,
|
|
* then the following forward pass may fail.
|
|
*/
|
|
- (void)setParam:(int)layer numParam:(int)numParam blob:(Mat*)blob NS_SWIFT_NAME(setParam(layer:numParam:blob:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::setParam(String layerName, int numParam, Mat blob)
|
|
//
|
|
- (void)setParamByName:(NSString*)layerName numParam:(int)numParam blob:(Mat*)blob NS_SWIFT_NAME(setParam(layerName:numParam:blob:));
|
|
|
|
|
|
//
|
|
// Mat cv::dnn::Net::getParam(int layer, int numParam = 0)
|
|
//
|
|
/**
|
|
* Returns parameter blob of the layer.
|
|
* @param layer name or id of the layer.
|
|
* @param numParam index of the layer parameter in the Layer::blobs array.
|
|
* @see `Layer::blobs`
|
|
*/
|
|
- (Mat*)getParam:(int)layer numParam:(int)numParam NS_SWIFT_NAME(getParam(layer:numParam:));
|
|
|
|
/**
|
|
* Returns parameter blob of the layer.
|
|
* @param layer name or id of the layer.
|
|
* @see `Layer::blobs`
|
|
*/
|
|
- (Mat*)getParam:(int)layer NS_SWIFT_NAME(getParam(layer:));
|
|
|
|
|
|
//
|
|
// Mat cv::dnn::Net::getParam(String layerName, int numParam = 0)
|
|
//
|
|
- (Mat*)getParamByName:(NSString*)layerName numParam:(int)numParam NS_SWIFT_NAME(getParam(layerName:numParam:));
|
|
|
|
- (Mat*)getParamByName:(NSString*)layerName NS_SWIFT_NAME(getParam(layerName:));
|
|
|
|
|
|
//
|
|
// vector_int cv::dnn::Net::getUnconnectedOutLayers()
|
|
//
|
|
/**
|
|
* Returns indexes of layers with unconnected outputs.
|
|
*
|
|
* FIXIT: Rework API to registerOutput() approach, deprecate this call
|
|
*/
|
|
- (IntVector*)getUnconnectedOutLayers NS_SWIFT_NAME(getUnconnectedOutLayers());
|
|
|
|
|
|
//
|
|
// vector_String cv::dnn::Net::getUnconnectedOutLayersNames()
|
|
//
|
|
/**
|
|
* Returns names of layers with unconnected outputs.
|
|
*
|
|
* FIXIT: Rework API to registerOutput() approach, deprecate this call
|
|
*/
|
|
- (NSArray<NSString*>*)getUnconnectedOutLayersNames NS_SWIFT_NAME(getUnconnectedOutLayersNames());
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getLayersShapes(vector_MatShape netInputShapes, vector_int& layersIds, vector_vector_MatShape& inLayersShapes, vector_vector_MatShape& outLayersShapes)
|
|
//
|
|
/**
|
|
* Returns input and output shapes for all layers in loaded model;
|
|
* preliminary inferencing isn't necessary.
|
|
* @param netInputShapes shapes for all input blobs in net input layer.
|
|
* @param layersIds output parameter for layer IDs.
|
|
* @param inLayersShapes output parameter for input layers shapes;
|
|
* order is the same as in layersIds
|
|
* @param outLayersShapes output parameter for output layers shapes;
|
|
* order is the same as in layersIds
|
|
*/
|
|
- (void)getLayersShapesWithNetInputShapes:(NSArray<IntVector*>*)netInputShapes layersIds:(IntVector*)layersIds inLayersShapes:(NSMutableArray<NSMutableArray<IntVector*>*>*)inLayersShapes outLayersShapes:(NSMutableArray<NSMutableArray<IntVector*>*>*)outLayersShapes NS_SWIFT_NAME(getLayersShapes(netInputShapes:layersIds:inLayersShapes:outLayersShapes:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getLayersShapes(MatShape netInputShape, vector_int& layersIds, vector_vector_MatShape& inLayersShapes, vector_vector_MatShape& outLayersShapes)
|
|
//
|
|
- (void)getLayersShapesWithNetInputShape:(IntVector*)netInputShape layersIds:(IntVector*)layersIds inLayersShapes:(NSMutableArray<NSMutableArray<IntVector*>*>*)inLayersShapes outLayersShapes:(NSMutableArray<NSMutableArray<IntVector*>*>*)outLayersShapes NS_SWIFT_NAME(getLayersShapes(netInputShape:layersIds:inLayersShapes:outLayersShapes:));
|
|
|
|
|
|
//
|
|
// int64 cv::dnn::Net::getFLOPS(vector_MatShape netInputShapes)
|
|
//
|
|
/**
|
|
* Computes FLOP for whole loaded model with specified input shapes.
|
|
* @param netInputShapes vector of shapes for all net inputs.
|
|
* @return computed FLOP.
|
|
*/
|
|
- (long)getFLOPSWithNetInputShapes:(NSArray<IntVector*>*)netInputShapes NS_SWIFT_NAME(getFLOPS(netInputShapes:));
|
|
|
|
|
|
//
|
|
// int64 cv::dnn::Net::getFLOPS(MatShape netInputShape)
|
|
//
|
|
- (long)getFLOPSWithNetInputShape:(IntVector*)netInputShape NS_SWIFT_NAME(getFLOPS(netInputShape:));
|
|
|
|
|
|
//
|
|
// int64 cv::dnn::Net::getFLOPS(int layerId, vector_MatShape netInputShapes)
|
|
//
|
|
- (long)getFLOPSWithLayerId:(int)layerId netInputShapes:(NSArray<IntVector*>*)netInputShapes NS_SWIFT_NAME(getFLOPS(layerId:netInputShapes:));
|
|
|
|
|
|
//
|
|
// int64 cv::dnn::Net::getFLOPS(int layerId, MatShape netInputShape)
|
|
//
|
|
- (long)getFLOPSWithLayerId:(int)layerId netInputShape:(IntVector*)netInputShape NS_SWIFT_NAME(getFLOPS(layerId:netInputShape:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getLayerTypes(vector_String& layersTypes)
|
|
//
|
|
/**
|
|
* Returns list of types for layer used in model.
|
|
* @param layersTypes output parameter for returning types.
|
|
*/
|
|
- (void)getLayerTypes:(NSMutableArray<NSString*>*)layersTypes NS_SWIFT_NAME(getLayerTypes(layersTypes:));
|
|
|
|
|
|
//
|
|
// int cv::dnn::Net::getLayersCount(String layerType)
|
|
//
|
|
/**
|
|
* Returns count of layers of specified type.
|
|
* @param layerType type.
|
|
* @return count of layers
|
|
*/
|
|
- (int)getLayersCount:(NSString*)layerType NS_SWIFT_NAME(getLayersCount(layerType:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getMemoryConsumption(MatShape netInputShape, size_t& weights, size_t& blobs)
|
|
//
|
|
- (void)getMemoryConsumption:(IntVector*)netInputShape weights:(size_t)weights blobs:(size_t)blobs NS_SWIFT_NAME(getMemoryConsumption(netInputShape:weights:blobs:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getMemoryConsumption(int layerId, vector_MatShape netInputShapes, size_t& weights, size_t& blobs)
|
|
//
|
|
- (void)getMemoryConsumption:(int)layerId netInputShapes:(NSArray<IntVector*>*)netInputShapes weights:(size_t)weights blobs:(size_t)blobs NS_SWIFT_NAME(getMemoryConsumption(layerId:netInputShapes:weights:blobs:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::getMemoryConsumption(int layerId, MatShape netInputShape, size_t& weights, size_t& blobs)
|
|
//
|
|
- (void)getMemoryConsumption:(int)layerId netInputShape:(IntVector*)netInputShape weights:(size_t)weights blobs:(size_t)blobs NS_SWIFT_NAME(getMemoryConsumption(layerId:netInputShape:weights:blobs:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::enableFusion(bool fusion)
|
|
//
|
|
/**
|
|
* Enables or disables layer fusion in the network.
|
|
* @param fusion true to enable the fusion, false to disable. The fusion is enabled by default.
|
|
*/
|
|
- (void)enableFusion:(BOOL)fusion NS_SWIFT_NAME(enableFusion(fusion:));
|
|
|
|
|
|
//
|
|
// void cv::dnn::Net::enableWinograd(bool useWinograd)
|
|
//
|
|
/**
|
|
* Enables or disables the Winograd compute branch. The Winograd compute branch can speed up
|
|
* 3x3 Convolution at a small loss of accuracy.
|
|
* @param useWinograd true to enable the Winograd compute branch. The default is true.
|
|
*/
|
|
- (void)enableWinograd:(BOOL)useWinograd NS_SWIFT_NAME(enableWinograd(useWinograd:));
|
|
|
|
|
|
//
|
|
// int64 cv::dnn::Net::getPerfProfile(vector_double& timings)
|
|
//
|
|
/**
|
|
* Returns overall time for inference and timings (in ticks) for layers.
|
|
*
|
|
* Indexes in returned vector correspond to layers ids. Some layers can be fused with others,
|
|
* in this case zero ticks count will be return for that skipped layers. Supported by DNN_BACKEND_OPENCV on DNN_TARGET_CPU only.
|
|
*
|
|
* @param timings vector for tick timings for all layers.
|
|
* @return overall ticks for model inference.
|
|
*/
|
|
- (long)getPerfProfile:(DoubleVector*)timings NS_SWIFT_NAME(getPerfProfile(timings:));
|
|
|
|
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|
|
|
|
|