All Projects → MIRACLE-Center → YOLO_Universal_Anatomical_Landmark_Detection

MIRACLE-Center / YOLO_Universal_Anatomical_Landmark_Detection

Licence: MIT license
[MICCAI 2021] You Only Learn Once: Universal Anatomical Landmark Detection https://arxiv.org/abs/2103.04657

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to YOLO Universal Anatomical Landmark Detection

Fatigue-Detection
Eye state classification using OpenCV and DLib to estimate Percentage Eye Closure (PERCLOS) and alert a drowsy person (such as a driver).
Stars: ✭ 46 (+15%)
Mutual labels:  landmark-detection
bob
Bob is a free signal-processing and machine learning toolbox originally developed by the Biometrics group at Idiap Research Institute, in Switzerland. - Mirrored from https://gitlab.idiap.ch/bob/bob
Stars: ✭ 38 (-5%)
Mutual labels:  landmark-detection
Make Sense
Free to use online tool for labelling photos. https://makesense.ai
Stars: ✭ 2,087 (+5117.5%)
Mutual labels:  landmark-detection
Mobilenet Yolo
MobileNetV2-YoloV3-Nano: 0.5BFlops 3MB HUAWEI P40: 6ms/img, YoloFace-500k:0.1Bflops 420KB🔥🔥🔥
Stars: ✭ 1,566 (+3815%)
Mutual labels:  landmark-detection
Facial-Landmark-Detection
Facial Landmark Detection Framework
Stars: ✭ 33 (-17.5%)
Mutual labels:  landmark-detection
tf-blazepose
BlazePose - Super fast human pose detection on Tensorflow 2.x
Stars: ✭ 139 (+247.5%)
Mutual labels:  landmark-detection
google-cloud-vision-php
A simple php wrapper for the google cloud vision API
Stars: ✭ 16 (-60%)
Mutual labels:  landmark-detection
DeepVTB
🌌 OpenVTuber-虚拟アイドル共享计划 An application of real-time face and gaze analyzation via deep nerual networks.
Stars: ✭ 32 (-20%)
Mutual labels:  landmark-detection
rl-medical
Communicative Multiagent Deep Reinforcement Learning for Anatomical Landmark Detection using PyTorch.
Stars: ✭ 36 (-10%)
Mutual labels:  landmark-detection
dlib-minified-models
A set of minified (but still accurate) models for Dlib
Stars: ✭ 61 (+52.5%)
Mutual labels:  landmark-detection
Deep-MVLM
A tool for precisely placing 3D landmarks on 3D facial scans based on the paper "Multi-view Consensus CNN for 3D Facial Landmark Placement"
Stars: ✭ 71 (+77.5%)
Mutual labels:  landmark-detection
latent-pose-reenactment
The authors' implementation of the "Neural Head Reenactment with Latent Pose Descriptors" (CVPR 2020) paper.
Stars: ✭ 132 (+230%)
Mutual labels:  landmark-detection
Landmark Detection Robot Tracking SLAM-
Simultaneous Localization and Mapping(SLAM) also gives you a way to track the location of a robot in the world in real-time and identify the locations of landmarks such as buildings, trees, rocks, and other world features.
Stars: ✭ 14 (-65%)
Mutual labels:  landmark-detection
deep alignment network pytorch
PyTorch Implementation of the Deep Alignment Network
Stars: ✭ 37 (-7.5%)
Mutual labels:  landmark-detection
tianchi-fashionai
FashionAI全球挑战赛——服饰关键点定位
Stars: ✭ 21 (-47.5%)
Mutual labels:  landmark-detection
universal-model-vue
Universal Model for Vue
Stars: ✭ 25 (-37.5%)
Mutual labels:  universal-model

YOLO_Universal_Anatomical_Landmark_Detection arXiv

PyTorch implementation for learning a universal model for anatomical landmark detection on mixed datasets. results

You Only Learn Once: Universal Anatomical Landmark Detection
Heqin Zhu, Qingsong Yao, Li Xiao, S. Kevin Zhou
Key Lab of Intelligent Information Processing of Chinese Academy of Sciences (CAS), Institute of Computing Technology, CAS In MICCAI 2021.

Abstract

