Хотя сегодняшняя статистика краж со взломом показывает общее снижение количества краж со взломом, ежегодно взламываются тысячи домов (примерно 325 000). Ежегодно происходит примерно 2,5 миллиона краж со взломом, 66% из которых - взломы домов.
Полиция раскрывает только 13% заявленных случаев краж со взломом из-за отсутствия свидетелей или вещественных доказательств. Таким образом, цель этого проекта состоит в том, чтобы предотвратить подобные взломы и обеспечить способ защитить наш дом от подобных бедствий, мы инициируем способ вести учет всех людей, приходящих в наш дом.
Этот проект является вкладом в сектор безопасности, поскольку уровень краж со взломом по-прежнему исчисляется тысячами, и чтобы обезопасить себя и свои семьи, мы можем разработать этот проект, используя «распознавание лиц» с OpenCV и NumPy. Итак, мы рассматриваем возможность создания проекта по обеспечению безопасности людей, входящих и выходящих из дома, и предупреждению людей в доме о любых неизвестных взломах.
Что такое распознавание лиц?
Система распознавания лиц - это система, созданная для сопоставления человеческого лица по набору данных изображений, служащая многим целям с помощью служб проверки личности, работает путем пропорционального измерения размеров лица на изображении. Приложения распознавания лиц включают в себя систему безопасности, судебно-медицинские расследования, диагностику заболеваний, отслеживание посещаемости школы, безопасные транзакции и т. Д.
Процесс распознавания лиц выглядит следующим образом:
- Распознавание лиц
- Анализ лица
- Удаление черт лица
- Распознавание лица
Создание набора данных (путем измерения размеров лица):
Набор данных для этого проекта не включает в себя какие-либо часто используемые записи данных в реальном времени, вместо этого в качестве набора данных должны быть записаны наши лица и лица наших соседей по комнате. Мы делаем это возможным с помощью ряда шагов, включающих считывание размеров лица с помощью каскадов хаара, преобразование в оттенки серого, захват изображений лица и последующее построение набора данных.
Набор данных может включать вас, вашу семью, соседей по комнате и других людей, которые уходят и входят в ваш дом. Итак, когда изображения сделаны, набор данных будет выглядеть как набор изображений, снятых серым цветом.
Необходимые модули:
• OpenCV: Эта библиотека является основной опорой при работе с проектами распознавания лиц, поскольку она нацелена на приложения реального времени и широко используемую библиотеку Python, хотя и разработана на C / C ++.
• NumPy: NumPy больше используется математически для массивов и матриц со многими функциями, помогающими в построении размеров захваченного лица.
• ОС: стандартный модуль, используемый в большинстве проектов Python, предназначенный для взаимодействия с операционной системой компьютера.
• Путь к ОС. Как и операционная система, этот модуль предназначен для предоставления параметров пути при работе с большими файлами или документами.
• Воспроизведение звука. Как следует из названия, этот модуль предназначен для воспроизведения простых аудиофайлов.
Шаги по установке пакетов:
Откройте панель поиска и начните вводить «Командная строка». Убедитесь, что на вашем компьютере установлена последняя версия программы. Теперь начните установку пакетов одновременно по следующему соглашению:
Pip install opencv-python Pip install numpy Pip install playsound
Этапы написания модулей (краткое резюме):
1. Создание набора данных с изображением лица пользователя, начиная с импорта необходимых вышеупомянутых пакетов.
2. Мы используем хаар-каскады для классификации компонентов лица.
3. Теперь мы конвертируем лицо в шкалу серого, потому что это требует меньших сложностей и каждый пиксель может быть достаточно значительным, чтобы компьютер мог его прочитать.
4. Отметьте координаты черт лица, которые нужно записать и прочитать в отдельном файле (убедитесь, что он находится в той же папке, что и другой файл).
5. После того, как размеры лица и наблюдения с камеры сделаны, вуаля, ваш набор данных построен!
6. Теперь мы обучаем модуль распознаванию лиц, просматривая созданный набор данных.
7. Но для того, чтобы модуль обнаружил лицо, оно должно быть выполнено в оттенках серого, как в приведенном выше случае.
8. Наконец, убедитесь, что лицо совпадает с набором данных, указав «пользователя» и добавив «звуковой сигнал» для «неизвестного» человека.
Приступим к созданию набора данных
Шаг 1: импортируйте необходимые пакеты.
#imporing the modules import cv2 import numpy as np
Шаг 2: Используйте каскады хаара для обнаружения изображения, вы можете найти файл haarcascade_frontalface_default.xml на своем компьютере или даже загрузить его из Интернета.
#converting the captured images to grayscale face_classifier=cv2.CascadeClassifier(cv2.data.haarcascades + ‘haarcascade_frontalface_default.xml’) def face_extractor(img): gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) faces=face_classifier.detectMultiScale(gray,1.3,5) if faces is(): return None for(x,y,w,h) in faces: cropped_faces=img[y:y+h,x:x+w] return cropped_faces cap=cv2.VideoCapture(0) count=0
Шаг 3: Теперь добавьте новый файл в ту же папку для хранения ваших данных, где все изображения будут храниться в файле .jpg, указав координаты лица, которое будет снято, как упомянуто ниже.
#preparing a new file for dataset and collecting samples of the face while True: ret, frame=cap.read() if face_extractor(frame) is not None: count+=1 face=cv2.resize(face_extractor(frame),(200,200)) face=cv2.cvtColor(face, cv2.COLOR_BGR2GRAY) file_name_path= ‘**Add a path where you want to store the dataset**’+str(count)+’.jpg’ cv2.imwrite(file_name_path,face) cv2.putText(face,str(count),(50,50),cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 0), 1) cv2.imshow(‘Face Cropper’,face) else: print(“face not found”) pass if cv2.waitKey(1)==13 or count==100: break cap.release() cv2.destroyAllWindows() print(‘Collecting samples completed!’)
Вывод. Файл с набором данных будет содержать изображения различных положений вашего лица в оттенках серого.