AisDeployC
Deploy Library for Artificial Intelligence System
Loading...
Searching...
No Matches
interface.h
Go to the documentation of this file.
1//
2// Created by Jinghui Zhou on 2023/1/4.
3//
4
5#ifndef AISDEPLOYC_INTERFACE_H
6#define AISDEPLOYC_INTERFACE_H
7
8const std::string AisDeployCVersion="v0.3.3b";
9
10#ifdef DEPLOY_ON_WINDOWS
11#define AisDeployC_API extern "C" __declspec(dllexport)
12#else
13#define AisDeployC_API extern "C"
14#endif
15
16
17typedef struct bounding_box
18{
19
20 std::string category = ""; // category name, get from config file
21 float score = 0.; // confidence
22 float xmin = 0; // target bbox position, left top x
23 float ymin = 0; // target bbox position, left top y
24 float xmax = 0; // target bbox position, right bottom x
25 float ymax = 0; // target bbox position, right bottom y
26
28
29typedef struct classification
30{
31
32 std::string category = ""; // category name, get from config file
33 float score = 0.; // confidence
34
36
50
108 const char *model_path,
109 int gpu_id,
110 int *state
111 );
112
146 void *base,
147 std::vector<cv::Mat> & imgs
148 );
149
169 void *base,
170 std::vector<std::string> & out_categories
171);
172
192 void *base,
193 std::vector<std::vector<cv::Mat> > & per_category_masks
194);
195
215 void *base,
216 std::vector<std::vector<cv::Mat> > & per_category_score_maps
217);
218
248 cv::Mat score_map,
249 cv::Mat & binary_mask,
250 float thresh
251);
252
253
282 cv::Mat & binary_mask,
283 int kernel_size,
284 int iter_erode
285);
286
316 cv::Mat & binary_mask,
317 int kernel_size,
318 int iter_dilate
319);
320
321
363 void *base,
364 std::vector<std::vector<cv::Mat> > per_category_score_maps,
365 std::vector<std::vector<cv::Mat> > per_category_masks
366);
367
384 void *base,
385 std::vector<int> & per_batch_instance_number
386);
387
404 void *base,
405 std::vector<std::vector<bounding_box>> & per_batch_instances
406);
407
408
409
426 void *base,
427 std::vector<std::vector<float>> & per_batch_instance_mask_areas
428);
429
448 void *base
449);
450
451
466AisDeployC_API int update_license(void *base, const char* path);
467
482
507AisDeployC_API int py_process_json_str(void *base, const char *input, int input_size);
508
525AisDeployC_API int py_get_json_str_results(void *base, char **output, int *output_size);
526
542
559 void *base,
560 std::vector<std::vector<float>> & per_batch_embeddings
561);
562
579 void *base,
580 std::vector<std::vector<std::vector<std::vector<float>>>> & per_batch_embeddings
581);
582
592 void *base,
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
599);
600
617 void *base,
618 std::vector<std::string> & vec_keys,
619 std::vector<std::vector<float>> & vec_embeddings
620);
621
622
640 void *base,
641 std::vector<std::vector<float>> & vec_embeddings,
642 std::vector<std::string> & ground_keys,
643 std::vector<std::vector<float>> & vec_scores
644);
645
646
671AisDeployC_API int py_compare_with_ground_embeddings(void *base, const char *input, int input_size, char **output, int *output_size);
672
697AisDeployC_API int py_process_decoder(void *base, const char *input, int input_size, char **output, int *output_size);
698
699
716AisDeployC_API int py_get_json_str_results(void *base, char **output, int *output_size);
717
718
735 void *base,
736 std::vector<classification> & per_batch_cls
737);
738
755 void *base,
756 std::vector<std::vector<std::vector<float>>> & per_batch_pose
757);
758
759#endif //AISDEPLOYC_INTERFACE_H
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输出格式的接口
#define AisDeployC_API
Definition interface.h:13
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
Definition interface.h:8
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输出格式的接口
std::string category
Definition interface.h:20
float score
Definition interface.h:21
std::string category
Definition interface.h:32