Skip to content

CNN Based Autoencoder Application in Breast Cancer Image Retrieval πŸ”¬

Notifications You must be signed in to change notification settings

forderation/breast-cancer-retrieval

Repository files navigation

CNN Based Autoencoder Application in Breast Cancer Image Retrieval

IEEE 2021 International Seminar on Intelligent Technology and Its Applications (ISITIA)

PWC

alt text

Abstract

Content Based Medical Image Retrieval (CBMIR) is considered as a common technique to retrieve relevant images by comparing the features contained in the query image with the features contained in the image located in the database. Currently, the study related to CBMIR on breast cancer image however remains challenging due to inadequate research in such area. Previous study has a low performance and misinformation emphasizing the feature extraction process. Therefore, this study aims to utilize the CNN based Autoencoder method to minimize misinformation in the feature extraction process and to improve the performance result. The dataset used in this study is the BreakHis dataset. Overall, the results of image retrieval in breast cancer applying the CNN based Autoencoder method achieved higher performance compared to the method used in the previous study with an average precision of 0.9237 in the mainclass dataset category and 0.6825 in the subclass dataset category.

Usage

this is sample of flow running app based on our paper explanation

  • Make sure you already installed python version at least 3.7
  • Download and place dataset in same project folder
  • If you have any further question don't hesitate to email at kharisma.muzaki@gmail.com
pip install requirements.txt
python split_image_binary.py
python split_image_multi_class.py
python training_binary_sample_400.py
python training_subclass_sample_400.py
python retrieval_sample.py
python graph_sample.py

Still cumbersome

Don't worry we have usage with notebook example with already dataset splitted

Project Structure

This is project structured are contained in this git repository

πŸ“¦ projects
 ┣ πŸ“‚ notebook [collection notebook example usage]
 ┣ πŸ“‚ utils
 ┃ ┣ πŸ“œ conv_auto_encoder.py [core of main model for deep learning feature extraction, you can change our model up to you]
 ┃ β”— πŸ“œ retrieval.py [retrival supporting code]
 ┣ πŸ“œ core_split.py   [core support for splitting images]
 ┣ πŸ“œ graph_sample.py     [draw chart from comparison of training]
 ┣ πŸ“œ retrieval_sample.py     [retrieval sample on 400x Magnification]
 ┣ πŸ“œ split_image_binary.py   [splitting images based on binary scenario]
 ┣ πŸ“œ split_image_multi_class.py      [splitting images based on subclass from all available class]
 ┣ πŸ“œ training_binary_sample_400.py   [training binary scenario example]
 β”— πŸ“œ training_subclass_sample_400.py     [training subclass scenario example]

Assets

Citation

If you are found any useful information from us please support by making citation based on our paper, gracias ✌

A. E. Minarno, K. M. Ghufron, T. S. Sabrila, L. Husniah and F. D. S. Sumadi, "CNN Based Autoencoder Application in Breast Cancer Image Retrieval," 2021 International Seminar on Intelligent Technology and Its Applications (ISITIA), 2021, pp. 29-34, doi: 10.1109/ISITIA52817.2021.9502205.

TODO

  • Usage with python native script
  • Usage subclass with notebook
  • Usage binary scenario with notebook
  • Deployed version as a web service

Datapath structure used

