#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace PaddleSolution { class Predictor { public: // init a predictor with a yaml config file int init(const std::string& conf); // predict api int predict(const std::vector& imgs); private: int output_mask( const std::string& fname, float* p_out, int length, int* height = NULL, int* width = NULL); int native_predict(const std::vector& imgs); int analysis_predict(const std::vector& imgs); private: std::vector _buffer; std::vector _org_width; std::vector _org_height; std::vector _imgs_batch; std::vector _outputs; std::vector _mask; std::vector _scoremap; PaddleSolution::PaddleSegModelConfigPaser _model_config; std::shared_ptr _preprocessor; std::unique_ptr _main_predictor; }; }