8000 GitHub - madzone-code/FaceGenderBot: Бот для Телеграмма, который по полученной фотографии человека определяет его пол.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Бот для Телеграмма, который по полученной фотографии человека определяет его пол.

License

Notifications You must be signed in to change notification settings

madzone-code/FaceGenderBot

Repository files navigation

Telegram-бот для определения пола по фотографии

Этот проект — Telegram-бот, который умеет определять пол человека по загруженной фотографии. Бот использует несколько моделей машинного обучения (cnn_from_scratch, vgg16_features, vgg16_features_augmentation, fine_tuning) и позволяет пользователю выбрать модель для предсказания. Результат включает пол (мужчина или женщина), уверенность в предсказании и точность выбранной модели на тестовых данных. Проект развернут в контейнере Docker, запущенном на микрокомпьютере Orange PI 3 LTS. Бот доступен в телеграмме: @FaceGenderBot

Возможности

Загрузка фото через Telegram (сжатые фото или несжатые изображения в виде документов). Выбор модели предсказания через инлайн-клавиатуру. Вывод результата с указанием пола, уверенности и точности модели.

Используемые модели:

  • cnn_from_scratch Сверточная нейронная сеть, обученная с нуля, использует аугментацию. Точность на тестовых данных 77%.
  • vgg16_features Основана на предобученной сети VGG16. Точность на тестовых данных 82%.
  • vgg16_features_augmentation Основана на предобученной сети VGG16, добавлена аугментация. Точность на тестовых данных 84%.
  • fine_tuning Основана на предобученной сети VGG16 с аугментацией, использует метод тонкой настройки (fine-tuning). Точность на тестовых данных 86%. Все модели использовали датасет из 3000 обучающих фотографий.

Установка

  1. Клонируйте репозиторий:: git clone git@github.com:madzone-code/FaceGenderBot.git cd FaceGenderBot

  2. Создайте виртуальное окружение: python -m venv venv source venv/bin/activate # Linux/Mac . venv\Scripts\activate # Windows

  3. Установите зависимости: pip install -r requirements.txt

  4. Получите токен у @BotFather в Telegram.

  5. Настройте переменные окружения: Создайте файл .env в корневой директории проекта и добавьте ваш Telegram-токен: TELEGRAM_TOKEN=your_bot_token_here

  6. Скачайте модели: https://disk.yandex.ru/d/X2_ymPgzQ4r32A Распакуйте содержимое архива в каталог '/models/'. Ожидаемые файлы: cnn_from_scratch.keras vgg16_features.keras vgg16_features_augmentation.keras fine_tuning.keras

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

Запустите бота: python telegram_bot.py

Взаимодействие с ботом: Отправьте команду /start в Telegram, чтобы начать. Загрузите фото (как изображение или документ). Выберите модель из предложенных кнопок. Получите результат предсказания.

Структура проекта

FaceGenderBot/
├── data/                                   # Хранение сырых фото и подготовленных датасетов (опционально)
│   ├── big_dataset/                        # Подготовленные фотографии
│   ├── micro_dataset/                      # Подготовленные фотографии
│   └── small_dataset/                      # Подготовленные фотографии
│   └── UTKFace/                            # Сырые фотографии UTKFace
├── models/                                 # Модели нейронных сетей (опционально)
│   ├── cnn_from_scratch.keras              # Готовая модель
│   ├── fine_tuning.keras                   # Готовая модель
│   └── vgg16_features.keras                # Готовая модель
│   └── vgg16_features_augmentation.keras   # Готовая модель
├── photos/                                 # Временное хранение фото от бота (опционально)
├── .env                                    # Файл с переменными окружения (опционально)
├── .gitignore                              # Перечень неотслеживаемых файлов
├── create_models.py                        # Файл для создания моделей по подготовленным данным (фото)
├── LICENSE                                 # Файл лицензии
├── requirements.txt                        # Список зависимостей
├── predict.py                              # Модуль с логикой предсказания
├── prepare_input.py                        # Подготовка датасетов из фото
├── telegram_bot.py                         # Основной файл с кодом бота
└── README.md                               # Этот файл

Пример работы

Пользователь отправляет фото. Бот отвечает: "Фото загружено. Выберите модель для предсказания" с кнопками (cnn_from_scratch, fine_tuning, vgg16_features, vgg16_features_augmentation). После выбора модели бот возвращает:

Метод cnn_from_scratch. Пол: Женщина, уверенность: 87.50%. Точность модели на тестовых данных: 77%.

Лицензия

Этот проект распространяется под лицензией MIT.

Контакты

Если у вас есть вопросы или предложения, свяжитесь с автором по почте madzone@list.ru или в телеграме: @kostrov_maksim

About

Бот для Телеграмма, который по полученной фотографии человека определяет его пол.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0