Oscillometry system and machine learning based method of classifying oscillometry results
A machine learning-based system for oscillometry directly determines lung function patterns from raw measurements, addressing the underutilization of pulmonary oscillometry by enhancing diagnostic accuracy and accessibility without requiring clinician expertise in interpreting complex parameters.
Patent Information
- Application Number
- PCT/CA2024/051154
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-08
- Filing Date
- 2024-09-05
- Publication Date
- 2025-03-13
AI Technical Summary
Pulmonary oscillometry, a forced oscillation technique for assessing lung function, has not been widely adopted in clinical use due to the lack of expertise among clinicians to interpret the resistance and reactance measurements effectively, leading to underutilization and loss of functional information.
A machine learning-based method and system that uses raw time-series measurements from oscillometers to directly determine lung function patterns, eliminating the need for transformation into reactance and resistance parameters, and employing a feature generator and classifier to identify patterns such as normal, restricted, obstructed, or mixed obstructed/restricted.
This approach enables more accurate and detailed assessment of lung function patterns from oscillometry testing, improving diagnostic capabilities and making the test more accessible by reducing the need for clinician expertise in interpreting complex measurements.
Smart Images

Figure CA2024051154_13032025_PF_FP_ABST
Abstract
Description
OSCILLOMETRY SYSTEM AND MACHINE LEARNING BASED METHOD OF CLASSIFYING OSCILLOMETRY RESULTSCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority to US Provisional Patent Application no. 63,581,324 filed September 9, 2023, the contents of which are hereby incorporated by reference.FIELD
[0002] The present application relates to oscillometers and oscillometry signals and, in particular, a machine learning based method and device for classifying oscillometry signals.BACKGROUND
[0003] Pulmonary function tests such as spirometry are typically used to evaluate and classify lung function for a subject as part of diagnosing possible lung or respiratory issues. Lung function patterns may include, for example, normal, restricted, obstructed, or mixed obstructed / restricted.
[0004] Spirometry requires a cooperative subject that engages in forced exhalation into a tube as part of the test. This means the subject must be physically capable and cooperative, and have sufficient capacity to follow instructions and to exhale forcefully enough to complete the test. This makes the test more challenging for some subjects that are very elderly, very young, mentally disabled, or have other challenges.
[0005] Pulmonary oscillometry is a forced oscillation technique (FOT) and may also be referred to as impulse oscillation. Oscillometry involves imposing low frequency sound waves on normal tidal breathing and measuring the pressure and flow disturbances. Oscillometers convert pressure and flow measurements, and sometimes also volume measurements, into “resistance” and “reactance” that reflect lung function. The output resistance and reactance measurements may be used by skilled technicians to assess deviation from “normal” and, thus, to categorize the subject’s lung function pattern, e.g. as normal, restricted, obstructed, or mixed obstructed / restricted.
[0006] Oscillometry has not yet been widely adopted for clinical use. Few clinicians have the expertise to interpret the results and identify a lung function pattern associated with particular reactance and resistance calculations.BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Reference will now be made, by way of example, to the accompanying drawings in which:
[0008] FIG. 1 shows a simplified example of an oscillometer;
[0009] FIG. 2 shows, in block diagram form, an example oscillometry system in accordance with the present application;
[0010] FIG. 3 shows, in block diagram form, another example oscillometry system in accordance with the present application;
[0011] FIG. 4 shows a diagram of an example computing device;
[0012] FIG. 5 shows a simplified organization of software components stored in a memory of the example computing device of FIG. 4;
[0013] FIG. 6 shows example graphs illustrating time series of oscillometer measurements;
[0014] FIG. 7 illustrates segmentation of an example time series of oscillometer measurements;
[0015] FIG. 8 shows, in flowchart form, a simplified example method of classifying oscillometry measurements; and
[0016] FIG. 9 shows, in flowchart form, another simplified example method of classifying oscillometry measurements.
[0017] Like reference numerals are used in the drawings to denote like elements and features.DETAILED DESCRIPTION
[0018] In one aspect, the present application describes a computer-implemented method of identifying a pulmonary function pattern for a subject. The method may include obtaining a time series of measurements using an oscillometer and processing the time series of measurements using a trained machine learning model. The processing may include inputting the time series of measurements to a random filter bank to produce a feature vector composed of a set of proportion of positive values, and inputting the feature vector to a classifier to select one of a plurality of lung function patterns for the feature vector. The method may further include outputting a classification decision based on the selected lung function pattern.
[0019] In some implementations, the time series of measurements are one or more of flow, pressure, and volume.
[0020] In some implementations, the time series of measurements at least one time series of flow measurements, at least one time series of pressure measurements, and at least one time series of volume measurements.
[0021] In some implementations, the classifier is a ridge regression classifier.
[0022] In some implementations, the random filter bank includes a random convolutional kernel transform.
[0023] In some implementations, obtaining includes obtaining a plurality of time series and processing includes processing each of the plurality of time series to result in a selected lung function pattern for each of the plurality of time series. The method may further include determining the classification decision using soft voting and the plurality of selected lung function patterns.
[0024] In some cases, the classifier outputs a confidence score associated with the selected one of the plurality of lung function patterns, and determining the classification decision includes determining an average confidence score for each of the lung function patterns and selecting the lung function pattern having a highest of the average confidence scores as the classification decision.
[0025] In some cases, obtaining the plurality of time series includes segmenting at least one time series of measurements taken over a testing time period into a plurality of non- overlapping time sub-series.
[0026] In some implementations, the lung function patterns include normal, restricted, obstructed, and restricted+obstructed.
[0027] In a further aspect, the present application describes a computing device that includes a processor and memory storing processor-executable instructions that, when executed by the processor, are to cause the processor to carry out one or more of the methods described herein.
[0028] In yet another aspect, the present application describes an oscillometry system that includes the computing device and an oscillometer to obtain the time series of measurements from the subject.
[0029] According to another aspect, the present application discloses a non-transitory computer readable storage medium containing computer-executable instructions which, when executed, configure a processor to carry one or more of the methods described herein.
[0030] Other aspects and features of the present application will be understood by those of ordinary skill in the art from a review of the following description of examples in conjunction with the accompanying figures.
[0031] In the present application, the phrase “at least one of.. . or.. .” is intended to cover any one or more of the listed elements, including any one of the listed elements alone, any sub-combination, or all of the elements, without necessarily excluding any additional elements, and without necessarily requiring all of the elements.
[0032] Evaluation of the respiratory system and determining lung function with a view to diagnosing possible lung issues has historically relied on pulmonary function tests (PFTs). PFTs may include spirometry, whole-body plethysmography for lung volumes, and diffusion capacity. Test results together with clinical information are used by experts to identify possible patterns of lung function and, consequently, diagnose potential respiratory issues. Fung function patterns may include, for example, normal, restricted, obstructed, or mixed obstructed / restricted.
[0033] Pulmonary oscillometry has been developed as a possible PFT for clinical use, although it is in its early stages of testing and evaluation. Oscillometry is a forced oscillation technique (FOT) and may also be referred to as impulse oscillation. Oscillometry involves imposing low frequency sound waves on normal tidal breathing and measuring the pressure and flow disturbances. Oscillometers convert pressure and flow measurements, and sometimes also volume measurements, into “resistance” and “reactance” that reflect lung function. The output resistance and reactance measurements may be used by skilled technicians to assess deviation from “normal” and, thus, to categorize the subject’s lung function pattern, e.g. as normal, restricted, obstructed, or mixed obstructed / restricted. Some oscillometers use a single frequency sound wave, e.g. 5 Hz, 10 Hz, etc. Some oscillometers use a series of different frequency sound waves, e.g. a set of frequencies between 5 and 40 Hz. Some oscillometers may use a frequency sweep, e.g. ranging between 5 and 40 Hz. The sound wave pattern may be sinusoidal, square wave, or another periodic signal, in different implementations.
[0034] Reference will first be made to FIG. 1 which diagrammatically illustrates an example conventional oscillometer 100. The oscillometer 100 includes a flow source 102, a user port 104, and one or more sensors, such as a pressure sensor 106 and a flow sensor 108. The user port 104 includes an opening to an air passageway and is designed to be placed at or in a subject’s mouth. With the subject’s nostrils sealed with a nose clip, for instance, the subject breathes normally causing air to be drawn out of the passageway or exhaled into the passageway with normal respiratory action.
[0035] The flow source 102 is driven by a periodic signal generator 110 under the control of a processor 112. The period signal generator 110 generates a sinusoidal, square wave, or other periodic signals to drive the flow source 102 to produce an oscillating air pressure wave to be superimposed on the airflow in the passageway and, thus, into the subject’s respiratory system. The flow source 102 may include a transducer (e.g. a membrane), a speaker, a fan, a pump or valve connected to a pressurized air source, or any other mechanism for producing the oscillating air pressure in accordance with the periodic signal.
[0036] The sensors 106, and 108 generate analog signals reflecting the measured parameters, such as pressure or flow. Those signals are digitized and input to the processor 112. The processor 112may execute stored program instructions to control the period signal generator 110 and to process the input signals from the sensors 106, and 108 so as to transform and process those signals in order to generate reactance and resistance values resulting from the test.
[0037] In this example, the oscillometer 100 is connected, wired or wirelessly, to a computing device 114 that includes a processing unit and memory and executes an oscillometer application 116. The computing device 114 may be incorporated or be connected to a display device 118. The oscillometer application 116 may be configured to communicate with the processor 112 so as to obtain the reactance and resistance values and to output those values on the display device 118 in a suitable graphical user interface for review by the clinician operating the oscillometer 100. In some implementations, there is no separate computing device and the oscillometer 100 itself incorporates a display and outputs the test results on the display.
[0038] Typically, the oscillometer is used for about 20 seconds with the subject engaged in normal tidal breathing. This results in measurements that are based on a number of respiratory cycles. The test may be carried out more than once, e.g. 3-5 times, with a subject, to ensure consistent results in terms of the resistance and reactance parameters output by the device.
[0039] The clinical advantage of oscillometry is that the test is easy to perform and requires minimal patient cooperation. As it is fairly quickly performed and involves only normal tidal breathing, it can be performed on the elderly, persons with disabilities, persons in advanced stages of disease, or the very young. At present, oscillometers undertake transformation and processing of the flow and pressure measurements to produce discrete resistance and reactance parameters since it is expected that these simplified parameters will be easiest for clinicians to understand and interpret. However, few clinicians are trained or skilled in understanding these at present and the processing of the measurements results in loss of functional information that could be useful in identifying or diagnosing anomalies. Accordingly, it would be advantageous to improve the functionality of oscillometers to produce a more accurate diagnosis of lung function patterns from oscillometry testing.
[0040] In accordance with one aspect of the present application, an oscillometry system is described that eliminates the transformation and processing of measurements to find reactance and resistance parameters and, instead, uses a machine learning model to directly determine lungfunction patterns from the raw time-series measurements obtained by the oscillometer. By using the raw time-series measurements more detailed information is factored into the assessment of likely pattern.
[0041] In one aspect, the machine learning model employs a feature generator to receive the timeseries measurements and, based on those measurements, to output a feature vector. The feature vector is then input to a trained classifier to identify the lung function pattern correlated to the measurements.
[0042] Reference is made to FIG. 2, which shows, in block diagram form, an example oscillometry system 200. The oscillometry system 200 includes an oscillometer 202 configured to measure at least one of flow and pressure. The oscillometer 202 may also measure volume in some implementations. In some implementations, the oscillometer 202 measures flow, pressure, and volume over a test time period. The test time period may be sufficiently long to span a plurality of normal respiratory cycles. In some cases, the test time period is about 20 seconds. The oscillometer 202 outputs one or more time series reflecting the measured values, e.g. flow, pressure, and / or volume, over the test time period. The oscillometer 202 may convert analog sensor measurements into a digital time series of measurements. The sampling rate may be within the range of 100 samples per second to 1000 samples per second in some examples. For example, in one case the specific sampling rate may be 256 Hz.
[0043] Flow measurements may be represented as Liters per second (L / s) in some cases. Pressure measurements may be represented as centimeters of water column (cmH2O) in some cases. Volume measurements may be represented as Litres (L) in some cases. Other units may be used in other implementations.
[0044] The oscillometry system 200 includes a machine learning model 204. The machine learning model 204 obtains the one or more time series of measurements from the oscillometer 202. The machine learning model 204 may be implemented in software executed on one or more processing devices. The one or more processing devices may be configured to execute stored program instructions that, when executed, cause the one or more processing units to carry out the described functions. The one or more processing units may be implemented by way of a suitable computing device, including a personal computer, laptop, tablet, server, mobile device, or special purposecomputing device. In some cases, the processing units and associated hardware are integrated in a single device together with the oscillometer 202. The integrated device may be a portable device. The oscillometer 202 and / or integrated device may be configured for wired or wireless connection and communication with other computing devices using suitable network communications protocols.
[0045] The machine learning model 204 may include a feature generator 206 and a classifier 208. The feature generator 206 is configured to receive the one or more time series of measurements and to output a feature vector. In some implementations, a feature vector is output for each time series. In some implementations, each time series may be segmented into non-overlapping subtime series and the feature generator 206 may output a feature vector for each sub-time series. In some cases, the feature generator 206 may be implemented using any suitable feature generator designed for time-series applications. In some examples, a random filter bank algorithm may be used as the feature generator. The random filter bank may include a set of random or non-random (learned or pre-determined) convolution kernels, each of which produces a proportion of positive values (PPV) output for a specific time series input. The set of PPVs generated by the convolution kernels is the feature vector that characterizes the input time series of measurements and serves as the input to the classifier 208.
[0046] In some implementations, the kernel filter that is applied to the time series may not be fixed and may change dynamically. For example, the first half of the time series may use a different kernel than the second half. In some cases, the filter kernel may be time- varying revealing different characteristics of the time series over the window of observation.
[0047] The PPV generated by each kernel might be exactly the ratio of the positive values to the size of the time series or may be found by thresholding the convolved output with a certain threshold. The threshold used for PPV might be selected at random, or dynamically, with respect to the convolved signal (for example a certain percentile of the amplitude of the signal) or a fixed value, which may be learned or pre-determined.
[0048] The classifier 208 may be a trained classifier that has undergone supervised or semisupervised or unsupervised learning with a data set of oscillometry time-series measurements or other time series as pre-training. For example, the classifier might be trained with synthesized timeseries. The classifier 208 may be any suitable classifier. In some cases, the classifier is a regression classifier. For example, the classifier 208 may be a logistic regression classifier in some implementations. In some cases, the classifier 208 may be a ridge regression classifier.
[0049] The classifier 208 may have been trained to select from a plurality of defined lung function patterns. For instance, the lung function patterns may include physiological lung function diagnoses corresponding to normal, restricted, obstructed, and / or mixed (restricted and obstructed) patterns. In some cases, the patterns further include a combined restricted+obstructed pattern. The classifier 208 may be configured to output a confidence score associated with a selected pattern. In some cases, the classifier 208 may be configured to output a confidence score associated with each of the possible patterns, and the relative confidence scores indicate the likelihood of the input time series corresponding to a particular one of the patterns.
[0050] The classifier 208 may be trained to work as a binary classifier. For example, the classifier might classify normal vs abnormal cases. Or the classifier might be trained to classify obstructive versus restrictive cases or any other combination of binary cases. The classifier might work as a hard classifier, assigning each time series to a certain class, or as a soft classifier, giving a score (for example the confidence level) for each class.
[0051] The classifier 208 may be trained to work on multiple classes, where it may be used as a hard classifier where the output of the classifier is the estimated class, or as a soft classifier where the output is a score (for example the confidence level or any other score) given to each class.
[0052] Reference is now made to FIG. 3, which shows another block diagram of an oscillometry system 300. The oscillometry system 300 includes an oscillometer 302 and a machine learning model 304. The oscillometer 302 outputs two or more time-series of oscillometry measurements for a testing time period. The measurements may include flow, pressure, and / or volume measurements. The machine learning model 304, in this example, includes a feature generator 306, a classifier 308, and a soft voting pattern selector 310.
[0053] The feature generator 306 produces at least one feature vector for each time series of oscillometry measurements. In some cases, the time series may be segmented into a nonoverlapping or partially overlapping set of sequential time series, in which case a feature vectormay be generated for each series in the set. In some cases, the test is repeated, resulting in a plurality of time series of each measurement type. For example, the test may be carried out three times, resulting in at least three time series of flow measurements and at least three time series of pressure measurements. In some implementations, the oscillometer 302 also provides three time series of volume measurements.
[0054] In some implementations, the time series might be broken into several partially overlapping or non- overlapping segments and each segment might use a different random kernel and / or a different threshold to produce the PPV. In some embodiments, the PPVs produced from each segment might be averaged to create a new PPV. In some implementations, the produced PPV from different segments might be concatenated to produce a vector of enhanced PPVs. The enhanced PPV vector might then be input to the classifier 308.
[0055] When the time series is broken into several segments, the classifier 308 may be applied to each segment separately, and the results, either hard classification of each segment or soft scores of the segments, may be integrated to classify the whole time series. Each segment may also use a different classifier, for example, the first segment may use a logical regression classifier and another segment may use a ridge regression classifier.
[0056] In some implementations, the kernels applied to each segment may be selected to extract certain properties of the signal. For example, a highpass filter might be used on certain segments of the time series to localize the high-frequency components of the signal within the time series. Similarly, a low pass or bandpass filter might be used in some other parts of the time series to find the frequency content at different parts of the signal.
[0057] The feature vectors output by the feature generator 306 are each, in turn, input to the classifier 308 which generates a confidence score associated with at least one of the predefined lung function patterns. The soft voting pattern selector 310 determines, based on the confidence scores output by the classifier, which of the patterns, if any, is associated with the subject based on all the test results from the oscillometer. The soft voting pattern selector 310 may use a soft voting ensemble algorithm to produce a single selected pattern decision based on the classifier 308 output. The soft voting pattern selector 310 may determine average confidence scores, or any other combination of the scores, associated with each of the predefined lung function patterns andidentify the pattern with the highest average confidence score as the selected pattern. In some cases, the soft voting pattern selector 310 may determine whether the highest average confidence score is greater than a minimum confidence threshold. If not, then it may output an indeterminate signal indicating that the pattern could not be identified. In some cases, it may determine whether the highest average confidence score is at least a minimum quantity greater than the second-highest average confidence score, thereby assessing whether the score is sufficiently selective of one pattern. In some cases, the soft voting pattern selector may output the highest average confidence scores, thereby enabling display software to textually or visually indicate the relative confidence associated with each pattern.
[0058] FIG. 4 is a high-level diagram of an example computing device 400. The example computing device 400 includes a variety of modules. For example, the example computing device 400 may include a processor 410, a memory 420, an VO module 440, and a communications module 450. As illustrated, the foregoing example modules of the example computing device 400 are in communication over a bus 460.
[0059] The processor 410 is a hardware processor. The processor 410 may, for example, be one or more ARM, Intel x86, PowerPC processors, or the like.
[0060] The memory 420 allows data to be stored and retrieved. The memory 420 may include, for example, random access memory, read-only memory, and persistent storage. Persistent storage may be, for example, flash memory, a solid-state drive or the like. Read-only memory and persistent storage are a computer-readable medium. A computer-readable medium may be organized using a file system such as may be administered by an operating system governing the overall operation of the example computing device 400.
[0061] The VO module 440 allows the example computing device 400 to receive input signals and transmit output signals. Input signals may, for example, correspond to input received from a user. Some output signals may, for example, allow the provision of output to a user. The VO module 440 may serve to interconnect the example computing device 400 with one or more input devices. Input devices may, for example, include one or more of a touchscreen input, keyboard, trackball or the like. The VO module 440 may serve to interconnect the example computing device 400 with one or more output devices. Output devices may include, for example, a display screen such as,for example, a liquid crystal display (LCD), a touchscreen display. Additionally, or alternatively, output devices may include devices other than screens such as, for example, a speaker, indicator lamps (such as, for example, light-emitting diodes (LEDs)), and printers.
[0062] The communications module 450 allows the example computing device 400 to communicate with other electronic devices and / or various communications networks. For example, the communications module 450 may allow the example computing device 400 to send or receive communications signals. As an example, the communication module 450 may include a network connection, data port, or the like, for receiving scan images from an MRI scanner. Communications signals may be sent or received according to one or more protocols or according to one or more standards. For example, the communications module 450 may allow the example computing device 400 to communicate via a cellular data network, such as for example, according to one or more standards such as, for example, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Evolution Data Optimized (EVDO), Fong-term Evolution (ETE) or the like. Additionally, or alternatively, the communications module 450 may allow the example computing device 400 to communicate using near-field communication (NFC), via Wi-Fi (TM), via the Ethernet family of network protocols, using Bluetooth (TM) or via some combination of one or more networks or protocols. In some embodiments, all or a portion of the communications module 450 may be integrated into a component of the example computing device 400. In some examples, the communications module may be integrated into a communications chipset.
[0063] Software instructions are executed by the processor 410 from a computer-readable medium. For example, software may be loaded into random-access memory from persistent storage within memory 420. Additionally, or alternatively, instructions may be executed by the processor 410 directly from read-only memory of the memory 420.
[0064] FIG. 5 depicts a simplified organization of software components stored in memory 420 of the example computing device 400. As illustrated, these software components include, at least, application software 510 and an operating system 500.
[0065] The application software 510 adapts the example computing device 400, in combination with the operating system 500, to operate as a device performing a particular function. While asingle application software 510 is illustrated in FIG. 5, in operation, the memory 420 may include more than one application software and different application software may perform different operations.
[0066] The operating system 500 is software. The operating system 5300 allows the application software 510 to access the processor 410, the memory 420, the I / O module 440, and the communications module 450. The operating system 500 may, for example, be iOS™, Android™, Linux™, Microsoft Windows™, or the like.
[0067] The application software 510 may, when executed, cause the processor 410 to carry out operations to implement at least some portion of one or more of the methods described herein. In some cases, the application software 510 may implement some or all of a machine learning model to identify or select a lung function pattern based on one or more time series of measurement results from an oscillometer. The computing device 400 may be external to the oscillometer and may receive the time series of measurements via a wired or wireless connection in some cases. In some cases, the computing device 400 may be implemented as part of the oscillometer. That is, the oscillometer may include the computing device 400 and its constituent parts.
[0068] Reference is now made to FIG. 6, which shows example graphs 600a, 600b, 600c, illustrating time series of oscillometer measurements. Graph 600a shows an example time series of volume measurements in Liters over a testing time period of 20 seconds taken by an oscillometer. The periodicity of the graph indicates the cycle of normal tidal breathing. In this example, the data is obtained with a sampling rate of 256 Hz. Graph 600b shows an example time series of pressure measurements in cmH2O from the same testing time period, and graph 600c shows an example time series of flow measurements in L / s from the same testing time period. In this example, the oscillometer is a mono-frequency oscillometer that imposes a periodic air flow wave at a single frequency.
[0069] Reference is now also made to FIG. 7, which shows a graph 700 of an example of a volume time series. The graph 700 illustrates the possibility of having the system segment the time series of measurements into a set of non- overlapping time sub-series. In this example, with a testing time period of 20 seconds, the series may be segmented into 8 sub-series of 2.5 secondseach. The periodicity of tidal breathing is such that each segment includes a substantially complete breathing cycle. In some cases, segmenting a testing time period having a plurality of breathing cycles into a set of shorter time periods each having at least one breathing cycle, may improve the accuracy of the pattern selection by providing the machine learning model with a plurality of time series from which to obtain feature vectors and find pattern matches.
[0070] Reference will now be made to FIG. 8, which shows, in flowchart form, one simplified example of method 800 of classifying oscillometry measurements. The method 800 may be implemented by way of suitably programmed processor-executable instructions stored in memory that, when executed, cause a computing device to carry out the described functions. In particular, the instructions may implement a machine learning model for receiving a time series of oscillometry measurements, such as flow and pressure measurements, and outputting a pattern selection. In some cases, the computing device may be integrated within an oscillometry device designed to take flow and pressure measurements from a subject over a testing time period. In some cases, the computing device may be external to and separate from the oscillometry device.
[0071] In operation 802, a time series of oscillometer measurements are obtained. The oscillometer measurements may be one or more of flow, pressure, and / or volume with regard to a subject. The measurements are taken over a testing time period using a single frequency or multi-frequency oscillometer. Notably, the measurements are not transformed to the frequency domain and converted into reactance and / or resistance parameters.
[0072] In operation 804, the time series of measurements is input to a random or pre-determined filter bank to obtain a feature vector of the proportion of positive values. The random filter bank may include a set of random convolution kernels, each of which produces a PPV output for the input time series. The random convolution kernels may convolve with the whole time series or a segment of it. One example of a random filter bank is the RandOm Convolutional Kernel Transform (ROCKET) algorithm. In some example implementations, a variation of ROCKET called MiniROCKET may be used. The MiniROCKET algorithm uses about 10000 convolutional kernels. In some implementations, a different (e.g. more than 10000 or less than 10000) number of kernels may be used. In some cases, when training the machine learning model, the filter bank may be reduced through the elimination of some inactive or less activekernels to reduce the size of the convolution operation and improve model speed and timing. Other possible feature generator and classification algorithms may include InceptionTime, Proximity Forest, and S-Rocket, as examples.
[0073] The output feature vector is then input to a classifier in operation 806. The classifier may be a logistic regression classifier in some cases. It may be a ridge regression classifier in some cases. The classifier determines a confidence score associated with predetermined lung function patterns for the input feature vector. The pattern with the highest confidence score identified by the classifier is output at the selected pattern for the oscillometry measurements in operation 808. The output selection may be displayed on a display screen in some cases, such as through text or graphics identifying the selected pattern. The confidence score or relative confidence score associated with the selected pattern may be output and displayed in some cases.
[0074] FIG. 9 shows another example of method 900 of classifying oscillometry measurements.In operation 902, a time series of oscillometer measurements is obtained. The oscillometer measurements may be one or more of flow, pressure, and / or volume with regard to a subject. The measurements are taken over a testing time period using a single-frequency or multi-frequency oscillometer. Notably, the measurements are not transformed to the frequency domain and converted into reactance and / or resistance parameters.
[0075] In operation 804, the time series of measurements is input to a random or non-random filter bank to obtain a feature vector of the proportion of positive values (PPV). As noted above, the random filter bank may be a ROCKET or MiniROCKET algorithm in some implementations. In other implementations, a different random filter bank is used. The random filter bank generates a feature vector for each time series of measurements. As mentioned earlier, the PPV might be the ratio of the positive values to the size of the time series or may be found by thresholding the convolved output with a certain random / non-random value. The threshold used for PPV might be selected at random, or dynamically, for example, a certain percentile of the amplitude of the convolved signal, or a fixed value, which may be learned or pre-determined.
[0076] In some implementations, a time series of measurements over the testing time period is partitioned or segmented into a plurality of shorter concatenated time series. Each of those shorter time series is input as a separate time series into the filter bank and each results in afeature vector. As a result, from a single test, the system may obtain a plurality of different time series - e.g. one for flow, one for pressure, and one for volume or a subset of those. Those time series may be partitioned or segmented so as to have multiple time subseries of each of flow, pressure and volume.
[0077] The feature vectors obtained from the random filter bank are each, in turn, input to a classifier trained to select a best-matching lung function pattern from a plurality of predetermined patterns. The classifier may determine a confidence score associated with the pattern(s) for each feature vector.
[0078] In operation 908, it may be determined whether the test is to be repeated. If so, another set of time series of measurements is obtained and run through the filter bank and classifier.
[0079] Once the desired number of tests have been run, then in operation 910 the average confidence score is determined for each of the plurality of predetermined patterns. In operation 912, the pattern with the highest average confidence score may be selected and output. In some implementations, the highest average confidence score may be compared to a minimum threshold score and, if lower, then the test may be determined to be inconclusive and an error or other such notification may be output. In some cases, all the average scores are output and may be displayed in association with the patterns to textually or visually indicate the degree of certainty or likelihood associated with each of the possible patterns.
[0080] The various embodiments presented above are merely examples and are in no way meant to limit the scope of this application. Variations of the innovations described herein will be apparent to persons of ordinary skill in the art, such variations being within the intended scope of the present application. In particular, features from one or more of the above-described example embodiments may be selected to create alternative example embodiments including a subcombination of features which may not be explicitly described above. In addition, features from one or more of the above-described example embodiments may be selected and combined to create alternative example embodiments including a combination of features which may not be explicitly described above. Features suitable for such combinations and sub-combinations would be readily apparent to persons skilled in the art upon review of the present application as a whole. The subjectmatter described herein and in the recited claims intends to cover and embrace all suitable changes in technology.
Claims
What is claimed is:
1. A computer- implemented method of identifying a pulmonary function pattern for a subject, comprising: obtaining a time series of measurements using an oscillometer; processing the time series of measurements using a trained machine learning model, including, inputting the time series of measurements to a filter bank to produce a feature vector composed of a set of proportion of positive values, and inputting the feature vector to a classifier to select one of a plurality of lung function patterns for the feature vector; and outputting a classification decision based on the selected lung function pattern.
2. The computer-implemented method of claim 1, wherein the time series of measurements are one or more of flow, pressure, and volume.
3. The computer-implemented method of claim 1, wherein the time series of measurements at least one time series of flow measurements, at least one time series of pressure measurements, and at least one time series of volume measurements.
4. The computer-implemented method of any one of claims 1 to 3, wherein the classifier is a ridge regression classifier.
5. The computer-implemented method of any one of claims 1 to 4, wherein the filter bank includes a random convolutional kernel transform.
6. The computer-implemented method of any one of claims 1 to 4, wherein the filter bank includes a learned convolutional kernel transform.
7. The computer-implemented method of any one of claims 1 to 6, wherein obtaining includes obtaining a plurality of time series and processing includes processing each of the plurality of time series to result in a selected lung function pattern for each of the plurality of time series, and further including determining the classification decision using soft voting and the plurality of selected lung function patterns.
8. The computer-implemented method of claim 7, wherein the classifier outputs a confidence score associated with the selected one of the plurality of lung function patterns, and wherein determining the classification decision includes determining an average confidence score for each of the lung function patterns and selecting the lung function pattern having a highest of the average confidence scores as the classification decision.
9. The computer-implemented method of claim 7, wherein obtaining the plurality of time series includes segmenting at least one time series of measurements taken over a testing time period into a plurality of partially overlapping or non- overlapping time sub-series.
10. The computer-implemented method of any one of claims 1 to 9, wherein the lung function patterns include normal, restricted, obstructed, and restricted+obstructed.
11. A computing device for identifying a pulmonary function pattern for a subject, comprising: a processor; and a memory coupled to the processor and storing processor-executable instructions which, when executed by the processor, are to cause the processor to: receive a time series of measurements from an oscillometer; process the time series of measurements using a trained machine learning model, including, inputting the time series of measurements to a filter bank to produce a feature vector composed of a set of proportion of positive values, andinputting the feature vector to a classifier to select one of a plurality of lung function patterns for the feature vector; and output a classification decision based on the selected lung function pattern.
12. A computing device for identifying a pulmonary function pattern for a subject, comprising: a processor; and a memory coupled to the processor and storing processor-executable instructions which, when executed by the processor, are to cause the processor to carry out the method claimed in any one of claims 1 to 10.
13. An oscillometry system comprising the computing device of claim 11 or claim 12 and an oscillometer to obtain the time series of measurements from the subject.
14. A computer readable medium storing processor-executable instructions that, when executed by one or more processors, are to cause the one or more processors to carry out the method claimed in any one of claims 1 to 10.
Citation Information
Patent Citations
Non-invasive system for monitoring and treating respiratory distress
US20190167209A1
Pulmonary function estimation
US20210027893A1
Sound-based spirometric devices, systems, and methods using audio data transmitted over a voice communication channel
WO2016154139A1