USD80.3807 EUR94.1478
Казань
-7 °C
Наб.Челны
-3 °C
24 дек 2019 в 14:12

Пример простой системы распознавания лиц

1741
2
1
Назад к новостям

Распознавание лица — последний тренд в авторизации пользователя. Apple использует Face ID, OnePlus — технологию Face Unlock. Baidu использует распознавание лица вместо ID-карт для обеспечения доступа в офис

Как сделать систему распознавания лица которая будит работать с точностью 98%?

Попробуем!

Технология распознавания лица это новая эра в системах видеонаблюдения и контроля доступа.

Давайте попробуем написать небольшую программу которая будет распознавать ваше лицо.

Для этого нам понадобиться :

1. Операционная система Ubuntu (можно Windows установив программу Anaconda)

2. Python 3

3. Библиотека Opencv

4. Установка face_recognition API

Установка

Для начала нам нужно установить python (скачать с официального сайта python.org) так как именно на нем мы будем писать код.

Установка Opencv

Opencv – библиотека компьютерного зрения , обработки изображений с открытым исходным кодом

Установку Opencv производим с помощью команды pip (открыв терминал):

pip3 install opencv-python

Установка face_recognition API

Face_recognition API- самое популярное API для распознавания лиц

pip3 install dlib

pip3 install face_recognition

Пишем код:

Создайте файл face.py и затем скопируйте приведенный ниже код:
import os

import cv2

import face_recognition

def load(file_path):

return face_recognition.load_image_file(file_path)

def encode(image):

return face_recognition.face_encodings(image)[0]

known_face_encodings = []

known_face_names = []

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

image_dir = os.path.join(BASE_DIR, "images")

for root, dirs, files in os.walk(image_dir):

for file in files:

if file.endswith("jpeg") or file.endswith("png") or file.endswith("jpg"):

path = os.path.join(root, file)

label = os.path.basename(os.path.dirname(path))

known_face_encodings.append(encode(load(path)))

known_face_names.append(label)

face_locations = []

face_encodings = []

face_names = []

process_frame = True

cap = cv2.VideoCapture(0)

while True:

ret, frame = cap.read()

process_frame = True

resized_small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25) # Making frame 1/4 of original, faster processing

rgb_small_frame = resized_small_frame[:, :, ::-1] # Converting BGR to RGB

if process_frame:

face_locations = face_recognition.face_locations(rgb_small_frame)

face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)

face_names = []

for face_encoding in face_encodings:

matches = face_recognition.compare_faces(known_face_encodings, face_encoding)

name = "Unknown"

if True in matches:

first_match_index = matches.index(True)

name = known_face_names[first_match_index]

face_names.append(name)

process_frame = not process_frame

for (top, right, bottom, left), name in zip(face_locations, face_names):

top *= 4

right *= 4

bottom *= 4

left *= 4

cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)

cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)

font = cv2.FONT_HERSHEY_DUPLEX

cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)

cv2.imshow('Face Recognition', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

В файл где храниться созданный файл нужно создать папку images, а в ней папку с вашим именем и поместить туда вашу фотографию

Запуск:
Открываем терминал:
python3 face.py

1741
2
1
- Автор статьи

Дежурный редактор

Все новости автора
Яндекс.Дзен

Подписывайтесь на наш канал в Яндекс.Дзен

Подписатся
Последние комментарии
Гость 574

Гость 687, Приставы в своем праве - на это есть закон 118-ФЗ и закон об исполнительном производстве №229

Вслед за елабужскими обманывать должников научились и челнинские приставы сегодня в 09:49
Гость 687

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

Ильшату Гафурову сократили срок на четыре года сегодня в 09:32
Гость 687

Гость 574, женщину в Елабуге увезли вместо ресторана как я понимаю без совершенно в другое место без её согласия. Соответственно это квалифицируется как похищение. По пробуйте кого ни будь также увезти без его согласия к себе домой или в карьер... Так что похищение, к тому же сотрудник себя выдавал за другого человека, женщина не знала с кем она общается, а это тянет на обман в лучшем случае. Я не думаю, что в их должностных инструкциях вся это дичь прописана. И давайте гаишники будут одеваться по гражданке одеваться на машинах без опознавательных знаков будут штрафовать нарушителей. Или полицейский на улице не будет представляться когда к обращается к гражданину.

Вслед за елабужскими обманывать должников научились и челнинские приставы сегодня в 09:00
Гость 847

пока лично каждого не коснется что к людям научились залезать в мозги и психику будут находить тысячи лазеек те кто это делает это происходит уже давно и не какой реакции не от правоохранителей не от депутатов вчера показывали профессор МГУ покончил жизнь из за того что отняли квартиры не думаю что он был идиот или алкоголик

Верховный суд РФ отменил все решения по «делу Долиной», певицу выселят из проданной квартиры сегодня в 08:30
Комментарии2

Гость 653 31 янв 2023 в 15:26
Ответить (0)

всё хорошо до тех пор, пока у нас не появляется 100 или миллион лиц. в такой ситуации face_recognition будет обрабатывать от нескольких минут до суток

Гость 784 01 фев 2023 в 11:37
Ответить (0)

Без ошибок сначала бы писать научились! Для начала как пишется тся и ться!

Подписывайся
на Telegram
Поделится Vk