binary_scenario
β”œβ”€β”€ test
β”‚   β”œβ”€β”€ 100X
β”‚   β”‚   β”œβ”€β”€ benign
β”‚   β”‚   └── malignant
β”‚   β”œβ”€β”€ 200X
β”‚   β”‚   β”œβ”€β”€ benign
β”‚   β”‚   └── malignant
β”‚   β”œβ”€β”€ 400X
β”‚   β”‚   β”œβ”€β”€ benign
β”‚   β”‚   └── malignant
β”‚   └── 40X
β”‚       β”œβ”€β”€ benign
β”‚       └── malignant
β”œβ”€β”€ train
β”‚   β”œβ”€β”€ 100X
β”‚   β”‚   β”œβ”€β”€ benign
β”‚   β”‚   └── malignant
β”‚   β”œβ”€β”€ 200X
β”‚   β”‚   β”œβ”€β”€ benign
β”‚   β”‚   └── malignant
β”‚   β”œβ”€β”€ 400X
β”‚   β”‚   β”œβ”€β”€ benign
β”‚   β”‚   └── malignant
β”‚   └── 40X
β”‚       β”œβ”€β”€ benign
β”‚       └── malignant
└── val
    β”œβ”€β”€ 100X
    β”‚   β”œβ”€β”€ benign
    β”‚   └── malignant
    β”œβ”€β”€ 200X
    β”‚   β”œβ”€β”€ benign
    β”‚   └── malignant
    β”œβ”€β”€ 400X
    β”‚   β”œβ”€β”€ benign
    β”‚   └── malignant
    └── 40X
        β”œβ”€β”€ benign
        └── malignant
