1 Introduction

COVID-19 has triggered more than 6.35 million deaths and over 555 million confirmed cases till 11/July/2022 (See Fig. 1). It has caused a serious impact on individual health, social and economic activities, and other aspects [1]. The main symptoms of the disease are a recent and enduring cough, low fever, and a loss or alteration of smell and taste [2].

Fig. 1
figure 1

Top-ten statistics of COVID-19 till 11/July/2022 [Data from WHO]

Two types of COVID-19 recognition tools are popular. The primary one is viral experiments to examine the presence of viral-related [3] RNA pieces. Its limitations are: (a) the swab might be contaminated [4], and (b) The person who is tested has to wait for the test outcomes for quite a few hours to some days. The last type is the chest imaging modalities [5], among which chest computed tomography (CCT) [6] can provide the highest sensitivity.

Nevertheless, manual labeling by human scientists is tedious, inefficient, laborious, and undoubtedly prejudiced by personal emotions. In contrast, computer-aided diagnosis methods are now winning better outcomes on automatic labeling of COVID-19 than human experts due to the progress of computer vision and deep learning.

El-kenawy et al. [7] presented the Feature Selection and Voting Classifier (FSVC) for diagnosing the disease. Ni et al. [8] developed a deep learning approach (DLA) to characterize COVID-19. Wang et al. [9] proposed a tailored deep convolutional neural network (TDCNN) to detect COVID-19. Hou [10] proposed a 6-layer deep convolutional network (6 l-DCN) to detect this disease. Wang [11] combined wavelet entropy (WE) and genetic algorithm (GA) to identify COVID-19. Wang [12] integrated WE and cat swarm optimization (CSO) together to identify COVID-19. Pi [13] combined the gray-level co-occurrence matrix (GLCM) and Schmitt network for COVID-19 recognition. They achieved an accuracy of 76.33%. Gafoor et al. [14] presented a deep learning model (DLM) to discover the disease from chest X-ray images.

Nevertheless, the implementation of the above methods can still advance. To recognize COVID-19 more precisely, the authors propose a new COVID-19 recognition model and web app (WA). We introduce the GLCM to descript chest CT images. Also, the four-direction varying-distance GLCM (FDVD-GLCM) is presented for a better description. The five-property feature set (FPFS) is extracted from the FDVD-GLCM matrix, and the extreme learning machine (ELM) neural network is used as the classifier. In all, our method is abbreviated as FECNet, in which F stands for the FDVD-GLCM, E for the ELM classifier, C for COVID-19, and Net for the neural network. To avoid overfitting, we use multiple-way data augmentation (MDA) to boost the training.

COVID-19-related mobile apps were developed in the past, such as COVIUAM [15]. Tsinaraki et al. [16] investigated Apple's App Store, Google Play, relevant tweets, and digital media outlets. They listed recent mobile apps to fight against COVID-19. Denis et al. [17] developed a self-assessment web app to evaluate trends of the COVID-19 pandemic in France. Kinori et al. [18] developed a web app for emotional management during the COVID-19 pandemic. Smith et al. [19] developed the 'covidscreen' app to assess asymptomatic COVDI-19 testing strategies.

Therefore, inspired by previous COVID-19-related mobile apps, we have developed a mobile app based on our FECNet method. In all, the contributions are listed below:

  1. 1.

    The FDVD-GLCM is presented as the feature descriptor.

  2. 2.

    An FPFS is extracted from FDVD-GLCM descriptor.

  3. 3.

    ELM is introduced as the classifier. MDA is used to boost the training.

  4. 4.

    Cross-validation shows this FECNet method is superior to five state-of-the-art methods.

  5. 5.

    We have developed the mobile app for our proposed FECNet method.

2 Dataset and preprocessing

Two COVID-19 datasets (\({E}_{1}\) and \({E}_{2}\)) are used. The details of the two datasets (\({E}_{1}\) and \({E}_{2}\)) are recorded in open access data from references [20, 21]. Table 1 displays the basic information of \({E}_{1}\) and \({E}_{2}\), where \(a+b\) means \(a\) COVID-19 and \(b\) healthy control (HC).

