{"id":19349378,"url":"https://github.com/koldim2001/factory_detection","last_synced_at":"2025-04-23T06:30:56.562Z","repository":{"id":154429413,"uuid":"630914229","full_name":"Koldim2001/Factory_detection","owner":"Koldim2001","description":"Проект по созданию системы безопасности на предприятии, реализующей детектирование людей и автоматическую проверку наличия касок по изображениям с видеокамер","archived":false,"fork":false,"pushed_at":"2024-02-16T19:18:20.000Z","size":36013,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T09:22:41.069Z","etag":null,"topics":["deep-learning","detection","faster-rcnn","hardhat-detection","model-deployment","object-detection","people-detection","pytorch","telegram-bot","tensorboard-visualizations"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Koldim2001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-04-21T13:00:15.000Z","updated_at":"2025-03-24T15:02:20.000Z","dependencies_parsed_at":"2024-02-16T20:27:25.655Z","dependency_job_id":"2bed190d-203c-43cf-8d08-cceb74dc4ffd","html_url":"https://github.com/Koldim2001/Factory_detection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FFactory_detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FFactory_detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FFactory_detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FFactory_detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Koldim2001","download_url":"https://codeload.github.com/Koldim2001/Factory_detection/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250384746,"owners_count":21421786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","detection","faster-rcnn","hardhat-detection","model-deployment","object-detection","people-detection","pytorch","telegram-bot","tensorboard-visualizations"],"created_at":"2024-11-10T04:26:01.422Z","updated_at":"2025-04-23T06:30:52.320Z","avatar_url":"https://github.com/Koldim2001.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Проект по обучению модели детекции на основе Faster R-CNN \n__Проект по созданию системы безопасности на предприятии, реализующей детектирование людей и автоматическую проверку наличия касок по изображениям с видеокамер__\n\n---\nЯ сделал обучение двух различных нейронных сетей Faster-RCNN с FPN (Region Based Convolutional Neural Network with Feature Pyramid Architecture). Первая сеть реализует детектирование людей по изображениям с видеокамер, а вторая проверяет наличие касок на головах работников предприятия. \u003cbr\u003e Для того чтобы получить более качественную детекцию, я использовал технологию transfer learning, инициализировав на старте предобученные веса. После завершения обучения сетей я сохранил состояния моделей, которые показали наименьший суммарный лосс на валидации.\nДалее я реализовал оценку качества детектирования, используя самостоятельно написанные функции, которые вычисляли следующие валидационные метрики: \n1. среднее IOU;\n2. recall и precision при заданных порогах уверенности (score) и IoU; \n3. значения average precision (AP) для каждого класса;\n4. mean average precision (mAP) для модели двухклассовой детекции c различными порогами по IoU.\u003cbr\u003e\n\nВ процессе обучения моделей я также проводил мониторинг изменения лосс функций на трейне и валидации. Данные результаты сохранил в [tensorboard.dev](https://tensorboard.dev/experiment/rr43qafqQKyKP7CQ5r1RCA/#scalars\u0026_smoothingWeight=0)\u003cbr\u003e\n\n## __Содержание репозитория:__\nКлючевой файл - отчет в формате jupiter notebook [__main.ipynb__](https://nbviewer.org/github/Koldim2001/Factory_detection/blob/main/main.ipynb?flush_cache=True/), в котором представлено подробное описание реализованного проекта и описаны все шаги по предобработке данных, а также обучению и тестированию моделей с выводами. Все ключевые для данного проекта функции я представил в отдельных _.py_ файлах: \n1. реализация аугментации и визуализация исходных данных - [__augment_and_visualize.py__](https://github.com/Koldim2001/Factory_detection/blob/main/augment_and_visualize.py)\n2. реализация обучения сетей с параллельным тестированием на валидации и трекингом в tensorboard - [__training_rcnn.py__](https://github.com/Koldim2001/Factory_detection/blob/main/training_rcnn.py)\n3. визаулизация результатов детекции и загрузка обученных моделей с гугл диска - [__predict.py__](https://github.com/Koldim2001/Factory_detection/blob/main/predict.py)\n4. подсчет всех ключевых метрик для оценки качества детектирования - [__metrics.py__](https://github.com/Koldim2001/Factory_detection/blob/main/metrics.py)\n\nДля того, чтобы была возможность самостоятельно протестировать работоспособность двух обученных моделей детектирования, написал скрипт [detecting.py](https://github.com/Koldim2001/Factory_detection/blob/main/detecting.py), который запрашивает путь к файлу (jpg/png) и визуализирует результаты распознавания. О том, как запустить этот скрипт через терминал будет далее подробно рассказано.\n\n_Примеры результатов работы двух разных обученных моделей:_\n\n\u003cdiv style=\"text-align:center;\"\u003e\n  \u003cimg src=\"https://drive.google.com/uc?id=1Dtu_bK9w5Hl65A6lETChuu1Ftz2wirUi\" alt=\"Alt person detection\" width=\"380\" height=\"217\"\u003e\n  \u003cimg src=\"https://drive.google.com/uc?id=105RsKrPwpzGLTbyUYjKDsDRP0bd6IUIT\" alt=\"Alt hardhat detection\" width=\"380\" height=\"217\"\u003e\n\u003c/div\u003e\n\n---\n\n## Как запускать программу:\nДанные команды требуется запускать последовательно в терминале:\n1. Склонируйте к себе этот репозиторий \n```\ngit clone https://github.com/Koldim2001/Factory_detection.git\n```\n2. Перейдите с помощью команды cd в созданную папку Factory_detection\n```\ncd Factory_detection\n```\n3. Загрузите все необходимые библиотеки:\n```\npip install -r requirements.txt\n```\n4. Запустите написанный python скрипт:\n```\npython detecting.py\n```\n\n_При запуске программы потребуется ввести путь к изображению, для которого надо провести детекцию. Учтите, что путь к файлу не должен содержать кириллицу (русские буквы).\nПосле завершения детектирования людей откроется отдельное окно с результирующими боксами. При закрытии этого окна\nавтоматически начнется процедура двухклассовой детекции (наличие/отсутвие касок на голове). По результатам вычислений откроется новое отдельное окно с задетектированными боксами.\u003cbr\u003e\u003cbr\u003e_\n\n---\n### Способ запуска детектирования с помощью telegram бота:\u003cbr\u003e\nЯ реализовал интеграцию модели детектирования людей в чат бот. При отправлении изображения в лс он выдает число обнаруженных объектов и отправляет ответное изображение с предсказанными bounding боксами. \u003cbr\u003e\n__Инструкция по запуску \"локального сервера\", реализующего работу бота:__ \u003cbr\u003e\nПервые 3 этапа идентичны описанным ранее. \u003cbr\u003e\n4. Запустите написанный python скрипт (но сначала вставьте свой API ключ в код):\n```\npython tg_bot.py\n```\n5. Перейдите в диалог с ботом и пользуйтесь \u003cbr\u003e\n\n\nПример работы телеграм бота:\n\u003cdiv style=\"text-align:center;\"\u003e\n  \u003cimg src=\"https://drive.google.com/uc?id=1xNha5UU20tnCLcJ8NtqVBoob2nSBItqx\" alt=\"bot\" width=\"200\" height=\"440\"\u003e\n  \u003cimg src=\"https://drive.google.com/uc?id=1Sl7vWF8BJ4ZQ5FmF-wIiMHVxdmiCbB63\" alt=\"bot\" width=\"200\" height=\"440\"\u003e\n  \u003cimg src=\"https://drive.google.com/uc?id=1Ygvw8S9wik_n_UigFjCggajAOM1u_suc\" alt=\"bot\" width=\"200\" height=\"440\"\u003e\n\u003c/div\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldim2001%2Ffactory_detection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoldim2001%2Ffactory_detection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldim2001%2Ffactory_detection/lists"}