Skip to main content
Edge Impulse models (e.g., .eim) are loaded via the SDK’s ImageImpulseRunner. With the secure loader, verification happens before the model is initialized:
from edge_impulse_linux.image import ImageImpulseRunner
from thistle_secure_loader import secure_load

def edge_impulse_loader(path: str):
    runner = ImageImpulseRunner(path)
    runner.init()
    return runner

MODEL_PATH = "modelfile.eim"

runner = secure_load(MODEL_PATH, edge_impulse_loader)
print("Edge Impulse model verified and ready.")
The secure_load call verifies the .eim file’s signature using tuc before passing it to ImageImpulseRunner. If the signature check fails, a ModelVerificationError is raised and the model is never loaded.

Requirements

edge-impulse-linux>=1.0.0
PyAudio>=0.2.14                # required by edge_impulse_linux (audio submodule loaded on import)
opencv-python>=4.5.1,<5        # required by edge_impulse_linux (image processing)