Table 1 Two COVID-19 datasets

Suppose \({\eta }_{s}\) stands for the number of subjects, and \({\eta }_{i}\) the number of CCT images. It is easy to observe that there are \({\eta }_{i}\left({E}_{1}\right)=296\) images in \({E}_{1}\) and \({\eta }_{i}\left({E}_{2}\right)=640\) images in \({E}_{2}\).

A four-step preprocessing (FSP) method is introduced. The flowchart can be seen in Fig. 2(a), in which the four steps are grayscaling, histogram stretch (HS), margin and text crop (MTC), and down-sample (DS). Here \({V}_{0}\) stands for the raw dataset, \({V}_{k}\left(k=\mathrm{1,2},3\right)\) stands for the dataset at each temporary step, and \(V\) the preprocessed dataset after the last step.

Fig. 2
figure 2

Preprocessing

We skip the explanation of gray scaling. Afterward, HS is used to enhance the contrast since it, or its variants, have proven its ability in many academic and industrial applications [22, 23]. Suppose \({V}_{1}=\left\{{v}_{1}\left(i\right)\right\}\), we first calculate its lower bound \({v}_{1}^{L}\left(i\right)\) and upper bound \({v}_{1}^{U}\left(i\right)\) as:

$$\left\{\begin{array}{c}v_1^U\left(i\right)=\displaystyle\max_x\;\max_y\;v_1\left(x,y\vert i\right)\\v_1^L\left(i\right)=\displaystyle\min_x\;\min_y\;v_1\left(x,y\vert i\right)\end{array},\right.$$
(1)

and the HSed image is defined as

$${v}_{2}\left(i\right)=\frac{{v}_{1}\left(i\right)-{v}_{1}^{L}\left(i\right)}{{v}_{1}^{U}\left(i\right)-{v}_{1}^{L}\left(i\right)}.$$
(2)

The grayscale range of \({v}_{2}\left(i\right)\) is \(\left[{v}_{\text{min}},{v}_{\text{max}}\right]\). Figure 2(b-c) shows the samples of raw COVID-19 and preprocessed images, respectively. The size of each image in the final DSed dataset \(V=\left\{v\left(i\right)\right\}\) is set to \(\left({v}_{h},{v}_{w}\right)\).

3 Methodology

3.1 GLCM

Table 2 presents the acronym list. Take that we have a gray-level image \(Q\), whose size is \(m\times n\) (\(m\) rows and \(n\) columns). Assume each pixel has \(p\) different pixel values, the GLCM reckons how often the pairs of pixels with a definite value and offset arise [24].

Table 2 Abbreviation and meaning

The motivation for using GLCM is because (i) it is an efficient method of texture analysis, and it can present the distance and angular spatial relationship. (ii) It has been successfully applied in lots of industrial and medical applications, e.g., lung cancer classification [25] and pneumonia [26], alike to this COVID-19 recognition task.

The GLCM matrix \(G\) is termed as

$$G_{\Delta x,\Delta y}\left(i,j\right)=\sum\nolimits_{x=1}^{n-\Delta x}\sum\nolimits_{y=1}^{m-\Delta y}\left\{\begin{array}{ll}1&\mathrm{if}\;Q\left(x,y\right)=i\wedge Q\left(x+\Delta x,y+\Delta y\right)=j\\0&\mathrm{otherwise}\end{array},\right.$$
(3)

in which \(\wedge\) stands for the 'and' function. \(i\) and \(j\) stand for possible pixel values of the image \(Q\), and they also mean the \(i\)-th row and \(j\)-th column in the matrix \(G\). \(x\) and \(y\) stand for spatial positions in \(Q\); \(\left(\Delta x,\Delta y\right)\) for the offsets determining the spatial relation. Remember \(G\) is a \(p\times p\) matrix, so \({G}_{\Delta x,\Delta y}\in {\mathbb{R}}^{p\times p}\).

Figure 3 gives a GLCM illustration with an offset \(\left(\Delta x,\Delta y\right)=\left(\mathrm{0,1}\right)\). For examples, the blue circles in \(G\) shows \({G}_{\mathrm{0,1}}\left(\mathrm{2,2}\right)=1\), denoting there is one instance in \(Q\) where the one pair of horizontally adjacent pixels have values of 2. The purple circle in \(G\) shows \({G}_{\mathrm{0,1}}\left(\mathrm{3,8}\right)=1\), indicating there is one instance in \(Q\) where there is one pair of horizontal adjacent pixels with the value of \(\left(\mathrm{3,8}\right)\).

Fig. 3
figure 3

Illustration of GLCM with an offset \(\left({\varvec{\Delta}}{\varvec{x}},{\varvec{\Delta}}{\varvec{y}}\right)=\left(0,1\right)\)

3.2 Four-direction varying-distance GLCM

The \(\left(x,y\right)\) are habitually substituted with row and column coordinates \(\left(r,c\right)\). Successively, the offset is stated in the form of \(\left(\Delta r,\Delta c\right)\). From now on, we will use \(\left(r,c\right)\) coordinates. Figure 4 shows the illustration of the four-direction mechanism (FDM) in GLCM.

Fig. 4
figure 4

Illustration of FDM

Supposing \(\theta\) means the directional angle of GLCM (DAG), the offset \(\left[\mathrm{0,1}\right]\) matches to \(\theta =0^\circ\), in the same way, \(\left[-\mathrm{1,1}\right]\), \(\left[-\mathrm{1,0}\right]\), and \(\left[-1,-1\right]\) match to DAGs of \(45^\circ\), \(90^\circ\), and \(135^\circ\), respectively. The DAGs are fixed to the following four default values:

$$\theta =\left[0^\circ , 45^\circ ,90^\circ ,135^\circ \right].$$
(4)

Other DAGs \(\theta =\left[180^\circ ,225^\circ ,270^\circ ,315^\circ \right]\) may be selected. Nonetheless, they render the transpose of the outcomes as DAGs \(\theta =\left[0^\circ , 45^\circ ,90^\circ ,135^\circ \right]\), respectively.

$$\left\{\begin{array}{l}{G}_{\theta =0^\circ }={G}_{\theta =180^\circ }^{T}\\ {G}_{\theta =45^\circ }={G}_{\theta =225^\circ }^{T}\\ {G}_{\theta =90^\circ }={G}_{\theta =270^\circ }^{T}\\ {G}_{\theta =135^\circ }={G}_{\theta =315^\circ }^{T}\end{array}.\right.$$
(5)

All the above four offsets \(\left(\left[\mathrm{0,1}\right],\left[-\mathrm{1,1}\right],\left[-\mathrm{1,0}\right],\left[-1,-1\right]\right)\) have a distance \(d\) of 1. In the paper of Srivastava et al. [27], they discussed the varying-distance mechanism (VDM). \(d\) can range from 1 to the width of the image. Normally we set

$${G}_{d}\left(Q\right):1\le d\le D,$$
(6)

where \(D\) represens the maximum distance (MD). The optimal value of \(D\) is obtained via the trial-and-error method, since \(d\) with a value larger than \(D\) does not progress the whole system's performance.

Figure 5 displays the VDM where the MD value is set as \(D=3\). Consequently, this study writes the pseudocode of the four-direction varying-distance GLCM (FDVD-GLCM) in the following Algorithm 1. Remember the offset \(\left(\Delta r,\Delta c\right)\) is now uttered in the form of \(\left(d,\theta \right)\), so GLCM matrix \(G\) can be written as \({G}_{d,\theta }\left(Q\right)\in {\mathbb{R}}^{p\times p}\). The FDVD-GLCM matrix is now obtained as:

$$\left\{\begin{array}{l}{\mathbb{G}}\left(Q\right)={E}_{d=1}^{D}{E}_{\theta \in \left(0^\circ ,45^\circ ,90^\circ ,135^\circ \right)}{G}_{d,\theta }\left(Q\right)\\ {\mathbb{G}}\left(Q\right)\in {\mathbb{R}}^{p\times p\times 4\times D}\end{array}\right.,$$
(7)

where \(E\) means the concatenation function.

Fig. 5
figure 5

The illustration of VDM \(\left(1\le {\varvec{d}}\le {\varvec{D}}=3\right)\)

Algorithm 1
figure a

FDVD-GLCM

3.3 Five-property feature set

Founded on FDVD-GLCM, the paper of Zhang [28] proposed the FPFS, in which they extracted \({N}_{F}=5\) different features from each GLCM. First feature is the contrast \({f}^{1}\), signifying the linear dependency of gray levels of two neighboring pixels.

$${f}_{d,\theta }^{1}={\sum }_{i=1}^{p}{\sum }_{j=1}^{p}{\left(i-j\right)}^{2}{G}_{d,\theta }\left(i,j\right)$$
(8)

For a constant image, its contrast is 0. \({f}_{d,\theta }^{1}\left({\mathbb{C}}\right)=0\), where \({\mathbb{C}}\) denotes any constant image.

Second feature \({f}^{2}\) is the correlation, gauging how correlated a pixel is to its neighbor over the individual GLCM image.

$${f}_{d,\theta }^{2}={\sum }_{i=1}^{p}{\sum }_{j=1}^{p}\frac{\left(i-{m}_{i}\right)\left(j-{m}_{j}\right){G}_{d,\theta }\left(i,j\right)}{{v}_{i}{v}_{j}}$$
(9)

where \({m}_{i}\) and \({m}_{j}\) are the GLCM means defined as

$$\left\{\begin{array}{c}m_i=\sum\nolimits_{i=1}^p\sum\nolimits_{j=1}^p\;i\times G_{d,\theta}\left(i,j\right)\\m_j=\sum\nolimits_{i=1}^p\sum\nolimits_{j=1}^p\;j\times G_{d,\theta}\left(i,j\right)\end{array}\right.$$
(10)

The GLCM variances \({v}_{i}\) and \({v}_{j}\) are defined as:

$$\left\{\begin{array}{l}{v}_{i}=\sqrt{{\sum }_{i=1}^{p}{\sum }_{j=1}^{p}{\left(i-m\right)}^{2}{G}_{d,\theta }\left(i,j\right)}\\ {v}_{j}=\sqrt{{\sum }_{i=1}^{p}{\sum }_{j=1}^{p}{\left(j-{m}_{j}\right)}^{2}{G}_{d,\theta }\left(i,j\right)}\end{array}\right.$$
(11)

The correlation \({f}^{2}\) is in the range of \(\left[-\mathrm{1,1}\right]\).

$${h}_{range}\left({f}^{2}\right)=\left[-\mathrm{1,1}\right],$$
(12)

where \({h}_{range}\left(x\right)\) returns the range of the function of \(x\). In this case, \(-1\) means a perfectly negative correlation, while \(+1\) a perfectly positive correlation.

The third feature energy \(\left({f}^{3}\right)\) gauges the sum of squared GLCM entries. It gauges the textural uniformity of an image. Its definition is:

$${f}_{d,\theta }^{3}={\sum }_{i=1}^{p}{\sum }_{j=1}^{p}{G}_{d,\theta }^{2}\left(i,j\right)$$
(13)
$${h}_{range}\left({f}^{3}\right)=\left[\mathrm{0,1}\right]$$
(14)

The fourth \({f}^{4}\) is homogeneity [29], an amount that assesses the closeness of the distribution of entries in the GLCM to the GLCM diagonal. ts definition is:

$${f}_{d,\theta }^{4}={\sum }_{i=1}^{p}{\sum }_{j=1}^{p}\frac{{G}_{d,\theta }\left(i,j\right)}{1+\left|i-j\right|}$$
(15)
$${h}_{range}\left({f}^{4}\right)=\left[\mathrm{0,1}\right]$$
(16)

The final property \({f}^{{N}_{F}}={f}^{5}\) is entropy [30]:

$${f}_{d,\theta }^{5}=-{\sum }_{i=1}^{p}{\sum }_{j=1}^{p}{G}_{d,\theta }\left(i,j\right)\times \mathrm{ln}\;{G}_{d,\theta }\left(i,j\right)$$
(17)

The \({N}_{F}\) properties run on all individual GLCM matrixes \(\left\{{G}_{d,\theta }\right\}\), and then are concatenated and form the FDVD-GLCM feature \({\mathbb{F}}\).

$${\mathbb{F}}={E}_{d=1}^{D}{E}_{\theta \in \left(0^\circ ,45^\circ ,90^\circ ,135^\circ \right)}\left\{\begin{array}{c}\begin{array}{c}{f}_{d,\theta }^{1}\\ {f}_{d,\theta }^{2}\end{array}\\ \dots \\ {f}_{d,\theta }^{{N}_{F}}\end{array}\right\},$$
(18)

Thus, the number of FPFS features of each GLCM \({G}_{d,\theta }\) is \({N}_{F}\), and the number of FPFS features of total FDVD-GLCM \({\mathbb{F}}\) is \(H=D\times 4\times {N}_{F}\), so \({\mathbb{F}}\) can be written in vectorized way as \({\mathbb{F}}=\left\{{f}_{1},{f}_{2},\dots , {f}_{H}\right\}\).

3.4 Proposed FECNet model

The FPFS features based on FDVD-GLCM \({\mathbb{F}}=\left\{{f}_{1},{f}_{2},\dots , {f}_{H}\right\}\) are used as the learnt features and passed to the extreme learning machine (ELM) [31], whose structure is a single hidden-layer feedforward network [32]. Its structure is shown in Fig. 6. Its hidden nodes can be randomly assigned and never updated, so the output weights are learned in just one step, making it a very fast classifier [33].

Fig. 6
figure 6

Schematic of ELM receiving FDVD-GLCM features from \({\varvec{i}}\)-th input sample

Take the i-th input sample to be \({{\varvec{f}}}_{{\varvec{i}}}=({f}_{i1},,...,{f}_{iH}{)}^{\mathrm{T}}\in {\mathbb{R}}^{H},i=1,\dots ,N\), where \(N\) is the number of images in the training set (TRS). The output [34] of an ELM with \(L\) hidden neurons is:

$${{\varvec{O}}}_{{\varvec{i}}}={\sum }_{j=1}^{L}{{\varvec{\lambda}}}_{{\varvec{j}}}h\left({\boldsymbol{\alpha }}_{{\varvec{j}}}{{\varvec{f}}}_{{\varvec{i}}}+{\beta }_{j}\right),i=1,\dots ,N,$$
(19)

where \(h\) stands for the activation function, which will be defined in Section 4. \({\boldsymbol{\alpha }}_{{\varvec{j}}}=({\alpha }_{j1},{\alpha }_{j2},\dots ,{\alpha }_{jH}{)}^{\mathrm{T}}\) stand for the input weight, \({\beta }_{j}\) the bias, \({{\varvec{O}}}_{{\varvec{i}}}={\left({o}_{i1},{o}_{i2},{o}_{i3},\dots {o}_{im}\right)}^{\mathrm{T}}\) the output of the model for the \(i\)-th input sample. Afterward, the model is trained to yield

$${\sum }_{j=1}^{L}{{\varvec{\lambda}}}_{{\varvec{j}}}h\left({\boldsymbol{\alpha }}_{{\varvec{j}}}{{\varvec{f}}}_{{\varvec{i}}}+{\beta }_{j}\right)={{\varvec{y}}}_{{\varvec{i}}},i=1,\dots ,N.$$
(20)

Let us rephrase the above equation as

$${\varvec{M}}{\varvec{\lambda}}={\varvec{Y}},$$
(21)

where

$${\varvec{M}}\left({\boldsymbol{\alpha }}_{1},\dots ,{\boldsymbol{\alpha }}_{{\varvec{L}}},{\beta }_{1},\dots ,{\beta }_{L},{{\varvec{f}}}_{1},\dots ,{{\varvec{f}}}_{{\varvec{N}}}\right)={\left[\begin{array}{ccc}h\left({\boldsymbol{\alpha }}_{1}{{\varvec{f}}}_{1}+{\beta }_{1}\right)& \cdots & h\left({\boldsymbol{\alpha }}_{{\varvec{L}}}{{\varvec{f}}}_{1}+{\beta }_{L}\right)\\ \vdots & \ddots & \vdots \\ h\left({\boldsymbol{\alpha }}_{1}{{\varvec{f}}}_{{\varvec{N}}}+{\beta }_{1}\right)& \cdots & h\left({\boldsymbol{\alpha }}_{{\varvec{L}}}{{\varvec{f}}}_{{\varvec{N}}}+{\beta }_{L}\right)\end{array}\right]}_{N\times L},$$
(22)
$${\varvec{\lambda}}={\left[\begin{array}{c}{{\varvec{\lambda}}}_{1}^{{\varvec{T}}}\\ \vdots \\ {{\varvec{\lambda}}}_{L}^{{\varvec{T}}}\end{array}\right]}_{L\times m},\boldsymbol{ }{\varvec{Y}}={\left[\begin{array}{c}{{\varvec{y}}}_{1}^{{\varvec{T}}}\\ \vdots \\ {{\varvec{y}}}_{{\varvec{N}}}^{{\varvec{T}}}\end{array}\right]}_{N\times m}.$$
(23)

It challenges the users to obtain the optimal \({\boldsymbol{\alpha }}_{{\varvec{j}}}\), \({\beta }_{j}\) and \({{\varvec{\lambda}}}_{{\varvec{j}}}\). ELM can yield a solution quickly [35] via the pseudo inverse:

$${\varvec{\lambda}}={{\varvec{M}}}^{\dagger}{\varvec{Y}},$$
(24)

where \({\text{M}}^{\dagger}\) signifies the Moore–Penrose [36] of \({\varvec{M}}\). The pseudocode is shown in Algorithm 2. The flowchart is shown in Fig. 7.

Algorithm 2
figure b

Proposed FECNet model

Fig. 7
figure 7

Flowchart of proposed FECNet model

3.5 Cross-validation

\(T\)-fold cross-validation (CV) is harnessed to operate this proposed FECNet model because of the relatively small size of the two datasets. At \(r\)-th run \(\left(1\le r\le R\right)\) of the \(T\)-fold CV [37], the whole dataset \(V\) is divided into \(T\) folds. Figure 8 displays the diagram of \(T\)-fold cross validation. We let \(T=10\), i.e., a ten-fold CV is run.

Fig. 8
figure 8

Diagram of \({\varvec{T}}\)-fold cross-validation

Furthermore, the \(T\)-fold CV carries out \(R\) times. Within each run, the division is re-split [38] randomly.

$$V\mapsto \left\{{V}_{r}\left(1\right),{V}_{r}\left(2\right),\dots ,{V}_{r}\left(t\right),\dots ,{V}_{r}\left(T\right)\right\},r=\mathrm{1,2},\dots ,R,$$
(25)

where \({V}_{r}\left(t\right)\) means the \(t\)-th fold of the \(V\) at \(r\)-th run.

In \(t\)-th \(\left(1\le t\le T\right)\) trial, the \(t\)-th fold is selected as the test set (TES) \({s}_{r}^{test}\left(t\right)\), and the rest \(T-1\) folds are chosen and merged as the TRS \({s}_{r}^{train}\left(t\right)\):

$$\left\{\begin{array}{l}\mathrm{TRS}:{s}_{r}^{train}\left(t\right)=\left\{{V}_{r}\left(1\right),\dots ,{V}_{r}\left(t-1\right),{V}_{r}\left(t+1\right),\dots ,{V}_{r}\left(T\right)\right\}\\ \mathrm{TES}:{s}_{r}^{test}\left(t\right)=\left\{{V}_{r}\left(t\right)\right\}\end{array}\right.,t=\mathrm{1,2},\dots ,T,r=\mathrm{1,2},\dots ,R.$$
(26)

3.6 Multiple-way data augmentation

The TRS \({s}_{r}^{train}\left(t\right)\) is enhanced via the MDA portrayed in Algorithm 1 of Ref. [39]. \(\beta =9\) different individual data augmentation (IDA) [39] techniques are exercised: rotation, Gamma correction, vertical shear, horizontal shear, Gaussian noise, random translation, scaling, sault-and-pepper noise, and speckle noise. Each IDA method \({z}_{DA}\) breeds the same number of new \(\gamma =30\) images. Think an image in TRS is \(v\), the MDA earns an enhanced set:

$$v\mapsto\begin{Bmatrix}\begin{array}{c}\begin{array}{c}v\\\underbrace{z_{DA}^1\left(v\right)}_\gamma\end{array}\\\dots\\\underbrace{z_{DA}^\beta\left(v\right)}_\gamma\end{array}&\begin{array}{c}\begin{array}{c}h\left(v\right)\\\underbrace{z_{DA}^1\left[h\left(v\right)\right]}_\gamma\end{array}\\\dots\\\underbrace{z_{DA}^\beta\left[h\left(v\right)\right]}_\gamma\end{array}\end{Bmatrix},v\in\text{TRS}$$
(27)

where \({z}_{DA}^{i},i=1,\dots ,\beta\) denotes \(i\)-th type of IDA and \(h\left(v\right)\) is the horizontally mirrored image (HMI) of \(v\).

All seven measures' mean-and-standard-deviation (MSD) results will be reported on TES. They are sensitivity (\({\eta }_{1}\)), specificity (\({\eta }_{2}\)), precision (\({\eta }_{3}\)), accuracy (\({\eta }_{4}\)), F1 score (\({\eta }_{5}\)), Matthews correlation coefficient (MCC, \({\eta }_{6}\)), and Fowlkes–Mallows index (FMI, \({\eta }_{7}\)).

4 Experiments, results, and discussions

The hyperparameters are listed in Table 3. Most optimal values of the hyperparameters are obtained by trial and error method, and others are obtained by experience. The minimum and maximum gray values of the HSed images are \(\left(\mathrm{0,255}\right)\). The size of the DSed image is \(\left({v}_{h},{v}_{h}\right)=\left(\mathrm{256,256}\right)\). The MD of GLCM is set to \(D=5\). The number of gray levels is \(p=8\). The number of FPFS features from each GLCM is \({N}_{F}=5\). The total FPFS features generated by FDVD-GLCM is \(H=D\times 4\times {N}_{F}=100\). The activation function in ELM is set to sigmoid [40]. The number of hidden neurons in ELM is \(L=3000\). We run 10 runs of tenfold CV. We have \(\beta =9\) different IDA methods, and each IDA generates \(\gamma =30\) new images. So, in total, we generate 542 new images for each image in TRS.

Table 3 Parameters and their values

4.1 Result of MDA

Grab Fig. 2(c) as the TRS image \(v\), Fig. 9(a-g) displays the outcomes of seven different IDAs. The HMI \(h\left(v\right)\) and its related IDA outcomes are not shown due to the page limit. As we can see from Fig. 9, MDA gains lots of variety to the \({s}^{train}\), therefore, enhancing the performance of our COVID-19 recognition system FECNet.

Fig. 9
figure 9

Results of MDA

4.2 Statistical performance of our FECNet model

The results of 10 runs of the tenfold CV of our FECNet model are reported in Table 4. In each run, the division of the tenfold CV is randomly reset. The MSD values of the seven indicators on the 1st dataset \({E}_{1}\) are listed as: sensitivity (92.23 ± 2.14), specificity (93.18 ± 0.87), precision (93.12 ± 0.83), accuracy (92.70 ± 1.13), F1 (92.66 ± 1.20), MCC (85.43 ± 2.24), and FMI (92.67 ± 1.20). The MSD values of the seven indicators on the 2nd dataset \({E}_{2}\) are recorded as: sensitivity (92.19 ± 1.89), specificity (92.88 ± 1.23), precision (92.83 ± 1.22), accuracy (92.53 ± 1.37), F1 (92.50 ± 1.41), MCC (85.07 ± 2.73), and FMI (92.50 ± 1.41).

Table 4 Ten runs of CV results of our FECNet model

After we add up the ten runs' test confusion matrixes [41], the consequent confusion matrixes (CCMs) are displayed in Fig. 10, from which we spot how many COVID-19 cases are wrongly predicted as HC cases and vice versa for the two datasets.

Fig. 10
figure 10

CCMs of 10 runs on two datasets

4.3 Comparison to other models

The proposed FECNet model is compared with five state-of-the-art (SOTA) COVID-19 recognition models: FSVC [7], DLA [8], TDCNN [9], 6 l-DCN [10], WEGA [11], WECSO [12], GLCM [13], and DLM [14]. The results are plotted in Fig. 11 and itemized in Table 5, in which the best results are emboldened. We see that this proposed FECNet model gains the best outcomes at almost all seven indicators for both datasets.

Fig. 11
figure 11

Error bar of comparison of proposed FECNet model against SOTA models

Table 5 Comparison to SOTA COVID-19 recognition models

The success of our FECNet model attributes to four aspects: (i) The FDVD-GLCM is presented as the feature descriptor. (ii) The FPFS is extracted from the FDVD-GLCM descriptor as a feature reduction method. (iii) ELM is used as the classifier. (iv) MDA is used to boost the training set.

The performances of the proposed FECNet model are better than not only non-deep-learning models but also deep-learning models. DLA [8] achieves the best sensitivity \(\left({\eta }_{1}\right)\) in the second dataset \(\left({E}_{2}\right)\). However, it has the poor specificities \(\left({\eta }_{2}\right)\) on both datasets. TDCNN [9] was designed originally for a triple-classification task on X-ray images, so when we adapt their model to our binary-classification task on CCT images, the TDCNN [9] model may not work perfectly. 6 l-DCN [10] gains promising results. Nevertheless, its performance can be improved since the depth of its network is only six layers. DLM [14] also attains promising results. The structure of DLM [14] is a six-layer convolutional neural network. Again, the model can be made deeper to enhance its performance.

4.4 Mobile app

MATLAB app designer is introduced to fashion a specialized WA for our FECNet model. The input to this WA is any CCT image, and our FECNet model is integrated into this developed WA. The WA is retrieved through a Google Chrome (Version: 105.0.5195.125) web browser. The WA is based on a cloud computing-based client–server modeled construction, viz., the client is delivered services through an off-site server hosted by a third-party cloud facility, viz., Microsoft Azure [42].

Figure 12(a) displays the home page, indicating our mobile app is now version 9.0. The URL of the home page is http://kdml.le.ac.uk/webapps/home. Figure 12(b) shows the screenshot of clicking the 'upload custom image' button. A new window pops out and lets the user drag and drop any CCT image. Then, the user needs to click the 'recognize' button. Figure 12(c) displays the screenshot of the recognition result.

Fig. 12
figure 12

Screenshots of our WA

This developed online WA contributes to hospital clinicians/radiologists making choices distantly and effectually. The clients are able to upload their own CCT images. Then the mobile WA will give the diagnosis outcomes by turning the knob to the predicted label: COVID-19, HC, or None. We add the new 'none' category here in case some clients may wrongly upload non-sense images, such as cat or dog images.

5 Conclusion

We propose a novel FECNet model for COVID-19 recognition. We use the FPFS feature based on FDVD-GLCM as the feature extractor and ELM as the classifier. MDA is used for data augmentation on TRSs. The ten runs of tenfold CV show that our FECNet model is better than five SOTA models: FSVC [7], 6 l-DCN [10], WECSO [12], GLCM [13], and DLM [14].

After reviewing the FECNet model and its WA, we have observed three points that can be improved: (a) The task is only a binary classification problem, and other chest-related infectious diseases are not considered. (b) Advanced classification technologies are not tested. (c) The hyperparameters are not proven to be the best.

In studies ahead, we plan to include other chest-related infectious diseases, e.g., pneumonia and tuberculosis. We shall examine the recent classification technologies, such as weakly-supervised learning. At last, the hyperparameter optimization method will be embedded in our future study.