Detecting anatomical landmarks in medical images plays an essential role in understanding the anatomy and planning automated processing. In recent years, a variety of deep neural network methods have been developed to detect landmarks automatically. However, all of those methods are unary in the sense that a highly specialized network is trained for a single task say associated with a particular anatomical region. In this work, for the first time, we investigate the idea of “You Only Learn Once (YOLO)” and develop a universal anatomical landmark detection model to realize multiple landmark detection tasks with end-to-end training based on mixed datasets. The model consists of a local network and a global network: The local network is built upon the idea of universal U-Net to learn multi-domain local features and the global network is a parallelly-duplicated sequential of dilated convolutions that extract global features to further disambiguate the landmark locations. It is worth mentioning that the new model design requires much fewer parameters than models with standard convolutions to train. We evaluate our YOLO model on three X-ray datasets of 1,588 images on the head, hand, and chest, collectively contributing 62 landmarks. The experimental results show that our proposed universal model behaves largely better than any previous models trained on multiple datasets. It even beats the performance of the model that is trained separately for every single dataset.

Prerequisites

  • Linux
  • NVIDIA GPU
  • python3.5+

Getting Started

Installation

  • Install python packages`
pip3 install -r requirements.txt
  • Clone this repo:
git clone https://github.com/ICT-MIRACLE-lab/YOLO_Universal_Anatomical_Landmark_Detection

Preparing Datasets

Download the head, hand, chest datasets.

Prepare datasets in the following directory structure.

  • data
    • ISBI2015_ceph # head
      • 400_junior
      • 400_senior
      • raw
        • *.bmp
    • hand
    • chest
  • universal_landmark_detection # working directory

Now , cd uinversal_landmark_detection.

Usage

usage: main.py [-h] [-C CONFIG] [-c CHECKPOINT] [-g CUDA_DEVICES] [-m MODEL]
               [-l LOCALNET] [-n NAME_LIST [NAME_LIST ...]] [-e EPOCHS]
               [-L LR] [-w WEIGHT_DECAY] [-s SIGMA] [-x MIX_STEP] [-u] -r
               RUN_NAME -d RUN_DIR -p {train,validate,test}

optional arguments:
  -h, --help            show this help message and exit
  -C CONFIG, --config CONFIG
  -c CHECKPOINT, --checkpoint CHECKPOINT
                        checkpoint path
  -g CUDA_DEVICES, --cuda_devices CUDA_DEVICES
  -m MODEL, --model MODEL
  -l LOCALNET, --localNet LOCALNET
  -n NAME_LIST [NAME_LIST ...], --name_list NAME_LIST [NAME_LIST ...]
  -e EPOCHS, --epochs EPOCHS
  -L LR, --lr LR
  -w WEIGHT_DECAY, --weight_decay WEIGHT_DECAY
  -s SIGMA, --sigma SIGMA
  -x MIX_STEP, --mix_step MIX_STEP
  -u, --use_background_channel
  -r RUN_NAME, --run_name RUN_NAME
  -d RUN_DIR, --run_dir RUN_DIR
  -p {train,validate,test}, --phase {train,validate,test}

Train

  • Train a U-Net model
python3 main.py -d ../runs -r unet2d_runs -p train -m unet2d -e 100
  • Train our GU2Net model
python3 main.py -d ../runs -r GU2Net_runs -p train -m gln -l u2net -e 100
  • Loading checkpoint
python3 main.py -d ../runs -r GU2Net_runs -p train -m gln -l u2net -e 100 -c CHECKPOINT_PATH

This running results are in the following directory structure.

  • ../runs
    • GU2Net_runs
      • network_graph.txt
      • config_train.yaml
      • config_origin.yaml
      • learning_rate.png
      • loss.png
      • checkpoints
        • best_GU2Net_runs_*.pt
      • results
        • train_epoch
        • test_epoch

Test

After training, it will automatically run the tests.

Yet you could manually run the tests:

python3 main.py -d ../runs -r GU2Net_runs -p test -m gln -l u2net -c CHECKPOINT_PATH

Evaluation

python3 evaluation.py -i ../runs/GU2Net_runs/results/test_epochxxx

Example

  1. Download checkpoint: Google Drive|蓝奏云
  2. Unzip it in YOLO_Universal_Anatomical_Landmark_Detection/universal_landmark_detection
  3. Run commands:
python3 main.py -d ../runs -r GU2Net -p test -C config.yaml -m gln -l u2net -n chest cephalometric hand -c best.pt
python3 evaluation.py -i ../runs/GU2Net/results/test_epoch067

Citation

@inproceedings{zhu2021you,
  title={You only Learn Once: Universal Anatomical Landmark Detection},
  author={Zhu, Heqin and Yao, Qingsong and Xiao, Li and Zhou, S. Kevin},
  booktitle={International Conference on Medical Image Computing and Computer-Assisted Intervention},
  pages={85--95},
  year={2021},
  organization={Springer}
}

Acknowledgments

The yamlConfig.py is modified from adn and unet2d.py is modified from PyTorch-UNet.

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].