All Projects → tatigabru → Kaggle Rsna

tatigabru / Kaggle Rsna

Licence: mit
Deep Learning for Automatic Pneumonia Detection, RSNA challenge

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Kaggle Rsna

Paddlex
PaddlePaddle End-to-End Development Toolkit(『飞桨』深度学习全流程开发工具)
Stars: ✭ 3,399 (+4493.24%)
Mutual labels:  classification, neural-networks, detection
Pine
🌲 Aimbot powered by real-time object detection with neural networks, GPU accelerated with Nvidia. Optimized for use with CS:GO.
Stars: ✭ 202 (+172.97%)
Mutual labels:  object-detection, neural-networks, detection
Ssd Pytorch
SSD: Single Shot MultiBox Detector pytorch implementation focusing on simplicity
Stars: ✭ 107 (+44.59%)
Mutual labels:  object-detection, neural-networks, detection
Albumentations
Fast image augmentation library and an easy-to-use wrapper around other libraries. Documentation: https://albumentations.ai/docs/ Paper about the library: https://www.mdpi.com/2078-2489/11/2/125
Stars: ✭ 9,353 (+12539.19%)
Mutual labels:  object-detection, image-processing, detection
Tensorflow object tracking video
Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition
Stars: ✭ 491 (+563.51%)
Mutual labels:  object-detection, classification, detection
X Ray Classification
X-ray Images (Chest images) analysis and anomaly detection using Transfer learning with inception v2
Stars: ✭ 83 (+12.16%)
Mutual labels:  classification, image-processing, medical-imaging
Vip
Video Platform for Action Recognition and Object Detection in Pytorch
Stars: ✭ 175 (+136.49%)
Mutual labels:  object-detection, neural-networks, detection
Awesome Medical Imaging
Awesome list of software that I use to do research in medical imaging.
Stars: ✭ 87 (+17.57%)
Mutual labels:  neural-networks, image-processing, medical-imaging
Gfocal
Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection, NeurIPS2020
Stars: ✭ 376 (+408.11%)
Mutual labels:  object-detection, classification, detection
mri-deep-learning-tools
Resurces for MRI images processing and deep learning in 3D
Stars: ✭ 56 (-24.32%)
Mutual labels:  detection, medical-imaging, classification
Sod
An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)
Stars: ✭ 1,460 (+1872.97%)
Mutual labels:  object-detection, image-processing, detection
All About The Gan
All About the GANs(Generative Adversarial Networks) - Summarized lists for GAN
Stars: ✭ 630 (+751.35%)
Mutual labels:  classification, medical-imaging, detection
Pyimsegm
Image segmentation - general superpixel segmentation & center detection & region growing
Stars: ✭ 213 (+187.84%)
Mutual labels:  object-detection, image-processing, medical-imaging
Vehicle counting tensorflow
🚘 "MORE THAN VEHICLE COUNTING!" This project provides prediction for speed, color and size of the vehicles with TensorFlow Object Counting API.
Stars: ✭ 582 (+686.49%)
Mutual labels:  object-detection, image-processing, detection
Medicaldetectiontoolkit
The Medical Detection Toolkit contains 2D + 3D implementations of prevalent object detectors such as Mask R-CNN, Retina Net, Retina U-Net, as well as a training and inference framework focused on dealing with medical images.
Stars: ✭ 917 (+1139.19%)
Mutual labels:  object-detection, medical-imaging, detection
Rivuletpy
Robust 3D Neuron Tracing / General 3D tree structure extraction in Python for 3D images powered by the Rivulet2 algorithm. Pain-free Install & use in 5 mins.
Stars: ✭ 32 (-56.76%)
Mutual labels:  image-processing, medical-imaging
Segment Open
Segment Source Distribution
Stars: ✭ 34 (-54.05%)
Mutual labels:  image-processing, medical-imaging
Machine Learning From Scratch
Succinct Machine Learning algorithm implementations from scratch in Python, solving real-world problems (Notebooks and Book). Examples of Logistic Regression, Linear Regression, Decision Trees, K-means clustering, Sentiment Analysis, Recommender Systems, Neural Networks and Reinforcement Learning.
Stars: ✭ 42 (-43.24%)
Mutual labels:  classification, neural-networks
Tensorflow object counting api
🚀 The TensorFlow Object Counting API is an open source framework built on top of TensorFlow and Keras that makes it easy to develop object counting systems!
Stars: ✭ 956 (+1191.89%)
Mutual labels:  object-detection, image-processing
Extensionsindex
Slicer extensions index
Stars: ✭ 36 (-51.35%)
Mutual labels:  image-processing, medical-imaging

