Skip to main content
. 2021 Dec 8;23(12):1651. doi: 10.3390/e23121651
Algorithm 1: Pseudocode of proposed framework
Input: OCT images
Output: Results
01: Load OCT image dataset
02: for k = 1 to 1000 do
03:    Read each image
04:    for j = 1 to 18 do//Feature generation using 18 pre-trained networks
05:      Xj(k,1:1000)=CNNj(Image);//Extract deep features using jth CNN
06:      cnt=1000;//Counter defining to calculate the number of features.
07:      for i = 1 to 3 do//Creating multilevel feature generation network
08:         c1=maxp1(Image,[3×3]);//Apply maximum pooling with 3 × 3 sized blocks
09:       c2=maxp2(Image,[3×3]); //Apply max-mean pooling
10:       c3=maxp3(Image,[3×3]);//Apply max-min pooling
11:               Xj(k,cnt+1:cnt+3000)=conc(CNNj(c1),CNNj(c2),CNNj(c3));
//In Line 11, conc(.) defines concatenation operator and pre-trained CNN generates 3000 features from compressed images.
12:       cnt=cn+3000
13:       new=maxp1(Image,[2×2]);//Compress using images
14:       I=new;
15:      end for i
16:    end for j
17: end for k
18: for j = 1 to 18 do
19:    Select the best 1000 features (fj) from Xj with a length of 10,000.
20:    Calculate loss values deploying SVM classifier with 5-fold cross-validation
21: end for j
22: Select the best five features using calculated loss values. We have used quadratic support vector machine (QSVM) as a loss value generator in this phase. An error array with a length of 18 is created using this classifier. The optimal five CNNs are chosen using the created loss array. The minimum loss valued CNNs is the optimal performing CNNs.
23: Concatenate these features and obtain 5000 sized feature vector.
24: Apply IRF to 5000 sized feature vector for selecting the best feature vector.25: Classify the selected feature vector using SVM and obtain predicted results.