Correction of data
The method addresses the challenge of correcting erroneous data elements in temporal sequences by identifying stable subsequences and using bidirectional contextual information, enhancing accuracy through weighted combinations and probabilistic methods.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-08-27
- Publication Date
- 2026-03-05
AI Technical Summary
Existing data processing systems face challenges in accurately correcting erroneous data elements within temporal sequences due to sensor malfunctions and prediction errors, necessitating more precise and flexible correction mechanisms.
A computer-implemented method that identifies stable subsequences meeting specific stability criteria, using the length of these subsequences to correct erroneous data elements by leveraging bidirectional contextual information from neighboring accurate data elements, incorporating techniques like Kalman filters and template matching for enhanced accuracy.
Improves data correction accuracy by utilizing the stability characteristics of surrounding data sequences, providing robust and reliable corrections through weighted combinations and probabilistic approaches, ensuring corrections are based on reliable data patterns.
Smart Images

Figure EP2025074326_05032026_PF_FP_ABST
Abstract
Description
[0001] CORRECTION OF DATA
[0002] FIELD OF THE INVENTION
[0003] The present invention relates to the field of data processing, and in particular to processing of data elements.
[0004] BACKGROUND OF THE INVENTION
[0005] Data processing systems often deal with or produce large volumes of temporal data, i.e., temporal sequences of data elements. As one working example, a temporal sequence of data elements may comprise a predicted location of a predetermined object (e.g., a head or a hand) within a respective temporal sequence of instances of image data. Other examples of temporal sequences will be readily apparent to the skilled person, such as temporal sequences of sensor readings or the like.
[0006] These temporal sequences may contain errors or inaccuracies, due to various factors like sensor malfunctions, prediction errors. Identifying and correcting these erroneous data elements is an ongoing challenge in many fields.
[0007] Whilst error detection techniques are widely known and evolved, there is a particular demand for more accurate or flexible mechanisms for correcting erroneous data elements within a temporal sequence of data elements.
[0008] SUMMARY OF THE INVENTION
[0009] The invention is defined by the claims.
[0010] In accordance with a proposed approach, there is provided a computer-implemented method for correcting one or more erroneous data elements in a temporal sequence of data elements, wherein the temporal sequence comprises, as the data elements, the one or more erroneous data elements and accurate data elements, wherein the computer-implemented method comprises: for each of the one or more erroneous data elements: identifying the length of one or more stable subsequences of data elements that meet one or more stability criteria, the one or more stable subsequences including at least a nearest stable subsequence to the erroneous data element; and correcting the erroneous data element responsive to at least the length of at least the nearest stable subsequence to the erroneous data element; wherein the one or more stability criteria comprises a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements.
[0011] The method provides a systematic approach for correcting erroneous data elements by leveraging the stability characteristics of surrounding data sequences, enabling more accurate data correction based on the reliability of neighboring data. This approach improves data correction accuracy by considering the length (and therefore stability) of surrounding data sequences. The stability criteria for the surrounding data sequences helps ensure that corrections are based on reliable data patterns rather than potentially corrupted or erroneous (e.g., false positive) regions.
[0012] In some examples, for each of the one or more erroneous data elements: the one or more stable subsequences of data elements comprises: the nearest preceding stable subsequence, being the nearest stable subsequence that precedes the erroneous data element in the temporal sequence; and the nearest following stable subsequence, being the nearest stable subsequence that follows the erroneous data element in the temporal sequence; and correcting the erroneous data element is responsive to the identified length of the nearest preceding stable subsequence and the identified length of the nearest following stable subsequence.
[0013] Using both preceding and following stable subsequences provides bidirectional context for error correction, while considering the lengths of both subsequences enables weighted correction based on the relative reliability of the surrounding data. This improves the accuracy and reliability of error correction.
[0014] In some examples, for each of the one or more erroneous data elements, correcting the erroneous data element comprises: extrapolating forwards from a first accurate data element lying within the nearest preceding stable subsequence to predict a first set of one or more values for the erroneous data element; extrapolating backwards from a second accurate data element within the nearest following stable subsequence to predict a second set of one or more values for the erroneous data element; and correcting the erroneous data element comprises combining the first set and the second set to produce a predicted set of one or more values for the erroneous data element, wherein the combining is responsive to the identified length of the nearest preceding stable subsequence and the identified length of the nearest following stable subsequence.
[0015] The bidirectional extrapolation approach provides multiple independent predictions for the erroneous data element, while the length-responsive combining mechanism ensures that more reliable predictions from longer stable subsequences receive appropriate weighting in the final correction.
[0016] In particular, correcting the erroneous data element may comprise more heavily weighting the first set of one or more values (compared to the second set of one or more values) when the nearest preceding stable subsequence has a greater length than the nearest following stable subsequence, and more heavily weighting the second set of one or more values (compared to the first set of one or more values) when the nearest following stable subsequence has a greater length than the nearest preceding stable subsequence.
[0017] In this way, correcting the erroneous data element may comprise assigning greater influence to the first set of one or more values when the nearest preceding stable subsequence comprises more data elements than the nearest following stable subsequence, and assigning greater influence to the second set of one or more values when the nearest following stable subsequence comprises more data elements than the nearest preceding stable subsequence. In some examples, for each of the one or more erroneous data elements: extrapolating forwards from the first accurate data element comprises extrapolating forwards from the first accurate data element to predict a first probability distribution for the erroneous data element, wherein the first probability distribution is responsive to the length of the nearest preceding stable subsequence; extrapolating backwards from the second accurate data element comprises extrapolating backwards from the second accurate data element to predict a second probability distribution for the erroneous data element, wherein the second probability distribution is responsive to the length of the nearest following stable subsequence; and correcting the erroneous data element comprises processing at least the first probability distribution and the second probability distribution.
[0018] The probabilistic approach provides uncertainty quantification for the predictions, enabling more sophisticated error correction decisions, while the length-responsive probability distributions allow the proposed approach to express greater confidence in predictions derived from longer stable subsequences.
[0019] In some examples, for each of the one or more erroneous data elements: extrapolating forward from the first accurate data element comprises: defining a first initial probability distribution for the first accurate data element responsive to the length of the nearest preceding stable subsequence; and using a first Kalman filter to process the first initial probability distribution to predict the first probability distribution for the erroneous data element; and extrapolating backwards from the second accurate data element comprises: defining a second initial probability distribution for the second accurate data element responsive to the length of the nearest following stable subsequence; and using a second Kalman filter to process the second initial probability distribution to predict the second probability distribution for the erroneous data element.
[0020] In some examples, for each of the one or more erroneous data elements, correcting the erroneous data element comprises fusing at least the first probability distribution and the second probability distribution to generate a predicted set of one or more values for the erroneous data element. The fusion process combines multiple probabilistic predictions into a single coherent estimate, while maintaining the uncertainty information from both directions to produce more robust and reliable corrections.
[0021] In some examples, the method further comprises, for each of the one or more erroneous data elements, obtaining one or more further predicted sets of one or more values for the erroneous data element using one or more further prediction techniques, wherein, for each of the one or more erroneous data elements, correcting the erroneous data element is further responsive to the one or more further predicted sets of one or more values for said erroneous data element.
[0022] The integration of additional prediction techniques provides complementary information sources that can improve correction accuracy, while the multi-technique approach increases robustness against systematic errors that might affect individual prediction methods. In some examples, each data element in the temporal sequence of data elements represents a predicted location of a predetermined object in a respective instance of image data in a temporal sequence of instances of image data, such that each data element is associated with a predicted location and a respective instance of image data.
[0023] In some examples, for each of the one or more erroneous data elements, obtaining one or more further predicted sets of one or more values for the erroneous data element comprises processing the instance of image data associated with the erroneous data element using a first template matching technique to generate a first further predicted set of one or more values for the erroneous data element.
[0024] The template matching technique provides direct visual evidence for object location correction, while the integration with temporal prediction methods creates a comprehensive approach that combines both spatial and temporal information sources. This provides a vision-modulated belief fusion method that forces the estimate from the sequence of data elements to be pulled towards locations that have at least some visual support in the actual instance of image data associated with the erroneous data element. It reduces a risk of any interpolation or extrapolation from completely hallucinating a path and keeps it consistent with the image data.
[0025] In some examples, for each of the one or more erroneous data elements: obtaining one or more further predicted sets of one or more values for the erroneous data element comprises processing the instance of image data associated with the erroneous data element using the first template matching technique to generate a third probability distribution for the erroneous data element; and correcting the erroneous data element further comprises processing the third probability distribution.
[0026] In some examples, the stability criteria comprises a second criterion that the stable subsequence comprises no fewer than a predetermined percentage of accurate data elements. This percentage-based criterion ensures that subsequences used for correction contain a sufficient proportion of reliable data to support accurate extrapolation or interpolation.
[0027] In some examples, the predetermined percentage is no less than 90%. This ensures that stable subsequences are predominantly composed of accurate data elements.
[0028] In some examples, the first predetermined length is 1. This prevents any single erroneous data element from appearing within a stable subsequence, improving a reliability of stable subsequences from which correction is performed. .
[0029] In accordance with a proposed approach, there is also provided a non-transitory computer-readable storage medium comprising instructions that when executed by at least one processor, cause the at least one processor to perform the computer-implemented method of any herein proposed method.
[0030] In accordance with a proposed approach, there is also provided a processing system for correcting one or more erroneous data elements in a temporal sequence of data elements, wherein the temporal sequence comprises, as the data elements, the one or more erroneous data elements and accurate data elements, the processing system comprising: at least one processor; and a memory storing instructions that, when executed by the processor, configure the processing system to, for each of the one or more erroneous data elements: identify the length of one or more stable subsequences of data elements that meet one or more stability criteria, the one or more stable subsequences including at least a nearest stable subsequence to the erroneous data element; and correct the erroneous data element responsive to at least the length of at least the nearest stable subsequence to the erroneous data element; wherein the one or more stability criteria comprises a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements.
[0031] The skilled person would be readily capable of modifying the processing system to perform the steps of any herein proposed (computer-implemented) method and vice versa.
[0032] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiment(s) described hereinafter.
[0033] BRIEF DESCRIPTION OF THE DRAWINGS
[0034] To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.
[0035] Fig. 1 illustrates a sequence of data element;
[0036] Fig. 2 illustrates a flowchart of a method for correcting an erroneous data element in a temporal sequence of data elements;
[0037] Fig. 3 illustrates a flowchart of a bidirectional method for correcting erroneous data elements in a temporal sequence of data elements;
[0038] Fig. 4 illustrates a flowchart of a method for correcting an erroneous data element; and Fig. 5 illustrates a flowchart of a bidirectional method incorporating additional prediction techniques for correcting erroneous data elements.
[0039] DETAILED DESCRIPTION
[0040] The invention will be described with reference to the Figures.
[0041] It should be understood that the detailed description and specific examples, while indicating exemplary embodiments of the apparatus, systems and methods, are intended for purposes of illustration only and are not intended to limit the scope of the invention. These and other features, aspects, and advantages of the apparatus, systems and methods of the present invention will become better understood from the following description, appended claims, and accompanying drawings. It should be understood that the Figures are merely schematic and are not drawn to scale. It should also be understood that the same reference numerals are used throughout the Figures to indicate the same or similar parts.
[0042] There is proposed a mechanism for correcting erroneous data points within temporal data sequences using the stability characteristics of nearby subsequences of accurate data points. The proposed approach identifies stable subsequences that meet stability criteria, particularly ensuring these subsequences contain no contiguous groups of erroneous elements exceeding a predetermined threshold. A correction process exploits the length of these stable regions as an indicator of reliability in correcting the erroneous data point(s).
[0043] Fig. 1 conceptually illustrates a temporal sequence 100 of data elements 101 - 115 for improved contextual understanding.
[0044] Each data element may be a time-dependent or time-varying value or set of values. For instance, each data element may represent a predicted location of an object within an instance of image data (e.g., a frame of a video), a sensor measurement at a particular time, a data point in a time series, or any other value that varies over time.
[0045] In particular, each data element may be associated with a respective instance of image data (e.g., frame of a video). Each data element may represent an output of a processing task performed on the instance of image data. For example, each data element may comprise an output of a machine learning model that has been trained to process the instance of image data to generate predictions, classifications, or extracted features.
[0046] As a working example, each data element may represent a predicted location of (a representation of) an object within an instance of image data. Each data element may be produced using a machine-learning model trained to process an instance of image data to generate a predicted location of a (representation of) the object within the instance of image data.
[0047] The temporal sequence of data elements comprises accurate data elements 101, 102, 103, 107, 108 109, 110, 111, 112 (represented with a solid outline) and erroneous data elements 104, 105, 106, 113, 114, 115 (represented with a broken or dotted outline). Each data element is associated with a respective position or timestep within the temporal sequence.
[0048] Each erroneous data element may be a data element that has been flagged as or otherwise predicted to be potentially erroneous. Each accurate data element may be a data element that has been predicted to be reliable or correct within the temporal sequence, e.g., not flagged as or predicted to be potentially erroneous.
[0049] Approaches for processing data elements of a temporal sequence of data elements and predicting / classifying whether or not said data element is accurate or erroneous are well known in the art. For instance, one or more machine learning models may be trained to classify data elements as accurate or inaccurate.
[0050] As another example, one or more statistical methods may be employed to identify erroneous data elements by analyzing the distribution and variance of values within sliding windows of the temporal sequence. Exemplary methods may calculate metrics such as z-scores, interquartile ranges, or moving averages to detect data elements that deviate significantly from expected statistical norms, thereby flagging them as potentially erroneous.
[0051] In some examples, a data element may be flagged or identified as erroneous if for example, the data element deviate(s) from a temporal pattern of the temporal sequence. In some examples, where each data element is an output of a processing task, one or more erroneous data elements may represent a failure of the processing task to produce a predicted output (e.g., with sufficient confidence), i.e., false negatives, despite the predicted output being present in the processed data.
[0052] The present disclosure proposes a new mechanism for correcting erroneous data elements within temporal sequences by exploiting contextual information from surrounding or nearby accurate data elements. The proposed approach recognizes that accurate data elements may have different reliability characteristics depending on their position within the temporal sequence - specifically, whether they fall within stable subsequences or more isolated regions.
[0053] Proposed methods address the technical challenge of how to appropriately make use of information from accurate data elements when correcting nearby erroneous ones. Rather than treating all accurate data elements equally, the approach classifies each accurate data element based on its contextual position within subsequences that meet certain stability criteria.
[0054] In particular, the present disclosure recognizes that longer subsequences of accurate data elements may provide more reliable contextual information for correction purposes than shorter subsequences or even isolated accurate data elements.
[0055] More particularly, it has been recognized that prediction the value(s) for an erroneous data element using a longer subsequence of accurate data elements can be performed with more confidence and / or more reliably than when using a shorter subsequence of accurate data elements.
[0056] Conceptually, each accurate data element is therefore assignable or classifiable to a stable subsequence of data elements that meets stability criteria. The stability criteria includes a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements.
[0057] The length of such a stable subsequence may represent a level of confidence or reliability in the accuracy of the data elements within that stable subsequence, where longer stable subsequences generally indicate higher confidence due to the greater stability and consistency of the surrounding data context.
[0058] For conceptual understanding, different types of stable subsequences may be categorized based on their characteristics and reliability levels.
[0059] Longer stable subsequences (e.g., comprising more than a first predetermined number of data elements) may be conceptually referred to as "continents" or “continent subsequences”. These represent large, stable regions of accurate data elements that provide high confidence for correction operations. Such continent subsequences offer robust contextual information due to their extended temporal coverage and demonstrated stability.
[0060] Medium-length stable subsequences (e.g., comprising between the first and a smaller second predetermined number of data elements) may be conceptually referred to as "islands" or “island subsequences”. These represent moderately stable regions of accurate data elements that provide reasonable confidence for correction operations. Island subsequences offer useful contextual information while being more limited in their temporal extent compared to continent subsequences.
[0061] Shorter stable subsequences or individual accurate data elements (e.g., comprising less than the second predetermined number of data elements) may be conceptually referred to as "isolated" data elements. These isolated accurate data elements may provide limited contextual information for correction purposes due to their lack of surrounding stable context, and may be associated with lower confidence levels when used for correction operations.
[0062] This conceptual framework is provided to improve an understanding of how the reliability and usefulness of accurate data elements for correction purposes varies based on their position within the temporal sequence, particularly with respect to the surrounding data context.
[0063] Conceptually, the inventors have recognized that a prediction for correcting an erroneous data element that begins from a “continent” will be more accurate or reliable than a prediction that begins from an “island”. Accordingly, the correction process may weight or prioritize information from accurate data elements based on the length of the stable subsequence into which they fall, with continent-type subsequences receiving higher weighting factors than island-type subsequences when generating corrected values for erroneous data elements.
[0064] Expressed mathematically, a stable subsequence SS is a temporally continuous or contiguous set of data elements in the temporal sequence, as follows:
[0065] SS = {t1, t2> - > tn} C1) where ti represents the i-th data element in the stable subsequence, n is the length of the stable subsequence, and the temporal ordering is preserved such that t precedes t+l in the original temporal sequence for all i E {1, 2, ... , n — 1}.
[0066] The contiguous nature of the stable subsequence means that there are no gaps or missing data elements between ti and tnwithin the original temporal sequence. Each stable subsequence maintains the temporal relationships and ordering present in the original sequence, ensuring that the contextual information derived from the stable subsequence accurately reflects the temporal dynamics of the data.
[0067] The stable subsequence meets the first criterion only when V subsequence Serr £ SS where |Serr| = Lpred and Serr contains only erroneous data elements, there does not exist such Serr. Lpred represents the first predetermined length, and | Sen 1 denotes the cardinality (length) of the subsequence Serr. In other words, the stable subsequence SS may contain erroneous data elements, but these erroneous data elements may not form contiguous groups of length equal to or greater than the first predetermined length.
[0068] In general, correction of erroneous data elements may be performed unidirectionally (i.e., extrapolation) or bidirectionally (i.e., interpolation). In unidirectional correction approaches, information from accurate data elements may be propagated in a single temporal direction, such as forward or backward through the temporal sequence. For example, a forward unidirectional approach may use information from accurate data elements that precede an erroneous data element in time to predict or estimate a corrected value. A forward unidirectional correction approach may be particularly useful for correcting live data or real-time processing scenarios where future data elements are not yet available
[0069] In bidirectional correction approaches, information from accurate data elements on both sides of an erroneous data element may be used simultaneously, e.g., to interpolate a predicted value. This may involve combining forward and backward predictions or estimates to generate a more robust correction.
[0070] The choice between unidirectional and bidirectional correction may depend upon, for instance: the availability of surrounding accurate data elements, computational constraints, and / or the specific characteristics of the temporal sequence being processed. In some cases, bidirectional correction may be preferred when accurate data elements are available on both sides of an erroneous data element, while unidirectional correction may be more suitable when accurate data elements are only available on one side (e.g., during the processing of live or regularly updated data) or when real-time processing constraints limit the ability to look ahead in the temporal sequence.
[0071] In the following description, proposed methods and approaches for correcting an erroneous data element are described. These methods may be repeated for each of one or more erroneous data elements to be corrected within the temporal sequence. It should be understood that steps or substeps need not be repeated if they have been previously performed for a given temporal sequence or if the results from previous computations remain valid and applicable (e.g., as intermediate results for use in correcting a subsequent erroneous data element).
[0072] Fig. 2 is a flowchart that illustrates a proposed generic method 200 for correcting an erroneous data element in a temporal sequence of data elements. The method 200 may be repeated or performed for each erroneous data element, as schematically illustrated with a dashed line.
[0073] The method 200 comprises identifying 210 the length of at least a nearest stable subsequence, to the erroneous data element, that meets one or more stability criteria. Throughout this disclosure, a stable subsequence is a (contiguous) subsequence of data elements within the temporal sequence that satisfies the stability criteria.
[0074] As used throughout this disclosure, the term "length" refers to the number of data elements contained within a particular set of data elements (i.e., the cardinality of the set of data elements), such as the stable subsequence of the temporal sequence. The length may be measured as a count of individual data elements, regardless of their classification as accurate or erroneous, that are included within the boundaries of a particular stable subsequence.
[0075] The stability criteria includes a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements. All other data elements of the stable subsequence (outside of the erroneous data element(s)) are accurate data elements.
[0076] In this way, a stable subsequence comprises a contiguous sequence of data elements where the majority are accurate, with any erroneous data elements occurring in isolated groups that are shorter than the first predetermined length, thereby ensuring that the stable subsequence maintains sufficient stability and reliability for use in correction operations.
[0077] In some examples, the nearest stable subsequence may be identified by scanning the temporal sequence in both directions from the erroneous data element to locate the closest contiguous group of data elements that satisfies the stability criteria. This scanning process evaluates potential stable subsequences of varying lengths to determine which ones meet the stability requirements defined by the first criterion.
[0078] In other examples (e.g., where the erroneous data element is a temporally latest data element in the temporal sequence of data elements) the nearest stable subsequence may be identified by scanning the temporal sequence in a single direction (e.g., backward) from the erroneous data element to locate the closest contiguous group of data elements that satisfies the stability criteria.
[0079] The first predetermined length serves as a threshold parameter that controls the tolerance for erroneous data elements within what would otherwise be considered a stable subsequence. The first predetermined length may, for instance, be any integer value of 1 or more, e.g., 2 or more.
[0080] The selection of the first predetermined length affects the sensitivity of the subsequence classification process. A smaller first predetermined length (e.g., 1) means that even a single erroneous data element within an otherwise stable subsequence of accurate data elements will disqualify that subsequence from being classified as the a stable subsequence. This results in more stringent requirements for subsequence stability but may lead to fewer stable subsequences meeting the stability criteria.
[0081] Referring to Fig. 1, accurate data element 102 may fall within a stable subsequence comprising data elements 101, 102, and 103, which would have a length of 3. Similarly, accurate data element 107 may fall within a longer stable subsequence comprising data elements 107, 108, 109, 110, 111, 112, which would have a length of 6.
[0082] In some examples, the stability criteria includes a second criterion that the stable subsequence comprises no fewer than a predetermined percentage of accurate data elements. The predetermined percentage may, for instance, no less than 90%. This second criterion ensures that the stable subsequence maintains a high proportion of reliable data elements, thereby providing a quantitative ensuring of overall subsequence quality.
[0083] In some examples, the stability criteria includes a third criterion that the stable subsequence begins and ends with an accurate data element. This third criterion helps ensure that the identified stable subsequences have reliable boundary conditions, as the starting and ending data elements provide stable anchor points for the stable subsequence. In some examples, the stability criteria includes a fourth criterion that the stable subsequence comprises no fewer than a minimum absolute number of accurate data elements. The minimum absolute number may, for instance, be set to a value such as 10, 50, or 100 accurate data elements, depending on the specific use case scenario and / or desired level of contextual stability.
[0084] In some examples, the stability criteria includes a fifth criterion that the stable subsequence comprises no fewer than a predetermined minimum number of data elements, i.e., is or has no less than a second predetermined length. This fifth criterion ensures that stable subsequences span a sufficient temporal extent to provide meaningful contextual information for correction operations.
[0085] The method 200 also comprises correcting 220 the erroneous data element responsive to the length of at least the nearest stable subsequence (“subsequence length”). The correction process makes use of the identified subsequence length as a reliability indicator, where longer stable subsequences that meet the criteria are treated as providing more stable and trustworthy contextual information for the correction operation.
[0086] In general, error correction comprises defining a new or corrected value or set of values for the erroneous data element, which replaces the original erroneous value or set of values in the temporal sequence. A replacement operation may involve directly substituting the erroneous data element with the newly computed corrected value(s), thereby maintaining the temporal structure and ordering.
[0087] As used herein, the term "nearest" may refer to the stable subsequence that has the shortest temporal distance to the erroneous data element being corrected (e.g., in a specified direction or, if not specified, in any direction). The temporal distance may be measured as the fewest number of data element positions between the erroneous data element and any data element within the stable subsequence. In general, a temporal distance between two data elements is measured as the absolute difference between their respective positions or indices within the temporal sequence. For example, if one data element is located at position i and another data element is located at position), the temporal distance between them is |i - j|.
[0088] The correction may be performed using any suitable technique that scale their confidence or weighting based on the subsequence length. For instance, longer stable subsequences may result in narrower probability distributions when extrapolating values, reflecting higher confidence in the predicted correction. Conversely, shorter stable subsequences that still meet the minimum criteria may result in broader probability distributions, indicating greater uncertainty in the correction process.
[0089] In some implementations, if no stable subsequences are found near an erroneous data element, an alternative correction strategy may be employed in step 220, such as using default interpolation methods or flagging the erroneous data element for manual review.
[0090] In a unidirectional approach for performing the correction process 220, information from accurate data elements may be propagated in a single temporal direction to generate a set of one or more corrected values for the erroneous data element. The process may begin by identifying the nearest stable subsequence that meets the stability criteria in the chosen direction (forward or backward) from the erroneous data element.
[0091] For a forward unidirectional approach, the method may locate the nearest stable subsequence that precedes the erroneous data element in the temporal sequence. A prediction model, such as a Kalman filter or linear extrapolation technique, may then be initialized using data from this preceding stable subsequence. The model may propagate forward through the temporal sequence, with uncertainty increasing at each step away from the stable subsequence, until reaching the position of the erroneous data element where a corrected value is generated.
[0092] The confidence or reliability of the correction may be weighted according to the length of the identified stable subsequence, where longer stable subsequences provide higher confidence predictions due to their greater stability. The temporal distance between the stable subsequence and the erroneous data element may also influence the correction process, with closer stable subsequences generally providing more accurate predictions than those separated by larger temporal gaps.
[0093] This unidirectional approach may be particularly suitable for real-time processing scenarios, e.g., where future data elements are not available.
[0094] Fig. 3 is a flowchart that illustrates a variant method 300 for correcting one or more erroneous data elements in a temporal sequence of data elements, in which the method performs bidirectional correction of the one or more erroneous data elements. The method 300 is a variant of the previously described (generic) method 200.
[0095] Continued reference will be made to Figs. 1 and 2 where appropriate for improved contextual understanding. As previously mentioned, the data elements of the temporal sequence comprise the one or more erroneous data elements and accurate data elements.
[0096] In method 300, the one or more stable subsequences of data elements comprises: the nearest stable subsequence that precedes the erroneous data element in the temporal sequence (“nearest preceding stable subsequence”); and the nearest stable subsequence that follows the erroneous data element in the temporal sequence (“nearest following stable subsequence”).
[0097] Accordingly, step 210 comprises identifying the length of two or more stable subsequences of data elements that meet the one or more stability criteria. In particular, the two or more stable subsequences includes the nearest stable subsequence that precedes the erroneous data element in the temporal sequence (“nearest preceding stable subsequence”) and the nearest stable subsequence that follows the erroneous data element in the temporal sequence (“nearest following stable subsequence”).
[0098] For instance, step 210 may comprise determining, for each accurate data element, a length of a stable subsequence into which the accurate data element falls. In this way, all stable subsequences in the temporal sequence are identified. Accordingly, each accurate data element may be associated with a subsequence length value that indicates the size of the stable subsequence in which it resides, providing a quantitative measure of the contextual reliability available for correction operations. In method 300, step 220 is responsive to the identified length of the two or more identified stable subsequences, specifically the nearest preceding stable subsequence and the nearest following stable subsequence.
[0099] In particular step 220 may comprise performing a correction process for the erroneous data element using the nearest preceding stable subsequence and the nearest following stable subsequence.
[0100] The correction process may therefore comprise identifying 322 the nearest preceding stable subsequence (NPSS) and the nearest following stable subsequence (NFSS). In some cases or scenarios, one or more additional erroneous data elements may be temporally positioned between the (target) erroneous data element and one or both of the identified accurate data elements. These intervening erroneous data elements do not affect the identification of the sandwiching accurate data elements.
[0101] The correction process also comprises correcting 324 the erroneous data element responsive to the length of the nearest preceding stable subsequence and the length of the nearest following stable subsequence.
[0102] The identification step 322 may comprise scanning the temporal sequence in both directions from the position of the erroneous data element to locate the nearest accurate data elements that can serve as reference points for the correction operation.
[0103] The nearest preceding and nearest following stable subsequences effectively define temporal boundaries around the erroneous data element, creating a correction window within which the erroneous data element is processable. In some examples, as later exemplified, the temporal distance between these stable subsequence(s) and the erroneous data element may also influence the correction process, with closer stable subsequences generally providing more relevant contextual information.
[0104] In general, accurate data elements that fall within longer stable subsequences (e.g., continent subsequences) may be treated as more trustworthy sources of information, resulting in their associated correction contributions being given higher confidence weights. Conversely, accurate data elements from shorter stable subsequences (e.g., island subsequences) may be assigned lower confidence weights, reflecting the reduced stability of their surrounding context.
[0105] In particular, the correction step 324 may employ any suitable mathematical techniques to combine information from the nearest preceding and nearest following stable subsequences, such as weighted interpolation, extrapolation with confidence intervals, or probabilistic fusion methods. The subsequence length information may be used to define or influence parameters such as variance values in probability distributions, interpolation weights, or confidence bounds in the correction calculations.
[0106] In some examples, the exemplary correction step 324 may implement a bidirectional correction process having three stages: a forward pass 325, a backward pass 326, and a fusion procedure 327. The forward pass 325 may comprise extrapolating forwards from a first accurate data element lying within the nearest preceding stable subsequence to predict a first set of one or more value(s) for the erroneous data element. In particular, the first accurate data element may be the nearest accurate data element, in the nearest preceding stable subsequence, to the erroneous data element.
[0107] The backward pass 326 may comprise extrapolating backwards from a second accurate data element within the nearest following stable subsequence to predict a second set of one or more value(s) for the erroneous data element. In particular, the second accurate data element may be the nearest accurate data element, in the nearest following stable subsequence, to the erroneous data element.
[0108] The fusion procedure 327 may comprise correcting the erroneous data element by combining the first set and the second set to produce a predicted set of one or more values for the erroneous data element, wherein the combining is responsive to the identified length of the nearest preceding stable subsequence and the identified length of the nearest following stable subsequence
[0109] Thus, the fusion procedure comprises producing a predicted set of one or more values for the erroneous data element by performing a weighted combination of the first and second sets of one or more values (i.e., fusing the first and second sets). The weighting of the first and second set of one or more values is defined by at least the length of the stable subsequence into which the corresponding accurate data element falls.
[0110] As a simple example, the correction step 324 may implement a weighted interpolation approach based on subsequence lengths for the first and second accurate data elements.
[0111] In a first scenario, each data element comprises a single scalar value.
[0112] Consider an erroneous data element positioned between a first accurate data element with value vi (falling within a stable subsequence of length Li) and a second accurate data element with value V2 (falling within a stable subsequence of length L2). The temporal distances from the erroneous data element to these accurate data elements are di and d2 time steps, respectively.
[0113] The forward pass 325 may calculate a first predicted value by extrapolating from the first accurate data element. Using a simple linear extrapolation with temporal distance weighting, the first predicted value VP1 may be calculated as: vi + (di x fi), where the fi is derived from the local gradient near the first accurate data element.
[0114] The backward pass 326 may similarly calculate a second predicted value VP2 by extrapolating from the second accurate data element using the same linear approach but in reverse temporal direction.
[0115] The fusion procedure 327 may then combine these predicted values using weights derived from the subsequence lengths. In this example, the first accurate data element receives a weight of LI / (LI+L2), while the second accurate data element receives a weight of L2 / (LI+L2), reflecting the higher reliability of the longer stable subsequence.
[0116] The final corrected value VC for the erroneous data element may be calculated as: VC = [LI / (LI+L2)] x VP1 + [L2 / (LI+L2)] x VP2. This approach ensures that accurate data elements from longer, more stable subsequences contribute more significantly to the correction process, while still incorporating information from both temporal directions.
[0117] This approach may be readily adapted for scenarios where each data element comprises a set of values rather than a single scalar value. In such cases, the extrapolation and weighting operations may be applied element-wise across the value set.
[0118] Accordingly, consider a second scenario in which each data element comprises a set of values. For instance, each data element may comprise a multi-dimensional vector (such as x,y coordinates for location tracking or multiple sensor readings). In such examples, the first accurate data element may have a value set vi = [vn, ..., vin] and the second accurate data element may have a value set V2 where n represents the dimensionality of each data element.
[0119] The forward pass 325 may calculate a first predicted value set by extrapolating from the first accurate data element: predictedi = vi + (di x fi), where fi represents a gradient vector derived from the local temporal patterns near the first accurate data element.
[0120] Similarly, the backward pass 326 may calculate a second predicted value set by extrapolating from the second accurate data element in the reverse temporal direction.
[0121] The fusion procedure 327 may then apply the same weighting scheme to each dimension of the value sets: corrected_value = [LI / (LI+L2)] x predictedi + [L2 / (LI+L2)] x predicted2.
[0122] In a more complex example, probability distributions may be employed in the performance of the correction step / procedure 324.
[0123] In this way, the forward pass 325 may comprise extrapolating forwards from the first accurate data element to predict a first probability distribution for the erroneous data element, wherein the first probability distribution is responsive to the length of the nearest preceding stable subsequence.
[0124] The backward pass 326 may similarly comprise extrapolating backwards from the second accurate data element to predict a second probability distribution for the erroneous data element, wherein the second probability distribution is responsive to the length of the nearest following stable subsequence.
[0125] The correction step 324 of the correction process may also comprise correcting 327 the erroneous data element by processing at least the first probability distribution and the second probability distribution.
[0126] In particular, the fusion procedure 327 may fuse the first and second probability distributions together, to produce a fused probability distribution, and define the (corrected value(s) for the) erroneous data element using the fused probability distribution.
[0127] As a formal definition, it is possible to associate each data element with a probability distribution p(z) = N(p, S), where p represents the mean (vector) containing the expected value(s) of the data element parameters, and S represents the covariance matrix that quantifies the uncertainty of the data element. For accurate data elements, the covariance matrix is at least partially dependent upon the length of the stable subsequence into which the accurate data element falls, with longer stable subsequences resulting in smaller covariance values that reflect higher confidence in the data element's reliability. In some examples, the covariance matrix for an accurate data element may be defined as a function of the subsequence length using an inverse relationship. For instance, the covariance matrix E may be calculated using the following approach:
[0128] 1
[0129] S = — CT (2)
[0130] Lawhere L represents the length of the stable subsequence into which the accurate data element falls, a represents a scaling exponent (where a=l for linear scaling and a=2 for quadratic scaling and so on), and O' is a template covariance matrix or predefined covariance matrix.
[0131] In the forward pass 325, when extrapolating forwards from the first accurate data element lying in the nearest preceding stable subsequence, a first initial probability distribution may be initialized based on the first accurate data element, with confidence weighted by the length of the nearest preceding stable subsequence. For instance, the first probability distribution may be represented or defined using a Kalman filter approach.
[0132] Put mathematically, a filter (e.g., Kalman filter) may be initialized from the first accurate data element as follows: P(ZEI) = N (JXEI, SEI).
[0133] For each data element t between the first accurate data element and the erroneous data element, the probability distribution is updated using a motion model, such as a constant velocity model, i.e., using a first Kalman filter. The uncertainty grows with each step away from the accurate data element.
[0134] Put mathematically, the model may be propagated according to following procedure: fit = AHt-i (3)
[0135] St= A. St-i * AAT + Q (4) where A is a state transition matrix and Q is process noise. The addition of Q at each step ensures that det(St) monotonically increases, to appropriately model the decay of confidence as we move away from the (reliable), e.g., to reflect increasing uncertainty as distance from the reliable stable subsequence increases. The model is propagated at least until the position of the erroneous data element is reached, at which point the first probability distribution p(zi) = N(pi, Si) for the erroneous data element is obtained.
[0136] This forward pass 325 thereby generates the first probability distribution (p(zi) = N (pi, Si)) for the erroneous data element as described in step 325 of method 300.
[0137] The backward pass 326 may be performed in a similar manner to the forward pass, albeit in reverse. Thus, in the backwards pass 326, when extrapolating backwards from the second accurate data element lying in the nearest following stable subsequence, a second (independent from the first) initial probability distribution may be initialized based on the second accurate data element, with confidence weighted by the length of the nearest following stable subsequence. For instance, the second initial probability distribution may be represented or defined using a Kalman filter approach.
[0138] Put mathematically, a filter may be initialized P(ZE2) = N (p.E2, EL?) from the second accurate data element E2. The filter or probability distribution defines the mean p and covariance matrix E for a data element. It will be appreciated that the covariance matrix E2 for the second accurate data element will be larger than the covariance matrix E2 for the second accurate data element if the nearest following stable subsequence is shorter than the nearest preceding stable subsequence, and vice versa, reflecting the lower confidence associated with shorter subsequences.
[0139] For each data element t between the second accurate data element and the erroneous data element, the second initial probability distribution is updated using an inverse motion model, i.e., using a second Kalman filter. The uncertainty grows with each step away from the second accurate data element.
[0140] Put mathematically, the model may be propagated according to the following procedure: pt= A-1pt+1(5)
[0141] This backward pass 326 produces the second probability distribution (p(z2) = N (pi2- 2)) for the erroneous data element as described in step 326 of method 300, e.g., by propagating the model at least until the position of the erroneous data element is reached.
[0142] For the erroneous data element, the method now has two independent probability distributions: the first probability distribution from the forward pass or the forward extrapolation and the second probability distribution from the backward pass or the backward extrapolation. These are processed together to generate a corrected value in the fusion procedure 327.
[0143] At least when the probability distributions are Gaussian, they are fusable by computing a new distribution whose precision is the sum of the individual precisions, implementing an inversevariance weighting scheme. Thus, the fusion procedure 327 may comprise fusing the first probability distribution (p(zi) = N (pi, Si)) and the second probability distribution (p(z2) = N (p2, E2)) for the erroneous data element.
[0144] The fused probability distribution (p(zf) = N (pr. Ef)) for the erroneous data element may be calculated by combining both probability distributions, e.g., using the following approach:
[0145] Pf = Sf * (Si * Pi + E2* p2) (8) The fused mean j f represents or functions as the corrected value for the erroneous data element, while the fused covariance matrix Ef quantifies the uncertainty associated with this correction.
[0146] This fusion procedure has characteristics that align with the method 300 approach.
[0147] When an accurate data element falls within a longer stable subsequence, it is initialized with higher confidence (smaller covariance matrix), which directly translates to greater influence in the fusion process. This occurs because the fusion procedure uses inverse-variance weighting, where the contribution of each probability distribution is proportional to its precision (the inverse of its covariance).
[0148] Specifically, accurate data elements from longer stable subsequences start with smaller initial covariance matrices (SEI or EE2), resulting in higher precision values (Ez(- 1 )). During the fusion calculation in equations (6) and (7), these higher precision values receive proportionally greater weight in determining both the fused covariance Ef and the fused mean gf.
[0149] When the erroneous data element is closer to the first accurate data element, the first probability distribution has higher precision and therefore contributes more to the corrected value. When the erroneous data element is closer to the second accurate data element, the second probability distribution has higher precision and therefore contributes more to the corrected value.
[0150] This approach intrinsically ensures the interpolations "meet in the middle" in a mathematically principled way, governed by the confidence of each estimator at every single timestamp (i.e., by at least the length of the sequence in which the corresponding accurate data element falls).
[0151] In this way, the correction step / procedure 324 effectively perform a procedure that may be termed Heteroscedastic Bi-directional Smoothing (HBS). This approach models a value prediction problem as a state-space smoothing task with asymmetric boundary condition uncertainty. By propagating probabilistic beliefs forwards and backwards from the corresponding accurate data elements that bound stable subsequences, HBS fuses these estimates for a particular erroneous data element using an inversevariance weighting scheme, e.g., usable in a Kalman smoothing procedure. This creates a robust, uncertainty-aware mechanism for predicting the (true) predicted value(s) for an erroneous data element. "Heteroscedastic" is a formal statistical term meaning "having unequal variance." This describes the core challenge: the uncertainties of the sandwiching accurate data elements (e.g., their variances) may differ.
[0152] In some implementations, the method 200, 300 may be extended to generate (for each erroneous data element) one or more further predictions for the value(s) of the erroneous data element, thereby enhancing the robustness and accuracy of the correction process. These additional predictions may be derived from different sources of information that complement the unidirectional or bidirectional extrapolation approaches described above.
[0153] Fig. 4 is a flowchart that illustrates a variant method 400 of the generic method 200 for correcting an erroneous data element in a temporal sequence of data elements. The method 400 makes use of additional prediction sources to enhance the robustness and accuracy of the correction process. The method 400 may be repeated or performed for each erroneous data element, as schematically illustrated with a dashed line.
[0154] The method 400 comprises identifying 210 the length of at least a nearest stable subsequence, to the erroneous data element, that meets one or more stability criteria, similar to step 210 in method 200. The stability criteria includes a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements.
[0155] The method 400 also comprises obtaining 415 one or more further predicted sets of one or more values for the erroneous data element using one or more further prediction techniques. Thus, step 415 comprises obtaining or generating 415 one or more further predicted sets of one or more values for the erroneous data element using one or more different sources of information. These different sources of information may complement the subsequence-based extrapolation or interpolation approach by providing independent estimates of the erroneous data element's value(s).
[0156] In some examples, at least one of the further predicted sets of one or more values may be generated using one or more template matching techniques, particularly when each data element is associated with an instance of image data. In some examples, at least one of the further predicted sets of one or more values may be generated using one or more machine learning models such as Siamese networks, which may be configured to learn similarity metrics between different instances of data by processing pairs of inputs through identical neural network architectures. These networks may generate similarity scores that can be converted into predicted values for the erroneous data element based on learned relationships between similar data instances.
[0157] In some examples, at least one of the further predicted sets of one or more values may include one or more outputs from the original processing task that generated the temporal sequence of data elements. In some cases, the original processing task may have initially generated outputs for an erroneous data element that were deemed unusable due to low confidence scores, even though the processing task may still produce meaningful information that can be incorporated into the correction process.
[0158] The method 400 further comprises correcting 220 the erroneous data element responsive to both the length of at least the nearest stable subsequence and the one or more further predicted sets of one or more values. This correction step may involve combining or fusing any subsequence-based predictions with any further predicted values using appropriate weighting schemes that account for the reliability and confidence of each prediction source.
[0159] In some implementations, the correction step 420 may employ probabilistic fusion techniques where each further predicted set of one or more values is associated with a respective probability distribution that encodes both the predicted value(s) and the associated uncertainty. These probability distributions may then be combined with one or more subsequence-based probability distributions using inverse -variance weighting or other suitable fusion methods to generate a final corrected value for the erroneous data element. Fig. 5 is a flowchart illustrating another variant method 500 in which one or more additional prediction sources are incorporated into the correction process that employs bidirectional correction. The method 500 is a variant of previously disclosed method 300, which employs a bidirectional correction approach that combines forward and backward extrapolation from accurate data elements.
[0160] The method 500 may comprise a procedure 510 of generating, for each erroneous data element (e.g., each iteration of step 220), one or more further predictions for the value(s) for the erroneous data element. The fusion procedure 327 for correcting an erroneous data element may be appropriately adapted to further comprise fusing or combining each further prediction for said erroneous data element with the predicted values produced by the forward pass 325 and the backwards pass 326.
[0161] The procedure 510 may comprise generating a respective further predicted value for each erroneous data element using one or more further prediction techniques.
[0162] One example of a further prediction technique for use in the procedure 510 is a template matching technique, which is usable when the erroneous data element is associated with an instance of image data. Template matching comprises searching for visual patterns or image regions within the associated instance of image data that correspond to a predefined template or reference pattern. A template matching technique may analyze pixel intensities, gradients, and other visual features to identify any region within image data associated with the erroneous data element that exhibit similarity to the template pattern. For instance, when each data element represents a predicted location of an object within an instance of image data, template matching may be used to generate a further predicted location by comparing visual patterns from the image associated with the erroneous data element against templates derived from accurate data elements or baseline object representations.
[0163] Another example of a further prediction technique is a Siamese network. A Siamese network may be configured to learn similarity metrics between different instances of image data by processing pairs of inputs through identical neural network architectures. In the context of correcting erroneous data elements, a Siamese network may be trained to identify similar patterns or features between the data associated with the erroneous data element and data from accurate data elements. The network may generate similarity scores that can be converted into predicted values for the erroneous data element based on the learned relationships between similar data instances.
[0164] In some instances, one example of a further prediction technique is an original processing task that generated the temporal sequence of data elements. In some cases, the original processing task may have initially generated an unusable set of one or more value(s) for an erroneous data element (e.g., which could not be used due to low confidence scores or uncertainty in the prediction), even though the processing task may still produce a meaningful output. By repurposing the output of the original processing task for the erroneous data element, the procedure 510 may define an further or additional prediction for the value(s) of the erroneous data element that may be used in the fusion process. This approach may be particularly useful when the original processing task produces outputs with associated confidence measures, allowing the fusion procedure to weight the contribution of this prediction based on the reported confidence level.
[0165] For instance, consider a scenario in which each data element represents a predicted location of an object within an instance of image data. As such, each data element is associated with a respective instance of image data. In this scenario, procedure 510 may comprise using a template matching technique (an example of a further prediction technique) to generate a further predicted location of the object within the instance of image data associated with the erroneous data element.
[0166] For instance, a first template matching technique may use a baseline template that represents a generic or canonical appearance of the target object. This baseline template may be derived from training data or predefined object models, providing a reference pattern that captures typical visual characteristics of the object being tracked.
[0167] A second template matching technique may use a template defined by the predicted location associated with the first accurate data element. This approach may extract a template from the image region surrounding the first accurate data element's predicted location, capturing the specific visual appearance of the object at that temporal position. The extracted template may then be applied to the image data associated with the erroneous data element to identify a potential matching region.
[0168] Similarly, a third template matching technique may use a template defined by the predicted location associated with the second accurate data element. This technique may extract a template from the image region surrounding the second accurate data element's predicted location, providing another source of visual reference information for the correction process.
[0169] Each template matching technique produces or generates a respective set of predicted values for the erroneous data element. Of course, one or more of these template matching techniques may be omitted.
[0170] In some examples, each (further) prediction technique used in procedure 510 may generate a respective probability distribution for the erroneous data element, where each probability distribution encodes both the predicted values and the associated uncertainty of the prediction operation. This allows for ease of integration with the existing fusion procedure 527 (when designed to combine probability distributions).
[0171] In particular, for each (further) n-th prediction technique, the process 510 may produce a respective probability distribution p(zn) = N(pn, En), where pn represents the predicted values derived from the n-th prediction technique’s output, and En represents the uncertainty associated with this n-th prediction. The covariance matrix En may be determined based on the quality of the prediction, with higher confidence scores resulting in smaller covariance values that reflect greater confidence in the predicted values.
[0172] As a particular example, consider a scenario in which each data element is a predicted location of a (representation of an) object within an associated instance of image data, and the process 510 comprises processing an instance of image data associated with the erroneous data element using a template matching algorithm. In this scenario, the template matching algorithm may be used to generate a likelihood map, L (z | It) across the instance of image data, which represents the probability of the object’s center z being at any given location within the instance of image data It. It is appreciated that the likelihood may be noisy and multi-modal (but non-zero).
[0173] It is possible to produce a probability distribution based on the likelihood map, i.e., define pm= N(pm, Sm). For instance, pmmay represent the location of the best (but still weak) template match in the instance of image data associated with the erroneous data element. Emis the covariance (matrix) of this local measurement. This covariance will be large (e.g., compared to that of the first and second probability distributions), reflecting low confidence in this relatively weak signal. The covariance matrix may be derived from the sharpness or entropy of the peak in the likelihood map. A sharp peak yields a smaller covariance (matrix) Em, a broad peak yields a larger one Em.
[0174] The fusion procedure 327 may be extended to incorporate these further probability distributions alongside the first and second probability distributions from the bidirectional extrapolation previously disclosed. In particular, the fusion process may combine the probability distributions using the same inverse -variance weighting principles described earlier.
[0175] For example, when incorporating multiple prediction-based probability distributions with the extrapolation-based distributions, the fused probability distribution may be calculated as: fif = Sf * (21 * Hi + s2* fi2+ ••• sn* fin ) (10) wherein En is the covariance of the n-th probability distribution produced by the process 510 and pn is the mean of the n-th probability distribution produced by the process 510.
[0176] The proposed method 500 is advantageous, as is effectively defines a vision-modulated belief fusion method that forces the fused estimate of the predicted value(s) for the erroneous data element to be pulled towards predicted value(s) that have at least some visual support in the actual frame. This reduces a risk of inaccurate predictions, e.g., from path hallucinations, and keeps the predicted value(s) consistent with the original data source (e.g., the original instance of image data).
[0177] In particular, when at least one of the further predicted value(s) for the erroneous data element is produced by a template matching technique, then the influence of the additional terms (pm, Sm) is dynamic. In a frame where the object is partially occluded but the template match is still decent, Emwill be smaller and therefore have more influence. In a frame with heavy clutter and a very poor match, Embe larger and the fusion will be weighted more heavily on the forward and backward fall back towards the forwardly and rearwardly generated predicted value(s). This acts as a soft, probabilistic gate based on the quality of local evidence. For data elements that represent a predicted location of (a representation of) an object in an instance of image data, one concern with erroneous data elements lying in a relatively long sequence of erroneous data elements is that the object's appearance might change (e.g., the baby turns over). The forward pass therefore relies upon a prediction which will become "stale". The backward pass uses a more recent template from the island, but may not accurately reflect the object appearance closer to the first accurate data element. The further predicted value(s) and / or further probability distribution functions to fill this gap.
[0178] It will be appreciated that any herein proposed computer-implemented method may be performed by a processing system. Accordingly, there is proposed a processing system configured to perform any herein proposed computer-implemented method.
[0179] The processing system can be implemented in numerous ways, with software and / or hardware, to perform the various functions required. A processor is one example of a processing system which employs one or more microprocessors that may be programmed using software (e.g., microcode) to perform the required functions. A processing system may however be implemented with or without employing a processor, and also may be implemented as a piece of dedicated hardware (e.g., fixed- function hardware) and / or a combination of dedicated hardware to perform some functions and a processor (e.g., one or more programmed microprocessors and associated circuitry) to perform other functions.
[0180] Examples of processing system components that may be employed in various embodiments of the present disclosure include, but are not limited to, conventional microprocessors, application specific integrated circuits (ASICs), and field-programmable gate arrays (FPGAs).
[0181] In various implementations, a processor or processing system may be associated with one or more storage media such as volatile and non-volatile computer memory such as RAM, PROM, EPROM, and EEPROM. The storage media may be encoded with one or more programs that, when executed on one or more processors and / or processing systems, perform the required functions. Various storage media may be fixed within a processor or processing system or may be transportable, such that the one or more programs stored thereon can be loaded into a processor or processing system.
[0182] Thus, the processing system may comprise at least one processor and one or more storage media storing instructions that, when executed by the at least one processor, cause the processing system to perform any herein described computer-implemented method.
[0183] It will be understood that disclosed methods are preferably computer-implemented methods. A computer-implemented method is a method that is implemented by a computer, e.g., formed from a multi-purpose or programmable processor and / or one or more pieces of dedicated hardware (e.g., fixed-function hardware).
[0184] There is also proposed the concept of a computer program comprising code means for implementing any described method when said program is run on a processing system, such as a computer. Thus, different portions, lines or blocks of code of a computer program according to an embodiment may be executed by a processing system or computer to perform any herein described method.
[0185] There is also proposed a non-transitory storage medium that stores or carries a computer program or computer code that, when executed by a processing system, causes the processing system to carry out any herein described method.
[0186] In some alternative implementations, the functions noted in the block diagram(s) or flow chart(s) may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
[0187] Variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure and the appended claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
[0188] In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. If the term "adapted to" is used in the claims or description, it is noted the term "adapted to" is intended to be equivalent to the term "configured to". If the term "arrangement" is used in the claims or description, it is noted the term "arrangement" is intended to be equivalent to the term "system", and vice versa. If the term "one or more" is used in the claims or description, it is noted the term "one or more" is intended to be equivalent to the term "at least one", and vice versa, and such terms may be used interchangeably.
[0189] A single processor or other unit may fulfill the functions of several items recited in the claims. If a computer program is discussed above, it may be stored / distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems.
[0190] Any reference signs in the claims should not be construed as limiting the scope.
Claims
25CLAIMS:
1. A computer-implemented method for correcting one or more erroneous data elements in a temporal sequence of data elements, wherein the temporal sequence comprises, as the data elements, the one or more erroneous data elements and accurate data elements, wherein the computer-implemented method comprises: for each of the one or more erroneous data elements: identifying the length of one or more stable subsequences of data elements that meet one or more stability criteria, the one or more stable subsequences including at least a nearest stable subsequence to the erroneous data element; and correcting the erroneous data element responsive to at least the length of at least the nearest stable subsequence to the erroneous data element; wherein the one or more stability criteria includes a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements.
2. The computer-implemented method of claim 1, wherein, for each of the one or more erroneous data elements: the one or more stable subsequences of data elements comprises: the nearest preceding stable subsequence, being the nearest stable subsequence that precedes the erroneous data element in the temporal sequence; and the neatest following stable subsequence, being the nearest stable subsequence that follows the erroneous data element in the temporal sequence; and correcting the erroneous data element is responsive to the identified length of the nearest preceding stable subsequence and the identified length of the nearest following stable subsequence.
3. The computer-implemented method of claim 2, wherein, for each of the one or more erroneous data elements, correcting the erroneous data element comprises: extrapolating forwards from a first accurate data element lying within the nearest preceding stable subsequence to predict a first set of one or more values for the erroneous data element; extrapolating backwards from a second accurate data element within the nearest following stable subsequence to predict a second set of one or more values for the erroneous data element; andcorrecting the erroneous data element comprises combining the first set and the second set to produce a predicted set of one or more values for the erroneous data element, wherein the combining is responsive to the identified length of the nearest preceding stable subsequence and the identified length of the nearest following stable subsequence.
4. The computer-implemented method of claim 3, wherein, for each of the one or more erroneous data elements: extrapolating forwards from the first accurate data element comprises extrapolating forwards from the first accurate data element to predict a first probability distribution for the erroneous data element, wherein the first probability distribution is responsive to the length of the nearest preceding stable subsequence; extrapolating backwards from the second accurate data element comprises extrapolating backwards from the second accurate data element to predict a second probability distribution for the erroneous data element, wherein the second probability distribution is responsive to the length of the nearest following stable subsequence; and correcting the erroneous data element comprises processing at least the first probability distribution and the second probability distribution.
5. The computer-implemented method of claim 4, wherein, for each of the one or more erroneous data elements: extrapolating forward from the first accurate data element comprises: defining a first initial probability distribution for the first accurate data element responsive to the length of the nearest preceding stable subsequence; and using a first Kalman filter to process the first initial probability distribution to predict the first probability distribution for the erroneous data element; and extrapolating backwards from the second accurate data element comprises: defining a second initial probability distribution for the second accurate data element responsive to the length of the nearest following stable subsequence; and using a second Kalman filter to process the second initial probability distribution to predict the second probability distribution for the erroneous data element.
6. The computer-implemented method of claim 4 or 5, wherein, for each of the one or more erroneous data elements, correcting the erroneous data element comprises fusing at least the first probability distribution and the second probability distribution to generate a predicted set of one or more values for the erroneous data element.
7. The computer-implemented method of any one of claims 1 to 6. further comprising, for each of the one or more erroneous data elements, obtaining one or more further predicted sets of one or more values for the erroneous data element using one or more further prediction techniques, wherein, for each of the one or more erroneous data elements, correcting the erroneous data element is further responsive to the one or more further predicted sets of one of more values for said erroneous data element.
8. The computer-implemented method of any one of claims 1 to 7, wherein each data element in the temporal sequence of data elements represents a predicted location of a predetermined object in a respective instance of image data in a temporal sequence of instances of image data, such that each data element is associated with a predicted location and a respective instance of image data.
9. The computer-implemented method of claim 8, when dependent upon claim 7, wherein, for each of the one or more erroneous data elements, obtaining one or more further predicted sets of one or more values for the erroneous data element comprises processing the instance of image data associated with the erroneous data element using a first template matching technique to generate a first further predicted set of one or more values for the erroneous data element.
10. The computer-implemented method of claim 9, when dependent upon any one of claims 4 to 6, wherein, for each of the one or more erroneous data elements: obtaining one or more further predicted sets of one or more values for the erroneous data element comprises processing the instance of image data associated with the erroneous data element using the first template matching technique to generate a third probability distribution for the erroneous data element; and correcting the erroneous data element further comprises processing the third probability distribution.
11. The computer-implemented method of any one of claims 1 to 10, wherein the stability criteria includes a second criterion that the stable subsequence comprises no fewer than a predetermined percentage of accurate data elements.
12. The computer-implemented method of claim 11, wherein the predetermined percentage is no less than 90%.
13. The computer-implemented method of any one of claims 1 to 12, wherein the first predetermined length is 1.2814. A non-transitory computer-readable storage medium comprising instructions that when executed by at least one processor, cause the at least one processor to perform the computer-implemented method of any one of claims 1 to 13.
15. A processing system for correcting one or more erroneous data elements in a temporal sequence of data elements, wherein the temporal sequence comprises, as the data elements, the one or more erroneous data elements and accurate data elements, the processing system comprising: at least one processor; and a memory storing instructions that, when executed by the processor, configure the processing system to, for each of the one or more erroneous data elements: identify the length of one or more stable subsequences of data elements that meet one or more stability criteria, the one or more stable subsequences including at least a nearest stable subsequence to the erroneous data element; and correct the erroneous data element responsive to at least the length of at least the nearest stable subsequence to the erroneous data element; wherein the one or more stability criteria includes a first criterion that the stable subsequence comprises no further subsequences of a first predetermined length comprising only erroneous data elements.