Telegram бот для распознавания объектов на изображениях с использованием YOLOv8.
- Распознавание объектов на фотографиях
- Распознавание объектов на изображениях из стикеров:
- Статические стикеры
- Анимированные стикеры (TGS)
- Видео стикеры (WebM) - опционально
- Вывод координат найденных объектов
- Поддержка 80 классов объектов (люди, машины, животные и т.д.)
- Node.js 18 или выше
- npm или yarn
- Модель YOLOv8 (yolov8m.onnx)
- FFmpeg (для поддержки видео стикеров)
- Клонируйте репозиторий:
git clone https://github.com/darkgenius/yolobot.git
cd yolobot- Установите зависимости:
npm install-
Скачайте модель YOLOv8:
- Скачайте yolov8m.onnx
- Создайте папку
modelв корне проекта - Поместите скачанный файл в папку
model
-
Создайте файл
.envв корне проекта:
BOT_TOKEN=your_telegram_bot_token
USE_FFMPEG=true # Опционально, для поддержки видео стикеров
Для поддержки видео стикеров необходимо установить FFmpeg:
- Скачайте FFmpeg с официального сайта
- Распакуйте архив
- Добавьте путь к папке
binв переменную PATH
Альтернативный способ для Windows 10 (версия 1809 и выше):
winget install ffmpegsudo apt update
sudo apt install ffmpegbrew install ffmpegnpm run devnpm run build
npm start- Отправьте боту фотографию или стикер (статический, анимированный или видео)
- Бот обработает изображение и вернет список найденных объектов в формате:
person (95%): [100, 200, 300, 400]
car (85%): [150, 250, 350, 450]
где:
- Первое число - процент уверенности
- В квадратных скобках - координаты объекта [x1, y1, x2, y2]
Для включения поддержки видео стикеров:
- Установите FFmpeg в системе
- Добавьте
USE_FFMPEG=trueв файл.env
Если поддержка видео стикеров отключена, бот будет отвечать сообщением "Стикеры в формате видео не поддерживаются".
- TypeScript
- Telegraf.js
- ONNX Runtime
- YOLOv8
- Sharp (обработка изображений)
- FFmpeg (обработка видео стикеров)
MIT