& nbsp; Bài viết này đã được xuất bản như một phần của Blogathon khoa học dữ liệu.Data Science Blogathon.
Giới thiệu
Nhận dạng khuôn mặt khác với phát hiện khuôn mặt. Khi phát hiện khuôn mặt, chúng tôi chỉ phát hiện ra vị trí của khuôn mặt của con người và chúng tôi đã nhận ra danh tính của khuôn mặt trong nhiệm vụ nhận dạng khuôn mặt.
Trong bài viết này, chúng tôi sẽ xây dựng một hệ thống nhận dạng khuôn mặt bằng cách sử dụng Python với sự trợ giúp của ____10.
Có nhiều thuật toán có sẵn trên thị trường để nhận dạng khuôn mặt. Thử thách tầm nhìn máy tính rộng này là phát hiện khuôn mặt từ video và hình ảnh. Nhiều ứng dụng có thể được xây dựng trên các hệ thống nhận dạng hàng đầu. Nhiều công ty lớn đang áp dụng các hệ thống công nhận cho mục đích bảo mật và xác thực của họ.
Sử dụng các trường hợp của hệ thống nhận dạng
Các hệ thống nhận dạng khuôn mặt được sử dụng rộng rãi trong thời kỳ hiện đại và nhiều hệ thống sáng tạo mới được xây dựng trên các hệ thống nhận dạng hàng đầu.
Có một vài trường hợp đã sử dụng:
- Tìm người mất tích
- Xác định tài khoản trên phương tiện truyền thông xã hội
- Nhận ra người lái xe trong ô tô
- Hệ thống đi học
Một số phương pháp và thuật toán thực hiện các hệ thống nhận dạng khuôn mặt tùy thuộc vào hiệu suất và độ chính xác.
Thuật toán nhận dạng khuôn mặt truyền thống
Các thuật toán nhận dạng khuôn mặt truyền thống don don đáp ứng các tiêu chuẩn nhận dạng khuôn mặt hiện đại. Chúng được thiết kế để nhận ra các khuôn mặt bằng cách sử dụng các thuật toán thông thường cũ.
OpenCV cung cấp một số thuật toán nhận dạng khuôn mặt truyền thống.
- Eigenfaces
- Biến đổi tính năng bất biến tỷ lệ [Sift]
- Fisher Faces
- Biểu đồ mô hình nhị phân cục bộ [LBPH]
Các phương pháp này khác nhau trong cách chúng trích xuất thông tin hình ảnh và khớp với hình ảnh đầu vào và đầu ra.
Thuật toán LBPH là một phương pháp đơn giản nhưng rất hiệu quả vẫn được sử dụng nhưng nó chậm so với các thuật toán ngày nay.
Học sâu để nhận dạng khuôn mặt
Có nhiều thuật toán nhận dạng khuôn mặt dựa trên học tập sâu có sẵn.
- Deepface
- Sê -ri hệ thống
# installing face recognition pip install face recognition
1, - Facenet
- Vggface
Nói chung, các chất nhận biết khuôn mặt dựa trên các địa danh lấy hình ảnh khuôn mặt và cố gắng tìm các điểm đặc trưng cần thiết như lông mày, khóe miệng, mắt, mũi, môi, v.v. Có hơn 60 điểm.
Nguồn: Medium.com: Medium.com
Các bước liên quan đến nhận dạng khuôn mặt
- Phát hiện khuôn mặt: Xác định vị trí mặt, lưu ý tọa độ của mỗi mặt định vị, D và vẽ một hộp giới hạn quanh mọi mặt.: Locate the face, note the coordinates of each face locate,d and draw a bounding box around every faces.
- Sắp xếp khuôn mặt. Bình thường hóa các khuôn mặt để đạt được đào tạo nhanh.. Normalize the faces in order to attain fast training.
- Khai thác tính năng. Trích xuất tính năng địa phương từ hình ảnh khuôn mặt để đào tạo, bước này được thực hiện khác nhau bởi các thuật toán khác nhau.. Local feature extraction from facial pictures for training, this step is performed differently by different algorithms.
- Nhận dạng khuôn mặt. Khớp mặt đầu vào với một hoặc nhiều khuôn mặt được biết đến trong bộ dữ liệu của chúng tôi.. Match the input face with one or more known faces in our dataset.
Nguồn: WP.com: wp.com
Bài viết này tập trung vào việc thực hiện nhận dạng khuôn mặt bằng thư viện FACE_RECENTION, được xây dựng trên các kỹ thuật học tập sâu và hứa hẹn độ chính xác lớn hơn 96% khi sử dụng một hình ảnh đào tạo duy nhất.
Thực hiện
Thực hiện một hệ thống nhận dạng khuôn mặt bằng Python. Thực hiện một hệ thống nhận dạng khuôn mặt dựa trên học tập sâu bằng thư viện FACE_RECENTION.
1. Đặt thư viện nhận dạng khuôn mặt:
Để cài đặt thư viện nhận dạng khuôn mặt, trước tiên chúng ta cần cài đặt
# installing face recognition pip install face recognition2.
# installing face recognition pip install face recognition
3: Đây là một bộ công cụ C ++ hiện đại có chứa các thuật toán và công cụ liên quan đến ML. : It is a modern C++ toolkit that contains ML-related algorithms and tools.
# installing dlib pip install dlib
# installing face recognition pip install face recognition
4 Thư viện nhận dạng khuôn mặt thực tế có thể được cài đặt sau# installing face recognition pip install face recognition
2.
# installing face recognition pip install face recognition
# installing face recognition pip install face recognition
6 cho một số hình ảnh trước khi xử lý
# installing opencv pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .
Nhập thư viện
import cv2 import numpy as np import face_recognition
2. Đang tải hình ảnh:
Chúng tôi đã hoàn thành việc cài đặt và nhập các thư viện. Đó là thời gian để tải một số hình ảnh mẫu vào thư viện
# installing face recognition pip install face recognition7.
Thư viện
# installing face recognition pip install face recognition7Support chỉ định dạng hình ảnh BGR. Trong khi in hình ảnh đầu ra, chúng ta nên chuyển đổi nó thành RGB bằng OpenCV.
# installing face recognition pip install face recognition9 chỉ tải hình ảnh ở định dạng BGR.
import cv2 import numpy as np import face_recognition img_bgr = face_recognition.load_image_file['student_images/modi.jpg'] img_rgb = cv2.cvtColor[img_bgr,cv2.COLOR_BGR2RGB] cv2.imshow['bgr', img_bgr] cv2.imshow['rgb', img_rgb] cv2.waitKey
Đầu ra → BGR vs RGB → BGR vs RGB
3. Phát hiện và định vị khuôn mặt: & nbsp;
Thư viện
# installing face recognition pip install face recognition7Can nhanh chóng tự định vị, chúng tôi không cần phải sử dụng
# installing opencv pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .1 và các kỹ thuật khác.
img_modi=face_recognition.load_image_file['student_images/modi.jpg'] img_modi_rgb = cv2.cvtColor[img_modi,cv2.COLOR_BGR2RGB] #--------- Detecting Face ------- face = face_recognition.face_locations[img_modi_rgb][0] copy = img_modi_rgb.copy[] # ------ Drawing bounding boxes around Faces------------------------ cv2.rectangle[copy, [face[3], face[0]],[face[1], face[2]], [255,0,255], 2] cv2.imshow['copy', copy] cv2.imshow['MODI',img_modi_rgb] cv2.waitKey[0]4. Nhận dạng hình ảnh mẫu:
4. Sample Image Recognition:
Thư viện
# installing face recognition pip install face recognition7 dựa trên việc học sâu, nó hỗ trợ việc học một lần, điều đó có nghĩa là nó cần một bức tranh duy nhất để tự đào tạo để phát hiện một người.
img_modi = face_recognition.load_image_file['student_images/modi.jpg'] img_modi = cv2.cvtColor[img_modi,cv2.COLOR_BGR2RGB]
#------to find the face location face = face_recognition.face_locations[img_modi][0]
#--Converting image into encodings train_encode = face_recognition.face_encodings[img_modi][0]
#----- lets test an image test = face_recognition.load_image_file['student_images/modi2.jpg'] test = cv2.cvtColor[test, cv2.COLOR_BGR2RGB] test_encode = face_recognition.face_encodings[test][0] print[face_recognition.compare_faces[[train_encode],test_encode]] cv2.rectangle[img_modi, [face[3], face[0]],[face[1], face[2]], [255,0,255], 1] cv2.imshow['img_modi', img_modi] cv2.waitKey[0]
Mã trên đã chụp hai bức ảnh của Thủ tướng, và nó đã trả lại ____ 23 & nbsp; bởi vì cả hai bức ảnh đều thuộc cùng một người.
# installing opencv pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .
4 → Trả về mã hóa hình ảnh truyền.# installing opencv pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .
5 → lấy một danh sách các mã hóa được đào tạo và mã hóa thử nghiệm của hình ảnh chưa biết. Nó trả về ________ 23 & nbsp; nếu cả hai mã hóa thử nghiệm có một trận đấu trong mã hóa tàu; Nếu không, nó trả về. & nbsp; ________ 27. → Takes a list of trained encodings and a test encoding of the unknown Image. It returns# installing opencv pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .
3 if both test encoding has a match in train encoding; otherwise, it returns.# installing opencv pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .
7.
Hiểu được hoạt động nhận dạng khuôn mặt
- Chúng tôi chuyển hình ảnh của người cho người mẫu và tên của họ.
- Mô hình chụp mọi hình ảnh, chuyển đổi chúng thành một số mã hóa số và lưu trữ chúng trong một danh sách và tất cả các nhãn [tên của người] trong một danh sách khác.
- Trong giai đoạn dự đoán khi chúng ta vượt qua một hình ảnh của một mô hình nhận dạng người không xác định chuyển đổi hình ảnh người không quen thuộc thành mã hóa.
- Sau khi chuyển đổi một người không xác định hình ảnh của bạn thành mã hóa, nó cố gắng tìm mã hóa tương tự nhất dựa trên tham số khoảng cách. Cửa hàng mã hóa với khoảng cách ít nhất từ mã hóa của một người không xác định sẽ là trận đấu gần nhất.
- Sau khi nhận được mã hóa trận đấu gần nhất, chúng tôi lấy chỉ mục của mã hóa đó từ danh sách đó và sử dụng lập chỉ mục. Chúng tôi tìm thấy tên người được phát hiện.
Những thách thức trong các hệ thống công nhận
Đây là những thách thức đáng kể mà các hệ thống nhận dạng phải đối mặt và cần được giải quyết.
- Tư thế: Hệ thống nhận dạng dễ bị ảnh hưởng bởi tư thế của con người. Các hệ thống nhận dạng khuôn mặt sẽ không thể dự đoán được nếu không thể nhìn thấy mặt người.Recognition systems are susceptible to the human pose. Facial recognition systems will not be able to predict if the person’s face is not visible.
- Chiếu sáng: chiếu sáng thay đổi các đường viền khuôn mặt mạnh mẽ. Hình ảnh để nhận dạng khuôn mặt nên được chụp trong điều kiện ánh sáng thích hợp.Illumination changes the face contours drastically. Pictures for face recognition should be taken in proper lighting conditions.
- Biểu cảm khuôn mặt: Biểu cảm khuôn mặt khác nhau có thể dẫn đến các dự đoán khác nhau về cùng một hình ảnh của người.: Different facial expressions can result in different predictions of the same person’s Image.
- Độ phân giải thấp: Hình ảnh độ phân giải thấp chứa ít thông tin hơn, do đó không tốt cho việc đào tạo nhận dạng khuôn mặt.: Low-resolution pictures contain less information, hence not good for face recognition training.
Sự kết luận
Bài viết này đã thảo luận về cách thực hiện một hệ thống nhận dạng khuôn mặt bằng cách sử dụng Python với kỹ thuật đào tạo hình ảnh một lần chụp. Bạn có thể sử dụng GUI như Python Tkinter để thiết kế một hệ thống tham dự dựa trên GUI. Chúng tôi đã thấy những thách thức khác nhau ảnh hưởng đến một hệ thống công nhận và cách giải quyết chúng.
Trong bài viết tiếp theo, chúng tôi sẽ tạo ra một hệ thống tham dự nhận dạng khuôn mặt bằng cách sử dụng các khái niệm tương tự mà chúng tôi đã thảo luận ngày hôm nay.
Các phương tiện truyền thông được hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của tác giả.