Skip to content

mcdodik20008/behaviorClassifier

Repository files navigation

🧠 BehaviorClassifier

Автоматическое определение поведения человека (агрессивное, подозрительное или нормальное) на видео с помощью ViViT (Video Vision Transformer).
Модель обучается на коротких клипах, обрезанных вокруг людей, и классифицирует поведение.

📦 Возможности

  • 🎥 Поддержка локальных видео и YouTube стримов
  • 🧍 Детекция людей через YOLO
  • 🧠 ViViT-модель для анализа поведения
  • 🧰 Полноценный пайплайн от сбора данных до предсказания
  • 📊 Генерация отчёта и метрик после обучения
  • 🧑‍🔬 Встроенная ручная разметка с превью кадров
  • ☁️ Обучение модели в Google Colab с сохранением на Google Drive

🚀 Как начать (всё по шагам)

1. Установка

git clone https://github.com/yourname/behavior-classifier.git
cd behavior-classifier
pip install -r requirements.txt

2. Сбор данных 🕵️

📽 Запускай обработку видео:

python 0_cut_human.py

💡 Модель будет сохранять клипы из фрагментов, где обнаружены люди. Все клипы делятся по track_id.


3. Ручная разметка 🏷️

python tools/label_frames.py

🔘 Управление:

  • a — aggressive
  • s — suspicious
  • n — normal
  • b — удалить клип (в папку clips_boolshit)
  • o p — переключение кадров
  • Enter — сохранить
  • q — выйти

📌 Все размеченные клипы перемещаются в clips_labeled/<label>/...
Лог сохраняется в log_clips.csv и boolshit_log.csv.


4. Подготовка датасета 📦

python tools/convert_dataset.py

🎯 Результат — datasets/vN.npz, где N — номер версии.
Используются только размеченные клипы.


5. Обучение модели в Colab 🧠☁️

Запускаем скрипт:

python tools/sync_with_colab.py
  • Датасет автоматически загружается в Google Drive /datasets/vN.npz
  • Ты получаешь ссылку на Colab ноутбук
  • В Colab:
    • Датасет используется для обучения
    • Модель сохраняется в /models/vN/model.pth
    • Отчёт и матрица ошибок сохраняются рядом

6. Что ты получаешь после обучения

В models/vN/:

  • model.pth — обученная модель
  • report.md — текстовый отчёт с анализом метрик
  • confusion_matrix.png — красивая матрица ошибок

🤓 Что под капотом?

  • YOLO (Ultralytics) — для трекинга и детекции людей
  • ViViT Transformer — для видеоанализа поведения
  • Скрипты для генерации датасета, его разметки, обучения
  • Версионный контроль для всего: клипы, датасеты, модели

😎 А что если…

❓ "YOLO засёк собаку, а не человека!"

Да, такое бывает. Нажми b, отправь клип в мусор и иди дальше. Всё как в жизни.

❓ "У меня low F1-score по suspicious"

Возможно, нужно больше данных. Подозрительное поведение не любит, когда его недооценивают 🤨


🧠 P.S.

Да, нейросети тоже ошибаются.
Но если ты добавишь ещё 100 клипов — она начнёт подозревать даже твоего кота.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published