Giter Site home page Giter Site logo

siim-fisabio-rsna-covid-19-detection's Introduction

SIIM-FISABIO-RSNA-COVID-19-Detection

header
Source code of the 73th / 1305(6%) place solution for SIIM-FISABIO-RSNA COVID-19 Detection Challenge.

SIIM COVID LEADERBOARD


1. ENVIRONMENT


  • HARDWARE : RTX 3070 8GB VRAM / kaggle docker GPU (P100-16GB) & TPU v3.8 (16GB x 8core)
  • Ubuntu 20.04.2 LTS
  • CUDA 11.3
  • Python 3.7.9

2. DATASET


  1. SIIM COVID 19 DATASET
  • download competition dataset at link
$ kaggle competitions download -c siim-covid19-detection # kaggle API

128GB


3. SOLUTION SUMMARY

3.1 SOLUTION

  1. MODEL
  • STUDY LEVEL (CLASSIFICATION)
    • Classification Model : EfficientNetV2 Large w/ TTA
  • IMAGE LEVEL (OBJECT DETECTION)
    • 2 Classifier Model : EfficientNetB7
    • Object Detection Model : YoloV5x6 w/ TTA
  1. Cross Validation Strategy

    • Study Level : GroupKFold by Study level id - 5 Folds
    • Image Level : GroupKFold by Study level id - 5 Folds
  2. Data Handling
    [Discussion] Recommendations for handling duplicates on the train dataset

  • During this competition, the annotation error issues was found. So, checked All data and Remove some data. And then train again with clean dataset. (Improve score)

3.2 DIRECTORY STRUCTURE

.
├── image_level
│   ├── image_level_code
│   │   ├── hyp.scratch.yaml
│   │   ├── run_yolov5.py
│   │   ├── view_checkpoint
│   │   ├── yolo_v5l6_train.ipynb
│   │   ├── yolo_v5x6_train.ipynb
│   │   ├── yolo_v5x_alldata.ipynb
│   │   ├── yolo_v5x_kfold.ipynb
│   │   └── yolo_v5x_train.ipynb
│   ├── infer-siim-cov19-yolov5-image.ipynb
│   └── train-siim-cov19-yolov5-image.ipynb
├── infer-siim-cov19-efnb7-study-image.ipynb
├── structure.txt
├── study_level
│   ├── infer-siim-cov19-efnb7-infer-study.ipynb
│   └── train-siim-study-level.ipynb
├── two_classifier
│   └── train-2-classifier.ipynb
└── utils
    ├── convert-image-size.ipynb
    ├── data-annotating.ipynb
    ├── data-stratified-k-fold-and-create-mask.ipynb
    ├── kfold_df.csv
    ├── resized_data
    │   ├── new_resized_data
    │   └── new_resized_data2
    ├── result_view
    │   ├── 2class_visualize.ipynb
    │   ├── image_model
    │   ├── model_list.rtf
    │   ├── study_model
    │   ├── study_model_result.ipynb
    │   ├── two_class
    │   └── yolo_results.ipynb
    ├── siim-eda.ipynb
    └── weighted_box_fusion.ipynb

13 directories, 24 files


4. TRAIN MODEL AND CODE

4.1 Classification

4.1.1 Multi head classification

src/study_level/train-siim-study-level.ipynb              # train study classifier model
src/study_level/infer-siim-cov19-efnb7-infer-study.ipynb  # infer study classifier model

4.1.2 2 classifier

src/two_classifier/train-2-classifier.ipynb               # train 2 classifier model

4.2 Opacity Detection

4.2.1 Yolov5x6

src/image_level/train-siim-cov19-yolov5-image.ipynb       # train image object detector model
src/image_level/infer-siim-cov19-yolov5-image.ipynb       # infer image object detector model

4.3 Ensembling

src/infer-siim-cov19-efnb7-study-image.ipynb              # Final submission file

5 GroupKFolds

  1. Classification : Blending Probability
  2. 2 classifier : Blending Probability
  3. Object Detection : WBF Weighted Boxes Fusion

4.4 Code

4.4.1 Training Result View

src/utils/result_view/study_model_result.ipynb   # visualize and analyze study classification model trainig result
src/utils/result_view/2class_visualize.ipynb     # visualize and analyze image 2 classifier model trainig result
src/utils/result_view/yolo_results.ipynb         # visualize and analyze image object detection model trainig result

5. FINAL SUBMISSION


Public LB Private LB Rank Model
0.608 0.625 73 / 1305 EffNetV2 L w/ TTA + EffNetB7 + YoloV5x6 w/ TTA

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.