Deep Learning for Automatic Pneumonia Detection

Pneumonia is the leading cause of death among young children and one of the top mortality causes worldwide. The pneumonia detection is usually performed through examine of chest X-Ray radiograph by highly trained specialists. This process is tedious and often leads to a disagreement between radiologists. Computer-aided diagnosis systems showed potential for improving the diagnostic accuracy. In this work, we develop the computational approach for pneumonia regions detection based on single-shot detectors, squeeze-and-extinction deep convolution neural networks, augmentations and multi-task learning. The proposed approach was evaluated in the context of the Radiological Society of North America Pneumonia Detection Challenge, achieving one of the best results in the challenge. Our source code is freely available here.

For more details, please refer to the paper.

If you are using the results and code of this work, please cite it as

@InProceedings{Gabruseva_2020_CVPR_Workshops,
  author = {Gabruseva, Tatiana and Poplavskiy, Dmytro and Kalinin, Alexandr A.},
  title = {Deep Learning for Automatic Pneumonia Detection},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
  month = {June},
  year = {2020}
}

References

This code is based on the original 2nd place solution by Dmytro Poplavskiy and the Pytorch RetinaNet implementation. RSNA Challenge was hosted on Kaggle.

Disclaimer

This is still work in porgress, so some minor issues and changes are highly possible. If you encoutered any problems, I am more that happy to accept pull requests with changes. Please do not hesitate to submit your issues and/or pull requests.

Dataset

The labelled dataset of the chest X-Ray (CXR) images and patients meta data was publicly provided for the challenge by the US National Institutes of Health Clinical Center. The dataset is available on kaggle platform.

The database comprises frontal-view X-ray images from 26684 unique patients. Each image is labeled with one of three different classes from the associated radiological reports: ”Normal”, ”No Lung Opacity / Not Normal”, ”Lung Opacity”. Fig. 1 shows examples of all three classes CXRs labeled with bounding boxes for unhealthy patients.

eda Fig. 1 Examples of ”Normal”, ”No Lung Opacity / Not Normal”, ”Lung Opacity” chest X-Ray (CXR) images.

The classes were well-distributed classes

Fog. 2 Classes distribution in the training dataset.

Metrics

The evaluation metric was provided in the challenge. The models were evaluated using the mean average precision (mAP) at different intersection-over-union (IoU) thresholds. See evaluation here. The implemented mAP metric calculation is in src/metric.py

Models

The model is based on RetinaNet implementation on Pytorch with few modifications. A number of different base models architectures has been tested. Fig.2 shown validation losses for a range of various backbones. The SE-type nets demonstrated optimal performance, with se-resnext101 showing the best results and se-resnext50 being slightly worse. eda

Fig. 3 Validation loss history for a range of model encoders.

Images preprocessing and augmentations

The original images were scaled to 512 x 512 px resolution. The 256 resolution yield degradation of the results, while the full original resolution (typically, over 2000 x 2000 px) was not practical with heavier base models.

Since the original challenge dataset is not very large the images augmentations were beneficial to reduce overfitting. The dataset with augmentations is at src/datasets/detection_dataset.py

Training

All base models used were pre-trained on ImageNet dataset. For learning rate scheduler we used available in Pytorch ReduceLROnPlateau with a patience of 4 and learning rate decrease factor of 0.2. RetinaNet single-shot detectors with SE-ResNet101 encoders demonstrated the best results, followed by SE-ResNet50. The whole training took around 12 epochs, 50 min per epoch on P100 GPU.

How to install and run

Preparing the training data

To download dataset from kaggle one need to have a kaggle account, join the competition and accept the conditions, get the kaggle API token ansd copy it to .kaggle directory. After that you may run bash dataset_download.sh in the command line. The script for downloading and unpacking data is in scripts/dataset_download.sh.

Prepare environment

  1. Install anaconda
  2. You may use the create_env.sh bash file to set up the conda environment
  3. Alternative way is to install Docker

Reproducing the experiments

Set up your own path ways in config.py.

Run src/train_runner.py with args.action == "train" for training the models, use args.action == "check_metric" to check the score, and args.action == "generate_predictions" to generate predictions.

From predictions you can calculate mAP score for the range of NMS thresholds using src/scores.py and visualise the saved scres for differnet runs and models by src/visualizations/plot_metrics.py.

Inference on your data

Once you have saved checkpoints for the trained models, you may call src/train_runner.py with args.action == "generate_predictions" with the path to your model checkpoint and generate predictions for your test images. The test dataset class is in the src/datasets/test_dataset.py and the test directory is in configs.py

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].