« Home « Kết quả tìm kiếm

Xây dựng hệ thống quản lý ảnh và check in sự kiện bằng nhận diện khuôn mặt


Tóm tắt Xem thử

- Xây Dựng Hệ Thống Quản Lý Ảnh Và Check In Sự Kiện Bằng Nhận Diện Khuôn Mặt.
- Hệ thống nhận dạng khuôn mặt (Face recognition) là một ứng dụng cho phép máy tính tự động xác định hoặc nhận dạng một người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ một nguồn video.
- Một trong những cách để thực hiện điều này là so sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt.
- Trong nghiên cứu này, chúng tôi đưa ra phương pháp sử dụng đặc trưng HOG, mô hình mtcnn để phát hiện khuôn mặt và phương pháp triplet loss và K-Nearest Neighbors để huấn luyện mô hình.
- 1 Bài toán nhận diện khuôn mặt.
- Nhận dạng khuôn mặt là khả năng nhận diện, lưu trữ, so sánh và phân tích các mẫu dựa trên đường nét khuôn mặt để nhận dạng người từ hình ảnh hoặc video.
- Hệ thống thường sử dụng các công nghệ để thực hiện nhận dạng khuôn mặt như sử dụng sinh trắc học để ánh xạ các đặc điểm khuôn mặt từ ảnh hoặc video..
- Hệ thống so sánh thông tin này với một cơ sở dữ liệu đã lưu trữ về các khuôn mặt để tìm ra một kết quả khớp chính xác.
- Nhận dạng khuôn mặt ngày càng được quan tâm trong nhiều lĩnh vực, như Trung Quốc có hệ thống Skynet để chấm điểm công dân, hay nhiều chuỗi cửa hàng lớn cũng sử dụng nhận dạng khuôn mặt khách hàng thân thiết để phân tích thói quen tiêu dùng.
- Trên thực tế, công nghệ nhận dạng khuôn mặt đã nhận được sự chú ý đáng kể vì nó có tiềm năng cho một loạt các ứng dụng liên quan đến thực thi pháp luật cũng như các doanh nghiệp khác..
- Bài toán nhận dạng khuôn mặt cần xác định hai vấn đề chính: dùng thông tin nào của đối tượng để nhận dạng và dùng phương pháp nào để huấn luyện cho máy nhận dạng dùng nguồn thông tin đó.
- Các phương pháp nhận diện khuôn mặt đã được nghiên cứu như:.
- Swets, John Weng Discri- minant Analysis of Principal Components for Face Recognition) sử dụng phương pháp PCA kết hợp LDA:.
- Đầu tiên, cần chuyển đổi ảnh khuôn mặt từ không gian ảnh thô sang không gian các không gian khuôn mặt (Mỗi lớp khuôn mặt được nhận dạng sẽ được mô hình hóa bằng một không gian khuôn mặt) dùng PCA..
- Sau đó, sử dụng phương pháp LDA để tạo bộ phân loại tuyến tính có khả năng phân lớp các lớp khuôn mặt..
- Oi Bin Sun, Chian Prong Lam và Jian Kang Wu sử dụng phương pháp tìm vùng hai chân mày, hai mắt, mũi, miệng và cằm..
- Guodong Guo, Stan Z.Li, Kap Luk Chan (17 January dùng phương pháp SVM để nhận dạng khuôn mặt.
- Sử dụng chiến lược kết hợp nhiều bộ phân loại nhị phân để xây dựng bộ phân loại SVM đa lớp..
- Tổng quan hệ thống điểm danh bằng khuôn mặt..
- 1.1 Khó khăn của nhận dạng khuôn mặt.
- Ảnh chụp khuôn mặt có thể thay đổi rất nhiều do các tác động ngoại quan lên ảnh như tư thế góc chụp, sự che khuất hoặc không rõ nét ở một số chi tiết, các chi tiết thừa hay biểu cảm khuôn mặt lúc chụp..
- Tư thế góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt.
- Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết..
- Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng như râu mép, râu hàm, mắt kính, v.v… có thể xuất hiện hoặc không.
- Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt.
- Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi…..
- Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác..
- Hướng của ảnh: Các ảnh của khuôn mặt có thể biến đổi rất nhiều với các góc quay khác nhau của trục camera.
- Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục của ảnh..
- Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…) ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt..
- Nền ảnh phức tạp: Nền của ảnh phức tạp là một trong những khó khăn nhất trong bài toán nhận diện khuôn mặt người trong ảnh, khuôn mặt người sẽ dễ bị nhầm lẫn với nhiều khung cảnh phức tạp xung quanh và ảnh hưởng rất nhiều đến quá trình phân tích và rút trích các đặc trưng của khuôn mặt trong ảnh, có thể dẫn đến không nhận ra khuôn mặt hoặc là nhận nhầm các khung cảnh xung quanh thành khuôn mặt người..
- 1.2 Các phương pháp nhận dạng Phương pháp nhận dạng hiện nay có 2 loại:.
- Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature based face recognition)..
- Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition)..
- Ngoài ra còn có một số loại nhận dạng sử dụng mô hình về khuôn mặt như:.
- Nhận dạng 2D: Elastic Bunch Graph, Active Appearance Model..
- Nhận dạng 3D: 3D Morphable Model..
- Nhận dạng dựa trên các đặc trưng khuôn mặt.
- Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi, miệng.
- Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận biết khuôn mặt.
- Mặt khác, với các ảnh kích thước bé thì các đặc tính sẽ khó phân biệt do đó khó tính toán được các đặc trưng trên khuôn mặt..
- Nhận dạng đựa trên toàn diện khuôn mặt.
- Phương pháp nhận diện trên toàn diện khuôn mặt có nghĩa sẽ không đi xét đến từng thành phần đặc trưng trên khuôn mặt nữa mà là xem khuôn mặt là một không gian cụ thể tìm những đặc trưng, những đặc điểm chính trên không gian đó..
- gian đó các đặc điểm chính của một khuôn mặt không bị mất đi.
- Hai phương pháp thường được sử dụng là trong hướng tiếp cận này là PCA (Principle Components Analysis) và LDA (Linear Discriminant Analysis)..
- 2 Phương pháp nhận diện khuôn mặt dựa trên đặc trưng HOG.
- Có rất nhiều phương pháp nhận dạng và phân lớp ảnh khác nhau trong computer vision.
- Nhưng trước khi Deep Learning bùng nổ, thuật toán thường được sử dụng cho xử lí ảnh là HOG (Histogram of Oriented Gradient)..
- Cuối cùng thu được véc tơ đặc trưng HOG đại diện cho histogram.
- Bước tiền xử lý sẽ, cắt hình ảnh thành các khối, chuyển kích thước về kích thước chuẩn, sau đó sử dụng các khối để tính toán đặc trưng ở các bước tiếp theo..
- Tính vector đặc trưng cho từng ô (ví dụ 8x8 pixel).
- Bằng cách tính một ngưỡng cường độ trong một khối và sử dụng giá trị đó để chuẩn hóa tất cả các ô trong khối, các biểu đồ cục bộ sẽ được chuẩn hóa về độ tương phản để tăng cường khả năng nhận dạng..
- Sau khi hoàn thiện các bước trên, có thể sử dụng véc tơ HOG để tính toán và nhận diện đối tượng..
- Phát hiện khuôn mặt bằng đặc trưng HOG: Để xác định khuôn mặt có trong bức ảnh từ webcam, phương pháp chúng tôi sử dụng HOG.
- Sau đó sử dụng bộ lọc Gabor: Bộ lọc Gabor phân tích các thay đổi về ánh sáng và kết cấu để phân tích hình ảnh: thay đổi cạnh và kết cấu trong một hình ảnh làm nổi bật các đặc tính của bức ảnh.
- Bộ lọc Gabor được sử dụng để phóng đại hướng của hình ảnh khuôn mặt, các cạnh được phóng đại và sắc nét hơn, các đặc điểm khuôn mặt trở nên rõ ràng và đơn giản hơn so với hình ảnh gốc, do đó nó tăng cường độ chính xác cho HOG.
- Kết quả cuối cùng, chuyển ảnh nguyên gốc sáng sang tập hợp hướng sáng đại diện, thể hiện cấu trúc đơn giản của khuôn mặt..
- 2.2 Quá trình nhận diện khuôn mặt theo đặc trưng HOG.
- Có nhiều phương pháp trong đó các hệ thống nhận dạng khuôn mặt hoạt động, nhưng nói chung, chúng hoạt động bằng cách so sánh các đặc điểm khuôn mặt được chọn từ hình ảnh đã cho với khuôn mặt trong cơ sở dữ liệu.
- Nó cũng được mô tả như một ứng dụng dựa trên trí tuệ nhân tạo sinh trắc học có thể nhận dạng duy nhất một người bằng cách phân tích các mẫu dựa trên kết cấu và hình dạng khuôn mặt của người đó..
- Nhận diện vị trí khuôn mặt bằng thuật toán HOG.
- Trước hết, để có thể phân tích khuôn mặt và nhận diện, cần phải xác định vị trí khuôn mặt trước khi nhận diện chúng.
- Sau khi xác định được khuôn mặt thì tách khuôn mặt ra khỏi bức ảnh đã cho.
- Bắt đầu bằng chuyển ảnh sang đen trắng, bởi không cần màu ảnh trong nhận diện khuôn mặt.
- Tách bức ảnh thành chuỗi vùng nhỏ 16x16 và cấu trúc đặc trưng của khuôn mặt.
- Kết quả cuối cùng, chuyển ảnh nguyên gốc sáng sang tập hợp hướng sáng đại diện, thể hiện cấu trúc đơn giản của khuôn mặt.
- Hình 1 bên phải dưới đây là mô tả cấu trúc khuôn mặt dựa vào đặc trưng HOG..
- Để tìm ra khuôn mặt trong hình ảnh HOG, cần tìm phần ảnh có cấu trúc giống nhất với cấu trúc HOG được trích lọc từ trong quá trình đào tạo.
- Sử dụng kỹ thuật này, có thể dễ dàng tìm khuôn mặt ở bất cứ ảnh nào..
- Chuẩn hóa vị trí khuôn mặt.
- Vì khuôn mặt sẽ có nhiều góc chụp khác nhau nên việc nhận dạng khuôn mặt là một vấn đề lớn.
- Điều này cũng khiến việc so sánh khuôn mặt ở bước kế tiếp dễ hơn..
- Để xác định facial landmark, sẽ phải xác định được những điểm chính trong bức ảnh tạo nên hình dạng khuôn mặt người.
- Mục đích ở đây để đưa ra 68 điểm cụ thể như ở Hình 2 (gọi là cột mốc - như trong châm cứu) tồn tại trên mỗi khuôn mặt - đỉnh cằm, cạnh ngoài của mỗi mắt, cạnh trong cuả mỗi lông mày.
- Chỉ sử dụng biến đổi đơn giản như quay, phóng để duy trì các đường thằng song song, phương pháp này trong đồ hoạ được gọi là biến đổi affine.
- Mã hóa khuôn mặt.
- Mục tiêu của bước này là truyền khuôn mặt đã tìm được vào một mạng nơron để tách lọc ra 128 đo lường.
- Trực tiếp so sánh khuôn mặt tìm được ở bước 2 với ảnh có trong bộ dữ liệu.
- Sử dụng Deep Convolutional Neural Network - mạng nơron tích chập đa lớp.
- Nhưng thay vì đào tạo mạng nơron để nhận diện ảnh, đào tạo nó để tìm ra 128 đo lường cho mỗi khuôn mặt.
- Đo lường khuôn mặt.
- Quá trình đào tạo Convolutional Neural Network (CNN - mạng nơron tích chập) để sinh mã khuôn mặt yêu cầu rất nhiều dữ liệu và sức mạnh tính toán.
- Việc cần làm là truyền hình ảnh khuôn mặt vào mạng đã được đào tạo đó để lấy ra 128 đo lường cho mỗi khuôn mặt.
- Tuy nhiên để giải quyết đề này, có thể sử dụng thư viện OpenFace được pre-train model từ trước để giảm bớt thời gian tính toán.
- Huấn luyện mô hình dựa trên các đặc trưng mã hoá với thuật toán KNN.
- Hơn nữa, nó có thể được sử dụng trực tiếp để phân loại đa lớp.
- Trong bài toán này, mỗi cá nhân sẽ có một thư mục riêng với số lượng ảnh nhất định, mỗi ảnh sẽ cho ra 128 đặc trưng, và tất cả sẽ được đưa vào một bộ dữ liệu với label của họ cuối cùng bộ dữ liệu này sẽ được sử dụng để huấn luyện KNN model..
- Các phương pháp đánh giá được sử dụng trong bài này bao gồm accuaracy score cho việc so sánh độ hiệu quả của các thuật toán machine learning khi training, distance threshold khi kiểm tra ảnh đầu vào với KNN và accuracy, val acurracy, loss, val loss khi thử nghiệm trên mô hình CNN..
- Distance threshold: Chỉ số khoảng cách cho phép khi nhận dạng.
- Nếu khoảng cách dưới một chỉ số này (càng nhỏ, hệ thống nhận dạng khuôn mặt càng nghiêm ngặt) thì trả về True, biểu thị các khuôn mặt khớp..
- Dữ liệu thu thập được từ 9 sinh viên được sử dụng để thử nghiệm trong báo cáo này.
- Nguồn ảnh được thu thập từ webcam, hoặc hình ảnh chứa khuôn mặt được sinh viên cung cấp.
- Theo như biểu đồ Hình 5 ta thấy được số lượng các đặc trưng theo giá trị, ở đây sử dụng trục hoành theo log để dễ quan sát, với những nét càng đậm nghĩa là tại đó những giá trị mã hóa khuôn mặt tập trung càng nhiều.
- Biểu đồ phân bổ các đặc trưng theo từng cá nhân.
- Hình 6 bên trái là ví dụ về sự phân lớp đặc trưng khuôn mặt của 2 sinh viên, ta thấy được 2 lớp màu đỏ ứng với các đặc trưng của sinh viên mã 002 và màu xanh ứng với sinh viên 029, mỗi 128 đặc trưng sẽ được lấy 2 đặc trưng làm mô tả chính ở trục x và y theo thư viện PCA.
- Tương tự bên phải Hình 6 mô tả sự phân bố đặc trưng khuôn mặt của cả 9 sinh viên, đa phần ở cách khá xa nhau, mặc dù một số trường hợp gần nhau, nhưng với thuật toán sử dụng là KNN, thuật toán này còn xét số lượng điểm lân cận nên accuracy vẫn đạt trên 99%.
- Áp dụng phương pháp sử dụng thuật toán HOG để nhận dạng khuôn mặt và mô hình mạng CNN để mã hóa khuôn mặt trên tổng số 3308 ảnh của 9 sinh viên, trên GPU NVIDIA Gerforce 940MX và CPU Intel Core I3-7100U thì thời gian chạy mất 1h đồng hồ với kết quả:.
- Như vậy theo bảng trên ta thấy được Model dựa KNN model có hiệu quả khá cao, do đó trong ứng dụng này, KNN sẽ được sử dụng để huấn luyện mô hình..
- Triển khai vào thực tế, với ngôn ngữ sử dụng là Python và framework Flask, một web framework, nó thuộc loại micro-framework được xây dựng bằng ngôn ngữ lập trình Python.
- Độ chính xác này được tính bằng khoảng cách Vector từ điểm nhận dạng đến các điểm trong mô hình đã được huấn luyện, khuôn mặt được nhận diện bằng thuật toán KNN, thuật toán so sánh các điểm lân cận gần với nó để xác định

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt