Skip to content

ark2016/AKG-course-work

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AKG Course Work: Fox Image Dataset and ML Classification

Описание проекта

Данный проект направлен на разработку фотокаталога млекопитающих семейства псовых (Vulpes vulpes) с использованием современных методов парсинга изображений, обработки данных и машинного обучения. Основное внимание уделено автоматизации сбора изображений, созданию структурированных датасетов и применению алгоритмов глубокого обучения для классификации изображений.

Основные компоненты

1. API для управления процессом

Проект построен на фреймворке FastAPI, предоставляющем интерфейс для выполнения следующих задач:

  • Загрузка изображений с различных источников (Flickr, 500px, веб-страницы).
  • Создание датасетов из изображений с разметкой.
  • Применение моделей машинного обучения для классификации изображений.

Основной файл API: main.py.

2. Методы сбора данных

  • Парсинг веб-страниц: Используются библиотеки BeautifulSoup и Selenium для получения изображений с сайтов.
  • Работа с API Flickr: Позволяет получать изображения по заданным ключевым словам через метод flickr.photos.search.

Основные модули:

  • parser.py: Базовый парсинг изображений.
  • parse_Flickr_API.py: Парсинг через API Flickr.
  • parser500px.py: Парсинг изображений с динамическим контентом на 500px.

3. Формирование и обработка датасета

  • Скрипт make_dataset.py: Создает единый датасет из нескольких папок, объединяя изображения и их аннотации.
  • Конвертация в Parquet: Используется для компактного хранения данных с помощью модуля dataset_utils.py.

4. Модели машинного обучения

Для классификации изображений используются архитектуры глубокого обучения, такие как 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: Описание проекта (текущий файл).

Требования к окружению

Установка

  1. Клонируйте репозиторий:
    git clone <repository_url>
  2. Установите зависимости:
    pip install -r requirements.txt

Запуск

Для запуска сервера FastAPI выполните:

uvicorn main:app --reload

Документация API будет доступна по адресу http://127.0.0.1:8000/docs.

Использование

1. Загрузка изображений

  • Отправьте POST-запросы на эндпоинты /download_images, /download_images_flickr, или /download_images_with_scrolling.

2. Создание датасета

  • Используйте эндпоинт /create_dataset для объединения изображений в один структурированный файл.

3. Классификация изображений

  • Загружайте изображения через эндпоинт /predict для получения предсказаний класса.

Содержание файлов с данными

  • combined_annotations.csv: Метки и аннотации для всех изображений.
  • README.txt: Описание структуры и особенностей датасета.

Лицензия

Проект предоставлен на условиях MIT License.


Создано в рамках курсовой работы по теме: «Создание фотокаталога млекопитающих семейства псовых». Автор: Лебедев А.И., группа ИУ9-51Б, МГТУ им. Н.Э. Баумана.