- Notifications
You must be signed in to change notification settings - Fork10
delmalih/MIAS-mammography-obj-detection
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- GCC >= 4.9
- CUDA 9.0 & cuDNN 7.0 (install. instructions)
- Anaconda 3 (install. instructions)
- Faster-RCNN paper:arxiv.org/pdf/1506.01497.pdf
- Faster-RCNN implem. repo.:github.com/facebookresearch/maskrcnn-benchmark
- RetinaNet paper:arxiv.org/pdf/1708.02002.pdf
- RetinaNet implem. repo.:github.com/fizyr/keras-retinanet
- FCOS paper:arxiv.org/pdf/1904.01355.pdf
- FCOS implem. repo.:github.com/tianzhi0549/FCOS
Start by cloning this repo:
git clone https://github.com/delmalih/MIAS-mammography-obj-detection
- First, create an environment :
conda create --name faster-r-cnnconda activate faster-r-cnnconda install ipython pipcd MIAS-mammography-obj-detectionpip install -r requirements.txtcd ..
- Then, run these commands (ignore if you have already done the FCOS installation) :
# install pytorchconda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorchexport INSTALL_DIR=$PWD# install pycocotoolscd $INSTALL_DIRgit clone https://github.com/cocodataset/cocoapi.gitcd cocoapi/PythonAPIpython setup.py build_ext install# install cityscapesScriptscd $INSTALL_DIRgit clone https://github.com/mcordts/cityscapesScripts.gitcd cityscapesScripts/python setup.py build_ext install# install apexcd $INSTALL_DIRgit clone https://github.com/NVIDIA/apex.gitcd apexpython setup.py install --cuda_ext --cpp_ext# install PyTorch Detectioncd $INSTALL_DIRgit clone https://github.com/facebookresearch/maskrcnn-benchmark.gitcd maskrcnn-benchmarkpython setup.py build developcd $INSTALL_DIRunset INSTALL_DIR
- First, create an environment :
conda create --name retinanet python=3.6conda activate retinanetconda install ipython pipcd MIAS-mammography-obj-detectionpip install -r requirements.txtcd ..pip install tensorflow-gpu==1.9pip install keras==2.2.5
- Then, run these commands :
# clone keras-retinanet repogit clone https://github.com/fizyr/keras-retinanetcd keras-retinanetpip install .python setup.py build_ext --inplace
- Finally, replace the
keras_retinanet/preprocessing/coco.py
file bythis file
- First, create an environment :
conda create --name fcosconda activate fcosconda install ipython pipcd MIAS-mammography-obj-detectionpip install -r requirements.txtcd ..
- Then, followthese instructions
Run these commands to download to MIAS database :
mkdir mias-db && cd mias-dbwget http://peipa.essex.ac.uk/pix/mias/all-mias.tar.gztar -zxvf all-mias.tar.gzrm all-mias.tar.gz && cd ..
And replace themias-db/Info.txt
bythis one
It is possible to generate COCO or VOC annotations from raw data (all-mias
folder +Info.txt
annotations file) through 2 scripts:generate_{COCO|VOC}_annotations.py
:
python generate_{COCO|VOC}_annotations.py --images (or -i) <Path to the images folder> \ --annotations (or -a) <Path to the .txt annotations file> \ --output (or -o) <Path to output folder> \ --aug_fact <Data augmentation factor> \ --train_val_split <Percetange of the train folder (default 0.9)>
For example, to generate 10x augmented COCO annotations, run this command :
python generate_COCO_annotations.py --images ../mias-db/ \ --annotations ../mias-db/Info.txt \ --output ../mias-db/COCO \ --aug_fact 20 \ --train_val_split 0.9
To run a training with the Faster-RCNN:
- Go to the faster-r-cnn directory:
cd faster-r-cnn
- Change conda env:
conda deactivate && conda activate faster-r-cnn
- Download theResnet_101_FPN model
- Trim the model:
python trim_detectron_model.py --pretrained_path e2e_faster_rcnn_R_101_FPN_1x.pth --save_path base_model.pth
- Edit the
maskrcnn-benchmark/maskrcnn_benchmark/config/paths_catalog.py
file and put these lines in theDATASETS
dictionary :
DATASETS = { ..., "mias_train_cocostyle": { "img_dir": "<PATH_TO_'mias-db'_folder>/<COCO_FOLDER>/images/train", "ann_file": "<PATH_TO_'mias-db'_folder>/<COCO_FOLDER>/annotations/instances_train.json" }, "mias_val_cocostyle": { "img_dir": "<PATH_TO_'mias-db'_folder>/<COCO_FOLDER>/images/val", "ann_file": "<PATH_TO_'mias-db'_folder>/<COCO_FOLDER>/annotations/instances_val.json" }, }
- In the
maskrcnn-benchmark/maskrcnn_benchmark/data/datasets/coco.py
, comment line 84 to 92 :
# if anno and "segmentation" in anno[0]: # masks = [obj["segmentation"] for obj in anno] # masks = SegmentationMask(masks, img.size, mode='poly') # target.add_field("masks", masks) # if anno and "keypoints" in anno[0]: # keypoints = [obj["keypoints"] for obj in anno] # keypoints = PersonKeypoints(keypoints, img.size) # target.add_field("keypoints", keypoints)
- Run this command :
python train.py --config-file mias_config.yml
To run a training with the retinanet :
cd retinanetconda deactivate && conda activate retinanetpython train.py --compute-val-loss \ # Computer val loss or not --tensorboard-dir <Path to the tensorboard directory> \ --batch-size <Batch size> \ --epochs <Nb of epochs> \ coco <Path to the COCO dataset>
And if you want to see the tensorboard, run on another window :
tensorboard --logdir <Path to the tensorboard directory>
To run a training with the FCOS Object Detector :
- Followthese instructions
- Run this command :
cd fcosconda deactivate && conda activate fcospython train.py --config-file <Path to the config file> \ OUTPUT_DIR <Path to the output dir for the logs>
To run an inference, you need a pre-trained model. Run this command:
cd faster-r-cnnconda deactivate && conda activate faster-r-cnnpython inference.py --config-file <Path to the config file> \ MODEL.WEIGHT <Path to weights of the model to load> \ TEST.IMS_PER_BATCH <Nb of images per batch>
- Put the images you want to run an inference on, in
<Name of COCO dataset>/<Name of folder>
- Run this command :
cd retinanetconda deactivate && conda activate retinanetpython inference.py --snapshot <Path of the model snapshot> \ --set_name <Name of the inference folder in the COCO dataset> \ coco <Path to the COCO dataset>
cd fcosconda deactivate && conda activate fcospython inference.py --config-file <Path to the config file> \ MODEL.WEIGHT <Path to weights of the model to load> \ TEST.IMS_PER_BATCH <Nb of images per batch>
Metric | Faster-RCNN | RetinaNet | FCOS |
---|---|---|---|
mAP | 98,70% | 94,97% | 98,20% |
Precision | 94,12% | 100,00% | 94,44% |
Recall | 98,65% | 94,72% | 98,20% |
F1-score | 96,22% | 96,93% | 96,25% |
About
Detection of tumors on mammography images
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.