Hi, I have a dataset that includes extremely large images (10,000 x 10,000 for example). The objects in this dataset range from extremely large (2000x2000) to extremely small (30x30). I’m training a model that can detect all objects given large images of various sizes as inputs. Currently, what I’m doing writing my own code to use tiling for small objects and downsizing for large objects. My model seems to perform well using this approach. I’m wondering if roboflow has some utilities for this kind of data processing. My team is considering using roboflow as our annotation tool, so if roboflow has the data processing utilities I need, I might as well use this platform to train my model.
Hi @Beinan_Wang
Roboflow offers a Tile Preprocessing option when generating dataset versions. This slices large images into smaller tiles, which helps the model learn to detect small objects that would otherwise be too tiny after resizing to standard input dimensions (e.g., 640x640). You can configure specific tile sizes. Annotations are automatically adjusted to match the new tile coordinates. Tiling works well for small objects but can split large objects across tile boundaries. For your scenario with mixed sizes (ranging from 30x30 to 2000x2000), you might need to generate multiple dataset versions or use a hybrid approach similar to your current workflow.
For inference on large images, Roboflow supports SAHI (Slicing Aided Hyper Inference). You can build a specific workflow that tiles the input, runs detection on each individual tile, and merges the results using Non-Maximum Suppression (NMS).
Let me know if this helps!