5#ifndef AISDEPLOYC_INTERFACE_H
6#define AISDEPLOYC_INTERFACE_H
10#ifdef DEPLOY_ON_WINDOWS
11#define AisDeployC_API extern "C" __declspec(dllexport)
13#define AisDeployC_API extern "C"
108 const char *model_path,
147 std::vector<cv::Mat> & imgs
170 std::vector<std::string> & out_categories
193 std::vector<std::vector<cv::Mat> > & per_category_masks
216 std::vector<std::vector<cv::Mat> > & per_category_score_maps
249 cv::Mat & binary_mask,
282 cv::Mat & binary_mask,
316 cv::Mat & binary_mask,
364 std::vector<std::vector<cv::Mat> > per_category_score_maps,
365 std::vector<std::vector<cv::Mat> > per_category_masks
385 std::vector<int> & per_batch_instance_number
405 std::vector<std::vector<bounding_box>> & per_batch_instances
427 std::vector<std::vector<float>> & per_batch_instance_mask_areas
560 std::vector<std::vector<float>> & per_batch_embeddings
580 std::vector<std::vector<std::vector<std::vector<float>>>> & per_batch_embeddings
593 std::vector<std::vector<std::vector<std::vector<float>>>> batch_embeddings,
594 std::vector<std::vector<std::vector<float>>> point_coords,
595 std::vector<std::vector<float>> point_labels,
596 std::vector<std::vector<std::vector<std::vector<float>>>> batch_mask_input,
597 std::vector<float> has_mask_input,
598 std::vector<std::vector<float>> orig_im_size
618 std::vector<std::string> & vec_keys,
619 std::vector<std::vector<float>> & vec_embeddings
641 std::vector<std::vector<float>> & vec_embeddings,
642 std::vector<std::string> & ground_keys,
643 std::vector<std::vector<float>> & vec_scores
736 std::vector<classification> & per_batch_cls
756 std::vector<std::vector<std::vector<float>>> & per_batch_pose
AisDeployC_API int get_per_category_score_maps(void *base, std::vector< std::vector< cv::Mat > > &per_category_score_maps)
获得每类别的置信度图
AisDeployC_API int generate_license(void *base)
生成未授权文件
AisDeployC_API int process_embedding_3d_prompt(void *base, std::vector< std::vector< std::vector< std::vector< float > > > > batch_embeddings, std::vector< std::vector< std::vector< float > > > point_coords, std::vector< std::vector< float > > point_labels, std::vector< std::vector< std::vector< std::vector< float > > > > batch_mask_input, std::vector< float > has_mask_input, std::vector< std::vector< float > > orig_im_size)
处理图片
AisDeployC_API int compare_with_ground_embeddings(void *base, std::vector< std::vector< float > > &vec_embeddings, std::vector< std::string > &ground_keys, std::vector< std::vector< float > > &vec_scores)
将特征嵌入与底库内的特征嵌入进行比较
AisDeployC_API int get_per_batch_classification(void *base, std::vector< classification > &per_batch_cls)
获得每个批次的分类结果
AisDeployC_API int update_license(void *base, const char *path)
更新授权文件信息
AisDeployC_API int get_per_batch_embeddings_3d(void *base, std::vector< std::vector< std::vector< std::vector< float > > > > &per_batch_embeddings)
获得每个批次的图像3D特征嵌入
AisDeployC_API int py_get_json_str_results(void *base, char **output, int *output_size)
python使用的获取json string输出格式的接口
AisDeployC_API int get_per_batch_instance_mask_areas(void *base, std::vector< std::vector< float > > &per_batch_instance_mask_areas)
获得每个批次的实例掩模面积
AisDeployC_API int get_per_batch_instance_number(void *base, std::vector< int > &per_batch_instance_number)
获得每个批次的实例个数
struct bounding_box bounding_box
AisDeployC_API int dilate_binary_mask(cv::Mat &binary_mask, int kernel_size, int iter_dilate)
二值掩模膨胀处理
AisDeployC_API int get_binary_mask_from_score_map(cv::Mat score_map, cv::Mat &binary_mask, float thresh)
置信度图阈值处理获得二值掩模
AisDeployC_API int release(void *base)
释放实例
AisDeployC_API int py_free_result(char *output)
python使用的释放返回结果的接口
AisDeployC_API std::string get_version()
获得当前库版本号
struct classification classification
AisDeployC_API int cal_per_category_instances(void *base, std::vector< std::vector< cv::Mat > > per_category_score_maps, std::vector< std::vector< cv::Mat > > per_category_masks)
计算每类别的实例 blob(输入掩模和置信度图)
AisDeployC_API int load_keys_embeddings(void *base, std::vector< std::string > &vec_keys, std::vector< std::vector< float > > &vec_embeddings)
批量加载 字段 和 特征嵌入 对
AisDeployC_API int process_images(void *base, std::vector< cv::Mat > &imgs)
处理图片
AisDeployC_API int py_compare_with_ground_embeddings(void *base, const char *input, int input_size, char **output, int *output_size)
python使用的批量 字段 和 特征嵌入 对,与底库中特征嵌入做比对,json string输入格式的接口,json string输出格式的接口
AisDeployC_API int get_per_batch_embeddings(void *base, std::vector< std::vector< float > > &per_batch_embeddings)
获得每个批次的图像特征嵌入
AisDeployC_API int get_per_batch_pose_estimation(void *base, std::vector< std::vector< std::vector< float > > > &per_batch_pose)
获得每个批次的姿态估计结果
AisDeployC_API int erode_binary_mask(cv::Mat &binary_mask, int kernel_size, int iter_erode)
二值掩模腐蚀处理
const std::string AisDeployCVersion
AisDeployC_API int py_process_json_str(void *base, const char *input, int input_size)
python使用的处理json string输入格式的接口
AisDeployC_API int get_categories(void *base, std::vector< std::string > &out_categories)
获得类别列表
AisDeployC_API int get_per_batch_instances(void *base, std::vector< std::vector< bounding_box > > &per_batch_instances)
获得每个批次的实例
AisDeployC_API int check_version()
检查当前库版本号与头文件版本号是否一致
AisDeployC_API void * initialize(const char *model_path, int gpu_id, int *state)
模型初始化
AisDeployC_API int get_per_category_binary_masks(void *base, std::vector< std::vector< cv::Mat > > &per_category_masks)
获得每类别的二值掩模
AisDeployC_API int py_process_decoder(void *base, const char *input, int input_size, char **output, int *output_size)
python使用的解码器处理接口,输入特征嵌入和提示prompt,json string输入格式的接口,json string输出格式的接口