Форум сайта python.su
Всем здравствуйте. Я в новичок в питоне, поэтому не особо ориентируюсь в коде. Написал на днях код, просто соединив код от камеры и код с face_recognition с ролика на ютубе. Работает это так: камера сохраняет снимок в папку, а потом по этой фотке уже идет распознание лица, в папке faces лежат картинки с лицами, которые он может распознавать. Но после выполнение кода идет вывод изображения с подписью чье это лицо( как на картинке). Я бы хотел отправлять ботом просто имя без картинки(тип так: Adam Sandler)( на сайт или просто ботом), но что то не могу разобраться как это сделать. Помогите пожалуйста. Скриншот и сам код прикреплены
import face_recognition as fr import os import cv2 import face_recognition import numpy as np from time import sleep import telepot TOKEN = '1057979295:AAGT6Apoxplmj_Dwr0LOmp9Dt0Rw9HdA6fc' cap = cv2.VideoCapture(0) ret, frame = cap.read() cv2.imwrite('test.jpg', frame) cap.release() def get_encoded_faces(): """ looks through the faces folder and encodes all the faces :return: dict of (name, image encoded) """ encoded = {} for dirpath, dnames, fnames in os.walk("./faces"): for f in fnames: if f.endswith(".jpg") or f.endswith(".png"): face = fr.load_image_file("faces/" + f) encoding = fr.face_encodings(face)[0] encoded[f.split(".")[0]] = encoding return encoded def unknown_image_encoded(img): """ encode a face given the file name """ face = fr.load_image_file("faces/" + img) encoding = fr.face_encodings(face)[0] return encoding def classify_face(im): """ will find all of the faces in a given image and label them if it knows what they are :param im: str of file path :return: list of face names """ faces = get_encoded_faces() faces_encoded = list(faces.values()) known_face_names = list(faces.keys()) img = cv2.imread(im, 1) #img = cv2.resize(img, (0, 0), fx=0.5, fy=0.5) #img = img[:,:,::-1] face_locations = face_recognition.face_locations(img) unknown_face_encodings = face_recognition.face_encodings(img, face_locations) face_names = [] for face_encoding in unknown_face_encodings: # See if the face is a match for the known face(s) matches = face_recognition.compare_faces(faces_encoded, face_encoding) name = "Unknown" # use the known face with the smallest distance to the new face face_distances = face_recognition.face_distance(faces_encoded, face_encoding) best_match_index = np.argmin(face_distances) if matches[best_match_index]: name = known_face_names[best_match_index] face_names.append(name) for (top, right, bottom, left), name in zip(face_locations, face_names): # Draw a label with a name below the face font = cv2.FONT_HERSHEY_DUPLEX cv2.putText(img, name, (left -20, bottom + 15), font, 1.0, (255, 255, 255), 2) # Display the resulting image while True: cv2.imshow('Video', img) if cv2.waitKey(1) & 0xFF == ord('q'): return face_names print(classify_face("test.jpg"))[url=][/url]
Отредактировано AlexandrSakhno (Окт. 13, 2020 22:23:38)
Прикреплённый файлы: Снимок.jpg (62,2 KБ)
Офлайн
AlexandrSakhnoТут нужно спроектировать программу сначала. То есть из-за отсутствия проекта программы ты и пытаешься взять готовые тапочки и сделать из них перчатки. Ну, у них же типа примерно одинаковый размер.
Я в новичок в питоне, поэтому не особо ориентируюсь в коде.
AlexandrSakhnoНачинай проектировать со словесного описания.
но что то не могу разобраться как это сделать
Отредактировано py.user.next (Окт. 13, 2020 23:45:32)
Офлайн