Хотя сегодняшняя статистика краж со взломом показывает общее снижение количества краж со взломом, ежегодно взламываются тысячи домов (примерно 325 000). Ежегодно происходит примерно 2,5 миллиона краж со взломом, 66% из которых - взломы домов.

Полиция раскрывает только 13% заявленных случаев краж со взломом из-за отсутствия свидетелей или вещественных доказательств. Таким образом, цель этого проекта состоит в том, чтобы предотвратить подобные взломы и обеспечить способ защитить наш дом от подобных бедствий, мы инициируем способ вести учет всех людей, приходящих в наш дом.

Этот проект является вкладом в сектор безопасности, поскольку уровень краж со взломом по-прежнему исчисляется тысячами, и чтобы обезопасить себя и свои семьи, мы можем разработать этот проект, используя «распознавание лиц» с OpenCV и NumPy. Итак, мы рассматриваем возможность создания проекта по обеспечению безопасности людей, входящих и выходящих из дома, и предупреждению людей в доме о любых неизвестных взломах.

Что такое распознавание лиц?

Система распознавания лиц - это система, созданная для сопоставления человеческого лица по набору данных изображений, служащая многим целям с помощью служб проверки личности, работает путем пропорционального измерения размеров лица на изображении. Приложения распознавания лиц включают в себя систему безопасности, судебно-медицинские расследования, диагностику заболеваний, отслеживание посещаемости школы, безопасные транзакции и т. Д.

Процесс распознавания лиц выглядит следующим образом:

  1. Распознавание лиц
  2. Анализ лица
  3. Удаление черт лица
  4. Распознавание лица

Создание набора данных (путем измерения размеров лица):

Набор данных для этого проекта не включает в себя какие-либо часто используемые записи данных в реальном времени, вместо этого в качестве набора данных должны быть записаны наши лица и лица наших соседей по комнате. Мы делаем это возможным с помощью ряда шагов, включающих считывание размеров лица с помощью каскадов хаара, преобразование в оттенки серого, захват изображений лица и последующее построение набора данных.

Набор данных может включать вас, вашу семью, соседей по комнате и других людей, которые уходят и входят в ваш дом. Итак, когда изображения сделаны, набор данных будет выглядеть как набор изображений, снятых серым цветом.

Необходимые модули:

• 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!’)

Вывод. Файл с набором данных будет содержать изображения различных положений вашего лица в оттенках серого.