Как сделать систему распознавания лица которая будит работать с точностью 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, а в ней папку с вашим именем и поместить туда вашу фотографию
Гость 2547, вот вам поэтому ничего не дают, потому что вы не говорите.
СКР проверяет жалобы многодетных на недоступность участков в Бикляни сегодня в 16:23Как так, людям ничего нельзя, если соберутся печенье будут грызть, костер под запретом. Любой сбор людей на природе раньше всегда сопровождался костром для приготовления блюд. Это маленькая толика проблем, люди обеднели в массе.
В Татарстане открыли прием заявок на фестиваль «Курше» сегодня в 15:56Я за набережную Табеева, только давайте фикрята уберём из названия. С таким звуком "фикрят" капусту режут, дверь старая так скрипит, телега навозом груженая на кочках так делает. А набережная должна называться красиво, поэтому просто хотя бы Табеева!
Шесть зон отдыха в Челнах претендуют на благоустройство в следующем году сегодня в 15:48А если просто денег хочеца, можно подать заявку?
В Татарстане открыли прием заявок на фестиваль «Курше» сегодня в 15:45
Гость 653
31 янв 2023 в 15:26
всё хорошо до тех пор, пока у нас не появляется 100 или миллион лиц. в такой ситуации face_recognition будет обрабатывать от нескольких минут до суток
Гость 784
01 фев 2023 в 11:37
Без ошибок сначала бы писать научились! Для начала как пишется тся и ться!
У вас есть тема? Вы находитесь на месте событий? Напишите нам!