Skip to content

Support tiling#6955

Open
A-Artemis wants to merge 17 commits into
developfrom
aurelien/support-tiling
Open

Support tiling#6955
A-Artemis wants to merge 17 commits into
developfrom
aurelien/support-tiling

Conversation

@A-Artemis

@A-Artemis A-Artemis commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Added TilingDatasetFactory for wrapping the dataset subsets if tiling is enabled.
Created tiling config yamls for algorithms which were missing it.

Checklist

  • The PR title and description are clear and descriptive
  • I have manually tested the changes
  • All changes are covered by automated tests
  • All related issues are linked to this PR (if applicable)
  • Documentation has been updated (if applicable)

@A-Artemis A-Artemis self-assigned this Jul 1, 2026
@A-Artemis A-Artemis linked an issue Jul 1, 2026 that may be closed by this pull request
@github-actions github-actions Bot added Geti Backend Issues related to the Geti application server Geti Library Issues related to Geti Library (OTX) labels Jul 1, 2026
@A-Artemis A-Artemis linked an issue Jul 1, 2026 that may be closed by this pull request
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

⏱️ Backend import time — app.main

Accelerator Cumulative (s) Self (s)
cpu 4.628 0.003
xpu 4.476 0.003
cuda 4.726 0.003

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

📊 Test coverage report

Metric Coverage
Lines 59.8%
Functions 56.5%
Branches 51.1%
Statements 59.4%

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

🐳 Docker image sizes

Device Size
cpu 4002.9 MB (3.91 GB)
cuda 10198.1 MB (9.96 GB)
xpu 10791.5 MB (10.54 GB)

Comment thread library/src/getitune/recipe/detection/deim_dfine_l_tile.yaml
@codecov-commenter

codecov-commenter commented Jul 1, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 72.13115% with 17 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...e/backend/openvino/models/instance_segmentation.py 23.07% 10 Missing ⚠️
...brary/src/getitune/backend/openvino/models/base.py 55.55% 4 Missing ⚠️
.../src/getitune/backend/openvino/models/detection.py 92.30% 1 Missing ⚠️
library/src/getitune/config/data.py 50.00% 1 Missing ⚠️
library/src/getitune/data/augmentation/pipeline.py 88.88% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@github-actions github-actions Bot added the TEST Any changes in tests label Jul 1, 2026
Comment thread application/backend/app/execution/training/getitune_trainer.py
@A-Artemis A-Artemis marked this pull request as ready for review July 6, 2026 13:19
@A-Artemis A-Artemis requested a review from a team as a code owner July 6, 2026 13:19
Copilot AI review requested due to automatic review settings July 6, 2026 13:19
@A-Artemis A-Artemis requested a review from a team as a code owner July 6, 2026 13:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables end-to-end tiling support across the GetiTune library and the application backend, covering dataset wrapping, GPU augmentation handling for tile batches, and tile-aware OpenVINO inference/merging, plus adding missing tiling recipes.

Changes:

  • Add tile-batch compatible GPU augmentation path (image-only transforms) and corresponding unit tests.
  • Add tile-aware OpenVINO detection/instance-segmentation inference (forward over tiles + merge) and dtype regression coverage.
  • Add/extend tiling recipes and update backend config conversion/training pipeline to enable tiling while skipping incompatible augmentations.

Reviewed changes

