Model.h File
Model: user-facing model pipeline builder. More...
Included Headers
#include "builder/NodeGroup.h"
#include "nodes/io/Input.h"
#include "pipeline/Run.h"
#include "pipeline/TensorSpec.h"
#include <array>
#include <cstdint>
#include <memory>
#include <optional>
#include <string>
#include <unordered_map>
#include <vector>
Namespaces Index
| namespace | simaai |
| namespace | neat |
| namespace | internal |
Classes Index
| class | Model |
| struct | PreprocConfig |
| struct | InferenceTerminalPolicy |
| struct | Options |
| struct | SessionOptions |
| class | Runner |
Description
Model: user-facing model pipeline builder.
File Listing
The file content with the documentation metadata removed is:
9#include "nodes/io/Input.h"
10#include "pipeline/Run.h"
11#include "pipeline/TensorSpec.h"
25namespace simaai::neat {
31using TensorSpec = TensorConstraint;
35 struct PreprocConfig {
36 std::optional<int> input_width;
37 std::optional<int> input_height;
38 std::optional<int> output_width;
39 std::optional<int> output_height;
40 std::optional<int> scaled_width;
41 std::optional<int> scaled_height;
42 std::optional<std::string> input_img_type;
43 std::optional<std::string> output_img_type;
45 std::optional<bool> aspect_ratio;
46 std::optional<std::array<float, 3>> channel_mean;
47 std::optional<std::array<float, 3>> channel_stddev;
48 std::optional<std::string> scaling_type;
49 std::optional<std::string> padding_type;
52 struct InferenceTerminalPolicy {
54 std::optional<std::size_t> last_stage_index;
55 std::optional<std::string> last_stage_name;
56 std::optional<std::string> last_plugin_id;
57 std::optional<std::string> last_processor;
62 std::string media_type = "video/x-raw";
67 int input_max_width = 0;
68 int input_max_height = 0;
69 int input_max_depth = 0;
75 std::string decode_type;
76 float score_threshold = 0.0f;
77 float nms_iou_threshold = 0.0f;
79 int original_width = 0;
80 int original_height = 0;
83 std::string upstream_name = "decoder";
84 std::string name_suffix;
89 struct SessionOptions {
90 bool include_appsrc = true;
91 bool include_appsink = true;
92 std::string upstream_name;
93 std::string name_suffix;
94 std::string buffer_name;
97 enum class Stage { Preprocess, Inference, Postprocess, Full };
107 simaai::neat::NodeGroup preprocess() const;
109 simaai::neat::NodeGroup postprocess() const;
111 simaai::neat::NodeGroup session(SessionOptions opt) const;
114 TensorSpec input_spec() const;
115 TensorSpec output_spec() const;
120 std::string backend_fragment(Stage stage) const;
122 simaai::neat::InputOptions input_appsrc_options(bool tensor_mode) const;
123 std::string find_config_path_by_plugin(const std::string& plugin_id) const;
124 std::string find_config_path_by_processor(const std::string& processor) const;
125 std::string infer_output_name() const;
130 explicit Runner(simaai::neat::Run run);
132 explicit operator bool() const noexcept;
136 bool push(const simaai::neat::Tensor& input);
137 bool push(const simaai::neat::Sample& input);
140 simaai::neat::Sample run(const cv::Mat& input, int timeout_ms = -1);
142 simaai::neat::Sample run(const simaai::neat::Tensor& input, int timeout_ms = -1);
143 simaai::neat::Sample run(const simaai::neat::Sample& input, int timeout_ms = -1);
144 int warmup(const simaai::neat::Tensor& input, int warm = -1, int timeout_ms = -1);
148 simaai::neat::Run run_{};
152 static const SessionOptions& default_session_options();
153 static const simaai::neat::RunOptions& default_run_options();
157 Runner build(const SessionOptions& opt);
158 Runner build(const simaai::neat::Tensor& input,
159 const SessionOptions& opt = default_session_options(),
160 const simaai::neat::RunOptions& run_opt = default_run_options());
161 Runner build(const simaai::neat::Sample& input,
162 const SessionOptions& opt = default_session_options(),
163 const simaai::neat::RunOptions& run_opt = default_run_options());
165 Runner build(const cv::Mat& input, const SessionOptions& opt = default_session_options(),
166 const simaai::neat::RunOptions& run_opt = default_run_options());
170 simaai::neat::Sample run(const simaai::neat::Tensor& input, int timeout_ms = -1);
171 simaai::neat::Sample run(const std::vector<Tensor>& inputs, int timeout_ms = -1);
172 simaai::neat::Sample run(const simaai::neat::Sample& input, int timeout_ms = -1);
174 simaai::neat::Sample run(const cv::Mat& input, int timeout_ms = -1);
178 friend struct internal::ModelAccess;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.