pub struct OrtInfer { /* private fields */ }Expand description
Core ONNX Runtime inference engine with support for pooling and configurable sessions.
Implementations§
Source§impl OrtInfer
impl OrtInfer
Sourcepub fn new(
model_path: impl AsRef<Path>,
input_name: Option<&str>,
) -> Result<OrtInfer, OCRError>
pub fn new( model_path: impl AsRef<Path>, input_name: Option<&str>, ) -> Result<OrtInfer, OCRError>
Creates a new OrtInfer instance with default ONNX Runtime settings and a single session.
Sourcepub fn from_config(
common: &ModelInferenceConfig,
model_path: impl AsRef<Path>,
input_name: Option<&str>,
) -> Result<OrtInfer, OCRError>
pub fn from_config( common: &ModelInferenceConfig, model_path: impl AsRef<Path>, input_name: Option<&str>, ) -> Result<OrtInfer, OCRError>
Creates a new OrtInfer instance from ModelInferenceConfig, applying ORT session configuration.
Source§impl OrtInfer
impl OrtInfer
Sourcepub fn model_path(&self) -> &Path
pub fn model_path(&self) -> &Path
Returns the model path associated with this inference engine.
Sourcepub fn model_name(&self) -> &str
pub fn model_name(&self) -> &str
Returns the model name associated with this inference engine.
pub fn infer_4d( &self, x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, ) -> Result<ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, OCRError>
pub fn infer_2d( &self, x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, ) -> Result<ArrayBase<OwnedRepr<f32>, Dim<[usize; 2]>>, OCRError>
pub fn infer_3d( &self, x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, ) -> Result<ArrayBase<OwnedRepr<f32>, Dim<[usize; 3]>>, OCRError>
Sourcepub fn infer_2d_i64(
&self,
x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>,
) -> Result<ArrayBase<OwnedRepr<i64>, Dim<[usize; 2]>>, OCRError>
pub fn infer_2d_i64( &self, x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, ) -> Result<ArrayBase<OwnedRepr<i64>, Dim<[usize; 2]>>, OCRError>
Runs inference and returns a 2D int64 tensor.
This is useful for models that output token IDs (e.g., formula recognition). The output shape is typically [batch_size, sequence_length].
Sourcepub fn infer_dual_3d(
&self,
x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>,
) -> Result<(ArrayBase<OwnedRepr<f32>, Dim<[usize; 3]>>, ArrayBase<OwnedRepr<f32>, Dim<[usize; 3]>>), OCRError>
pub fn infer_dual_3d( &self, x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, ) -> Result<(ArrayBase<OwnedRepr<f32>, Dim<[usize; 3]>>, ArrayBase<OwnedRepr<f32>, Dim<[usize; 3]>>), OCRError>
Runs inference for models with dual 3D outputs.
This is used for models like SLANet that output two 3D tensors. The first output is typically structure/token predictions, and the second is bounding box predictions or similar auxiliary outputs.
§Returns
A tuple of two 3D tensors: (first_output, second_output)
Sourcepub fn infer_4d_layout(
&self,
x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>,
scale_factor: Option<ArrayBase<OwnedRepr<f32>, Dim<[usize; 2]>>>,
im_shape: Option<ArrayBase<OwnedRepr<f32>, Dim<[usize; 2]>>>,
) -> Result<ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, OCRError>
pub fn infer_4d_layout( &self, x: &ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, scale_factor: Option<ArrayBase<OwnedRepr<f32>, Dim<[usize; 2]>>>, im_shape: Option<ArrayBase<OwnedRepr<f32>, Dim<[usize; 2]>>>, ) -> Result<ArrayBase<OwnedRepr<f32>, Dim<[usize; 4]>>, OCRError>
Runs inference with multiple inputs for layout detection models.
Layout detection models typically require:
image: The preprocessed image tensor [N, 3, H, W]scale_factor: Scale factors used during preprocessing [N, 2] (for PicoDet)im_shape: Original image shape [N, 2] (for PP-DocLayout)
Source§impl OrtInfer
impl OrtInfer
Sourcepub fn input_name(&self) -> &str
pub fn input_name(&self) -> &str
Returns the input tensor name.
Sourcepub fn get_session(
&self,
idx: usize,
) -> Result<MutexGuard<'_, Session>, OCRError>
pub fn get_session( &self, idx: usize, ) -> Result<MutexGuard<'_, Session>, OCRError>
Gets a session from the pool.
Sourcepub fn primary_input_shape(&self) -> Option<Vec<i64>>
pub fn primary_input_shape(&self) -> Option<Vec<i64>>
Attempts to retrieve the primary input tensor shape from the first session.
Returns a vector of dimensions if available. Dynamic dimensions (e.g., -1) are returned as-is.
Trait Implementations§
Source§impl From<OrtInfer> for OrtInfer2D
impl From<OrtInfer> for OrtInfer2D
Source§fn from(inner: OrtInfer) -> OrtInfer2D
fn from(inner: OrtInfer) -> OrtInfer2D
Source§impl From<OrtInfer> for OrtInfer3D
impl From<OrtInfer> for OrtInfer3D
Source§fn from(inner: OrtInfer) -> OrtInfer3D
fn from(inner: OrtInfer) -> OrtInfer3D
Source§impl From<OrtInfer> for OrtInfer4D
impl From<OrtInfer> for OrtInfer4D
Source§fn from(inner: OrtInfer) -> OrtInfer4D
fn from(inner: OrtInfer) -> OrtInfer4D
Auto Trait Implementations§
impl !Freeze for OrtInfer
impl RefUnwindSafe for OrtInfer
impl Send for OrtInfer
impl Sync for OrtInfer
impl Unpin for OrtInfer
impl UnwindSafe for OrtInfer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.