Данный проект представляет реализацию простой AutoML-системы для автоматизации решения задач компьютерного зрения (CV). Система минимизирует ручные операции, такие как подготовка данных и выбор модели.
- Классификация
Определение категории, к которой принадлежит изображение. - Сегментация
Пиксельная классификация изображения с разметкой объектов.
Система автоматически анализирует предоставленный набор данных и определяет, какие действия необходимо выполнить:
- Обучение модели — если данные загружены впервые.
- Дообучение модели — если в данных обнаружены изменения или добавлены новые данные.
- Тестирование модели — если в папке
testприсутствуют данные для инференса.
Каждая обученная модель автоматически сохраняется в базе данных (БД), что позволяет:
- Использовать уже обученные модели для быстрого тестирования.
- Продолжать обучение без необходимости начинать с нуля.
- Загружаете новый набор данных — система автоматически обучает модель.
- Добавляете новые изображения в
dataset— система выполняет дообучение. - Загружаете изображения в папку
test— система запускает инференс и сохраняет результаты.
Система поддерживает два способа загрузки данных: Google Drive и ZIP-архив.
Для использования Google Drive необходимо:
- Создать директорию с вашим именем.
- Внутри этой директории создать папку с названием вашей задачи (например,
classificationилиsegmentation). - Разместить в ней папку
dataset, содержащую файлы для задачи.
- Классификация
dataset/ ├── class1/ # Директория для изображений первого класса │ ├── image1.jpg │ ├── image2.jpg │ └── ... ├── class2/ # Директория для изображений второго класса │ ├── image1.jpg │ ├── image2.jpg │ └── ... └── ... - Сегментация
Файл разметки для сегментации должен иметь структуру:
dataset/ ├── images/ # Директория с изображениями │ ├── image1.jpg │ ├── image2.jpg │ └── ... ├── labels/ # Директория с разметкой │ ├── image1.txt # Разметка для image1.jpg │ ├── image2.txt # Разметка для image2.jpg │ └── ...класс: точки сегментов
Архив загружается напрямую в директорию проекта и автоматически распаковывается.
ZIP-архив должен содержать папку dataset с файлами, организованными так же, как описано выше для задач классификации и сегментации.
Для проведения инференса по вашей задаче необходимо:
- Создать в директории вашей задачи папку
test. - Разместить в папке
testизображения, для которых требуется выполнить предсказание.
После завершения инференса результаты сохранятся в папке result в директории вашей задачи.
classification/ # Ваша задача
├── dataset/ # Данные для обучения
├── test/ # Изображения для инференса
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
└── result/ # Результаты инференса (создается автоматически)
├── image1_result
├── image2_result
└── ...
Для локального запуска проекта выполните следующие шаги:
- Клонируйте репозиторий:
git clone https://github.com/OdincovMD/SimpleAutoML
- Перейдите в директорию проекта:
cd SimpleAutoML - Создайте виртуальное окружение:
python3 -m venv venv
- Активируйте виртуальное окружение:
- Для Linux/macOS:
source venv/bin/activate- Для Windows:
venv\Scripts\activate
- Установите зависимости:
pip install -r requirements.txt
Этот проект распространяется под лицензией MIT.
Благодарим @Horokami, который внес свой вклад в развитие этого проекта. Также выражаем признательность за использование открытых библиотек и фреймворков, которые значительно ускоряют разработку. В частности, благодарим авторов библиотек:
PyTorch
Google API
ultralytics
Если вы хотите внести свой вклад или предложить улучшения, не стесняйтесь создавать issue или pull request!
