3.3. SAIL Python API¶
SAIL use “pybind11” to wrap python interfaces, support python3.5, python3.6, python3.7, python3.8
3.3.1. Basic function¶
def get_available_tpu_num():
""" Get the number of available TPUs.
Returns
-------
tpu_num : int
Number of available TPUs
"""
def set_print_flag(print_flag):
""" Print main process time use.
Parameters
----------
print_flag : bool
if print_flag is true, print main process time use, Otherwise not print.
"""
def set_dump_io_flag(dump_io_flag):
""" Dump input date and output date.
Parameters
----------
dump_io_flag : bool
if dump_io_flag is true, dump input date and output date, Otherwise not dump.
"""
def set_decoder_env(env_name, env_value):
""" Set Decoder environment, must set befor Decoder Constructor, else use default values
Parameters
----------
env_name: str
Environment name,
name list: refcounted_frames, extra_frame_buffer_num, rtsp_transport, stimeout, \
rtsp_flags, buffer_size, max_delay, probesize, analyzeduration.
env_value: str
Environment value.
"""
3.3.2. Data type¶
# Data type for float32
sail.Dtype.BM_FLOAT32
# Data type for int8
sail.Dtype.BM_INT8
# Data type for uint8
sail.Dtype.BM_UINT8
# Data type for int32
sail.Dtype.BM_INT32
# Data type for uint32
sail.Dtype.BM_UINT32
3.3.3. PaddingAtrr¶
def __init__():
""" Constructor with no parameters. """
def __init__(stx, sty, width, height, r, g, b):
""" Constructor PaddingAtrr.
Parameters
----------
stx : int
Offset x information relative to the origin of dst image
sty : int
Offset y information relative to the origin of dst image
width : int
The width after resize
height : int
The height after resize
r : int
Pixel value information of R channel
g : int
Pixel value information of G channel
b : int
Pixel value information of B channel
"""
def set_stx(stx):
""" set offset stx.
Parameters
----------
stx : int
Offset x information relative to the origin of dst image
"""
def set_sty(sty):
""" set offset sty.
Parameters
----------
sty : int
Offset y information relative to the origin of dst image
"""
def set_w(width):
""" set widht.
Parameters
----------
width : int
The width after resize
"""
def set_h(height):
""" set height.
Parameters
----------
height : int
The height after resize
"""
def set_r(r):
""" set R.
Parameters
----------
r : int
Pixel value information of R channel
"""
def set_g(g):
""" set G.
Parameters
----------
g : int
Pixel value information of G channel
"""
def set_g(b):
""" set B.
Parameters
----------
b : int
Pixel value information of B channel
"""
3.3.4. sail.Handle¶
def __init__(tpu_id):
""" Constructor handle instance
Parameters
----------
tpu_id : int
create handle with tpu Id
"""
def get_device_id():
""" Get tpu id of this handle.
Returns
-------
tpu_id : int
tpu id of this handle.
"""
def get_sn():
""" Get serial number of this handle.
Returns
-------
serial_number : str
serial number of this handle.
"""
3.3.5. sail.IOMode¶
# Input tensors are in system memory while output tensors are in device memory
sail.IOMode.SYSI
# Input tensors are in device memory while output tensors are in system memory.
sail.IOMode.SYSO
# Both input and output tensors are in system memory.
sail.IOMode.SYSIO
# Both input and output tensors are in device memory.
sail.IOMode.DEVIO
3.3.6. sail.Tensor¶
1). Tensor
def __init__(handle, data, own_sys_data=True): """ Constructor allocates device memory of the tensor. Parameters ---------- handle : sail.Handle Handle instance array_data : numpy.array Tensor ndarray data, dtype can be np.float32, np.int8 or np.uint8 own_sys_data : bool, default: True Indicator of whether own system memory, If false, the memory will be copied to device directly """ def __init__(handle, shape, dtype, own_sys_data, own_dev_data): """ Constructor allocates system memory and device memory of the tensor. Parameters ---------- handle : sail.Handle Handle instance shape : tuple Tensor shape dytpe : sail.Dtype Data type own_sys_data : bool Indicator of whether own system memory own_dev_data : bool Indicator of whether own device memory """
2). shape
def shape(): """ Get shape of the tensor. Returns ------- tensor_shape : list Shape of the tensor """
3). asnumpy
def asnumpy(): """ Get system data of the tensor. Returns ------- data : numpy.array System data of the tensor, dtype can be np.float32, np.int8 or np.uint8 with respective to the dtype of the tensor. """ def asnumpy(shape): """ Get system data of the tensor. Parameters ---------- shape : tuple Tensor shape want to get Returns ------- data : numpy.array System data of the tensor, dtype can be np.float32, np.int8 or np.uint8 with respective to the dtype of the tensor. """
4). update_data
def update_data(data): """ Update system data of the tensor. The data size should not exceed the tensor size, and the tensor shape will not be changed. Parameters ------- data : numpy.array Data. """
5). scale_from
def scale_from(data, scale): """ Scale data to tensor in system memory. Parameters ------- data : numpy.array with dtype of float32 Data. scale : float32 Scale value. """
6). scale_to
def scale_to(scale): """ Scale tensor to data in system memory. Parameters ------- scale : float32 Scale value. Returns ------- data : numpy.array with dtype of float32 Data. """ def scale_to(scale, shape): """ Scale tensor to data in system memory. Parameters ------- scale : float32 Scale value. shape : tuple Tensor shape want to get Returns ------- data : numpy.array with dtype of float32 Data. """
7). reshape
def reshape(shape): """ Reset shape of the tensor. Parameters ------- shape : list New shape of the tensor """
8). own_sys_data
def own_sys_data(): """ Judge if the tensor owns data pointer in system memory. Returns ------- judge_ret : bool True for owns data pointer in system memory. """
9). own_dev_data
def own_dev_data(): """ Judge if the tensor owns data in device memory. Returns ------- judge_ret : bool True for owns data in device memory. """
10). sync_s2d
def sync_s2d(): """ Copy data from system memory to device memory. """ def sync_s2d(size): """ Copy data from system memory to device memory with specified size. Parameters ---------- size : int Byte size to be copied """
11). sync_d2s
def sync_d2s(): """ Copy data from device memory to system memory. """ def sync_d2s(size): """ Copy data from device memory to system memory with specified size. Parameters ---------- size : int Byte size to be copied """
3.3.7. sail.Engine¶
1). Engine
def __init__(tpu_id): """ Constructor does not load bmodel. Parameters ---------- tpu_id : int TPU ID. You can use bm-smi to see available IDs """ def __init__(handle): """ Constructor does not load bmodel. Parameters ---------- hanle : Handle A Handle instance """ def __init__(bmodel_path, tpu_id, mode): """ Constructor loads bmodel from file. Parameters ---------- bmodel_path : str Path to bmodel tpu_id : int TPU ID. You can use bm-smi to see available IDs mode : sail.IOMode Specify the input/output tensors are in system memory or device memory """ def __init__(bmodel_bytes, bmodel_size, tpu_id, mode): """ Constructor using default input shapes with bmodel which loaded in memory Parameters ---------- bmodel_bytes : bytes Bytes of bmodel in system memory bmodel_size : int Bmodel byte size tpu_id : int TPU ID. You can use bm-smi to see available IDs mode : sail.IOMode Specify the input/output tensors are in system memory or device memory """
2). get_handle
def get_handle(): """ Get Handle instance. Returns ------- handle: sail.Handle Handle instance """
3). load
def load(bmodel_path): """ Load bmodel from file. Parameters ---------- bmodel_path : str Path to bmodel """ def load(bmodel_bytes, bmodel_size): """ Load bmodel from file. Parameters ---------- bmodel_bytes : bytes Bytes of bmodel in system memory bmodel_size : int Bmodel byte size """
4). get_graph_names
def get_graph_names(): """ Get all graph names in the loaded bmodels. Returns ------- graph_names : list Graph names list in loaded context """
5). set_io_mode
def set_io_mode(graph_name, mode): """ Set IOMode for a graph. Parameters ---------- graph_name: str The specified graph name mode : sail.IOMode Specified io mode """
6). get_input_names
def get_input_names(graph_name): """ Get all input tensor names of the specified graph. Parameters ---------- graph_name : str Specified graph name Returns ------- input_names : list All the input tensor names of the graph """
7). get_output_names
def get_output_names(graph_name): """ Get all output tensor names of the specified graph. Parameters ---------- graph_name : str Specified graph name Returns ------- input_names : list All the output tensor names of the graph """
8). get_max_input_shapes
def get_max_input_shapes(graph_name): """ Get max shapes of input tensors in a graph. For static models, the max shape is fixed and it should not be changed. For dynamic models, the tensor shape should be smaller than or equal to the max shape. Parameters ---------- graph_name : str The specified graph name Returns ------- max_shapes : dict {str : list} Max shape of the input tensors """
9). get_input_shape
def get_input_shape(graph_name, tensor_name): """ Get the maximum dimension shape of an input tensor in a graph. There are cases that there are multiple input shapes in one input name, This API only returns the maximum dimension one for the memory allocation in order to get the best performance. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified input tensor name Returns ------- tensor_shape : list The maxmim dimension shape of the tensor """
10). get_max_output_shapes
def get_max_output_shapes(graph_name): """ Get max shapes of input tensors in a graph. For static models, the max shape is fixed and it should not be changed. For dynamic models, the tensor shape should be smaller than or equal to the max shape. Parameters ---------- graph_name : str The specified graph name Returns ------- max_shapes : dict {str : list} Max shape of the output tensors """
11). get_output_shape
def get_output_shape(graph_name, tensor_name): """ Get the shape of an output tensor in a graph. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified output tensor name Returns ------- tensor_shape : list The shape of the tensor """
12). get_input_dtype
def get_input_dtype(graph_name, tensor_name) """ Get scale of an input tensor. Only used for int8 models. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified output tensor name Returns ------- scale: sail.Dtype Data type of the input tensor """
13). get_output_dtype
def get_output_dtype(graph_name, tensor_name) """ Get scale of an output tensor. Only used for int8 models. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified output tensor name Returns ------- scale: sail.Dtype Data type of the output tensor """
14). get_input_scale
def get_input_scale(graph_name, tensor_name) """ Get scale of an input tensor. Only used for int8 models. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified output tensor name Returns ------- scale: float32 Scale of the input tensor """
15). get_output_scale
def get_output_scale(graph_name, tensor_name) """ Get scale of an output tensor. Only used for int8 models. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified output tensor name Returns ------- scale: float32 Scale of the output tensor """
16). process
def process(graph_name, input_tensors): """ Inference with provided system data of input tensors. Parameters ---------- graph_name : str The specified graph name input_tensors : dict {str : numpy.array} Data of all input tensors in system memory Returns ------- output_tensors : dict {str : numpy.array} Data of all output tensors in system memory """ def process(graph_name, input_tensors, output_tensors): """ Inference with provided input and output tensors. Parameters ---------- graph_name : str The specified graph name input_tensors : dict {str : sail.Tensor} Input tensors managed by user output_tensors : dict {str : sail.Tensor} Output tensors managed by user """ def process(graph_name, input_tensors, input_shapes, output_tensors): """ Inference with provided input tensors, input shapes and output tensors. Parameters ---------- graph_name : str The specified graph name input_tensors : dict {str : sail.Tensor} Input tensors managed by user input_shapes : dict {str : list} Shapes of all input tensors output_tensors : dict {str : sail.Tensor} Output tensors managed by user """
17). get_device_id
def get_device_id(): """ Get device id of this engine Returns ---------- tpu_id : int tpu id of this engine """
**18). create_input_tensors_map **
def create_input_tensors_map(graph_name, create_mode): """ Create input tensors map, according to and bmodel. Parameters: ---------- graph_name : str The specified graph name. create_mode: int Tensor Create mode, case 0: only allocate system memory; case 1: only allocate device memory; case other: according to engine IOMode. Returns ------- output: dict[str,Tensor] Output result. """
**19). create_output_tensors_map **
def create_output_tensors_map(graph_name, create_mode): """ Create output tensors map, according to and bmodel. Parameters: ---------- graph_name : str The specified graph name. create_mode: int Tensor Create mode, case 0: only allocate system memory; case 1: only allocate device memory; case other: according to engine IOMode. Returns ------- output: dict[str,Tensor] Output result. """
3.3.8. sail.MultiEngine¶
1). MultiEngine
def __init__(bmodel_path, device_ids, sys_out, graph_idx): """ Constructor load bmodel. Parameters ---------- bmodel_path : str Path to bmodel device_ids : list[int] TPU ID. You can use bm-smi to see available IDs sys_out : bool, default: True The flag of copy result to system memory. graph_idx : int, default: 0 The specified graph index """
- **2). set_print_flag **
def set_print_flag(print_flag): """ Print debug messages. Parameters ---------- print_flag : bool if print_flag is true, print debug messages """
- **3). set_print_time **
def set_print_time(print_flag): """ Print main process time use. Parameters ---------- print_flag : bool if print_flag is true, print main process time use, Otherwise not print. """
- **4). get_device_ids **
def get_device_ids(): """ Get device ids of this MultiEngine. Returns ------- device_ids : list[int] tpu ids of this MultiEngine. """
- **5). get_graph_names **
def get_graph_names() """ Get all graph names in the loaded bmodels. Returns ------- graph_names : list Graph names list in loaded context """
6). get_input_names
def get_input_names(graph_name): """ Get all input tensor names of the specified graph. Parameters ---------- graph_name : str Specified graph name Returns ------- input_names : list All the input tensor names of the graph """
7). get_output_names
def get_output_names(graph_name): """ Get all output tensor names of the specified graph. Parameters ---------- graph_name : str Specified graph name Returns ------- input_names : list All the output tensor names of the graph """
8). get_input_shape
def get_input_shape(graph_name, tensor_name): """ Get the maximum dimension shape of an input tensor in a graph. There are cases that there are multiple input shapes in one input name, This API only returns the maximum dimension one for the memory allocation in order to get the best performance. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified input tensor name Returns ------- tensor_shape : list The maxmim dimension shape of the tensor """
9). get_output_shape
def get_output_shape(graph_name, tensor_name): """ Get the shape of an output tensor in a graph. Parameters ---------- graph_name : str The specified graph name tensor_name : str The specified output tensor name Returns ------- tensor_shape : list The shape of the tensor """
10). process
def process(input_tensors): """ Inference with provided system data of input tensors. Parameters ---------- input_tensors : dict {str : numpy.array} Data of all input tensors in system memory Returns ------- output_tensors : dict {str : numpy.array} Data of all output tensors in system memory """
3.3.9. sail.bm_image¶
def width(): """ Get width of img. Returns ---------- width : int width of img """ def height(): """ Get height of img. Returns ---------- height : int height of img """ def format(): """ Get format of img. Returns ---------- format : bm_image_format_ext format of img """ def dtype(): """ Get dtype of img. Returns ---------- dtype : bm_image_data_format_ext dtype of img """
3.3.10. sail.BMImage¶
1). BMImage
def __init__(): """ Constructor. """ def __init__(handle, h, w, format, dtype): """ Constructor. Parameters ---------- handle : sail.Handle Handle instance h: int The height of img w: int The width of img format : bm_image_format_ext The format of img dtype: sail.bm_image_data_format_ext The data type of img """
2). width
def width(): """ Get the img width. Returns ---------- width : int The width of img """
3). height
def height(): """ Get the img height. Returns ---------- height : int The height of img """
4). format
def format(): """ Get the img format. Returns ---------- format : bm_image_format_ext The format of img """
5). dtype
def dtype(): """ Get the img dtype. Returns ---------- dtype: bm_image_data_format_ext The data type of img """
6). data
def data(): """ Get inner bm_image. Returns ---------- img : bm_image the data of img """
3.3.11. sail.BMImageArray¶
1). BMImageArray
def __init__(): """ Constructor. """ def __init__(handle, h, w, format, dtype): """ Constructor. Parameters ---------- handle : sail.Handle Handle instance h : int Height instance w : int Width instance format : bm_image_format_ext Format instance dtype : bm_image_data_format_ext Dtype instance """
2). __getitem__
def __getitem__(i): """ Get the bm_image from index i. Parameters ---------- i : int Index of the specified location. Returns ---------- img : sail.bm_image result bm_image """
3). __setitem__
def __setitem__(i, data): """ Copy the image to the specified index. Parameters ---------- i: int Index of the specified location. data: sail.bm_image Input image """
4). copy_from
def copy_from(i, data): """ Copy the image to the specified index. Parameters ---------- i: int Index of the specified location. data: sail.BMImage Input image """
5). attach_from
def attach_from(i, data): """ Attach the image to the specified index.(Because there is no memory copy, the original data needs to be cached) Parameters: ---------- i: int Index of the specified location. data: BMImage Input image. """
3.3.12. sail.Decoder¶
1). Decoder
def __init__(file_path, compressed=True, tpu_id=0): """ Constructor. Parameters ---------- file_path : str Path or rtsp url to the video/image file compressed : bool, default: True Whether the format of decoded output is compressed NV12. tpu_id: int, default: 0 ID of TPU, there may be more than one TPU for PCIE mode. """
2). is_opened
def is_opened(): """ Judge if the source is opened successfully. Returns ---------- judge_ret : bool True for success and False for failure """
3). read
def read(handle, image): """ Read an image from the Decoder. Parameters ---------- handle : sail.Handle Handle instance image : sail.BMImage BMImage instance Returns ---------- judge_ret : int 0 for success and others for failure """ def read(handle): """ Read an image from the Decoder. Parameters ---------- handle : sail.Handle Handle instance Returns ---------- image : sail.BMImage BMImage instance """
4). read_
def read_(handle, image): """ Read an image from the Decoder. Parameters ---------- handle : sail.Handle Handle instance image : sail.bm_image bm_image instance Returns ---------- judge_ret : int 0 for success and others for failure """
5). get_frame_shape
def get_frame_shape(): """ Get frame shape in the Decoder. Returns ---------- frame_shape : list The shape of the frame """
5). release
def release(): """ Release the Decoder. """
6). reconnect
def reconnect(): """ Reconnect the Decoder. """
3.3.13. sail.Bmcv¶
1). Bmcv
def __init__(handle): """ Constructor. Parameters ---------- handle : sail.Handle Handle instance ""
2). bm_image_to_tensor
def bm_image_to_tensor(image): """ Convert image to tensor. Parameters ---------- image : sail.BMImage | sail.BMImageArray BMImage/BMImageArray instance Returns ------- tensor : sail.Tensor Tensor instance """ def bm_image_to_tensor(image, tensor): """ Convert image to tensor. Parameters ---------- image : sail.BMImage | sail.BMImageArray BMImage/BMImageArray instance tensor : sail.Tensor Tensor instance """
3). tensor_to_bm_image
def tensor_to_bm_image(tensor, bgr2rgb=False): """ Convert tensor to image. Parameters ---------- tensor : sail.Tensor Tensor instance bgr2rgb : bool, default: False Swap color channel Returns ------- image : sail.BMImage BMImage instance """ def tensor_to_bm_image(tensor, img, bgr2rgb=False): """ Convert tensor to image. Parameters ---------- tensor : sail.Tensor Tensor instance img : sail.BMImage | sail.BMImageArray BMImage/BMImageArray instance bgr2rgb : bool, default: False Swap color channel Returns ------- image : sail.BMImage BMImage instance """
4). crop_and_resize
def crop_and_resize(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h): """ Crop then resize an image. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImage Output image """ def crop_and_resize(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h): """ Crop then resize an image array. Parameters ---------- input : sail.BMImageArray Input image array crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImageArray Output image array """
5). crop
def crop(input, crop_x0, crop_y0, crop_w, crop_h): """ Crop an image with given window. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window Returns ---------- output : sail.BMImage Output image """ def crop(input, crop_x0, crop_y0, crop_w, crop_h): """ Crop an image array with given window. Parameters ---------- input : sail.BMImageArray Input image array crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window Returns ---------- output : sail.BMImageArray Output image array """
6). resize
def resize(input, resize_w, resize_h): """ Resize an image with interpolation of INTER_NEAREST. Parameters ---------- input : sail.BMImage Input image resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImage Output image """ def resize(input, resize_w, resize_h): """ Resize an image array with interpolation of INTER_NEAREST. Parameters ---------- input : sail.BMImageArray Input image array resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImageArray Output image array """
7). vpp_crop_and_resize
def vpp_crop_and_resize(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h): """ Crop then resize an image using vpp. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImage Output image """ def vpp_crop_and_resize(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h): """ Crop then resize an image array using vpp. Parameters ---------- input : sail.BMImageArray Input image array crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImageArray Output image array """
8). vpp_crop_and_resize_padding
def vpp_crop_and_resize_padding(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h, padding): """ Crop then resize an image using vpp. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height padding : PaddingAtrr padding info Returns ---------- output : sail.BMImage Output image """ def vpp_crop_and_resize_padding(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h, padding): """ Crop then resize an image array using vpp. Parameters ---------- input : sail.BMImageArray Input image array crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height padding : PaddingAtrr padding info Returns ---------- output : sail.BMImageArray Output image array """
9). vpp_crop
def vpp_crop(input, crop_x0, crop_y0, crop_w, crop_h): """ Crop an image with given window using vpp. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window Returns ---------- output : sail.BMImage Output image """ def vpp_crop(input, crop_x0, crop_y0, crop_w, crop_h): """ Crop an image array with given window using vpp. Parameters ---------- input : sail.BMImageArray Input image array crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window Returns ---------- output : sail.BMImageArray Output image array """
10). vpp_crop_padding
def vpp_crop_padding(input, crop_x0, crop_y0, crop_w, crop_h, padding): """ Crop an image with given window using vpp. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window padding : PaddingAtrr padding info Returns ---------- output : sail.BMImage Output image """ def vpp_crop_padding(input, crop_x0, crop_y0, crop_w, crop_h, padding): """ Crop an image array with given window using vpp. Parameters ---------- input : sail.BMImageArray Input image array crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window padding : PaddingAtrr padding info Returns ---------- output : sail.BMImageArray Output image array """
11). vpp_resize
def vpp_resize(input, resize_w, resize_h): """ Resize an image with interpolation of INTER_NEAREST using vpp. Parameters ---------- input : sail.BMImage Input image resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImage Output image """ def vpp_resize(input, resize_w, resize_h): """ Resize an image array with interpolation of INTER_NEAREST using vpp. Parameters ---------- input : sail.BMImageArray Input image array resize_w : int Target width resize_h : int Target height Returns ---------- output : sail.BMImageArray Output image array """ def vpp_resize(input, output, resize_w, resize_h): """ Resize an image with interpolation of INTER_NEAREST using vpp. Parameters ---------- input : sail.BMImage Input image output : sail.BMImage Output image resize_w : int Target width resize_h : int Target height """ def vpp_resize(input, output, resize_w, resize_h): """ Resize an image array with interpolation of INTER_NEAREST using vpp. Parameters ---------- input : sail.BMImageArray Input image array output : sail.BMImageArray Output image array resize_w : int Target width resize_h : int Target height """
12). vpp_resize_padding
def vpp_resize_padding(input, resize_w, resize_h, padding): """ Resize an image with interpolation of INTER_NEAREST using vpp. Parameters ---------- input : sail.BMImage Input image resize_w : int Target width resize_h : int Target height padding : PaddingAtrr padding info Returns ---------- output : sail.BMImage Output image """ def vpp_resize_padding(input, resize_w, resize_h, padding): """ Resize an image array with interpolation of INTER_NEAREST using vpp. Parameters ---------- input : sail.BMImageArray Input image array resize_w : int Target width resize_h : int Target height padding : PaddingAtrr padding info Returns ---------- output : sail.BMImageArray Output image array """
13). warp
def warp(input, matrix): """ Applies an affine transformation to an image. Parameters ---------- input : sail.BMImage Input image matrix: 2d list 2x3 transformation matrix Returns ---------- output : sail.BMImage Output image """ def warp(input, matrix): """ Applies an affine transformation to an image array. Parameters ---------- input : sail.BMImageArray Input image array matrix: 2d list 2x3 transformation matrix Returns ---------- output : sail.BMImageArray Output image array """
14). convert_to
def convert_to(input, alpha_beta): """ Applies a linear transformation to an image. Parameters ---------- input : sail.BMImage Input image alpha_beta: tuple (a0, b0), (a1, b1), (a2, b2) factors Returns ---------- output : sail.BMImage Output image """ def convert_to(input, alpha_beta): """ Applies a linear transformation to an image array. Parameters ---------- input : sail.BMImageArray Input image array alpha_beta: tuple (a0, b0), (a1, b1), (a2, b2) factors Returns ---------- output : sail.BMImageArray Output image array """ def convert_to(input, output, alpha_beta): """ Applies a linear transformation to an image. Parameters ---------- input : sail.BMImage Input image output : sail.BMImage Output image alpha_beta: tuple (a0, b0), (a1, b1), (a2, b2) factors """ def convert_to(input, output, alpha_beta): """ Applies a linear transformation to an image array. Parameters ---------- input : sail.BMImageArray Input image array alpha_beta: tuple (a0, b0), (a1, b1), (a2, b2) factors output : sail.BMImageArray Output image array """
15). yuv2bgr
def yuv2bgr(input): """ Convert an image from YUV to BGR. Parameters ---------- input : sail.BMImage Input image Returns ---------- output : sail.BMImage Output image """ def yuv2bgr(input): """ Convert an image array from YUV to BGR. Parameters ---------- input : sail.BMImageArray Input image array Returns ---------- output : sail.BMImageArray Output image array """
16). rectangle
def rectangle(image, x0, y0, w, h, color, thickness=1): """ Draw a rectangle on input image. Parameters ---------- image : sail.BMImage Input image x0 : int Start point x of rectangle y0 : int Start point y of rectangle w : int Width of rectangle h : int Height of rectangle color : tuple Color of rectangle thickness : int Thickness of rectangle Returns ---------- process_status : int 0 for success and others for failure """
17). imwrite
def imwrite(file_name, image): """ Save the image to the specified file. Parameters ---------- file_name : str Name of the file output : sail.BMImage Image to be saved Returns ---------- process_status : int 0 for success and others for failure """
18). get_handle
def get_handle(): """ Get Handle instance. Returns ------- handle: sail.Handle Handle instance """
19). crop_and_resize_padding
def crop_and_resize_padding(input, crop_x0, crop_y0, crop_w, crop_h, resize_w, resize_h, padding): """ Crop then resize an image. Parameters ---------- input : sail.BMImage Input image crop_x0 : int Start point x of the crop window crop_y0 : int Start point y of the crop window crop_w : int Width of the crop window crop_h : int Height of the crop window resize_w : int Target width resize_h : int Target height padding : PaddingAtrr padding info Returns ---------- output : sail.BMImage Output image """
20). rectangle_
def rectangle_(image, x0, y0, w, h, color, thickness=1): """ Draw a rectangle on input image. Parameters ---------- image : sail.bm_image Input image x0 : int Start point x of rectangle y0 : int Start point y of rectangle w : int Width of rectangle h : int Height of rectangle color : tuple Color of rectangle thickness : int Thickness of rectangle Returns ---------- process_status : int 0 for success and others for failure """
21). imwrite_
def imwrite_(file_name, image): """ Save the image to the specified file. Parameters ---------- file_name : str Name of the file output : sail.bm_image Image to be saved Returns ---------- process_status : int 0 for success and others for failure """
22). convert_format
def convert_format(input, output): """Convert input to output format. Parameters ---------- input : sail.BMImage BMimage instance output : sail.BMImage output image """ def convert_format(input): """Convert an image to BGR PLANAR format. Parameters ---------- input : sail.BMImage BMimage instance Returns ---------- output : sail.BMImage output image """
23). vpp_convert_format
def vpp_convert_format(input, output): """Convert input to output format using vpp. Parameters ---------- input : sail.BMImage BMimage instance output : sail.BMImage output image """ def vpp_convert_format(input): """Convert an image to BGR PLANAR format using vpp. Parameters ---------- input : sail.BMImage BMimage instance Returns ---------- output : sail.BMImage output image """
- **24). putText **
def putText(input, text, x, y, color, fontScale, thickness): """ Draws a text on the image Parameters ---------- input : sail.BMImage BMimage instance text: str Text to write on an image. x: int Start point x y: int Start point y color : tuple Color of text thickness : int Thickness of text Returns ---------- process_status : int 0 for success and others for failure """
- **25). putText_ **
def putText_(input, text, x, y, color, fontScale, thickness): """ Draws a text on the image Parameters ---------- input : sail.bm_image bm_image instance text: str Text to write on an image. x: int Start point x y: int Start point y color : tuple Color of text thickness : int Thickness of text Returns ---------- process_status : int 0 for success and others for failure """
- **26). image_add_weighted **
def image_add_weighted(input0, alpha, input1, beta, gamma, output): """ Calculates the weighted sum of two images Parameters ---------- input0 : sail.BMImage BMimage instance. alpha : float alpha instance. input1 : sail.BMImage BMImage instance. beta: float beta instance. gamma: float gamma instance. output: BMImage result BMImage, output = input1 * alpha + input2 * beta + gamma. """ def image_add_weighted(input0, alpha, input1, beta, gamma): """ Calculates the weighted sum of two images Parameters ---------- input0 : sail.BMImage BMimage instance. alpha : float alpha instance. input1 : sail.BMImage BMImage instance. beta: float beta instance. gamma: float gamma instance. Returns ------- output: BMImage result BMImage, output = input1 * alpha + input2 * beta + gamma. """
- **27). image_copy_to **
def image_copy_to(self, input, output, start_x, start_y): """ Copy the input to the output. Parameters: ---------- input: BMImage|BMImageArray Input image or image array. output: BMImage|BMImageArray Output image or image array. start_x: int Point start x. start_y: int Point start y. """
- **28). image_copy_to_padding **
def image_copy_to_padding(self, input, output, padding_r, padding_g, padding_b, start_x, start_y): """ Copy the input to the output width padding. Parameters: ---------- input: BMImage|BMImageArray Input image or image array. output: BMImage|BMImageArray Output image or image array. padding_r: int r value for padding. padding_g: int g value for padding. padding_b: int b value for padding. start_x: int point start x. start_y: int point start y. """
- **28). nms **
def nms(input, threshold) : """ Do nms use tpu. Parameters: ---------- input: float input proposal array, shape must be (n,5) n<56000, proposal:[left,top,right,bottom,score]. threshold: float nms threshold. Returns: ---------- return nms result, numpy.ndarray[Any, numpy.dtype[numpy.float32]] """