#pragma once #include #include "NvInfer.h" #include "types.h" cv::Rect get_rect(cv::Mat& img, float bbox[4]); cv::Mat scale_mask(cv::Mat mask, cv::Mat img); cv::Rect get_rect_adapt_landmark(cv::Mat& img, float bbox[4], float lmk[51]); void nms(std::vector& res, float* output, float conf_thresh, float nms_thresh = 0.5); void batch_nms(std::vector>& batch_res, float* output, int batch_size, int output_size, float conf_thresh, float nms_thresh = 0.5); void draw_bbox(std::vector& img_batch, std::vector>& res_batch); void draw_bbox_keypoints_line(std::vector& img_batch, std::vector>& res_batch); void batch_process(std::vector>& res_batch, const float* decode_ptr_host, int batch_size, int bbox_element, const std::vector& img_batch); void process_decode_ptr_host(std::vector& res, const float* decode_ptr_host, int bbox_element, cv::Mat& img, int count); void cuda_decode(float* predict, int num_bboxes, float confidence_threshold, float* parray, int max_objects, cudaStream_t stream); void cuda_nms(float* parray, float nms_threshold, int max_objects, cudaStream_t stream); void draw_mask_bbox(cv::Mat& img, std::vector& dets, std::vector& masks, std::unordered_map& labels_map);