Patent Publication Number: US-2020297227-A1

Title: Vital sign monitoring system using an optical sensor

Description:
RELATED APPLICATIONS 
     This application claims the benefit of provisional patent application Ser. No. 62/820,569, filed Mar. 19, 2019, the disclosure of which is hereby incorporated herein by reference in its entirety. 
     The present application is related to concurrently filed U.S. patent application Ser. No. ______, filed Mar. 19, 2020, entitled “DETECTING ABNORMALITIES IN VITAL SIGNS OF SUBJECTS OF VIDEOS,” which is incorporated herein by reference in its entirety. 
    
    
     FIELD OF THE DISCLOSURE 
     This disclosure is related to optical vital sign detection. 
     BACKGROUND 
     Remote sensing of physiological parameters, such as heartbeat and breathing, has a number of uses. For example, this can facilitate prevention and early diagnosis of cardiovascular diseases. Conventional medical devices, such as electrocardiograms (ECGs), and more recent smart devices, such as smart wearable devices, can provide accurate heart rate measurement but require direct contact with the human body. These existing approaches can cause discomfort and may not be suitable for long-term monitoring of physiological parameters. 
     SUMMARY 
     A vital sign monitoring system using an optical sensor is provided. The vital sign monitoring system, and related methods and devices described herein, is equipped with a camera or other optical sensor to remotely detect and measure one or more physiological parameters (e.g., vital signs) of a subject. For example, the vital sign monitoring system can detect, measure, and/or monitor heart rates and respiration rates from one or multiple subjects simultaneously using advanced signal processing techniques, including adaptive color beamforming to more accurately detect and measure the vital sign(s) of interest. 
     Embodiments described herein use remote imaging photophlethysmography (RIPPG) to measure blood volume changes by detecting slight color variations in human skin using a non-contact video camera. Spatially averaged skin-pixel values are tracked and measured, such as by using a face tracking algorithm in individual video frames. By adaptively combining multi-color (e.g., red-green-blue (RGB)) time-series and concatenating resulting values, detected energy is maximized in a pulsatile direction to detect and measure the vital sign(s) of interest. 
     In some examples, the vital sign monitoring system is deployed in a movable device, such as a smart unmanned aerial vehicle (UAV or drone), which may be referred to herein as a BioDrone. The BioDrone is equipped with a camera or other optical sensor to remotely detect and measure one or more physiological parameters. The advanced signal processing techniques can compensate for drone flying motion and/or random body motion of one or more subjects to more accurately measure the desired physiological parameters. 
     An exemplary aspect relates to a method for remotely monitoring a physiological parameter. The method includes sensing optical video data of a subject, analyzing the optical video data to track color changes in a region of interest of the subject over time, and extracting physiological parameter data of the subject by adaptively beamforming the color changes. 
     Another exemplary aspect relates to a device. The device includes an optical image sensor and an image processor. The image processor is configured to receive optical video data from the optical image sensor, analyze the optical video data to track color changes in a region of interest of a subject over time, adaptively beamform the color changes, and analyze the beamformed color changes to determine a physiological parameter of the subject. 
     Another exemplary aspect relates to a vital sign monitoring system. The vital sign monitoring system includes a device comprising an optical image sensor and an image processor in communication with the optical image sensor. The image processor is configured to receive optical video data from the optical image sensor, analyze the optical video data to track color changes in a region of interest over time, and extract physiological parameter data of a human subject by adaptively beamforming the color changes. 
     Those skilled in the art will appreciate the scope of the present disclosure and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING FIGURES 
       The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosure. 
         FIG. 1A  is a schematic diagram of an exemplary vital sign monitoring system, which remotely detects one or more physiological parameters using an optical image sensor, such as a camera. 
         FIG. 1B  is a graphical representation of an exemplary sequence of captured images of the environment of  FIG. 1A . 
         FIG. 2  is a schematic diagram of an exemplary approach to analyzing the sequence of captured images of  FIG. 1B  using color beamforming. 
         FIG. 3A  is a graphical representation of a traditional fixed color combining approach to photophlethysmography. 
         FIG. 3B  is a graphical representation of results of the approach to analyzing the sequence of captured images of  FIG. 2 . 
         FIG. 4  is a schematic block diagram of an exemplary method for remotely monitoring a physiological parameter according to embodiments described herein. 
         FIG. 5  is a schematic diagram of an exemplary remote imaging photophlethysmography (RIPPG) approach described herein using color beamforming and spectral analysis to extract vital signs of a subject. 
         FIG. 6A  is a schematic diagram of an exemplary BioDrone system. 
         FIG. 6B  is a schematic diagram of remote vital sign monitoring using the BioDrone system of  FIG. 6A . 
         FIG. 7  is a process flow diagram for the BioDrone system of  FIG. 6A . 
         FIG. 8  is a block diagram of the vital sign monitoring system suitable for implementing remote monitoring of one or more physiological parameters according to embodiments disclosed herein. 
     
    
    
     DETAILED DESCRIPTION 
     The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the embodiments and illustrate the best mode of practicing the embodiments. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims. 
     It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the present disclosure. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. 
     It will be understood that when an element such as a layer, region, or substrate is referred to as being “on” or extending “onto” another element, it can be directly on or extend directly onto the other element or intervening elements may also be present. In contrast, when an element is referred to as being “directly on” or extending “directly onto” another element, there are no intervening elements present. Likewise, it will be understood that when an element such as a layer, region, or substrate is referred to as being “over” or extending “over” another element, it can be directly over or extend directly over the other element or intervening elements may also be present. In contrast, when an element is referred to as being “directly over” or extending “directly over” another element, there are no intervening elements present. It will also be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present. 
     Relative terms such as “below” or “above” or “upper” or “lower” or “horizontal” or “vertical” may be used herein to describe a relationship of one element, layer, or region to another element, layer, or region as illustrated in the Figures. It will be understood that these terms and those discussed above are intended to encompass different orientations of the device in addition to the orientation depicted in the Figures. 
     The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including” when used herein specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. 
     Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms used herein should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. 
     A vital sign monitoring system using an optical sensor is provided. The vital sign monitoring system, and related methods and devices described herein, is equipped with a camera or other optical sensor to remotely detect and measure one or more physiological parameters (e.g., vital signs) of a subject. For example, the vital sign monitoring system can detect, measure, and/or monitor heart rates and respiration rates from one or multiple subjects simultaneously using advanced signal processing techniques, including adaptive color beamforming to more accurately detect and measure the vital sign(s) of interest. 
     Embodiments described herein use remote imaging photophlethysmography (RIPPG) to measure blood volume changes by detecting slight color variations in human skin using a non-contact video camera. Spatially averaged skin-pixel values are tracked and measured, such as by using a face tracking algorithm in individual video frames. By adaptively combining multi-color (e.g., red-green-blue (RGB)) time-series and concatenating resulting values, detected energy is maximized in a pulsatile direction to detect and measure the vital sign(s) of interest. 
     In some examples, the vital sign monitoring system is deployed in a movable device, such as a smart unmanned aerial vehicle (UAV or drone), which may be referred to herein as a BioDrone. The BioDrone is equipped with a camera or other optical sensor to remotely detect and measure one or more physiological parameters. The advanced signal processing techniques can compensate for drone flying motion and/or random body motion of one or more subjects to more accurately measure the desired physiological parameters. 
       FIG. 1A  is a schematic diagram of an exemplary vital sign monitoring system  10 , which remotely detects one or more physiological parameters using an optical image sensor  12 , such as a camera. The optical image sensor  12  provides video data of a nearby environment  14  including one or more subjects  16  (e.g., human subject(s)). The vital sign monitoring system  10  includes an image processor  18  configured to extract vital signs of the subject(s)  16  from the video data provided by the optical image sensor  12 . 
     The vital sign monitoring system  10  detects, measures, and/or monitors one or more physiological parameters of the subject(s)  16  with an RIPPG approach, using color beamforming and spectral analysis to extract the physiological parameter(s). RIPPG is an electro-optical technique for non-invasively measuring tissue blood volume pulses (BVPs) in the microvascular tissue bed underneath the skin. The approach described herein allows for a light source to be ambient light, but other light sources may be used as well. 
       FIG. 1B  is a graphical representation of an exemplary sequence of captured images  20  of the environment  14  of  FIG. 1A . The optical image sensor  12  (e.g., a digital camera) is focused on a region of interest  22  (represented as a set of sample pixels) on a human face of the subject  16 . The sequence of captured images  20  can be recorded in a video format (e.g., a sequence of complete images or one or more reference images and difference vectors). The hemoglobin in blood can absorb light, therefore BVPs beneath the skin surface modulate light absorption by the skin during cardiac activity, appearing as slight color variations in the skin. These slight variations due to BVPs may be undetectable by human eyes, but the image processor  18  of the vital sign monitoring system  10  uses signal processing techniques to extract the BVPs and other vital signs (e.g., heart rate, heartbeat waveform, respiration rate). 
       FIG. 2  is a schematic diagram of an exemplary approach to analyzing the sequence of captured images  20  of  FIG. 1B  using color beamforming. A spatially averaged red-green-blue (RGB) time-series can be obtained to describe skin color changes over time by averaging skin-pixel values selected from a face tracking algorithm in individual video frames and concatenating the resulting values from each color channel  24 ,  26 ,  28 . For example, a red color channel  24  of the region of interest  22  can be spatially averaged and represented by a red time-series  30 . Similarly, a green color channel  26  can be represented by a green time-series  32 , and a blue color channel  28  can be represented by a blue time-series  34 . Adaptive color beamforming is used to adaptively combine the RGB color time-series (combining the red time-series  30 , the green time-series  32 , and the blue time-series  34 ) and maximize the energy in the pulsatile direction. 
       FIG. 3A  is a graphical representation of a traditional fixed color combining approach to photophlethysmography. Under the traditional approach, only the red and green color channels are combined at a fixed ratio, such as by weighting the red time-series  30  of  FIG. 2  at −0.71 and the green time-series  32  at 0.71 (while ignoring the blue time-series  34 ). This produces a red-green time-series  36 . 
       FIG. 3B  is a graphical representation of results of the approach to analyzing the sequence of captured images of  FIG. 2 . Embodiments described herein apply adaptive color beamforming to adaptively combine the red time-series  30 , the green time-series  32 , and the blue time-series  34  of  FIG. 2  into an RGB color time-series  38 . The beamforming weights can be appropriately selected based on the spectral energy distribution of the RGB time-series  38  within the frequency range of a human heart rate. This exploits the facts that (1) the pulsatile motion in different color channels has the same frequency in the spectral domain, and (2) motions or changes in the background (e.g., illumination) varies across different spectral components. 
     An exemplary RGB color beamforming algorithm can be implemented as follows. The spatially averaged RGB color time-series are processed blockwide: 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         R 
                         j 
                         i 
                       
                       ; 
                       
                         G 
                         j 
                         i 
                       
                       ; 
                       
                         B 
                         j 
                         i 
                       
                     
                     ] 
                   
                   = 
                   
                       
                     
                       [ 
                       
                         
                           
                             
                               ∑ 
                               
                                 ROI 
                                 , 
                                 k 
                               
                             
                              
                             
                               pixel 
                               k 
                               red 
                             
                           
                           
                              
                             ROI 
                              
                           
                         
                         ; 
                         
                           
                             
                               ∑ 
                               
                                 ROI 
                                 , 
                                 k 
                               
                             
                              
                             
                               pixel 
                               k 
                               green 
                             
                           
                           
                              
                             ROI 
                              
                           
                         
                         ; 
                         
                           
                             
                               ∑ 
                               
                                 ROI 
                                 , 
                                 k 
                               
                             
                              
                             
                               pixel 
                               k 
                               blue 
                             
                           
                           
                              
                             ROI 
                              
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   1 
                 
               
             
           
         
       
     
     where R j   i  denotes the sample value at an i-th processing interval at a j-th index. 
     At every processing time, a total number of N samples is obtained, j=1, . . . , N. |ROI| denotes the number of image pixels in the region of interest. 
     Two covariances are constructed based on the possible human heart rate frequency range. The spectral components within this region are used to construct a spectral covariance matrix that most likely contains the pulsatile information. The spectral components outside this region are treated as background noise and random motion not of interest, and thus can be used to build a noise-related covariance matrix. For a normal resting heart rate, the frequency is from about 50 to 100 beats per minute. The spatially averaged RGB color time-series are filtered at this frequency region: 
       [R hr   i ; G hr   i ; B hr   i ]=filter{|R i ; G i ; B i |}  Equation 2
 
     where B i  is a 1 by N vector. The pulse related RGB covariance is given as: 
     
       
         
           
             
               
                 
                   
                     COV 
                     hr 
                     i 
                   
                   = 
                   
                     
                       
                         
                           1 
                           N 
                         
                          
                         
                           [ 
                           
                             
                               R 
                               hr 
                               i 
                             
                             , 
                             
                               
                                 G 
                                 hr 
                                 i 
                               
                               ; 
                               
                                 B 
                                 hr 
                                 i 
                               
                             
                           
                           ] 
                         
                       
                        
                       
                         [ 
                         
                           
                             R 
                             hr 
                             i 
                           
                           ; 
                           
                             G 
                             hr 
                             i 
                           
                           ; 
                           
                             B 
                             hr 
                             i 
                           
                         
                         ] 
                       
                     
                     T 
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   3 
                 
               
             
           
         
       
     
     where T denotes matrix transpose. 
     For convenience, the entire RGB color time-series are used to construct the background covariance matrix since the heartbeat activity is limited in a small fraction of the entire spectrum. Similarly, the noise related covariance matrix is given as: 
     
       
         
           
             
               
                 
                   
                     COV 
                     noi 
                     i 
                   
                   = 
                   
                     
                       
                         
                           1 
                           N 
                         
                          
                         
                           [ 
                           
                             
                               R 
                               i 
                             
                             ; 
                             
                               G 
                               i 
                             
                             ; 
                             
                               B 
                               i 
                             
                           
                           ] 
                         
                       
                        
                       
                         [ 
                         
                           
                             R 
                             i 
                           
                           ; 
                           
                             G 
                             i 
                           
                           ; 
                           
                             B 
                             i 
                           
                         
                         ] 
                       
                     
                     T 
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   4 
                 
               
             
           
         
       
     
     In order to emphasize the pulsatile related spectral energy in the covariance matrix, a noise-suppressed pulsatile spectral covariance is obtained by multiplying the matrix inversion of the noise-related covariance matrix to the spectral covariance matrix: 
       COV sup   i ={COV noi   i } −1 COV hr   i   Equation 5
 
     Optimal beamforming weights are directly related to the direction represented by an eigenvector associated with the maximum eigenvalues of the noise-suppressed pulsatile spectral covariance matrix: 
       [Vec, Val]=eig{COV sup   i }  Equation 6
 
     where eig denotes the eigenvalue decomposition operation, and Vec and Val represent the eigenvector matrix and the associated eigenvalues. If both are sorted in descending order, the optimal color beamforming weight, a 3 by 1 vector, maximizing the pulse energy while suppressing the background noise is given as: 
       w hr   opt Vec(:,1)  Equation 7
 
     By applying the RGB color beamforming weights to the RGB color time-series, the desired pulsatile variation p i  is obtained: 
       p i ={w hr   opt } T [R i ; G i ; B i ]  Equation 8
 
     This results in the RGB time-series  38 , such as the example illustrated in  FIG. 3B . Thus, the color beamforming approach outperforms the color difference algorithm of  FIG. 3A . 
       FIG. 4  is a schematic block diagram of an exemplary method for remotely monitoring a physiological parameter according to embodiments described herein. The method begins with sensing optical video data of a subject (block  400 ). The method further includes analyzing the optical video data to track color changes in a region of interest of the subject over time (block  402 ). The method further includes extracting physiological parameter data of the subject by adaptively beamforming the color changes (block  404 ). 
       FIG. 5  is a schematic diagram of an exemplary RIPPG approach described herein using color beamforming and spectral analysis to extract vital signs of a subject. With reference to  FIGS. 2, 3B, and 5 , the RIPPG approach can begin with receiving video data from the optical image sensor  12  focused on the region of interest  22  on the human face of the subject  16  (block  500 ). Changes in the sequence of captured images  20  are recorded and tracked over time (e.g., using the face tracking algorithm) and spatially averaged to produce the red time-series  30 , the green time-series  32 , and the blue time-series  34  (block  502 ). 
     The RGB beamforming algorithm described above is used to adaptively combine the red time-series  30 , the green time-series  32 , and the blue time-series  34  into the RGB color time-series  38  (block  504 ). The beamforming weights can be appropriately selected based on the spectral energy distribution of the RGB time-series  38  within the frequency range of a human heart rate (block  506 ). In this regard, the spectral components within the region of interest are used to construct the spectral covariance matrix that most likely contains the pulsatile information, where spectral components outside this region are treated as background noise to build a noise-related covariance matrix to further improve the extracted heart rate and/or heartbeat waveform. 
     The same concept described with regard to  FIGS. 1A-5  above can be applied for respiration monitoring. There are two differences here: 1) the region of interest in the recorded images are different and 2) the spectral frequency range of interest is different. In order to obtain maximum respiration sensitivity, the region of interest is selected as a relevant body part, such as a subject&#39;s neck and/or front chest. In order to construct the respiratory related covariance matrix, the spatially averaged RGB color time-series at the respiration region of interest are filtered at a frequency region ranging from 10 to 30 breaths per minute. Then the remaining steps follow the approach described above. 
       FIG. 6A  is a schematic diagram of an exemplary BioDrone system  40 . The BioDrone system  40  includes a UAV  42  (e.g., a DJI phantom drone) as the flying platform. The UAV  42  is deployed with an optical image sensor  12  and an image processor  18  (e.g., a stand-alone mini control PC), as well as a portable battery. This forms a sensing module  44  which is used as a payload of the flying platform. 
       FIG. 6B  is a schematic diagram of remote vital sign monitoring using the BioDrone system  40  of  FIG. 6A . The BioDrone system  40  performs the vital sign monitoring approach described above with respect to  FIGS. 1A-5 , including by tracking motion of the region of interest  22  as the subject  16  moves and/or the BioDrone system  40  moves. 
       FIG. 7  is a process flow diagram for the BioDrone system  40  of  FIG. 6A , which can also be applied with respect to  FIGS. 1A-5  above. The method can apply advanced imaging techniques to monitor physiological parameters, such as heart rate and respiration rate, from multiple subjects in optical video data received through an optical image sensor (e.g., camera). In order to detect the weak micro-motion of interest, some examples further address the following challenges: flying platform motion, random motion from the human subject, changes of possible illumination and pulse waveform reconstruction. 
     In order to address these issues, the remote vital sign system is designed accordingly. The image processor  18  applies a series of processing approaches: 
     Image acquisition (block  700 ) 
     Pre-processing techniques (block  702 ) 
     Multiple-face detection and tracking algorithm (block  704 ) 
     Motion suppression (block  706 ) 
     Pulse extraction algorithm (block  708 ) 
     The multiple-face detection and tracking algorithm (block  704 ) can effectively address the large-scale motions from the platform and body motion (e.g., head motion) of subjects. At the pre-processing stage (block  702 ), a signal magnification technique is applied to magnify the weak vital sign signal of interest. In order to further suppress any motion residuals (e.g., from small-scale motions), the RGB color beamforming algorithm described above with respect to  FIGS. 1A-5  is applied to maximize the energy in the pulsatile direction (blocks  706  and  708 ). 
       FIG. 8  is a block diagram of the vital sign monitoring system  10  suitable for implementing remote monitoring of one or more physiological parameters according to embodiments disclosed herein. The vital sign monitoring system  10  includes or is implemented as a computer system  800 , which comprises any computing or electronic device capable of including firmware, hardware, and/or executing software instructions that could be used to perform any of the methods or functions described above. In this regard, the computer system  800  may be a circuit or circuits included in an electronic board card, such as a printed circuit board (PCB), a server, a personal computer, a desktop computer, a laptop computer, an array of computers, a personal digital assistant (PDA), a computing pad, a mobile device, or any other device, and may represent, for example, a server or a user&#39;s computer. 
     The exemplary computer system  800  in this embodiment includes a processing device  802  or processor, a system memory  804 , and a system bus  806 . The system memory  804  may include non-volatile memory  808  and volatile memory  810 . The non-volatile memory  808  may include read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and the like. The volatile memory  810  generally includes random-access memory (RAM) (e.g., dynamic random-access memory (DRAM), such as synchronous DRAM (SDRAM)). A basic input/output system (BIOS)  812  may be stored in the non-volatile memory  808  and can include the basic routines that help to transfer information between elements within the computer system  800 . 
     The system bus  806  provides an interface for system components including, but not limited to, the system memory  804  and the processing device  802 . The system bus  806  may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. 
     The processing device  802  represents one or more commercially available or proprietary general-purpose processing devices, such as a microprocessor, central processing unit (CPU), or the like. More particularly, the processing device  802  may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, or other processors implementing a combination of instruction sets. The processing device  802  is configured to execute processing logic instructions for performing the operations and steps discussed herein. 
     In this regard, the various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with the processing device  802 , which may be a microprocessor, field programmable gate array (FPGA), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or other programmable logic device, a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Furthermore, the processing device  802  may be a microprocessor, or may be any conventional processor, controller, microcontroller, or state machine. The processing device  802  may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration). 
     The computer system  800  may further include or be coupled to a non-transitory computer-readable storage medium, such as a storage device  814 , which may represent an internal or external hard disk drive (HDD), flash memory, or the like. The storage device  814  and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like. Although the description of computer-readable media above refers to an HDD, it should be appreciated that other types of media that are readable by a computer, such as optical disks, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the operating environment, and, further, that any such media may contain computer-executable instructions for performing novel methods of the disclosed embodiments. 
     An operating system  816  and any number of program modules  818  or other applications can be stored in the volatile memory  810 , wherein the program modules  818  represent a wide array of computer-executable instructions corresponding to programs, applications, functions, and the like that may implement the functionality described herein in whole or in part, such as through instructions  820  on the processing device  802 . The program modules  818  may also reside on the storage mechanism provided by the storage device  814 . As such, all or a portion of the functionality described herein may be implemented as a computer program product stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device  814 , non-volatile memory  808 , volatile memory  810 , instructions  820 , and the like. The computer program product includes complex programming instructions, such as complex computer-readable program code, to cause the processing device  802  to carry out the steps necessary to implement the functions described herein. 
     An operator, such as the user, may also be able to enter one or more configuration commands to the computer system  800  through a keyboard, a pointing device such as a mouse, or a touch-sensitive surface, such as the display device, via an input device interface  822  or remotely through a web interface, terminal program, or the like via a communication interface  824 . The communication interface  824  may be wired or wireless and facilitate communications with any number of devices via a communications network in a direct or indirect fashion. An output device, such as a display device, can be coupled to the system bus  806  and driven by a video port  826 . Additional inputs and outputs to the computer system  800  may be provided through the system bus  806  as appropriate to implement embodiments described herein. 
     The operational steps described in any of the exemplary embodiments herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary embodiments may be combined. 
     Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.