Copilot reviewed 49 out of 49 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
library/tests/unit/data/augmentation/test_pipeline.py Adds regression tests for GPU augmentation on tile batches.
library/tests/unit/backend/openvino/models/test_detection.py Adds tiling-focused tests and a float64→float32 score dtype regression test.
library/src/getitune/recipe/instance_segmentation/rfdetr_seg_xlarge_tile.yaml New tiling recipe for RFDETR instance segmentation (xlarge).
library/src/getitune/recipe/instance_segmentation/rfdetr_seg_small_tile.yaml New tiling recipe for RFDETR instance segmentation (small).
library/src/getitune/recipe/instance_segmentation/rfdetr_seg_nano_tile.yaml New tiling recipe for RFDETR instance segmentation (nano).
library/src/getitune/recipe/instance_segmentation/rfdetr_seg_medium_tile.yaml New tiling recipe for RFDETR instance segmentation (medium).
library/src/getitune/recipe/instance_segmentation/rfdetr_seg_large_tile.yaml New tiling recipe for RFDETR instance segmentation (large).
library/src/getitune/recipe/instance_segmentation/rfdetr_seg_2xlarge_tile.yaml New tiling recipe for RFDETR instance segmentation (2xlarge).
library/src/getitune/recipe/detection/rfdetr_small_tile.yaml New tiling recipe for RFDETR detection (small).
library/src/getitune/recipe/detection/rfdetr_nano_tile.yaml New tiling recipe for RFDETR detection (nano).
library/src/getitune/recipe/detection/rfdetr_medium_tile.yaml New tiling recipe for RFDETR detection (medium).
library/src/getitune/recipe/detection/rfdetr_large_tile.yaml New tiling recipe for RFDETR detection (large).
library/src/getitune/recipe/detection/deimv2_s_tile.yaml New tiling recipe for DEIMv2 (small).
library/src/getitune/recipe/detection/deimv2_m_tile.yaml New tiling recipe for DEIMv2 (medium).
library/src/getitune/recipe/detection/deimv2_l_tile.yaml New tiling recipe for DEIMv2 (large).
library/src/getitune/recipe/detection/deim_dfine_x_tile.yaml New tiling recipe for DEIM D-FINE (x).
library/src/getitune/recipe/detection/deim_dfine_m_tile.yaml New tiling recipe for DEIM D-FINE (m).
library/src/getitune/recipe/detection/deim_dfine_l_tile.yaml New tiling recipe for DEIM D-FINE (l).
library/src/getitune/data/augmentation/pipeline.py Adds apply_image_only() to support tile-batch normalization/intensity transforms without annotations.
library/src/getitune/config/data.py Adds a custom TileConfig.__repr__ for clearer logging/debugging.
library/src/getitune/backend/openvino/models/instance_segmentation.py Adds tile-aware forward/merge path and fixes score dtype for NMS compatibility.
library/src/getitune/backend/openvino/models/detection.py Adds tile-aware forward/merge path and fixes score dtype for NMS compatibility.
library/src/getitune/backend/openvino/models/base.py Routes TileBatch inputs to forward_tiles() in test_step / predict_step; adds default tile_config.
library/src/getitune/backend/openvino/engine.py Propagates datamodule.tile_config into OV model during test().
library/src/getitune/backend/lightning/callbacks/gpu_augmentation.py Applies GPU augmentations safely to tile batches (per-tile, image-only).
library/benchmark_manifest.yaml Adds tiling variants to detection/instance-seg benchmarks and reorganizes model lists.
application/backend/tests/unit/execution/training/test_getitune_trainer.py Updates mocks to provide working __len__ for dataset size logging.
application/backend/tests/unit/execution/common/test_geti_config_converter.py Adds tests for DEIM↔tiling incompatibility and ensures mosaic/mixup are skipped under tiling.
application/backend/tests/unit/api/schemas/test_training_configuration_view.py Updates augmentation descriptions to note tiling incompatibilities.
application/backend/tests/integration/services/test_training_configuration_service.py Adjusts tiling capability test coverage to use a known tiling-unsupported architecture.
application/backend/app/supported_models/manifests/instance_segmentation/rfdetr_xl.yaml Removes explicit capabilities.tiling: false to allow tiling per defaults.
application/backend/app/supported_models/manifests/instance_segmentation/rfdetr_s.yaml Same as above for RFDETR-S instance segmentation.
application/backend/app/supported_models/manifests/instance_segmentation/rfdetr_n.yaml Same as above for RFDETR-N instance segmentation.
application/backend/app/supported_models/manifests/instance_segmentation/rfdetr_m.yaml Same as above for RFDETR-M instance segmentation.
application/backend/app/supported_models/manifests/instance_segmentation/rfdetr_l.yaml Same as above for RFDETR-L instance segmentation.
application/backend/app/supported_models/manifests/instance_segmentation/rfdetr_2xl.yaml Same as above for RFDETR-2XL instance segmentation.
application/backend/app/supported_models/manifests/detection/rfdetr_s.yaml Removes explicit capabilities.tiling: false to allow tiling per defaults.
application/backend/app/supported_models/manifests/detection/rfdetr_n.yaml Same as above for RFDETR-N detection.
application/backend/app/supported_models/manifests/detection/rfdetr_m.yaml Same as above for RFDETR-M detection.
application/backend/app/supported_models/manifests/detection/rfdetr_l.yaml Same as above for RFDETR-L detection.
application/backend/app/supported_models/manifests/detection/dinov3_detr_s.yaml Removes explicit capabilities.tiling: false to allow tiling per defaults.
application/backend/app/supported_models/manifests/detection/dinov3_detr_m.yaml Same as above for DINOv3-DETR-M.
application/backend/app/supported_models/manifests/detection/dinov3_detr_l.yaml Same as above for DINOv3-DETR-L.
application/backend/app/supported_models/manifests/detection/dfine_x.yaml Removes explicit capabilities.tiling: false to allow tiling per defaults.
application/backend/app/supported_models/manifests/detection/dfine_m.yaml Same as above for D-FINE-M.
application/backend/app/supported_models/manifests/detection/dfine_l.yaml Same as above for D-FINE-L.
application/backend/app/models/training_configuration/augmentation.py Updates DEIM/mosaic/mixup descriptions to document tiling incompatibilities.
application/backend/app/execution/training/getitune_trainer.py Wraps datasets with tiling factory when enabled and propagates resolved tile_config into datamodule/model.
application/backend/app/execution/common/geti_config_converter.py Skips tiling-incompatible augmentations and forces DEIM off when tiling is enabled.

Comment thread application/backend/app/execution/common/geti_config_converter.py Outdated
Comment thread application/backend/app/execution/common/geti_config_converter.py Outdated
Comment thread library/benchmark_manifest.yaml
Comment thread application/backend/app/execution/training/getitune_trainer.py
Comment thread library/src/getitune/backend/openvino/engine.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DO NOT MERGE Geti Backend Issues related to the Geti application server Geti Library Issues related to Geti Library (OTX) TEST Any changes in tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enable Tiling for new models Tiling in application makes no affect on training

4 participants