Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 3.18 KB

README_ru.md

File metadata and controls

67 lines (45 loc) · 3.18 KB

Bird species bot (Телеграм бот для классификации птиц по фотографии)

Dataset preparation

Код для сбора датасета

Для обучения нейросети был собран датасет с птицами европейской части России. Всего в обучении участовало 350 классов.

Не менее 100 изображений на класс.

Bird dataset from Google Drive

  • латинские названия птиц были взяты тут
  • с помощью библиотек selenium; urllib; user_agent; logging были собраны изображения из google images по латинским названиям
  • вручную очищен датасет

Image classification

image_classification

В задаче классификации участвовали фотографии 350 классов. Это распростинённые в европейской части России виды птиц. (фотографии были собраны из google images по латинским названиям.

В качестве модели использовалась предобученная EfficientNet

Architecture

Architecture

Result

img_classification

CrossEntropyLoss

  • train loss: 0.665

  • validation loss: 0.693

  • Train accuracy: 82.559685%

  • Validation accuracy: 81.350510%


Telegram bot

@bird_species_bot по ссылке

Код telegram bot

Библиотеки:

  • aiogram==2.17.1
  • torch==1.10.0+cpu
  • torchvision==0.11.1+cpu
  • efficientnet-pytorch==0.7.1
  • wikipedia==1.4.0

requirements.txt

Принцип работы бота:

  • 1 Телеграм бот bot.py получает на вход картинку
  • 2 Сохраняет в папку
  • 3 Передаёт на вход app.py
    • 3.1 Трансформирование изображения
    • 3.2 Предсказание класса и вероятности предобученной моделью efficientnet-b0
  • 4 Бот передёт пользователю топ-3 предсказанных класса и вероятности.
  • 5 Удаляет картинку
  • 6 По латинскому названию класса с максимальной вероятностью выдаётся страница с википедии wiki_parser.py