Tools to randomly move images and split datasets (local or S3) into train/val/test.
Project description
SplitDatasets
SplitDatasets — это CLI-инструмент на Python для работы с изображениями и разметками: выбор случайных изображений, разбиение на обучающую/валидационную/тестовую выборки как в локальной файловой системе, так и в S3.
📦 Установка
🔹 Установка с помощью uv
uv pip install -e .
Установит проект в режиме разработки (editable).
🔹 Установка глобально с помощью pipx
pipx install .
Если пакет уже установлен, но вы внесли изменения в код — переустановите:
pipx uninstall splitdatasets
pipx install .
🚀 Использование
1. Случайный выбор изображений
Копирует случайные изображения из source_dir в target_dir, с возможным переименованием.
random-move SOURCE_DIR TARGET_DIR [--count 100] [--prefix PREFIX] [--extensions .jpg .jpeg .png] [--seed 42]
Пример:
random-move ./images ./sample --count 50 --prefix selected --seed 123
2. Разделение локального датасета
Разбивает изображения на поддиректории images/train, images/val, images/test и labels/...
split-dataset-local SOURCE_DIR TARGET_DIR [--labels_dir LABELS_DIR] [--train_ratio 0.7] [--val_ratio 0.2] [--test_ratio 0.1] [--seed 42]
Пример:
split-dataset-local ./dataset/images ./dataset_split --labels_dir ./dataset/labels --seed 42
3. Разделение датасета в S3 (MinIO)
Разделяет изображения и метки, находящиеся в хранилище S3, по тем же правилам.
split-dataset-s3 --bucket BUCKET \
--source_prefix SOURCE_PREFIX \
--target_prefix TARGET_PREFIX \
--endpoint http://IP:PORT \
--access_key ACCESS \
--secret_key SECRET \
[--labels_prefix LABELS_PREFIX] \
[--train_ratio 0.7] \
[--val_ratio 0.2] \
[--test_ratio 0.1] \
[--seed 42]
Пример:
split-dataset-s3 --bucket mybucket \
--source_prefix raw/images \
--target_prefix splits \
--endpoint http://localhost:9000 \
--access_key myaccesskey \
--secret_key mysecretkey \
--labels_prefix raw/labels \
--seed 123
🧱 Структура проекта
splitdatasets/
├── split_dataset/
│ ├── select_and_move_images.py
│ ├── split_dataset.py
│ ├── split_dataset_s3.py
│ └── utils.py
├── pyproject.toml
└── README.md
🛠 Зависимости
- Python >= 3.12
boto3для работы с S3uvиpipx(для удобства установки)
📝 Лицензия
MIT License © 2025
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file splitdatasets-0.9.0.tar.gz.
File metadata
- Download URL: splitdatasets-0.9.0.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a8eca743a7a967b43edbff0ff9024edd477436289b6e2043220fa9b1c33fca0
|
|
| MD5 |
eb10e399816f46590f320ba80b833570
|
|
| BLAKE2b-256 |
c9dda36dede87a394dd39dad26ef99936c496a24353b0968b0391b06f718adfa
|
File details
Details for the file splitdatasets-0.9.0-py3-none-any.whl.
File metadata
- Download URL: splitdatasets-0.9.0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c30f68cfdef8cce277ff9e4432db5f44183d2e3d46304cd29a2dd3cb4e7d947
|
|
| MD5 |
5e4223d85c3a6c7ae1e45399998e23b4
|
|
| BLAKE2b-256 |
4de1e594c02d59cafb73887b53be0ef7548978badb8a38e21e5225d6b158acb4
|