Struct EdgeImpulseModel

Source
pub struct EdgeImpulseModel {
    backend: Box<dyn InferenceBackend>,
}
Expand description

Main Edge Impulse model interface that abstracts over different backends

This struct provides a unified interface for running inference on Edge Impulse models, regardless of whether you’re using EIM binary communication or FFI direct calls. The backend is automatically selected based on the constructor used.

§Examples

use edge_impulse_runner::EdgeImpulseModel;

// EIM mode (default)
let mut model = EdgeImpulseModel::new("model.eim")?;

// FFI mode
let mut model = EdgeImpulseModel::new_ffi(false)?;

// Run inference
let result = model.infer(vec![0.1, 0.2, 0.3], None)?;

Fields§

§backend: Box<dyn InferenceBackend>

Implementations§

Source§

impl EdgeImpulseModel

Source

pub fn new<P: AsRef<Path>>(model_path: P) -> Result<Self, EdgeImpulseError>

Create a new model instance using EIM backend

Source

pub fn new_with_socket<P: AsRef<Path>>( model_path: P, socket_path: P, ) -> Result<Self, EdgeImpulseError>

Create a new model instance using EIM backend with custom socket path

Source

pub fn new_with_debug<P: AsRef<Path>>( model_path: P, debug: bool, ) -> Result<Self, EdgeImpulseError>

Create a new model instance using EIM backend with debug output

Source

pub fn new_ffi(debug: bool) -> Result<Self, EdgeImpulseError>

Create a new model instance using FFI backend

Source

pub fn infer( &mut self, features: Vec<f32>, debug: Option<bool>, ) -> Result<InferenceResponse, EdgeImpulseError>

Run inference on the provided features

Source

pub fn parameters(&self) -> Result<&ModelParameters, EdgeImpulseError>

Get model parameters

Source

pub fn sensor_type(&self) -> Result<SensorType, EdgeImpulseError>

Get sensor type

Source

pub fn input_size(&self) -> Result<usize, EdgeImpulseError>

Get input size

Source

pub fn normalize_visual_anomaly( &self, anomaly: f32, max: f32, mean: f32, regions: &[(f32, u32, u32, u32, u32)], ) -> VisualAnomalyResult

Normalize visual anomaly results

Trait Implementations§

Source§

impl Debug for EdgeImpulseModel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,