Signaloid C0-microSD

Use Case Family:

Robotics and Sensors

Use Case

Uncertainty Quantification of Melexis MLX90640 ADC Conversion Routines

Infrared (IR) sensors such as the Melexis MLX90640 are an important part of many robot automation, security, and health systems. IR sensors provide a spatial thermal map of an object and are essential for important applications ranging from measuring body temperatures of humans to estimate presence of a fever, to detecting overheating in factory machinery. Like all sensors that provide a measurement that is eventually digitized for processing by software, the sensor data output of the MLX90640 must be processed by a calibration or conversion algorithm to convert the raw digitized analog sensor readings into a value with units of measure and meaning. Any uncertainty about the parameters to these conversion routines leads to uncertainty in the final output calibrated reading. For example, the thermal emissivity of the material in view at each pixel in the final image should ideally be used for calculating the temperature value for each pixel in the IR image. Since the computing systems on which the conversion routines typically run cannot natively process data uncertainty information, many organizations in practice use average case values. Sensor conversion routines running on Signaloid's platform can easily process such uncertainty information with little or no change needed to the conversion routine firmware.

This use case example quantifies the ease of implementation and the speed of execution, of automating the uncertainty quantification (UQ) of sensor data conversion firmware for the MLX90640. The evaluation runs the software of the use case over an instance of the Signaloid Compute Engine. The output of the execution is both the usual calibrated temperature output as well as programmatically-accessible information on the uncertainty of the calibrated temperature outputs as a function of the measurement uncertainty in the raw sensor transducer voltage output. Such UQ can provide valuable design-time as well as real-time safety information. The implementation overhead and execution cost of the status quo method of Monte Carlo simulation however discourages many organizations from implementing UQ for sensor data conversion routines.

Signaloid's technology makes it possible, for the first time, to take existing transducer output calibration firmware and perform uncertainty quantification on it, with low engineering effort and with low computation overhead. These benefits open the door to pervasive implementation and use of UQ, even permitting real-time uncertainty quantification within edge-of-the-network autonomous systems.

Key Performance Indicator

Key Performance Indicator

Key Performance Indicator

Signaloid Platform Solution

Signaloid Platform Solution

Signaloid Platform Solution

Competing Solution

Competing Solution

Competing Solution

Signaloid Benefit

Signaloid Benefit

Signaloid Benefit

Speed for same uncertainty quantification quality.

Speed for same uncertainty quantification quality.

Speed for same uncertainty quantification quality.

Run existing non-Monte-Carlo code and use either the Signaloid Compute Engine's automated ingestion of distribution information, or use the Signaloid UxHw API to set program variables as probability distributions.

Run existing non-Monte-Carlo code and use either the Signaloid Compute Engine's automated ingestion of distribution information, or use the Signaloid UxHw API to set program variables as probability distributions.

Run existing non-Monte-Carlo code and use either the Signaloid Compute Engine's automated ingestion of distribution information, or use the Signaloid UxHw API to set program variables as probability distributions.

Run existing Monte Carlo code, or, starting from non-Monte-Carlo code, modify code to implement Monte Carlo sampling, iteration, and aggregation of the results from the Monte Carlo iterations of the computation.

Run existing Monte Carlo code, or, starting from non-Monte-Carlo code, modify code to implement Monte Carlo sampling, iteration, and aggregation of the results from the Monte Carlo iterations of the computation.

Run existing Monte Carlo code, or, starting from non-Monte-Carlo code, modify code to implement Monte Carlo sampling, iteration, and aggregation of the results from the Monte Carlo iterations of the computation.

45x faster execution time than 85k-iteration Monte Carlo, while achieving same fidelity of full distribution result.

45x faster execution time than 85k-iteration Monte Carlo, while achieving same fidelity of full distribution result.

45x faster execution time than 85k-iteration Monte Carlo, while achieving same fidelity of full distribution result.

Note 1:

The underlying distribution representations are not literal histograms: The distribution plots use an adaptive algorithm to render a mutually-consistent and human-interpretable depiction for both the Signaloid distribution representations and the Monte Carlo samples, to permit qualitative comparison.

Note 2:

Because Monte Carlo works by statistical sampling, each set of multi-iteration Monte Carlo runs (e.g., each time a 200k-iteration Monte Carlo is run) will result in a slightly different final distribution. By contrast, the results from Signaloid's platform are completely deterministic and yield the same distribution each time, for a given Signaloid C0 core type. The performance improvement over Monte Carlo results above show the performance speedup of running on Signaloid's platform, compared to running a Monte Carlo on an AWS r7iz high-performance AWS instance, for the same quality of distribution while accounting for the variations inherent in Monte Carlo. To compare the quality of distribution, we run a large Monte Carlo until convergence (e.g., 1M iterations) and use this as a baseline or ground truth reference for distribution quality (not for performance). We then compare performance of the Signaloid solution against a Monte Carlo iteration count for which the output distributions of 100 out of 100 repetitions are all at smaller Wasserstein distance (than the Signaloid-core-executed algorithm's output distribution) to the output distribution of the baseline reference. Intuitively, this analysis gives the Monte Carlo iteration count that results in an output distribution that is never worse than the Signaloid-core-executed computation's output distribution. 45x speedup achieved on a Signaloid C0Pro-S (Jupiter) core. Performance data based on Spring 2024 release of Signaloid's technology.