IP Library › Granted Patent US 12,443,470
Granted Patent B2
US 12,443,470 · App. 18/079,963 · Granted Oct 14, 2025

Determining a post-processing configuration for post-processing output data from a pipeline

Inventors: Daniel Situnayake (Mt. Pleasant, SC); Johannes Jongboom (Amsterdam, NL); Sergi Mansilla Molins (Barcelona, ES)
Assignee: EDGEIMPULSE INCORPORATED
G06F9/544G06F9/542
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,443,470
App. No.
18/079,963
Filed
Dec 13, 2022
Granted
Oct 14, 2025
Kind
B2
Art Unit
2194
USPC
719/310
Abstract

A system may configure a pipeline for a target device. The pipeline may include a signal processing component and a machine learning component. The pipeline may be configured to receive input data and generate output data based on the input data. For example, the output data may indicate detections in an output stream based on events in the input data in an input stream. The system may determine multiple post-processing configurations for post-processing the output data. A post-processing configuration may be configured to generate a detectable event based on the output data. The multiple post-processing configurations may be generated using a multi-objective optimization that varies one or more parameters for generating the detectable event.

Claims (42)

1. A method, comprising:

configuring a pipeline for a target device, the pipeline including a signal processing component and a machine learning component, wherein the pipeline is configured to receive input data and generate output data based on the input data; and

determining multiple post-processing configurations for post-processing the output data, wherein a post-processing configuration is configured to generate a detectable event based on the output data, and wherein the multiple post-processing configurations are generated using a multi-objective optimization that varies one or more parameters for generating the detectable event.

2. The method of claim 1 , further comprising:

receiving a selection of a first post-processing configuration from among the multiple post-processing configurations; and

configuring the first post-processing configuration for an embedded device corresponding to the target device.

3. The method of claim 1 , wherein the one or more parameters are configured to control filtering the output data by changing a window that averages detections in the output data.

4. The method of claim 1 , wherein the one or more parameters are configured to control thresholding of the output data by changing a level at which detections in the output data are determined.

5. The method of claim 1 , wherein the multi-objective optimization determines the multiple post-processing configurations by determining optimizations of precision and recall.

6. The method of claim 1 , wherein the multiple post-processing configurations represent a Pareto frontier that based on precision and recall.

7. The method of claim 1 , wherein the multiple post-processing configurations represent a Pareto frontier, the method further comprising:

configuring a graphical user interface (GUI) to display the multiple post-processing configurations as multiple points of the Pareto frontier.

8. The method of claim 1 , further comprising:

configuring a GUI to display a first post-processing configuration representing a default post-processing configuration before applying the multi-objective optimization.

9. The method of claim 1 , further comprising:

configuring the input data in a background stream and adding one or more detectable events at predetermined locations in the background stream.

10. The method of claim 1 , further comprising:

configuring the input data in a background stream and adding one or more anomalies at predetermined locations in the background stream.

11. The method of claim 1 , further comprising:

determining a latency of an embedded device corresponding to the target device; and

using the latency to change the one or more parameters.

12. An apparatus, comprising:

a memory; and

a processor configured to execute instructions stored in the memory to:

receive an input indicating a target device;

configure a pipeline for the target device, the pipeline including a signal processing component and a machine learning component, wherein the pipeline is configured to receive input data and generate output data based on the input data; and

determine multiple post-processing configurations for post-processing the output data, wherein a post-processing configuration is configured to generate a detectable event based on the output data, and wherein the multiple post-processing configurations are generated using a multi-objective optimization that varies one or more parameters for generating the detectable event.

13. The apparatus of claim 12 , wherein the processor is further configured to execute instructions stored in the memory to:

receive a selection of a first post-processing configuration from among the multiple post-processing configurations; and

configure the first post-processing configuration for an microcontroller corresponding to the target device.

14. The apparatus of claim 12 , wherein the pipeline implements a sound classifier.

15. The apparatus of claim 12 , wherein the multi-objective optimization determines the multiple post-processing configurations by determining optimizations of a false acceptance rate and a false rejection rate.

16. The apparatus of claim 12 , wherein the multiple post-processing configurations represent a Pareto frontier that based on a false acceptance rate and a false rejection rate.

17. A non-transitory computer readable medium storing instructions operable to cause one or more processors to perform operations comprising:

configuring a pipeline for a target device, the pipeline including a signal processing component and a machine learning component, wherein the pipeline is configured to receive input data and generate output data based on the input data; and

determining multiple post-processing configurations for post-processing the output data, wherein a post-processing configuration is configured to generate a detectable event based on the output data, and wherein the multiple post-processing configurations are generated using a multi-objective optimization that varies one or more parameters for generating the detectable event.

18. The non-transitory computer readable medium storing instructions of claim 17 , the operations further comprising:

receiving a selection of a first post-processing configuration from among the multiple post-processing configurations; and

configuring the first post-processing configuration for an embedded device corresponding to the target device.

19. The non-transitory computer readable medium storing instructions of claim 17 , wherein the input data in the first stream is audio data from a microphone.

20. The non-transitory computer readable medium storing instructions of claim 17 , the operations further comprising:

configuring the input data in a background stream and adding one or more anomalies at predetermined locations in the background stream.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVNG PARTY NAME MISSPELLED PREVIOUSLY RECORDED AT REEL: 62064 FRAME: 67. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 11, 2024
From: SITUNAYAKE, DANIEL; JONGBOOM, JOHANNES; MOLINS, SERGI MANSILLA
To: EDGEIMPULSE INC.
Reel/Frame 069317/0981 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2022
From: SITUNAYAKE, DANIEL; JONGBOOM, JOHANNES; MOLINS, SERGI MANSILLA
To: EDGE IMPULSE INC.
Reel/Frame 062064/0067 →
Continuity (1)
Related Publication 20240193018A1 · Jun 13, 2024
References Cited (5)
US 20060064246A1 · Medberry · 2006 [cited by examiner]
US 20130212154A1 · Lehto · 2013 [cited by examiner]
US 20160098306A1 · Chang · 2016 [cited by examiner]
O'Reilly TinyML Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers by Pete Warden and Daniel Situnayake; 2020; “Understanding the Model Output” at p. 213; 6 pages. [cited by applicant]
Tensorflow by Pete Warden and Yu-Cheng Ling; 2017; Accessed Mar. 6, 2023; https://github.com/tensorflow/tensorflow/blob/be4f6874533d78f662d9777b66abe3cdde98f901/tensorflow/lite/experimental/micro/examples/micro_speech/r… [cited by applicant]