| # DOTA-v1.0 data preparation |
|
|
| Download DOTA-v1.0 from the official project or an equivalent complete mirror. |
| The original dataset contains 1,411 training images, 458 validation images and |
| 937 unlabeled test images with 15 classes. |
|
|
| ## Patch generation |
|
|
| Use the mmrotate DOTA splitter with the single-scale settings used by |
| Point2RBox-v3: |
|
|
| | Option | Value | |
| |---|---| |
| | patch size | 1024 | |
| | gap | 200 | |
| | scale rate | 1.0 | |
| | image-rate threshold | 0.6 | |
| | instance IoF threshold | 0.7 | |
| | padding value | `[104, 116, 124]` | |
|
|
| The JSON splitter configurations are provided in `tools/dota_split/`. A correct |
| single-scale split contains 21,046 trainval patches and 10,833 test patches. |
|
|
| Expected layout: |
|
|
| ```text |
| split_ss_dota/ |
| βββ trainval/ |
| β βββ images/ |
| β βββ annfiles/ |
| βββ test/ |
| βββ images/ |
| ``` |
|
|
| The pseudo-label exporter writes |
| `point2rbox_v3_pseudo_labels.bbox.json` under the configured data root. The |
| second-stage dataset reads this JSON together with `trainval/images`. |
|
|
| Update `images_dir`, `annotations_file` and pseudo-label paths in |
| `configs/point2rbox_v3/` if your data root differs from the provided config. |
|
|
| ## Input validation |
|
|
| Before training, verify that no Git LFS pointer files remain, every image can be |
| decoded, trainval image and annotation stems match, and each annotation line has |
| eight polygon coordinates followed by class name and difficulty flag. Parsers |
| accept both official headers and headerless files, as well as LF or CRLF line |
| endings. |
|
|