# Non-Contact SpO2 Prediction System Based on a Digital Camera
## 4 Experimental Results and Discussion  
In this section, the performance of SpO2 was evaluated for 14 subjects, and the obtained results are reported and compared with the results measured by the Rossmax pulse oximeter. All subjects were healthy due to the difficulty of collecting data from COVID-19 patients. For each participant, we recorded five videos at different times in the stationary scenario. As a result, 14 subjects accounted for 70 video data samples in total. Video processing was performed in a MATLAB environment due to its simplicity that allowed easy application development. First, to determine why the selected wavelengths from the output signals of ICA were the best to estimate SpO2, a fast Fourier transform (FFT) was performed for spectrum analysis of these signals and to obtain their spectrogram, as shown in Figure 10.  
The resulting images from Figure 10 clearly revealed distinct optical properties and the wavelengths of the red and green signals resulting from applying ICA on the selected IMFs. Second, to determine the correlation rate between the obtained SpO2 data using the proposed method and the measured SpO2 data from the Rossmax pulse oximeter, a correlation plots with some statistics, including [PERSON]'s correlation, [PERSON]'s Rho correlation and Kendall tau correlation coefficient, was used, as shown in Figure 11.  
Figure 10: Spectrum analysis of the selected signals and their spectrogram for (**a**) \(u_{1}(t)\) signal, (**b**) \(u_{2}(t)\) signal. As shown in Figure 11, the slope of the correlation plot was \(-0.0914\) with [PERSON]'s correlation coefficient of \(-0.074\), [PERSON]'s Rho correlation coefficient of \(-0.086\) and [PERSON] tau correlation coefficient of \(-0.058\). To determine the limits of agreement and error ratios between the measured and the obtained SpO2 data, the Bland-Altman method [50], sum of square error (SSE), mean absolute error (MAE) and root-mean-square error (RMSE) were used, as shown in Figure 12.  
It is clear that the mean bias and the upper and lower limits of agreement between the percentage of SpO2 readings were \(-0.57\), \(+6.5\), \(-7.6\), respectively, with error ratios of \(2.72\), \(3.02\) and \(3.62\) for the SSE, MAE and RMSE, respectively. It can be observed that the results from the proposed system agreed closely with those from a standard pulse oximetry device and fell within the normal range of SpO2 values. To evaluate the execution time of the proposed system, the MATLAB code was executed on a laptop with Intel(R) Core \({}^{\text{TM}}\) i7-6700 HQ, CPU of \(2.6\) GHz with \(16\) GBDDR4 (\(2400\) MHz) under the Windows \(10\) operating system. The execution time to process a  
Figure 11: Correlation plot between the obtained SpO2 and the measured SpO2. Figure 12: The Bland–Altman and error ratios between the obtained SpO2 and the measured SpO2. video (10 s) was 105 s, including 45 s for converting video to frames (600 frames), 55 s for ROI selection and 5 s for SpO2 estimation. This study has a number of limitations that might need to be overcome to achieve its practical implementation. Video in normal environments is subject to movement and unknown lighting conditions. The amount of direct and ambient light available outdoors or in domestic environments cannot be known when the device design is done, possibly leading to dim and noisy images. The background behind subjects is also uncontrolled, and often affects the video quality of the subject's face due to automatic gain controls and automatic white balance. These difficulties can normally be managed by the digital interface for camera controls in dedicated computer vision cameras, but for general-purpose video cameras, many of these parameters cannot be disabled. This study limited itself to the consideration of stationary subjects, yet in many instances, children and some adults simply cannot be forced to remain still. For some types of movement, it may be possible to stabilise the images using software or gimbal-mounted cameras.