USD74.9995 EUR87.9733
Казань
0 °C
Наб.Челны
0 °C
24 дек 2019 в 14:12

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

2004
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

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

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

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

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

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

Гость 2547, вот вам поэтому ничего не дают, потому что вы не говорите.

СКР проверяет жалобы многодетных на недоступность участков в Бикляни сегодня в 16:23
Гость 789

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

В Татарстане открыли прием заявок на фестиваль «Курше» сегодня в 15:56
Гость 2547

Я за набережную Табеева, только давайте фикрята уберём из названия. С таким звуком "фикрят" капусту режут, дверь старая так скрипит, телега навозом груженая на кочках так делает. А набережная должна называться красиво, поэтому просто хотя бы Табеева!

Шесть зон отдыха в Челнах претендуют на благоустройство в следующем году сегодня в 15:48
Гость 2547

А если просто денег хочеца, можно подать заявку?

В Татарстане открыли прием заявок на фестиваль «Курше» сегодня в 15:45
Комментарии2

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

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

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

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

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