DeepLabCut: Markerless pose estimation of user-defined features with deep learning for all animals, including humans

DeepLabCut is an open source toolbox that builds on a state-of-the-art animal pose estimation algorithm. It allows training of a deep neural network by using limited training data to precisely track user-defined features, so that the human labeling accuracy will be matched.

References:

Documentation
Important Notes

Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

The DeepLabCut application installed on Biowulf is supposed to be run using GPU. As the first step, please allocate an interactive session:

  • Deeplabcut/2.3.4 (available on biowulf) command lines should be run on gpu with python-DLC instead of python:
    [user@biowulf]$ sinteractive --gres=gpu:p100:1,lscratch:10 --mem=20g -c14
    [user@cn4469 ~]$ module load DeepLabCut/2.3.4 
    [+] Loading singularity  3.10.5  on cn4469
    [+] Loading DeepLabCut  2.3.4
    
  • It is essential to create a module directory under /data/$USER/DLC and put the model there so that the program can have write right to the directory:
    [user@cn4469 user]$ mkdir -p /data/$USER/DLC && cd /data/$USER/DLC
    [user@cn4469 user]$ cp -r $DLC_MODEL/pretrained .
    
    
  • Clone the DeepLabCut GitHub repository, which contains some examples (optional):
    [user@cn4469]$ git clone https://github.com/AlexEMG/DeepLabCut
    [user@cn4469]$ cd DeepLabCut/examples
    
    Test run in a terminal:
    [user@cn4469]$ python-DLC testscript.py # only work for DeepLabCut/2.3.4
    [user@cn4469]$ python-DLC testscript_multianimal.py# work for both DeepLabCut/2.3.4 and DeepLabCut/2.3.9
    
  • deeplabcut GUI could to be opened through NoMachine:
           python-DLC -m "deeplabcut"
           
  • deeplabcut GUI could also be opened through visual partition svis desktop session:
           vglrun python-DLC -m "deeplabcut"
           

    Batch job
    Most jobs should be run as batch jobs.

    Create a batch input file (e.g. DLC.sh). For example:

           #!/bin/bash
           set -e
           module load DeepLabCut
           cd /data/$USER
           python-DLC testscript_multianimal.py
           

    Submit this job using the Slurm sbatch command.

    sbatch --partition=gpu --gres=gpu:p100:1 [--cpus-per-task=#] [--mem=#] DLC.sh