### Requirements  opencv_python==4.5.5.62
 numpy==1.23.5
 pillow==9.0.0
 matplotlib==3.9.0
 scikit-learn==1.5.1
 scipy==1.13.1
 torch==2.4.0
 torchvision==0.16.0+cu118
### Check optimal cluster count using elbow method: ``` python tools/check_clusters.py --data-dir ../data/final/normal-tuberculosis/train ``` ### Make clusters of majority class: ``` python tools/make_clusters.py --data-dir ../data/final/covid-no_covid/train --num-clusters 2 ``` ### Normal training: ``` python train.py --data-dir ../data/final/covid-no_covid --minority-cls covid --batch-size 256```
```python train.py --data-dir ../data/final/covid-no_covid --weighted-clf --minority-cls covid --batch-size 256```
```python train.py --data-dir ../data/final/covid-no_covid --weighted-aug --minority-cls covid --batch-size 256```
### MCIIC training: ``` python train.py --data-dir ../data/final/covid-no_covid --minority-cls covid --batch-size 256 --mcbc```
```python train.py --data-dir ../data/final/covid-no_covid --weighted-clf --minority-cls covid --batch-size 256 --mcbc```
```python train.py --data-dir ../data/final/covid-no_covid --weighted-aug --minority-cls covid --batch-size 256 --mcbc```
### Evaluation: ``` python eval.py --data-dir ../data/final/covid-no_covid/test --checkpoint-path weights/covid-no_covid/normal/ --cls-json ../data/final/covid-no_covid/class_map.json``` ### MCIIC Evaluation: ``` python eval.py --data-dir ../data/final/covid-no_covid/test --checkpoint-path weights/covid-no_covid/mcbc-normal/ --cls-json ../data/final/covid-no_covid/class_map.json --mcbc```