36 explicit ONNXSam3(
const std::filesystem::path &model_dir,
37 bool use_cuda =
false);
43 static std::unique_ptr<ONNXSam3>
44 create(
const std::filesystem::path &model_dir,
bool use_cuda =
false);
54 std::vector<IDataset::Pair>
55 forward(
const std::span<IDataset::Pair> &input)
override;
68 std::pair<std::vector<float>, cv::Mat> preprocess(
const cv::Mat &image)
const;
73 std::pair<std::array<int64_t, 32>, std::array<int64_t, 32>>
74 tokenize(
const std::string &text);
83 Ort::SessionOptions session_options_;
84 std::unique_ptr<Ort::Session> vision_encoder_;
85 std::unique_ptr<Ort::Session> text_encoder_;
86 std::unique_ptr<Ort::Session> decoder_;
89 std::unique_ptr<tokenizers::Tokenizer> tokenizer_;
92 int input_size_ = 1008;
93 int num_queries_ = 200;
94 int mask_height_ = 288;
95 int mask_width_ = 288;
98 std::unordered_map<std::string,
99 std::pair<std::array<int64_t, 32>, std::array<int64_t, 32>>>
103 Ort::MemoryInfo memory_info_;