Patent Publication Number: US-2022218218-A1

Title: Video-based method and system for accurately estimating human body heart rate and facial blood volume distribution

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a continuation of International Application No. PCT/CN2021/080905, filed on Mar. 16, 2021, which claims priority to Chinese Application No. 202010448368.x, filed on May 25, 2020, the contents of both of which are incorporated herein by reference in their entireties. 
    
    
     TECHNICAL FIELD 
     The present application relates to the accurate estimation of human heart rate and facial blood volume distribution by camera, based on image processing, deep learning and signal processing technologies. 
     BACKGROUND 
     Human heart rate and facial blood volume distribution are important indicators for human physiological health measurement. At present, the main ways to measure the human heart rate are ECG signal detection, photoelectric signal detection and other methods. The common characteristics of these methods is that the equipment for detection needs to cling to the skin of person being tested, to estimate heart rate from the skin potential activity. However, the limitation of this method is need to wear sensors, which limit the applicable scope of this kind of method. At present, remote detection of human physiological indicators through cameras has become a hot spot in current research. Because of the complexity of measurement environment of actual application scenarios, it is easy to cause interference to remote detection methods. In order to eliminate the interference mention above, signal decomposition methods such as wavelet decomposition, independent component analysis (ICA), principal component analysis (PCA) and Hilbert-Huang transform (HHT) are usually used alone or in combination to remove noises. The influence of noises cannot be eliminated well by a signal decomposition method, which is mainly due to the following two reasons: 1, a signal decomposition model is often a general decomposition algorithm, the prior information of physiological features of the human heart rate is not introduced; 2, the selection of decomposition results depends on subjective judgment, that is, the signal closest to heart rate features is selected from the decomposition results, which lacks an objective judgment standard. In order to improve the robustness and accuracy of the method of remote detection, the present application adopts deep learning technology, spectrum analysis and correlation calculation methods for detect the human heart rate and facial blood volume distribution, at the same time adopts Kalman filtering algorithm to fuse the results of heart rate by variety of ways, thus realizing accurate estimation of human heart rate. 
     SUMMARY 
     In order to improve the detection efficiency of the human heart rate and facial blood volume distribution, the present application provides a new detection method and system for human heart rate and facial blood volume distribution. Based on facial data of the video which used to analysis and processes for realizing the estimation of the human heart rate and facial blood volume distribution by means of model prediction and signal processing. 
     The present application is realized by the following technical solution: a video-based method for accurately estimating human heart rate and facial blood volume distribution, including the following steps: 
     (1) detecting and extracting human face image sequence and face key points sequence in time dimension from video; extracting global face signal and a set of face roi signals based on the face image sequence; preprocessing the signals; 
     (2) estimating heart rate value and facial blood volume distribution based on the set of the face roi signals which have been preprocessed; 
     (3) using a multimodal to estimate heart rate which based on LSTM and residual convolution neural network architecture; 
     (4) fusing results of heart rate value estimated by step (2) and step (3) based on the Kalman filtering, thus promote the accuracy of heart rate estimation. 
     The present application based on video-based system for accurately estimating heart rate and facial blood volume distribution, including: 
     an image detection module used for detecting the human face region in video frame image, and extracting a human face image and face key position points sequence in time dimension; extracting an global face signal and a set of roi signals based on the face image sequence; 
     a preprocessing module used for preprocessing the global face signal and roi signals for generating reference signal and roi signals respectively; 
     a frequency spectrum-based heart rate estimation module used for calculating reference signal and frequency spectrum of reference signal in the linear weighting manner based on the preprocessed roi signal set, thus estimating heart rate value according to the extremum of the frequency spectrum, and estimating the facial blood volume distribution based on the reference signal and the roi signals mentioned above; 
     a multimodal heart rate estimate model constructed based on LSTM and residual convolution neural network used for estimating heart rate based on heart rate distribution probability; 
     use the fusion model to refine the heart rate estimation, which based on frequency spectrum-based heart rate estimation module and the multimodal heart rate estimation model. 
     Compared with the prior art, the present application has the following advantages: 
     1) The robustness and accuracy of heart rate estimation are improved based on the fusion method, which improves the anti-interference ability and accuracy of heart rate estimation. Firstly, the heart rate is estimated based on the extremum value of the frequency spectrum transformed from reference signal, but this method has poor robustness in practical due to noise interference, E.g. human face movement or external illumination intensity change will have a great impact on the results. Therefore, a multimodal adopting deep learning technology is used to estimating the heart rate value. On this basis, the Kalman filtering method is used to integrate the results of heart rate which estimated by the two methods discussed above, thus improving the robustness and the accuracy of heart rate estimation. 
     2) The method proposed for estimating face blood volume distribution based on the heart rate value with high accuracy. It can be seen that the estimation of face blood volume distribution is highly consistent to prior knowledge. 
     3) Rapid heart rate estimation based on deep learning method. In the present application, heart rate estimation method based on multimodal deep learning technology and facial video data is proposed. The deep learning model based on LSTM and RCNN architecture is used to extract the features of the input data in a short time, so as to realize the rapid estimation of the human heart rate. At the same time, the anti-interference capability of the model is improved by adding bad samples, such as the addition of face shakes and brightness changes in the training sample set. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a flowchart of the method of the present application; 
         FIG. 2  is a structure diagram of the heart rate estimation model; 
         FIG. 3  is a schematic diagram of key areas of a face; 
         FIG. 4  shows results of a facial blood volume test 1; 
         FIG. 5  shows results of a facial blood volume test 2; 
         FIG. 6  shows results of a facial blood volume test 3. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     The present application will be further described in detail with reference to the attached drawings and specific embodiments. 
       FIG. 1  is a schematic flow chart of the present application. In a specific embodiment of the present application, the present application is implemented by the following specific steps: 
     (1) Data extraction and preprocessing: a human face region in a video frame image is detected, then human face image sequence and face key position points sequence in time dimension are extracted; global face signal and the set of face roi signals are extracted based on the face image sequence; the signals mentioned above are preprocessed; the preprocessing method is not limited to band-pass filtering. 
     (1.1) A convolution network model is used to detect the face and face key points in video frames, then face image sequence and face key position point sequence in time dimension are respectively extracted, as shown in Formula 1, where MTCNN( ) is the convolution network model, frame i  is the i th  video frame image, face i  is a face image extracted from the i th  video frame, and critical_pos i  is the key position point of face image. 
       face i ,critical_pos i =MTCNN(frame i )  (1)
 
     The form of the face image sequence is shown in Formula 2, where: face_seq is the face image sequence, face i  is the face image corresponding to the i th  video frame, and T is the length of video. 
       face_seq={face 1 ,face 2 , . . . ,face i , . . . ,face T }  (2)
 
     (1.2) Based on face image sequence, the overall face signal and the set of face roi (region of interest) signals are extracted respectively. The calculation of the global face signal is shown in Formula 3, where: face_sig is a compressed signal, PCompress ( ) is a compression function, which used for calculating average pixel intensity of each image of the face image sequence, and face_seq is the face image sequence. 
       face_sig=PCompress(face_seq)  (3)
 
     To facilitate the analysis of signal distribution, roi blocks with a size of R×R is used to segment face image in the sequence, then roi block sequences in time dimension are obtained, as shown in Formula 4, where: face_roi i  represents the i th  roi block image sequence, and face_roi_seq is the set of roi block image sequences. 
       face_roi_seq={face_roi 1 ,face_roi 2 , . . . ,face_roi i , . . . ,face_roi m×n }  (4)
 
     On this basis, each roi block image sequence is compressed, as shown in Formula 5, where: face_roi_seq is a set of roi block image sequences, PCompress ( ) is the compression function for calculating the average pixel intensity of a image, and face_roi_sig is the result of PCompress( ) function. 
       face_roi_sig=PCompress(face_roi_seq)  (5)
 
       where: 
       face_roi_sig={face_roi_sig 1 , . . . ,face_roi_sig i , . . . ,face_roi_sig m×n }  (6)
 
     In Formula 6, face_roi_sig i  is the compressed signal corresponding to i th  roi block, and m×n is the sum of face_roi_sig. 
     (1.3) Signal preprocessing: preprocess the global face signal and the face roi signal. The preprocessing method is not limited to band-pass filtering method, as shown in Formulas 7 and 8, where, face_sig_r and roi_sig_r are the results of sigprocess( ) correspond to face_sig and face_roi_sig, sigprocess( ) is the signal preprocessing function. 
       face_sig_ r =sigprocess(face_sig)  (7)
 
       roi_sig_ r =sigprocess(face_roi_sig)  (8)
 
       where: 
       face_sig_ r ={face_sig_ r   1 , . . . ,face_sig_ r   1 , . . . ,face_sig_ r   T } 
       roi_sig_ r ={roi_sig_ r   1 , . . . ,roi_sig_ r   i , . . . ,roi_sig_ r   m×n } 
     where T is the length of video, m×n is the sum of roi_sig_r. 
     (2) Estimation of the heart rate and facial blood volume distribution. On the basis of the global face signal and the face roi signals calculated in step (1), the heart rate and facial blood volume distribution is estimated. 
     (2.1) A reference signal is calculated linearly, as shown in Formula 9, where sig_ref is the reference signal and roi_sig_r is the set of face roi signals as mentioned in Formula 8. 
     
       
         
           
             
               
                 
                   
                     sig_ref 
                     = 
                     
                       
                         weight_set 
                         × 
                         roi_sig 
                         ⁢ 
                         _r 
                       
                       = 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           
                             m 
                             × 
                             n 
                           
                         
                         ⁢ 
                         
                           
                             w 
                             i 
                           
                           × 
                           roi_sig 
                           ⁢ 
                           
                             _r 
                             i 
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     weight_set 
                     = 
                     
                       { 
                       
                         
                           w 
                           1 
                         
                         , 
                         
                           w 
                           2 
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           w 
                           i 
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           w 
                           
                             m 
                             × 
                             n 
                           
                         
                       
                       } 
                     
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     where: weight_set is a weight set and m×n is the sum of weight set. 
     (2.2) Based on the reference signal, the heart rate value is estimated. The estimation steps is shown in Formulas 11 and 12, where sig_ref is the reference signal, sig_ref_sd is the frequency spectrum of reference signal, and heart_rate_ref is the heart rate value corresponds to the peak of the sig_ref_sd. Signal spectrum calculation is not limited to the lomb-scargle spectrum analysis method. 
       sig_ref_ sd=fft (sig_ref)  (11)
 
       heart_rate_ref=max_freq(sig_ref_ sd )  (12)
 
     (2.3) Estimation of facial blood volume distribution. In Formula 13, sig_ref_sd is the frequency spectrum of the reference signal, v is the blood volume distribution. the data feeded in Volume( ) function is not limited to the frequency spectrum of the reference signal. 
         v =Volume(sig_ref_ sd )  (13)
 
     In Formula 13, Volume( ) is the function for estimating blood volume distribution, and its specific form is shown in Formula 14. 
     
       
         
           
             
               
                 
                   
                     Volume 
                     ( 
                     ) 
                   
                   = 
                   
                     [ 
                     
                       
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   1 
                                   , 
                                   1 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   1 
                                   , 
                                   2 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           … 
                         
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   1 
                                   , 
                                   n 
                                 
                                 ) 
                               
                             
                           
                         
                       
                       
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   2 
                                   , 
                                   1 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   2 
                                   , 
                                   2 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           … 
                         
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   2 
                                   , 
                                   n 
                                 
                                 ) 
                               
                             
                           
                         
                       
                       
                         
                           ⋮ 
                         
                         
                           ⋮ 
                         
                         
                           ⋱ 
                         
                         
                           ⋮ 
                         
                       
                       
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   m 
                                   , 
                                   1 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   m 
                                   , 
                                   2 
                                 
                                 ) 
                               
                             
                           
                         
                         
                           … 
                         
                         
                           
                             
                               fs 
                               ref 
                             
                             ⊗ 
                             
                               fs 
                               roi 
                               
                                 ( 
                                 
                                   m 
                                   , 
                                   n 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
           
         
       
     
     In Formula 14, fs ref  is the frequency spectrum of the reference signal, fs roi  is the frequency spectrum of the face roi signals, ⊗ is convolution operator, and m and n are the maximum value of roi blocks in horizontal and vertical coordinates. 
     (3) The heart rate estimation multi-model is constructed based on deep learning method. Based on the face key position points sequence used for obtaining the image sequence including forehead and cheek area which used to make training samples, and the multi-modal heart rate estimation model is constructed based on a LSTM and a Residual Convolutional Neural Network. 
     (3.1) Extraction of training samples. The face key position points extracted in step (1.1) are used to form a key point sequence in time dimension, as shown in Formula 15, where: critical_pos i  is face key position points in the i th  video frame, and img i  is i th  video frame. 
       face i ,critical_pos i =MTCNN(img i )  (15)
 
     The form of critical_pos i  is shown in formula 16, and k is the sum of face key position points, and i is i-th video frame. 
       critical_pos i ={pos 1   i ,pos 1   i , . . . ,pos k   i }  (16)
 
     Based on the key position points of face, the image sequence consisting of forehead, left and right cheek regions in time dimension is selected as the critical roi showed in  FIG. 3 , then the selected image is compressed by PCcompress( ) function to construct training samples, as shown in Formula 17, where sig_c i  is the result of PCompress( ), img_c i  is the i th  image of the critical roi sequence in time dimension, PCompress ( ) is the compression function. 
       sig_ c   i =PCompress(img_ c   i )  (17)
 
       where: 
       sig_ c ={sig_ c   1 ,sig_ c   2 , . . . ,sig_ c   i , . . . ,sig_ c   T } 
     In the above formula, sig_c is the result of compression of critical roi sequence, and T is video length. 
     (3.2) The training sample data is normalized, as shown in Formula 18, where sig_nor is the normalized signal, mean( ) is a mean calculation function, var( ) is a variance calculation function. 
     
       
         
           
             
               
                 
                   sig_nor 
                   = 
                   
                     
                       sig_c 
                       - 
                       
                         mean 
                         ⁡ 
                         
                           ( 
                           sig_c 
                           ) 
                         
                       
                     
                     
                       var 
                       ⁡ 
                       
                         ( 
                         sig_c 
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   18 
                   ) 
                 
               
             
           
         
       
     
     (3.3) A heart rate estimation module is constructed by LSTM (Long and Short Time Memory Network) architecture. This module constitutes by 1D-CNN (one dimension Convolutional Neural Network) and LSTM. First, sig_nor mention in Formula 18 feeds to 1D-CNN. On this basis, the LSTM is used to extract the time series features. Finally, attention mechanism is used to fuse the feature vector of various stages output of the LSTM, In Formula 19, LSTM( ) is the heart rate estimation module based on the LSTM and 1D-CNN mentioned above, sig_nor is the normalized signal obtained in step (3.2) and feature lstm  is the result of LSTM( ) sub-model. 
       feature lstm =LSTM(sig_nor)  (19)
 
     (3.4) A heart rate estimation sub-model is constructed based on the Resnet. The module is mainly constituted by the residual convolution neural network model to extract the features of the signal, the output feature vector of this module is shown in Formula 20, where Resnet( ) is the heart rate estimation module based on the Resnet architecture, sig_nor is the normalized signal obtained in step (3.2), feature resnet  is the result of Resnet( ). 
       feature resnet =Resnet(sig_nor)  (20)
 
     (3.5) The modules in step (3.3) and (3.4) are fused to construct a heart rate estimation multi-model. Result of the modules in step (3.3) and step (3.4) are connected to form the integrated feature vector, based on this, the heart rate can be estimated by fully connected network (FCN). The multi-model mentioned above is shown in Formula 21, where res_pro is the result vector from FCN( ), FCN( ) is the fully connected network, and Concat( ) is the vector connection function. 
       res_pro=FCN(Concat(feature lstm ,feature resnet ))  (21)
 
     On this basis, heart rate value is estimated as shown in Formula 22, where: heart_rate_pre is the heart rate value, mean( ) is the mean calculating function, and max_reg( ) is a function for searching for a heart rate range corresponding to the maximum probability. 
       heart_rate_pre=mean(max_reg(res_pro))  (22)
 
     (4) Fusion of heart rate estimation results based on a Kalman filter. Based on the heart rate values estimated in steps (2) and (3), a signal quality evaluation value and a deep learning model estimation value are used as the state variables of the Kalman filter method, which are used to dynamically fuse the results of two heart rate estimating methods, thereby obtaining the best estimation of the heart rate value. 
     The Kalman filter model is shown in Formulas 23 and 24, where x k  and z k  are a predicted value and a measured value respectively, A and B are a state matrix and a control matrix respectively, H is transformation matrix from prediction space to measurement space, and w k-1  and v k  are a prediction error and a measurement error respectively. 
         x   k   =Ax   k-1   +Bu   k   +w   k-1   (23)
 
         z   k   =Hx   k   +v   k   (24)
 
     According to Formulas 25 and 26, the heart rate values estimated by the two measurement methods mentioned in step (2) and (3) are fused, where x k  is the predicted heart rate value estimated in step (3), z k  is the heart rate value estimated in step (2), K is the fusion coefficient, H represents the transformation matrix from a prediction space to a measurement space, and H=1 in heart rate measurement. P k  is a predicted variance, which corresponds to the predicted probability value in step (3). R k  is a measured variance, which corresponds to the signal-to-noise ratio of the reference signal in step (2.3). 
     
       
         
           
             
               
                 
                   
                     x 
                     k 
                     ′ 
                   
                   = 
                   
                     
                       x 
                       k 
                     
                     + 
                     
                       K 
                       ⁡ 
                       
                         ( 
                         
                           
                             z 
                             k 
                           
                           - 
                           
                             Hx 
                             k 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   25 
                   ) 
                 
               
             
             
               
                 
                   K 
                   = 
                   
                     
                       
                         P 
                         k 
                       
                       ⁢ 
                       
                         H 
                         T 
                       
                     
                     
                       
                         
                           HP 
                           k 
                         
                         ⁢ 
                         
                           H 
                           T 
                         
                       
                       + 
                       
                         R 
                         k 
                       
                     
                   
                 
               
               
                 
                   ( 
                   26 
                   ) 
                 
               
             
           
         
       
     
     The present application discloses a video-based system for accurately estimating human heart rate and facial blood volume distribution. 
     An image detection module is use for detecting human face region in the video frame and extract human face image sequence and key position points sequence of face in time dimension; extracting an global face signal and a set of face roi signals based on the face image sequence. 
     A preprocessing module preprocesses the global face signal and the roi signals extracted by the image detection module. 
     A frequency spectrum-based heart rate estimation module is used for estimating heart rate based on reference signal. Reference signal calculated in a linear weighting way based on the set of face roi signals, thus obtaining the heart rate value according to the extremum value of the frequency spectrum of reference signal, on this basis, the facial blood volume distribution can be calculated according to the frequency spectrum of the reference signal and the frequency spectrum of the roi signals. 
     A multimodal heart rate estimation model is constructed by LSTM and RCNN architecture which is used for estimating heart rate value based on heart rate distribution probability. 
     A fusion module is used for obtaining the fused heart rate value based on the results estimated by the frequency spectrum-based heart rate estimation module and the multimodal heart rate estimation model. 
       FIG. 2  is the structural diagram of multimodal heart rate estimation model according to the present application The left sub-picture (Resnet) of  FIG. 2  is the CNN module, which is responsible for extracting the spatial features of data, and the right sub-picture (LSTM) is the LSTM module, which is used for extracting the features of the data in time dimension. The output feature vectors of the above two modules are combined to estimate the heart rate value. 
       FIG. 3  is a schematic diagram of key areas on a face; in the present application, the key areas on a face refer to the forehead and cheeks. 
       FIG. 4  shows facial blood volume distribution results 1. The head is kept in a stable state. From the results, it can be seen that no blood volume distribution is detected on the forehead and the part with poor illumination, which is in line with the experimental expectation. 
       FIG. 5  shows facial blood volume distribution results 2. The head is stabilized by a lying posture and the illumination is uniform. From the results, it can be seen that the results of the facial blood volume detection are uniform, which is in line with experimental expectation. 
       FIG. 6  shows facial blood volume distribution results 3. The head is deliberately shaken slightly. Compared with the detection results shown in  FIG. 5 , it can be seen that the results of the facial blood volume detection have noises which is in line with experimental expectation. 
     The above embodiments are only the preferred embodiments of the present application, and it should be pointed out that for a person skilled in the technical field, several improvements and variations can be made without departing from the technical principle of the present application, and these improvements and variations should also be regarded as the protection scope of the present application.