Skip to content

Welcome to DeepXROMM!

DeepXROMM integrates DeepLabCut's neural network tracking capabilities with XMAlab's XROMM (X-ray Reconstruction of Moving Morphology) workflow, enabling automated marker tracking for X-ray motion analysis.

Key Features

  • XMAlab Integration: Seamlessly converts between XMAlab and DeepLabCut data formats
  • Flexible Tracking Modes: Choose from 2D, per-camera, or RGB merged tracking strategies
  • Automated Batch Training: Train multiple projects with a single command
  • Retraining Workflow: Iteratively improve networks by identifying and correcting outlier frames
  • XMAlab-Style Autocorrection: Apply image processing techniques for marker refinement
  • Video Analysis Tools: Compare trials and validate tracking quality

Quick Start

┌─────────────────┐
│  1. Install     │──> Follow the Installation guide
└────────┬────────┘
┌────────▼────────┐
│  2. Create      │──> Create project and import XMAlab data
│     Project     │
└────────┬────────┘
┌────────▼────────┐
│  3. Convert &   │──> xma_to_dlc() + create_training_dataset()
│     Prepare     │
└────────┬────────┘
┌────────▼────────┐
│  4. Train       │──> train_network()
│     Network     │
└────────┬────────┘
┌────────▼────────┐
│  5. Analyze     │──> analyze_videos() + dlc_to_xma()
│     Videos      │
└────────┬────────┘
┌────────▼────────┐
│  6. Import to   │──> Import predictions into XMAlab
│     XMAlab      │
└─────────────────┘

Detailed Steps

  1. Install DeepXROMM and its dependencies
  2. Create a project and set up your directory structure
  3. Import your data from XMAlab
  4. Train your network on tracked markers
  5. Analyze videos with the trained model
  6. Import results back into XMAlab

Tracking Modes

DeepXROMM supports three tracking modes to suit different experimental setups:

  • 2D Mode (default): Combines both camera views into a single DeepLabCut project with shared bodypart names. Both cameras train together in one network.
  • Best for: Standard stereo X-ray setups where both cameras view the same subject

  • Per-Camera Mode: Creates separate DeepLabCut projects and networks for cam1 and cam2. Each camera trains independently.

  • Best for: Different camera angles requiring specialized training, or when cameras have very different characteristics

  • RGB Mode: Merges cam1 and cam2 into a single RGB video (cam1 → red channel, cam2 → green channel). Bodyparts are labeled with camera suffixes.

  • Best for: Leveraging spatial relationships between camera views, advanced training scenarios

See the Mode parameter documentation for detailed information about each mode.

Documentation Structure

Getting Help

If you encounter issues or have questions: - Check the Usage Guide for detailed workflow instructions - Review the Config File Reference for parameter descriptions - Consult the Contributing Guide for development setup

Project Layout

After creating a project, your directory structure will look like this:

your-project/
│   project_config.yaml       # Main configuration file
│
├───your-project-SD-YYYY-MM-DD/   # DeepLabCut project folder
├───trainingdata/             # Trials with tracked markers for training
└───trials/                   # Trials to analyze with trained network