subclass_scenario
β”œβ”€β”€ test
β”‚   β”œβ”€β”€ 100X
β”‚   β”‚   β”œβ”€β”€ adenosis
β”‚   β”‚   β”œβ”€β”€ ductal_carcinoma
β”‚   β”‚   β”œβ”€β”€ fibroadenoma
β”‚   β”‚   β”œβ”€β”€ lobular_carcinoma
β”‚   β”‚   β”œβ”€β”€ mucinous_carcinoma
β”‚   β”‚   β”œβ”€β”€ papillary_carcinoma
β”‚   β”‚   β”œβ”€β”€ phyllodes_tumor
β”‚   β”‚   └── tubular_adenoma
β”‚   β”œβ”€β”€ 200X
β”‚   β”‚   β”œβ”€β”€ adenosis
β”‚   β”‚   β”œβ”€β”€ ductal_carcinoma
β”‚   β”‚   β”œβ”€β”€ fibroadenoma
β”‚   β”‚   β”œβ”€β”€ lobular_carcinoma
β”‚   β”‚   β”œβ”€β”€ mucinous_carcinoma
β”‚   β”‚   β”œβ”€β”€ papillary_carcinoma
β”‚   β”‚   β”œβ”€β”€ phyllodes_tumor
β”‚   β”‚   └── tubular_adenoma
β”‚   β”œβ”€β”€ 400X
β”‚   β”‚   β”œβ”€β”€ adenosis
β”‚   β”‚   β”œβ”€β”€ ductal_carcinoma
β”‚   β”‚   β”œβ”€β”€ fibroadenoma
β”‚   β”‚   β”œβ”€β”€ lobular_carcinoma
β”‚   β”‚   β”œβ”€β”€ mucinous_carcinoma
β”‚   β”‚   β”œβ”€β”€ papillary_carcinoma
β”‚   β”‚   β”œβ”€β”€ phyllodes_tumor
β”‚   β”‚   └── tubular_adenoma
β”‚   └── 40X
β”‚       β”œβ”€β”€ adenosis
β”‚       β”œβ”€β”€ ductal_carcinoma
β”‚       β”œβ”€β”€ fibroadenoma
β”‚       β”œβ”€β”€ lobular_carcinoma
β”‚       β”œβ”€β”€ mucinous_carcinoma
β”‚       β”œβ”€β”€ papillary_carcinoma
β”‚       β”œβ”€β”€ phyllodes_tumor
β”‚       └── tubular_adenoma
β”œβ”€β”€ train
β”‚   β”œβ”€β”€ 100X
β”‚   β”‚   β”œβ”€β”€ adenosis
β”‚   β”‚   β”œβ”€β”€ ductal_carcinoma
β”‚   β”‚   β”œβ”€β”€ fibroadenoma
β”‚   β”‚   β”œβ”€β”€ lobular_carcinoma
β”‚   β”‚   β”œβ”€β”€ mucinous_carcinoma
β”‚   β”‚   β”œβ”€β”€ papillary_carcinoma
β”‚   β”‚   β”œβ”€β”€ phyllodes_tumor
β”‚   β”‚   └── tubular_adenoma
β”‚   β”œβ”€β”€ 200X
β”‚   β”‚   β”œβ”€β”€ adenosis
β”‚   β”‚   β”œβ”€β”€ ductal_carcinoma
β”‚   β”‚   β”œβ”€β”€ fibroadenoma
β”‚   β”‚   β”œβ”€β”€ lobular_carcinoma
β”‚   β”‚   β”œβ”€β”€ mucinous_carcinoma
β”‚   β”‚   β”œβ”€β”€ papillary_carcinoma
β”‚   β”‚   β”œβ”€β”€ phyllodes_tumor
β”‚   β”‚   └── tubular_adenoma
β”‚   β”œβ”€β”€ 400X
β”‚   β”‚   β”œβ”€β”€ adenosis
β”‚   β”‚   β”œβ”€β”€ ductal_carcinoma
β”‚   β”‚   β”œβ”€β”€ fibroadenoma
β”‚   β”‚   β”œβ”€β”€ lobular_carcinoma
β”‚   β”‚   β”œβ”€β”€ mucinous_carcinoma
β”‚   β”‚   β”œβ”€β”€ papillary_carcinoma
β”‚   β”‚   β”œβ”€β”€ phyllodes_tumor
β”‚   β”‚   └── tubular_adenoma
β”‚   └── 40X
β”‚       β”œβ”€β”€ adenosis
β”‚       β”œβ”€β”€ ductal_carcinoma
β”‚       β”œβ”€β”€ fibroadenoma
β”‚       β”œβ”€β”€ lobular_carcinoma
β”‚       β”œβ”€β”€ mucinous_carcinoma
β”‚       β”œβ”€β”€ papillary_carcinoma
β”‚       β”œβ”€β”€ phyllodes_tumor
β”‚       └── tubular_adenoma
└── val
    β”œβ”€β”€ 100X
    β”‚   β”œβ”€β”€ adenosis
    β”‚   β”œβ”€β”€ ductal_carcinoma
    β”‚   β”œβ”€β”€ fibroadenoma
    β”‚   β”œβ”€β”€ lobular_carcinoma
    β”‚   β”œβ”€β”€ mucinous_carcinoma
    β”‚   β”œβ”€β”€ papillary_carcinoma
    β”‚   β”œβ”€β”€ phyllodes_tumor
    β”‚   └── tubular_adenoma
    β”œβ”€β”€ 200X
    β”‚   β”œβ”€β”€ adenosis
    β”‚   β”œβ”€β”€ ductal_carcinoma
    β”‚   β”œβ”€β”€ fibroadenoma
    β”‚   β”œβ”€β”€ lobular_carcinoma
    β”‚   β”œβ”€β”€ mucinous_carcinoma
    β”‚   β”œβ”€β”€ papillary_carcinoma
    β”‚   β”œβ”€β”€ phyllodes_tumor
    β”‚   └── tubular_adenoma
    β”œβ”€β”€ 400X
    β”‚   β”œβ”€β”€ adenosis
    β”‚   β”œβ”€β”€ ductal_carcinoma
    β”‚   β”œβ”€β”€ fibroadenoma
    β”‚   β”œβ”€β”€ lobular_carcinoma
    β”‚   β”œβ”€β”€ mucinous_carcinoma
    β”‚   β”œβ”€β”€ papillary_carcinoma
    β”‚   β”œβ”€β”€ phyllodes_tumor
    β”‚   └── tubular_adenoma
    └── 40X
        β”œβ”€β”€ adenosis
        β”œβ”€β”€ ductal_carcinoma
        β”œβ”€β”€ fibroadenoma
        β”œβ”€β”€ lobular_carcinoma
        β”œβ”€β”€ mucinous_carcinoma
        β”œβ”€β”€ papillary_carcinoma
        β”œβ”€β”€ phyllodes_tumor
        └── tubular_adenoma