Автоматическое определение поведения человека (агрессивное, подозрительное или нормальное) на видео с помощью ViViT (Video Vision Transformer).
Модель обучается на коротких клипах, обрезанных вокруг людей, и классифицирует поведение.
- 🎥 Поддержка локальных видео и YouTube стримов
- 🧍 Детекция людей через YOLO
- 🧠 ViViT-модель для анализа поведения
- 🧰 Полноценный пайплайн от сбора данных до предсказания
- 📊 Генерация отчёта и метрик после обучения
- 🧑🔬 Встроенная ручная разметка с превью кадров
- ☁️ Обучение модели в Google Colab с сохранением на Google Drive
git clone https://github.com/yourname/behavior-classifier.git
cd behavior-classifier
pip install -r requirements.txt
📽 Запускай обработку видео:
python 0_cut_human.py
💡 Модель будет сохранять клипы из фрагментов, где обнаружены люди. Все клипы делятся по track_id
.
python tools/label_frames.py
🔘 Управление:
a
— aggressives
— suspiciousn
— normalb
— удалить клип (в папкуclips_boolshit
)o p
— переключение кадровEnter
— сохранитьq
— выйти
📌 Все размеченные клипы перемещаются в clips_labeled/<label>/...
Лог сохраняется в log_clips.csv
и boolshit_log.csv
.
python tools/convert_dataset.py
🎯 Результат — datasets/vN.npz
, где N — номер версии.
Используются только размеченные клипы.
Запускаем скрипт:
python tools/sync_with_colab.py
- Датасет автоматически загружается в Google Drive
/datasets/vN.npz
- Ты получаешь ссылку на Colab ноутбук
- В Colab:
- Датасет используется для обучения
- Модель сохраняется в
/models/vN/model.pth
- Отчёт и матрица ошибок сохраняются рядом
В models/vN/
:
model.pth
— обученная модельreport.md
— текстовый отчёт с анализом метрикconfusion_matrix.png
— красивая матрица ошибок
- YOLO (Ultralytics) — для трекинга и детекции людей
- ViViT Transformer — для видеоанализа поведения
- Скрипты для генерации датасета, его разметки, обучения
- Версионный контроль для всего: клипы, датасеты, модели
❓ "YOLO засёк собаку, а не человека!"
Да, такое бывает. Нажми b
, отправь клип в мусор и иди дальше. Всё как в жизни.
❓ "У меня low F1-score по suspicious"
Возможно, нужно больше данных. Подозрительное поведение не любит, когда его недооценивают 🤨
Да, нейросети тоже ошибаются.
Но если ты добавишь ещё 100 клипов — она начнёт подозревать даже твоего кота.