maix.nn
maix.nn module
You can use
maix.nn
to access this module with MaixPy
This module is generated from MaixCDK
Module
module | brief |
---|---|
F | maix.nn.F module |
Enum
Variable
Function
Class
YOLOv5
item | doc |
---|---|
brief | YOLOv5 class |
C++ defination code:
class YOLOv5
__init__
item | doc |
---|---|
type | func |
brief | Constructor of YOLOv5 class |
param | model: model path, default empty, you can load model later by load function. |
throw | If model arg is not empty and load failed, will throw err::Exception. |
static | False |
C++ defination code:
YOLOv5(const string &model = "")
load
def load(self, model: str) -> maix.err.Err
item | doc |
---|---|
type | func |
brief | Load model from file |
param | model: Model path want to load |
return | err::Err |
static | False |
C++ defination code:
err::Err load(const string &model)
detect
def detect(self, img: maix.image.Image, conf_th: float = 0.5, iou_th: float = 0.45, fit: maix.image.Fit = ...) -> list[...]
item | doc |
---|---|
type | func |
brief | Detect objects from image |
param | img: Image want to detect, if image's size not match model input's, will auto resize with fit method. conf_th: Confidence threshold, default 0.5. iou_th: IoU threshold, default 0.45. fit: Resize method, default image.Fit.FIT_CONTAIN. |
throw | If image format not match model input format, will throw err::Exception. |
return | Object list. In C++, you should delete it after use. |
static | False |
C++ defination code:
std::vector<nn::Object> *detect(image::Image &img, float conf_th = 0.5, float iou_th = 0.45, maix::image::Fit fit = maix::image::FIT_CONTAIN)
input_size
def input_size(self) -> maix.image.Size
item | doc |
---|---|
type | func |
brief | Get model input size |
return | model input size |
static | False |
C++ defination code:
image::Size input_size()
input_width
def input_width(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input width |
return | model input size of width |
static | False |
C++ defination code:
int input_width()
input_height
def input_height(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input height |
return | model input size of height |
static | False |
C++ defination code:
int input_height()
input_format
def input_format(self) -> maix.image.Format
item | doc |
---|---|
type | func |
brief | Get input image format |
return | input image format, image::Format type. |
static | False |
C++ defination code:
image::Format input_format()
labels
item | doc |
---|---|
type | var |
brief | Labels list |
static | False |
readonly | False |
C++ defination code:
std::vector<string> labels
label_path
item | doc |
---|---|
type | var |
brief | Label file path |
static | False |
readonly | False |
C++ defination code:
std::string label_path
mean
item | doc |
---|---|
type | var |
brief | Get mean value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> mean
scale
item | doc |
---|---|
type | var |
brief | Get scale value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> scale
anchors
item | doc |
---|---|
type | var |
brief | Get anchors |
static | False |
readonly | False |
C++ defination code:
std::vector<float> anchors
Classifier
item | doc |
---|---|
brief | Classifier |
C++ defination code:
class Classifier
__init__
def __init__(self, model: str = '') -> None
item | doc |
---|---|
type | func |
brief | Construct a new Classifier object |
param | model: MUD model path, if empty, will not load model, you can call load() later. if not empty, will load model and will raise err::Exception if load failed. |
static | False |
C++ defination code:
Classifier(const string &model = "")
load
def load(self, model: str) -> maix.err.Err
item | doc |
---|---|
type | func |
brief | Load model from file, model format is .mud,\nMUD file should contain [extra] section, have key-values:\n- model_type: classifier\n- input_type: rgb or bgr\n- mean: 123.675, 116.28, 103.53\n- scale: 0.017124753831663668, 0.01750700280112045, 0.017429193899782137\n- labels: imagenet_classes.txt |
param | model: MUD model path |
return | error code, if load failed, return error code |
static | False |
C++ defination code:
err::Err load(const string &model)
classify
def classify(self, img: maix.image.Image, softmax: bool = True) -> list[tuple[int, float]]
item | doc |
---|---|
type | func |
brief | Forward image to model, get result. Only for image input, use classify_raw for tensor input. |
param | img: image, format should match model input_type, or will raise err.Exception softmax: if true, will do softmax to result, or will return raw value |
throw | If error occurred, will raise err::Exception, you can find reason in log, mostly caused by args error or hardware error. |
return | result, a list of (label, score). In C++, you need to delete it after use. |
static | False |
C++ defination code:
std::vector<std::pair<int, float>> *classify(image::Image &img, bool softmax = true)
classify_raw
def classify_raw(self, data: maix.tensor.Tensor, softmax: bool = True) -> list[tuple[int, float]]
item | doc |
---|---|
type | func |
brief | Forward tensor data to model, get result |
param | data: tensor data, format should match model input_type, or will raise err.Excetion softmax: if true, will do softmax to result, or will return raw value |
throw | If error occurred, will raise err::Exception, you can find reason in log, mostly caused by args error or hardware error. |
return | result, a list of (label, score). In C++, you need to delete it after use. |
static | False |
C++ defination code:
std::vector<std::pair<int, float>> *classify_raw(tensor::Tensor &data, bool softmax = true)
input_size
def input_size(self) -> maix.image.Size
item | doc |
---|---|
type | func |
brief | Get model input size, only for image input |
return | model input size |
static | False |
C++ defination code:
image::Size input_size()
input_width
def input_width(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input width, only for image input |
return | model input size of width |
static | False |
C++ defination code:
int input_width()
input_height
def input_height(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input height, only for image input |
return | model input size of height |
static | False |
C++ defination code:
int input_height()
input_format
def input_format(self) -> maix.image.Format
item | doc |
---|---|
type | func |
brief | Get input image format, only for image input |
return | input image format, image::Format type. |
static | False |
C++ defination code:
image::Format input_format()
input_shape
def input_shape(self) -> list[int]
item | doc |
---|---|
type | func |
brief | Get input shape, if have multiple input, only return first input shape |
return | input shape, list type |
static | False |
C++ defination code:
std::vector<int> input_shape()
labels
item | doc |
---|---|
type | var |
brief | Labels list |
static | False |
readonly | False |
C++ defination code:
std::vector<string> labels
label_path
item | doc |
---|---|
type | var |
brief | Label file path |
static | False |
readonly | False |
C++ defination code:
std::string label_path
mean
item | doc |
---|---|
type | var |
brief | Get mean value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> mean
scale
item | doc |
---|---|
type | var |
brief | Get scale value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> scale
MUD
item | doc |
---|---|
brief | MUD(model universal describe file) class |
C++ defination code:
class MUD
__init__
item | doc |
---|---|
type | func |
brief | MUD constructor |
param | model_path: direction [in], model file path, model format can be MUD(model universal describe file) file. If model_path set, will load model from file, load failed will raise err.Exception. If model_path not set, you can load model later by load function. |
static | False |
C++ defination code:
MUD(const char *model_path = nullptr)
load
def load(self, model: str) -> maix.err.Err
item | doc |
---|---|
type | func |
brief | Load model from file |
param | model_path: direction [in], model file path, model format can be MUD(model universal describe file) file. |
return | error code, if load success, return err::ERR_NONE |
static | False |
C++ defination code:
err::Err load(const std::string &model_path)
type
item | doc |
---|---|
type | var |
brief | Model type, string type |
static | False |
readonly | False |
C++ defination code:
std::string type
items
item | doc |
---|---|
type | var |
brief | Model config items, different model type has different config items |
static | False |
readonly | False |
C++ defination code:
std::map<std::string, std::map<std::string, std::string>> items
LayerInfo
item | doc |
---|---|
brief | NN model layer info |
C++ defination code:
class LayerInfo
__init__
def __init__(self, name: str = '', dtype: maix.tensor.DType = ..., shape: list[int] = []) -> None
item | doc |
---|---|
type | func |
brief | LayerInfo constructor |
param | name: direction [in], layer name dtype: direction [in], layer data type shape: direction [in], layer shape |
static | False |
C++ defination code:
LayerInfo(const std::string &name = "", tensor::DType dtype = tensor::DType::FLOAT32, std::vector<int> shape = std::vector<int>())
name
item | doc |
---|---|
type | var |
brief | Layer name |
static | False |
readonly | False |
C++ defination code:
std::string name
dtype
item | doc |
---|---|
type | var |
brief | Layer data type |
attention | If model is quantized, this is the real quantized data type like int8 float16, in most scene, inputs and outputs we actually use float32 in API like forward. |
static | False |
readonly | False |
C++ defination code:
tensor::DType dtype
shape
item | doc |
---|---|
type | var |
brief | Layer shape |
static | False |
readonly | False |
C++ defination code:
std::vector<int> shape
to_str
def to_str(self) -> str
item | doc |
---|---|
type | func |
brief | To string |
static | False |
C++ defination code:
std::string to_str()
__str__
def __str__(self) -> str
item | doc |
---|---|
type | func |
brief | To string |
static | False |
C++ defination code:
std::string __str__()
NN
item | doc |
---|---|
brief | Neural network class |
C++ defination code:
class NN
__init__
def __init__(self, model: str = '') -> None
item | doc |
---|---|
type | func |
brief | Neural network constructor |
param | model: direction [in], model file path, model format can be MUD(model universal describe file) file. If model_path set, will load model from file, load failed will raise err.Exception. If model_path not set, you can load model later by load function. |
static | False |
C++ defination code:
NN(const std::string &model = "")
load
def load(self, model: str) -> maix.err.Err
item | doc |
---|---|
type | func |
brief | Load model from file |
param | model: direction [in], model file path, model format can be MUD(model universal describe file) file. |
return | error code, if load success, return err::ERR_NONE |
static | False |
C++ defination code:
err::Err load(const std::string &model)
loaded
def loaded(self) -> bool
item | doc |
---|---|
type | func |
brief | Is model loaded |
return | true if model loaded, else false |
static | False |
C++ defination code:
bool loaded()
inputs_info
def inputs_info(self) -> list[LayerInfo]
item | doc |
---|---|
type | func |
brief | Get model input layer info |
return | input layer info |
static | False |
C++ defination code:
std::vector<nn::LayerInfo> inputs_info()
outputs_info
def outputs_info(self) -> list[LayerInfo]
item | doc |
---|---|
type | func |
brief | Get model output layer info |
return | output layer info |
static | False |
C++ defination code:
std::vector<nn::LayerInfo> outputs_info()
extra_info
def extra_info(self) -> dict[str, str]
item | doc |
---|---|
type | func |
brief | Get model extra info define in MUD file |
return | extra info, dict type, key-value object, attention: key and value are all string type. |
static | False |
C++ defination code:
std::map<std::string, std::string> extra_info()
forward
def forward(self, inputs: maix.tensor.Tensors) -> maix.tensor.Tensors
item | doc |
---|---|
type | func |
brief | forward run model, get output of model,\nthis is specially for MaixPy, not efficient, but easy to use in MaixPy |
param | input: direction [in], input tensor |
return | output tensor. In C++, you should manually delete tensors in return value and return value. |
static | False |
C++ defination code:
tensor::Tensors *forward(tensor::Tensors &inputs)
forward_image
def forward_image(self, img: maix.image.Image, mean: list[float] = [], scale: list[float] = [], fit: maix.image.Fit = ..., copy_result: bool = True) -> maix.tensor.Tensors
item | doc |
---|---|
type | func |
brief | forward model, param is image |
param | img: input image mean: mean value, a list type, e.g. [0.485, 0.456, 0.406], default is empty list means not normalize. scale: scale value, a list type, e.g. [1/0.229, 1/0.224, 1/0.225], default is empty list means not normalize. fit: fit mode, if the image size of input not equal to model's input, it will auto resize use this fit method, default is image.Fit.FIT_FILL for easy coordinate calculation, but for more accurate result, use image.Fit.FIT_CONTAIN is better. copy_result: If set true, will copy result to a new variable; else will use a internal memory, you can only use it until to the next forward. Default true to avoid problems, you can set it to false manually to make speed faster. |
return | output tensor. In C++, you should manually delete tensors in return value and return value. |
static | False |
C++ defination code:
tensor::Tensors *forward_image(image::Image &img, std::vector<float> mean = std::vector<float>(), std::vector<float> scale = std::vector<float>(), image::Fit fit = image::Fit::FIT_FILL, bool copy_result = true)
FaceDetector
item | doc |
---|---|
brief | FaceDetector class |
C++ defination code:
class FaceDetector
__init__
item | doc |
---|---|
type | func |
brief | Constructor of FaceDetector class |
param | model: model path, default empty, you can load model later by load function. |
throw | If model arg is not empty and load failed, will throw err::Exception. |
static | False |
C++ defination code:
FaceDetector(const string &model = "")
load
def load(self, model: str) -> maix.err.Err
item | doc |
---|---|
type | func |
brief | Load model from file |
param | model: Model path want to load |
return | err::Err |
static | False |
C++ defination code:
err::Err load(const string &model)
detect
def detect(self, img: maix.image.Image, conf_th: float = 0.5, iou_th: float = 0.45, fit: maix.image.Fit = ...) -> list[...]
item | doc |
---|---|
type | func |
brief | Detect objects from image |
param | img: Image want to detect, if image's size not match model input's, will auto resize with fit method. conf_th: Confidence threshold, default 0.5. iou_th: IoU threshold, default 0.45. fit: Resize method, default image.Fit.FIT_CONTAIN. |
throw | If image format not match model input format, will throw err::Exception. |
return | Object list. In C++, you should delete it after use. |
static | False |
C++ defination code:
std::vector<nn::Object> *detect(image::Image &img, float conf_th = 0.5, float iou_th = 0.45, maix::image::Fit fit = maix::image::FIT_CONTAIN)
input_size
def input_size(self) -> maix.image.Size
item | doc |
---|---|
type | func |
brief | Get model input size |
return | model input size |
static | False |
C++ defination code:
image::Size input_size()
input_width
def input_width(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input width |
return | model input size of width |
static | False |
C++ defination code:
int input_width()
input_height
def input_height(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input height |
return | model input size of height |
static | False |
C++ defination code:
int input_height()
input_format
def input_format(self) -> maix.image.Format
item | doc |
---|---|
type | func |
brief | Get input image format |
return | input image format, image::Format type. |
static | False |
C++ defination code:
image::Format input_format()
mean
item | doc |
---|---|
type | var |
brief | Get mean value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> mean
scale
item | doc |
---|---|
type | var |
brief | Get scale value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> scale
Retinaface
item | doc |
---|---|
brief | Retinaface class |
C++ defination code:
class Retinaface
__init__
item | doc |
---|---|
type | func |
brief | Constructor of Retinaface class |
param | model: model path, default empty, you can load model later by load function. |
throw | If model arg is not empty and load failed, will throw err::Exception. |
static | False |
C++ defination code:
Retinaface(const string &model = "")
load
def load(self, model: str) -> maix.err.Err
item | doc |
---|---|
type | func |
brief | Load model from file |
param | model: Model path want to load |
return | err::Err |
static | False |
C++ defination code:
err::Err load(const string &model)
detect
def detect(self, img: maix.image.Image, conf_th: float = 0.5, iou_th: float = 0.45, fit: maix.image.Fit = ...) -> list[...]
item | doc |
---|---|
type | func |
brief | Detect objects from image |
param | img: Image want to detect, if image's size not match model input's, will auto resize with fit method. conf_th: Confidence threshold, default 0.4. iou_th: IoU threshold, default 0.45. fit: Resize method, default image.Fit.FIT_CONTAIN. |
throw | If image format not match model input format, will throw err::Exception. |
return | Object list. In C++, you should delete it after use. |
static | False |
C++ defination code:
std::vector<nn::Object> *detect(image::Image &img, float conf_th = 0.4, float iou_th = 0.45, maix::image::Fit fit = maix::image::FIT_CONTAIN)
input_size
def input_size(self) -> maix.image.Size
item | doc |
---|---|
type | func |
brief | Get model input size |
return | model input size |
static | False |
C++ defination code:
image::Size input_size()
input_width
def input_width(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input width |
return | model input size of width |
static | False |
C++ defination code:
int input_width()
input_height
def input_height(self) -> int
item | doc |
---|---|
type | func |
brief | Get model input height |
return | model input size of height |
static | False |
C++ defination code:
int input_height()
input_format
def input_format(self) -> maix.image.Format
item | doc |
---|---|
type | func |
brief | Get input image format |
return | input image format, image::Format type. |
static | False |
C++ defination code:
image::Format input_format()
mean
item | doc |
---|---|
type | var |
brief | Get mean value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> mean
scale
item | doc |
---|---|
type | var |
brief | Get scale value, list type |
static | False |
readonly | False |
C++ defination code:
std::vector<float> scale
Object
item | doc |
---|---|
brief | Object for detect result |
C++ defination code:
class Object
__init__
item | doc |
---|---|
type | func |
brief | Constructor of Object for detect result |
param | x: left top x y: left top y w: width h: height class_id: class id score: score |
static | False |
C++ defination code:
Object(int x = 0, int y = 0, int w = 0, int h = 0, int class_id = 0, float score = 0, std::vector<int> points = std::vector<int>())
__str__
def to_str(self) -> str
item | doc |
---|---|
type | func |
brief | Object info to string |
return | Object info string |
static | False |
C++ defination code:
std::string to_str()
x
item | doc |
---|---|
type | var |
brief | Object left top coordinate x |
static | False |
readonly | False |
C++ defination code:
int x
y
item | doc |
---|---|
type | var |
brief | Object left top coordinate y |
static | False |
readonly | False |
C++ defination code:
int y
w
item | doc |
---|---|
type | var |
brief | Object width |
static | False |
readonly | False |
C++ defination code:
int w
h
item | doc |
---|---|
type | var |
brief | Object height |
static | False |
readonly | False |
C++ defination code:
int h
class_id
item | doc |
---|---|
type | var |
brief | Object class id |
static | False |
readonly | False |
C++ defination code:
int class_id
score
item | doc |
---|---|
type | var |
brief | Object score |
static | False |
readonly | False |
C++ defination code:
float score
points
item | doc |
---|---|
type | var |
brief | keypoints |
static | False |
readonly | False |
C++ defination code:
std::vector<int> points
ObjectFloat
item | doc |
---|---|
brief | Object for detect result |
C++ defination code:
class ObjectFloat
__init__
item | doc |
---|---|
type | func |
brief | Constructor of Object for detect result |
param | x: left top x y: left top y w: width h: height class_id: class id score: score |
static | False |
C++ defination code:
ObjectFloat(float x = 0, float y = 0, float w = 0, float h = 0, float class_id = 0, float score = 0, std::vector<float> points = std::vector<float>())
__str__
def to_str(self) -> str
item | doc |
---|---|
type | func |
brief | Object info to string |
return | Object info string |
static | False |
C++ defination code:
std::string to_str()
x
item | doc |
---|---|
type | var |
brief | Object left top coordinate x |
static | False |
readonly | False |
C++ defination code:
float x
y
item | doc |
---|---|
type | var |
brief | Object left top coordinate y |
static | False |
readonly | False |
C++ defination code:
float y
w
item | doc |
---|---|
type | var |
brief | Object width |
static | False |
readonly | False |
C++ defination code:
float w
h
item | doc |
---|---|
type | var |
brief | Object height |
static | False |
readonly | False |
C++ defination code:
float h
class_id
item | doc |
---|---|
type | var |
brief | Object class id |
static | False |
readonly | False |
C++ defination code:
float class_id
score
item | doc |
---|---|
type | var |
brief | Object score |
static | False |
readonly | False |
C++ defination code:
float score
points
item | doc |
---|---|
type | var |
brief | keypoints |
static | False |
readonly | False |
C++ defination code:
std::vector<float> points