Данный проект направлен на разработку фотокаталога млекопитающих семейства псовых (Vulpes vulpes) с использованием современных методов парсинга изображений, обработки данных и машинного обучения. Основное внимание уделено автоматизации сбора изображений, созданию структурированных датасетов и применению алгоритмов глубокого обучения для классификации изображений.
Проект построен на фреймворке FastAPI, предоставляющем интерфейс для выполнения следующих задач:
- Загрузка изображений с различных источников (Flickr, 500px, веб-страницы).
- Создание датасетов из изображений с разметкой.
- Применение моделей машинного обучения для классификации изображений.
Основной файл API: main.py
.
- Парсинг веб-страниц: Используются библиотеки BeautifulSoup и Selenium для получения изображений с сайтов.
- Работа с API Flickr: Позволяет получать изображения по заданным ключевым словам через метод
flickr.photos.search
.
Основные модули:
parser.py
: Базовый парсинг изображений.parse_Flickr_API.py
: Парсинг через API Flickr.parser500px.py
: Парсинг изображений с динамическим контентом на 500px.
- Скрипт
make_dataset.py
: Создает единый датасет из нескольких папок, объединяя изображения и их аннотации. - Конвертация в Parquet: Используется для компактного хранения данных с помощью модуля
dataset_utils.py
.
Для классификации изображений используются архитектуры глубокого обучения, такие как ResNet и трансформеры (ViT, DeiT, CvT). Реализация предсказаний представлена в модуле model_prediction_utils.py
.
main.py
: Запуск API.parser.py
,parse_Flickr_API.py
,parser500px.py
: Модули парсинга изображений.make_dataset.py
: Формирование датасета из изображений.dataset_utils.py
: Конвертация данных в формат Parquet.model_prediction_utils.py
: Работа с моделями машинного обучения.questions.py
: Определение маршрутов API.combined_annotations.csv
: Файл с аннотациями изображений.README.md
: Описание проекта (текущий файл).
- Клонируйте репозиторий:
git clone <repository_url>
- Установите зависимости:
pip install -r requirements.txt
Для запуска сервера FastAPI выполните:
uvicorn main:app --reload
Документация API будет доступна по адресу http://127.0.0.1:8000/docs
.
- Отправьте POST-запросы на эндпоинты
/download_images
,/download_images_flickr
, или/download_images_with_scrolling
.
- Используйте эндпоинт
/create_dataset
для объединения изображений в один структурированный файл.
- Загружайте изображения через эндпоинт
/predict
для получения предсказаний класса.
combined_annotations.csv
: Метки и аннотации для всех изображений.README.txt
: Описание структуры и особенностей датасета.
Проект предоставлен на условиях MIT License.
Создано в рамках курсовой работы по теме: «Создание фотокаталога млекопитающих семейства псовых». Автор: Лебедев А.И., группа ИУ9-51Б, МГТУ им. Н.Э. Баумана.