В рамках хакатона была поставлена задача разработать решение, которое будет позволять в online режимe детектить факт курения с камер видеонаблюдения Этот проект представляет собой систему обнаружения курящих в неположенных местах с использованием компонентов:
- Телеграм бот для взаимодействия с пользователями и отправки уведомлений
- YOLOv8 для обнаружения объектов (в данном случае - сигарет)
- Mediapipe для оценки позы человека и определения, курит ли он
Для решения изначально была взята модель Yolov8n, но этого оказалось недостаточно для обнаружения курящих на предоставленном дата-сете, где качество фотографий оставляет желать лучшего. Поэтому мы начали искать другие решения и обнаружили библоитеку Mediapipe, с помощью которой мы можем решать задачу детекции позы курящего человека. В таком случае разрешение изображения не так важно. Безусловно, в искусственных условиях решение не покажет хорошей метрики, ведь на фото далеко не везде человек стоит в курящей позиции(момент, когда подносишь сигарету ко рту) Однако в реальных условиях нарушитель в любом случае будет прибегать к этой позе, и мы будем это детектить. В будущем мы планируем добавить счетчик таких детекций, чтобы исключить случайность и не детектить нарушение, когда человек просто дотронулся рукой лица. Счетчик позволит определить, что человек в этот момент курит, а не поправляет себя или делает что-либо еще.
https://drive.google.com/drive/folders/1RFiNqTdbEnnZ10I9w_mzHcGhb2smbzNa?usp=sharing
В данном репозитории хранятся следующие файлы:
- best_of_the_best.pt. Здесь хранятя веса для модели yolov8n
- Real_Time_Pose_Detection_&Classification_with_Mediapie_and_Python_ipynb (1). В данном ноутбуке показано, как была реализована задача классификации позы курящего человек с помощью библиотеки Mediapipe
- Yolob8n.ipnyb. Ноутбук в котором дообучалась наша модель.
- tgbot.ipnyb. Ноутбук, в котором реализуется работа нашего бота.