ĐỀ XUẤT PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT NGƯỜI VÀ ỨNG DỤNG CHỐNG GIAN LẬN TRONG THI CỬ Nhận dạng mặt người (Face recognition) được nghiên cứu từ nhưng năm 1980, là một lĩnh vực nghiên cứu của ngành thị giác máy tính (Computer Vision), và cũng được xem là một lĩnh vực nghiên cứu của ngành sinh trắc học (Biometrics) tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition.
Trang 1HÀ NỘI - 2014
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS Phạm Thế Quế
Phản biện 1: PGS TS Ngô Quốc Tạo
Phản biện 2: PGS TS Đỗ Năng Toàn
Luận văn đã được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: 08h giờ 45, ngày15 tháng 02 năm 2014
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3CHƯƠNG 1 - TỔNG QUAN BÀI TOÁN NHẬN DẠNG KHUÔN MẶT NGƯỜI
1.1 Giới thiệu bài toán nhận dạng khuôn mặt người
Nhận dạng mặt người (Face recognition) được nghiên cứu từ nhưng năm 1980, là một lĩnh vực nghiên cứu của ngành thị giác máy tính (Computer Vision), và cũng được xem là một lĩnh vực nghiên cứu của ngành sinh trắc học (Biometrics) tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition Trong khi nhận dạng vân tay và mống mắt
có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn và ít đòi hỏi sự tương tác có kiểm soát hơn Bài toán nhận dạng mặt người còn nhiều thách thức nên hàng năm trong & ngoài nước vẫn có nhiều nghiên cứu về các phương pháp nhận dạng mặt người
Để thử nghiệm phương pháp chúng ta cần có một
cơ sở dữ liệu ảnh mẫu Có ba cơ sở dữ liệu ảnh mẫu phổ
Trang 4biến là: Cơ sở dữ liệu AT&T, Cơ sở dữ liệu Yale A, Cơ
sở dữ liệu Yale B
Bài toán nhận dạng khuôn mặt có thể áp dụng rộng rãi trong nhiều ứng dụng thực tế khác nhau
1.2 Ứng dụng của đề tài vào cơ sở thực tiễn
Trong đề tài này, tôi tập trung tìm kiếm và đề xuất một thuật toán hiệu quả nhận dạng khuôn mặt nhằm chống gian lận trong thi cử
Do các khó khăn của bài toán nhận dạng khuôn mặt như: Tư thế góc chụp, sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt, sự biểu cảm của khuôn mặt, sự che khuất, hướng của ảnh, điều kiện của ảnh
Vì thế trong luận văn này tôi đưa ra những giả định
và ràng buộc sau làm giảm độ phức tạp của bài toán như sau:
- Góc ảnh trực diện (frontal) hoặc gần như trực diện, không bị che khuất (no occlusion)
- Ảnh được chụp trong điều kiện ánh sáng bình thường
Trang 5- Cơ sở dữ liệu ảnh nhỏ, khoảng trăm ảnh
- Ảnh được xét trong luận văn là ảnh số, nghĩa là ảnh mặt người được chụp từ các thiết bị như máy ảnh số, camera,… Luận văn không xem xét các ảnh mặt người nhân tạo như vẽ, điêu khắc …
1.3 Các phương pháp nhận dạng khuôn mặt người
1.3.1 Phân tích thành phần chính (PCA)
Phân tích thành phần chính là phương pháp lâu đời nhất và cũng là phương pháp phổ biến nhất khi nghiên cứu nhận dạng khuôn mặt Phân tích thành phần chính là một
kỹ thuật phân tích biến đổi được nghiên cứu khá rộng rãi
và biết đến nhiều Thuật toán này lần đầu tiên được giới thiệu bởi Pearson (1901), và được phát triển một cách độc lập bởi Hotelling (1933) Ý tưởng chính của thuật toán phân tích thành phần chính là giảm số chiều của tập dữ liệu có sự tương quan lớn giữa các biến Mặc dù giảm số chiều của biến nhưng vẫn duy trùy sự biến đổi nhiều nhất
có thể của tập dữ liệu ban đầu Thực chất của PCA là giải
Trang 6quyết bài toán tìm trị riêng và vector riêng cho ma trận đối xứng
1.3.1.1 Trích đặc trưng bằng phương pháp PCA
1.3.1.2 Kỹ thuật trích đặc trưng bằng PCA
1.3.2 Phân tích phân lớp tuyến tính LDA
1.3.3 Mẫu nhị phân cục bộ (LBP)
LBP là một toán tử kernel 3×3, nó tổng quát hóa
cấu trúc không gian cục bộ của một ảnh Ojala và các đồng nghiệp đã giới thiệu phương pháp LBP và chỉ ra khả năng phân tách cao của chúng cho sự phân lớp vân Bởi vì khả năng phân tách và chi phí tính toán thấp, LBP trở nên rất phổ biến trong nhận dạng mẫu LBP đã được áp dụng cho phát hiện khuôn mặt, nhận dạng khuôn mặt, xác thực khuôn mặt, truy vấn ảnh
1.3.3.1 Mô tả kết cấu (Texture descriptor)
Trang 7phương pháp là chia hình hảnh khuôn mặt thành các khối, sau đó tính toán các histogram tương ứng với các khối Cuối cùng kết hợp các histogram này lại với nhau để có được vector đặc trưng cho khuôn mặt
1.3.4 Support vector Machines (SVM)
SVM là một phương pháp phân lớp xuất phát từ lý thuyết học thống kê Thuật toán SVM lần đầu tiên được Vladimir Vapnik đề xuất Sau đó, Corinna Cortes cùng với Vladimir Vapnik đề xuất hình thức chuẩn hiện nay SVM
có nhiều tính năng ưu việt so với các phương pháp cổ điển khác: dễ dàng xử lý, xử lý với tính ổn định cao trên dữ liệu phức tạp, có thể có số chiều lớn và quan trọng hơn cả
là khả năng xử lý tổng quát
Trang 9CHƯƠNG 2 - ĐỀ XUẤT PHƯƠNG PHÁP
NHẬN DẠNG MẶT NGƯỜI
2.1 Phân tích bài toán nhận dạng mặt người
Một hệ thống nhận dạng mặt người thông thường gồm các bước sau đây:
Trích rút đặc trưng (feature extraction)
Tiền xử lý (preprocessing)
Phân loại (classification)
Dữ liệu kiểm tra
(Từ ảnh/
Camera)
Phát hiện khuôn mặt (face detection)
Trích rút đặc trưng (feature extraction)
Tiền xử lý (preprocessing)
Nhận dạng (recognition ) Kết quả
Hình 2.1 Hệ thống nhận dạng khuôn mặt
2.1.1 Phát hiện khuôn mặt (face detection)
Phát hiện khuôn mặt sẽ lấy ra tất cả các khuôn mặt trong một hình ảnh
Trang 102.1.2 Tiền xử lý ảnh (preprocessing)
Bước này nhằm mục đích lọc nhiễu, nâng cao chất lượng ảnh, trong bước này bao gồm các bước : Căn chỉnh ảnh, chuẩn hóa ánh sáng
2.1.3 Trích rút đặc trưng ( feature extraction)
Ở bước này một phương pháp trích chọn đặc điểm như: mẫu nhị phân cục bộ – LBP (hay Gabor wavelets, Gradient, Discrete Cosine Transform …) sẽ được sử dụng với ảnh mặt để trích xuất các thông tin đặc trưng cho ảnh, kết quả là mỗi ảnh sẽ được biểu diễn dưới dạng một vector
Trong luận văn này trình bày về phương pháp Local Binary Pattern mục 1.3.3
2.1.4 Nhận dạng/Phân lớp
Bước nhận dạng (recognition) hay phân lớp (classification), tức là xác định danh tính (identity) hay nhãn (label) của ảnh – đó là ảnh của ai
Trong luận văn trình bày về phương pháp phương pháp SVM ở mục 1.3.4
Trang 112.1.5 Dữ liệu hệ thống nhận dạng
Dữ liệu hệ thống nhận dạng được chia làm 3 tập
▪ Tập huấn luyện (training set),
▪ Tập tham chiếu (reference set)
▪ Tập để nhận dạng (probe set)
Trong nhiều hệ thống, tập training trùng với tập reference (trong luận văn này tập huấn luyện trùng với tập training) Tập training gồm các ảnh được dùng để huấn luyện, thông thường tập này được dùng để sinh ra một không gian con là một ma trận và phương pháp hay được
sử dụng là PCA, LDA…Tập reference gồm các ảnh đã biết danh tính được chiếu vào không gian con ở bước training Sau khi thực hiện chiếu tập reference vào không gian con, hệ thống lưu lại kết quả là một ma trận với mỗi cột của ma trận là một vector tương ứng với ảnh (định danh đã biết) để thực hiện nhận dạng (hay phân lớp) Nhận dạng (hay phân lớp) được thực hiện với tập các ảnh probe
Trang 12Mục 1.3.1 trong chương này trình bày về phương pháp PCA
2.1.6 Các cách kết hợp các phương pháp
2.2 Đề xuất phương pháp nhận dạng kết hợp LBP-PCA-SVM
Hiện tại có nhiều phương pháp kết hợp để nhận dạng khuôn mặt như trên đề cập Trong khuôn khổ luận văn này, sẽ trình bày về phương pháp nhận dạng mặt người bằng cách kết hợp ba phương pháp LBP, PCA & SVM, ứng dụng việc kết hợp ba phương pháp nhận dạng nhằm chống gian lận trong thi cử
Hình 2.2 Sơ đồ kết hợp các phương pháp (phương pháp
LBP-PCA-SVM)
Trang 132.2.1 Áp dụng LBP trích rút đặc trưng & PCA để
giảm số chiều
Trong luận văn ảnh chia làm 49 khối, mỗi chiều của ảnh chia làm 7 phần kích thước của ảnh khuôn mặt trước khi rút đặc trưng cần là 126x147px
Các bước thực hiện trích rút đặc trưng khuôn mặt:
Hình 2.3 Các bước thực hiện trích rút đặc trưng
2.2.2 Áp dụng SVM phân lớp/nhận dạng
Trong luận văn này sử dụng SVM nhiều lớp với chiến lược one-vs-one (Theo nghiên cứu của Chih-Wei Hsu và Chih-Jen Lin [11] chiến lược one-vs-all cho kết quả không được tốt), sử dụng với hàm nhân là Radial basic funtion (RBF) để nhận dạng (Theo kết quả thực nghiệm hàm nhân RBF cho tỉ lệ nhận dạng cao nhất)
Tỉ lệ nhận dạng
Trang 14Tỉ lệ nhận dạng
Bảng 2.1 Bảng tỉ lệ nhận dạng theo hàm nhân
Tập huấn luyện
Trích rút đặc trưng (LBP)
Giảm số chiều (PCA)
Huấn luyện SVM giữa các cặp
Ảnh khuôn mặt kiểm tra
Tiền xử lý
Trích rút đặc trưng (LBP)
Kết quả nhận dạng
Tiền xử lý
SVM nhiều lớp trên cơ sở Cây nhị phân
Trang 16Đối với sinh viên trường thì để lấy tập dữ liệu ảnh lớn như vậy là rất khó Sau khi thử nghiệm với phương pháp LBP, SVM, PCA với số lượng ảnh mẫu/người từ 3 trở lên, kết quả cũng rất khả quan
Bảng 2.2 Tỉ lệ nhận dạng theo số lượng ảnh mẫu phương
pháp LBP-PCA- SVM trên CSDL AT&T & Yale A
Trang 17CHƯƠNG 3 - XÂY DỰNG ỨNG DỤNG CHỐNG GIAN LẬN TRONG THI CỬ DỰA TRÊN PHƯƠNG PHÁP LBP-PCA-SVM
3.1 Những hiện tượng gian lận phổ biến trong thi cử
Hiện tượng gian lận trong Giáo dục nói chung và hiện tượng gian lận trong học hộ, thi hộ nói riêng là vấn
đề nan giải và được bàn cãi nhiều đặc biệt là trước – trong
và sau mỗi kỳ thi
Trong các trường Đại học, Cao đẳng, Trung học chuyên nghiệp mục đích của việc học hộ là tránh để mất 30% điểm học phần theo quy chế 25 của Bộ Giáo dục Việc học hộ thường xảy ra ở các lớp Liên thông, Tại chức học vào ca tối, các lớp có tình trạng lớp đông, giáo viên mới
Đối với hiện tượng thi hộ, việc kiểm tra và đối chiếu học sinh – sinh viên vào dự thi mất rất nhiều thời gian, đôi khi vẫn bỏ qua được đối tượng thi hộ như trường hợp anh em thi hộ, hiện tượng tráo ảnh trong thẻ dự thi, hiện tượng quên thẻ sinh viên…
Trang 18Tại trường Cao đẳng Xây dựng số 1, cũng phát hiện nhiều trường hợp thi hộ, học hộ đặc biệt là tại các lớp học tại chức, liên thông học vào ca tối Trong khuôn khổ luận văn này, tôi xin đi sâu tìm hiểu vào phần chống gian lận trong thi cử
3.2 Quy trình thực hiện chống gian lận trong thi cử
Quy trình thực hiện chống gian lận trong thi cử được thực hiện theo quy định của Bộ Giáo dục và Đào tạo Thông thường, để kiểm soát việc thi hộ thì trong các kỳ thi Phòng Khảo thí và Đảm bảo chất lượng thường bố trí 02 cán bộ coi thi cho mỗi một phòng thi khoảng 30 đến 40 thí
sinh Quy trình Tại phòng thi trước giờ làm bài thi
thường diễn ra theo nhiều bước:
Như vậy, để chuẩn bị cho một buổi thi, 02 Cán bộ coi thi phải thực hiện một khối lượng công việc lớn và phải thực hiện trong một thời gian ngắn để đảm bảo kịp thời gian tính giờ làm bài cho thí sinh theo quy định chung Vì vậy, khâu quan sát thí sinh, đối chiếu nhận dạng thí sinh đôi khi chưa được chú trọng thực hiện kỹ, hơn nữa việc xảy ra tình huống ngoài mong muốn như thí sinh
Trang 19quên thẻ sinh viên, ảnh nhòe, ảnh cũ hoặc ảnh không đóng dấu giáp lai rất khó nhận dạng, chính vì điều đó dẫn đến
bỏ lọt đối tượng thi hộ
Ý tưởng xây dựng phần mềm ứng dụng nhận dạng khuôn mặt nhằm tháo gỡ tình trạng học hộ, đặc biệt là thi
hộ như một mong muốn giảm bớt được quy trình coi thi, với tính chính xác cao mang lại hiệu quả công việc
Quy trình thực hiện như sau:
Bước 1: Thu thập dữ liệu ảnh sinh viên
Trước mỗi kỳ thi mỗi sinh viên sẽ gửi cho nhà trường ít nhất 3 hình ảnh của khuôn mặt (trạng thái bình thường, vui vẻ, buồn) Tập tên được gửi có định dạng MSSV-[1,2,3, …], trong đó MSSV là mã số sinh viên, sau ký tự “-“ là các số 1, 2, 3 … tương ứng với các ảnh số
1 hoặc 2 hoặc 3 … Ảnh chụp độ phân giải ít nhất 3Mpx Sau khi được xác thực ảnh sẽ được đưa vào cơ sở dữ liệu
Sinh viên cũng có thể gặp trực tiếp người phụ trách
để thu thập ảnh từ Camera
Bước 2: Nhập dữ liệu thi trước mỗi buổi thi
Trang 20Trước mỗi lần thi, người phụ trách sẽ nhập danh sách thí sinh thi tương ứng với các phòng thi, danh sách này được nhập từ file Excel và được tải vào máy chủ (trong chương trình demo này danh sách được lọc theo mã sinh viên)
Bước 3: Quy trình tại phòng thi
Tại phòng thi chương trình nhận dạng dựa trên dữ liệu từ máy chủ gửi xuống.Trước mỗi lần thi cần kiểm tra
hệ thống nhận dạng: camera, ánh sáng Yêu cầu thí sinh đứng trực diện, ngay ngắn trước Camera Nếu nhận dạng thành công thì thí sinh đó được vào thi, nếu nhận dạng 3 lần không thành công thí sinh cần xuất trình thẻ sinh viên(hoặc chứng minh thư) để cán bộ coi thi đối chiếu
Camera
Ánh sáng Ánh sáng
Hình 3.1 Mô hình nhận dạng ở phòng thi
Trang 213.3 Chức năng của phần mềm
Chương trình nhận dạng khuôn mặt được viết bằng C# với thư viện EmguCV - trình bao bọc (wrapper) của OpenCV cho ngôn ngữ C#)
Chương trình sử dụng Logitech HD Webcam C270
Phát hiện khuôn mặt
Trích rút đặc trưng Tiền xử lý
Phân loại
Dữ liệu kiểm tra (Từ ảnh/
Camera)
Phát hiện khuôn mặt
Trích rút đặc trưng Tiền xử lý Nhận dạng Kết quả
Trang 22máy chủ sẽ chuyển dữ liệu xuống các máy trạm, đó là những tập tin có phần mở rộng là LBPH theo mô hình mạng LAN
Trong mỗi buổi thi số thí sinh không quá 40 sinh viên, nên theo mô hình này thì máy chủ gửi dữ liệu về máy trạm không lớn
3.3.1 Chương trình trên máy chủ (Server)
Server có chức năng thu thập ảnh và trích rút đặc trưng Ảnh thu thập có thể là ảnh tĩnh (từ tập tin hoặc thư mục), hoặc ảnh chụp từ Camera
Hình 3.3 Giao diện chương trình Server
Trang 23Hình 3.4 Chức năng thu thập ảnh từ Camera
Sau khi thu thập ảnh, chương trình sẽ trích rút đặc trưng ảnh theo điều kiện lọc và gửi xuống các máy trạm (Client) Ở đây điều kiện lọc là theo mã sinh viên (có thể
mở rộng lọc theo lớp, họ tên sinh viên ….)
Hình 3.5 Chức năng tạo dữ liệu Training
Dữ liệu sau khi tạo dữ liệu thành công sẽ được lưu
ở tập tin với phần mở rộng là LBPH, mặc định tên tập tin
Trang 24có định dạng là yyyyMMddHHmmss, người quản lý có thể thay đổi tên cho dễ nhớ
Hình 3.6 Dữ liệu sau khi Training
3.3.2 Chương trình trên máy trạm (Client)
Máy trạm sử dụng dữ liệu trích rút đặc trưng từ máy chủ gửi về và training(Huấn luyện) dữ liệu sau đó nhận dạng khuôn mặt từ hình ảnh thu được của Camera
Để sử dụng chương trình, người dùng nhấn vào biểu tượng có hình thư mục và mở tập tin máy chủ gửi về Sau
đó nhấn vào biểu tượng hình “Play” để chương trình nhận dạng
Nếu nhận dạng thành công/không thành công chương trình sẽ có thông báo bằng giọng nói nhận dạng
Trang 25thành công và thông báo trên màn hình Với mỗi lần nhận dạng 1 khuôn mặt được nhận dạng, phần mềm sẽ lấy kết quả của 5 lần nhận dạng liên tiếp nhau, khuôn mặt nhận dạng thành công khi kết quả của 5 lần là giống nhau
Hình 3.7 Kết quả nhận diện thành công
3.4 Đánh giá hiệu quả của phần mềm với trường CĐXD1
Khảo sát thực nghiệm với 35 học sinh của một lớp học tương ứng với một phòng thi thì tuỳ theo điều kiện cho kết quả nhận dạng khác nhau:
- Đối với những thí sinh gửi ảnh theo đúng yêu cầu, ảnh được gửi trong khoảng từ 1 tháng đến 12 tháng