Experimental Setup
System requirements for the various models implemented require a minimum system specification to be met for a successful study. The specifications are categorized into Hardware and Software specifications.
3.1 Hardware Specification
The following includes the minimum hardware requirement for implementing the various learning models. This is to ensure the smooth execution of each model.
- RAM of 8GB and above to ensure the system doesn't crash whiles using a large volume of the dataset
- GPU with 2GB and above to enhance the computational power (this requirement is optional)
- Storage Capacity of at least 512GB HDD or 256GB SSD
3.2 Software Specification
The software requirements involve programs that support the successful implementation of the various models. The following includes the generic software requirements:
- OS: various up to date operating systems such as Windows 10, macOS, Ubuntu, etc. to provide an enabling environment for both the online and offline implementation
- Python programming language preferably 3.7 and above
3.2.1 Online Software Specification
Two known online software programs support the implementation of these models namely:
- Google Colaboratory also known as Google Colab
- Kaggle
3.2.2 Offline Software Requirement
The offline requirements include either of the following known programs:
- Pycharm IDE
- Jupyter Notebook
3.3. Similarity Measurement
The objective of measuring the distance between two known objects is to obtain a summarized score between the two given objects in a problem domain. Finding or measuring the distance between the query image and the target image in this scenario is the study's primary goal to get an appropriate result (s). The following includes commonly known supervised learning distance measurement methods:
- Euclidean Distance
- Hamming Distance
- Chi-Squared Distance
A summary of each model with the kind of similarity measurement is in the table below.
3.4. Threshold Value
Predicting a class label has always been the main aim of classification predictive modeling. It, therefore, means that before such a model can map to a crisp class label, the machine algorithm has to sort to predict a probabilistic scoring of class membership. It is as important of predicting a particular class label as to identify the best threshold for mapping.
A threshold value of 0.5 can be used as a mapping scheme, according to [25], where all values equal to or greater than the threshold are mapped to one class and all other values are assigned to another class.
He further stated that this default value (0.5) can create a severe classification problem which can result in poor performance using an imbalanced dataset. The researcher should either manually adjust the threshold value to an ideal number or sort using the Receiver Operating Characteristic (ROC) curve and the Precision-Recall Curves, according to his suggestion. The former was carried out and utilized to establish the threshold value for every model. The threshold value for each of the implemented models may be found in the list below.
Local Binary Pattern – 0.015
Gray-Level Co-occurrence Matrix – nine (9) added to the least computed distance value.
Gabor Filter – 0.050
Haralick Texture Descriptor – 0.050
FAST – 25 added to the least computed distance value.
FAST-BRIEF – values greater than or equal to 3
3.5 Conceptual Framework
The conceptual framework is important for the researcher to clearly present and explain ideas and consequently potential relationships pertaining to the study [26]. One way of presenting such concepts is by a visual model that can assists readers by illustrating how the processes or constructs in the research work. This is known as a graphical conceptual framework. The diagram below represents the graphical conceptual framework of this study;
4.1. Code
The code for the six selected texture feature extraction techniques together with the dataset can be freely accessed and executed through Code Ocean via the URL: https://codeocean.com/capsule/975181/tree
The Source code can also be found on GitHub via the URL: https://github.com/SamKDuah/Content-based-Medical-Image-Retrieval
4.2. Data
4.2.1. Dataset Validation
Data processing involves preprocessing. Data preprocessing refers to the technique of preparing (i.e. cleaning and organizing) the raw data to make it suitable for accomplishing a given task. Data preprocessing is a data mining technique that transforms raw data into an understandable and readable format for a given model. This process helps enhance the quality of data to promote the extraction of meaningful insights from the data. The following includes the steps taken in preprocessing the data for the various learning model:
- Acquisition of dataset
- Uniformity of dataset (i.e. Resizing the data to a specific dimension and Converting the dataset to a grayscale channel if the dataset contains data of different color channels)
4.2.1.1. Dataset Acquisition
A total of 58,954 medical data images were obtained from the web, out of which 1k - 10.5k of the dataset was used. The data below represents the metadata of both the dataset source and the dataset itself.
The dataset license is available to the public domain. Below represents the metadata of the dataset source:
@misc{Medical MNIST Classification,
author = {apolanco3225},
title = {Medical MNIST Classification},
year = {2017},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/apolanco3225/Medical-MNIST-Classification}}
}
License
Public Domain
Below represents a sample image of each class of the dataset.
4.2.1.2. Dataset Uniformity
Python libraries such as "PIL" and cv2 contain functions for resizing images to a preferred dimension. Notwithstanding, the cv2 library also supports the conversion of image color between channels such as RGB, Grayscale, HSV, and Hue.