Với sự phát triển mạnh mẽ của công nghệ thông tin và truyền thông, rất nhiều phương pháp nhận dạng khuôn mặt có độ chính xác cao, hiệu quả và dễ sử dụng đã được áp dụng nhiều trong các h
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
HỒ THĂNG THÔI
PHÁT TRIỂN HỆ THỐNG NHẬN DẠNG KHUÔN MẶT ỨNG DỤNG
TRONG CÁC HỆ THỐNG QUẢN LÝ NHÂN SỰ
Chuyên ngành: Kỹ thuật truyền thông
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN:
PGS TS NGUYỄN TIẾN DŨNG
Hà Nội – Năm 2013
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả
HỒ THĂNG THÔI
Trang 3LỜI NÓI ĐẦU
Xử lý ảnh là một lĩnh vực nghiên cứu rộng và có rất nhiều ứng dụng trong thực tế Một trong những khía cạnh nghiên cứu của xử lý ảnh là nhận dạng khuôn mặt Kỹ thuật này cho phép chúng ta nhận dạng khuôn mặt người từ ảnh tĩnh hay video bằng cách so sánh với kho dữ liệu có sẵn trong hệ thống Với sự phát triển mạnh mẽ của công nghệ thông tin và truyền thông, rất nhiều phương pháp nhận dạng khuôn mặt có độ chính xác cao, hiệu quả và dễ sử dụng đã được áp dụng nhiều trong các hệ thống tương tác giữa người và máy, đặc biệt là các hệ thống quản lý đòi hỏi có độ bảo mật và có tính ưu việt như hệ thống quản lý nhân sự, quản lý hàng hóa, giám sát sân bay v.v
Để xây dựng được một hệ thống quản lý nói chung và quản lý nhân sự nói riêng với những đòi hỏi về tính ưu việt, hiệu quả cao cũng như đảm bảo được các yêu cầu về an ninh khắt khe, các nhà nghiên cứu và kỹ thuật đã tích hợp các công nghệ khác nhau như công nghệ thông tin, tự động hóa, công nghệ không dây… trong cùng một hệ thống Có thể nói một trong những xu hướng phát triển chính của khoa học công nghệ hiện đại đó là tổng hợp thành tựu của các lĩnh vực khác nhau
để xây dựng một hệ thống đáp ứng được những yêu cầu ngày càng cao của sản xuất
và đời sống
Dựa trên cơ sở của việc nghiên cứu và đề xuất một phương pháp nhận dạng khuôn mặt mới có độ chính xác cao, tôi đã phát triển nghiên cứu của mình trong một ứng dụng về quản lý nhân sự sử dụng nhận dạng khuôn mặt làm nền tảng hoạt động chính Hệ thống này đồng thời cũng là đề tài nghiên cứu luận văn cao học của tôi với tên đề tài là: “Phát triển hệ thống nhận dạng khuôn mặt ứng dụng trong các
hệ thống quản lý nhân sự”
Nội dung mà tôi thực hiện trong luận văn là nghiên cứu bộ phân loại SVM, đặc trưng Haar sử dụng trong module nhận diện khuôn mặt và nghiên cứu cơ sở lý
Trang 4thuyết của bài toán chứng thực khuôn mặt sử dụng phương pháp Client Specific Fisherface để xây dựng module chứng thực khuôn mặt trong hệ thống, đồng thời với những kết quả thu được sau những nghiên cứu về nhận dạng khuôn mặt, tôi đã xây dựng và thiết kế một phần mềm quản lý nhân sự dựa trên việc ứng dụng công nghệ nhận dạng khuôn mặt
Nhằm thực hiện đầy đủ những nội dung đã đặt ra, luận văn được chia làm 5 chương chính:
- Chương 1: Tổng quan về hệ thống
- Chương 2: Module nhận diện khuôn mặt
- Chương 3: Module chứng thực khuôn mặt và phần mềm quản lý nhân sự
- Chương 4: Kết quả thực hiện và đánh giá kết quả
- Chương 5: Kết luận và hướng phát triển đề tài
Qua đây, tôi xin chân thành cảm ơn thầy giáo hướng dẫn PGS.TS Nguyễn Tiến Dũng đã có những định hướng và góp ý quý báu để tôi có thể hoàn thành tốt luận văn của mình với kết quả tốt nhất
Cuối cùng tôi xin cảm ơn các thầy cô giáo ở trường Đại học Bách Khoa Hà Nội nói chung và các thầy cô giáo ở Viện Điện tử - Viễn thông nói riêng, cảm ơn gia đình và bạn bè đã giúp đỡ, động viên tôi trong thời gian vừa qua
Hà Nội, ngày….tháng….năm 2013
Học viên
Hồ Thăng Thôi
Trang 5MỤC LỤC
LỜI NÓI ĐẦU 2
MỤC LỤC 4
DANH SÁCH CÁC HÌNH VẼ 8
DANH SÁCH CÁC BẢNG BIỂU 10
CHƯƠNG 1: TỔNG QUAN HỆ THỐNG QUẢN LÝ NHÂN SỰ 11
1.1 Tầm quan trọng của đề tài 11
1.1.1 Những vấn đề đặt ra với các hệ thống Quản lý nhân sự hiện nay 11
1.1.2 Mục đích và ý nghĩa của đề tài 13
1.2 Giới thiệu về hệ thống QLNS đề xuất 14
1.2.1 Sơ đồ khối 14
1.2.2 Các chức năng cơ bản của hệ thống 15
CHƯƠNG 2: MODULE NHẬN DẠNG KHUÔN MẶT 19
2.1 Cơ sở lý thuyết của bài toán nhận dạng khuôn mặt 19
2.2 Đặc trưng Haar 22
2.3 Support vector machine (SVM) 24
2.3.1 Bộ phân loại SVM tuyến tính 24
2.3.2 Bộ phân loại SVM phi tuyến 26
2.3.3 Mặt phân loại không lí tưởng 28
2.3.4 Thuật toán SMO 28
Trang 6CHƯƠNG 3: MODULE CHỨNG THỰC KHUÔN MẶT VÀ PHẦN MỀM
QUẢN LÝ NHÂN SỰ 32
3.1 Giới thiệu về các công nghệ chứng thực sinh trắc học 32
3.2 Tổng quan về bài toán chứng thực khuôn mặt 33
3.2.1 Bài toán chứng thực khuôn mặt và các ứng dụng 33
3.2.2 Ưu điểm của phương pháp chứng thực khuôn mặt 34
3.3 Phương pháp nhận dạng khuôn mặt Client Specific Fisherface 35
3.3.1 Không gian khuôn mặt và số chiều của không gian khuôn mặt 35
3.3.2 Phương pháp Client Specific Fisherface 35
3.4 Chứng thực khuôn mặt sử dụng phương pháp Client Specific Fisherface 36
3.4.1 Giả thiết cho bài toán chứng thực 36
3.4.2 Thuật toán Client Specific Fisherface 37
3.4.3 Quá trình chứng thực khuôn mặt sử dụng Client Specific Fisher face 40
3.5 Phần mềm quản lý nhân sự: 41
3.5.1 Giới thiệu phần mềm quản lý nhân sự 41
3.5.2 Phân tích và thiết kế hệ thống 45
CHƯƠNG 4: KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ KẾT QUẢ 51
4.1 Module nhận diện khuôn mặt sử dụng các đặc trưng Haar 51
4.2 Module chứng thực khuôn mặt 52
4.2.1 Lựa chọn công cụ và ngôn ngữ lập trình 52
4.2.2 Xây dựng tập dữ liệu khuôn mặt 53
4.2.3 Triển khai phương pháp Client Specific Fisherface 54
4.2.4 Module thu nhận hình ảnh người sử dụng 56
Trang 74.3 Phần mềm QLNS 56
4.3.1 Giao diện người sử dụng 57
4.3.2 Giao diện người quản lý 58
4.3.2.1 Danh mục công việc, trình độ và phòng ban 58
4.3.2.2 Danh mục nhân viên 59
4.3.2.3 Danh mục chấm công nhân viên 60
4.3.2.4 Danh mục giám sát chứng thực 61
4.3.2.5 Danh mục báo cáo thống kê nhân viên 62
CHƯƠNG 5 ĐÁNH GIÁ KẾT QUẢ CỦA HỆ THỐNG VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 64
5.1 Kết luận và đánh giá chung về hệ thống 64
5.1.1 Kết quả đạt được 64
5.1.2 Đánh giá chung về hệ thống 64
5.2 Hướng phát triển của đề tài 66
TÀI LIỆU THAM KHẢO 67
Trang 8THUẬT NGỮ TIẾNG VIỆT
1 BDIP Block Difference of Inverse
3 DFD Data Flow Diagram Biểu đồ luồng dữ liệu
4 ERD Enity Relationship Diagram Biểu đồ quan hệ thực thể
5 FD Function Diagram Biểu đồ chức năng
6 LAN Local Area Network Mạng nội bộ
7 PCA Principal Component
Analysis Phân tích thành phần chủ yếu
8 ROC Receiver Operating
Characteristic Đặc tính hoạt động của đầu vào
9 SVM Support Vector Machine Vecto trợ giúp
Trang 9DANH SÁCH CÁC HÌNH VẼ
Hình 1.1 Ưu điểm của hệ thống QLNS bằng phần mềm 12
Hình 1.2 Hạn chế của hệ thống QLNS truyền thống 13
Hình 1.3 Sơ đồ khối hệ thống QLNS ứng dụng nhận dạng khuôn mặt 14
Hình 2.1 Đặc trưng haar cơ bản 22
Hình 2.2 Các đặc trưng Haar mở rộng 23
Hình 2.3 phân loại dựa trên đặc tính haar 23
Hình 2.4 Phân loại mẫu sử dụng SVM thông qua mặt phẳng tối ưu 24
Hình 2.5 Toán tử ánh xạ φ biến đổi mặt phân cách phi tuyến thành mặt phẳng tuyến tính trong miền không gian đặc tính F 26
Hình 2.6 Hiệu ứng khi sử dụng ξ ( 1, 2, , N) 28
Hình 2.7 Điều kiện giới hạn cho sự tối ưu hóa 29
Hình 3.1 Quá trình hoạt động của hệ thống chứng thực sinh trắc học 33
Hình 3.2 Sơ đồ khối phương pháp Client Specific Fisherface 36
Hình 3.3 Thuật toán Client Specific Fisherface 41
Hình 3.4 Mẫu lưu trữ nhân viên 42
Hình 3.5 Mẫu phiếu chấm công nhân viên 43
Hình 3.6 Mẫu bảng lương nhân viên 43
Hình 3.7 Biểu đồ phân cấp chức năng 46
Hình 3.8 Biểu đồ mức ngữ cảnh 47
Hình 4.1 Phát hiện và khoanh vùng đúng đối tượng khuôn mặtt 52
Trang 10Hình 4.2 14 người đầu tiên trong tập dữ liệu khuôn mặt 53
Hình 4.3 Quá trình so sánh ảnh thu nhận từ camera và ảnh trong cơ sở dữ liệu 55
Hình 4.4 Giao diện dành cho người sử dụng 57
Hình 4.5 Giao diện dành cho người quản lý 58
Hình 4.6 Các chức năng Danh mục công việc, trình độ, và phòng ban 59
Hình 4.7 Chức năng quản lý thông tin cá nhân của nhân viên 60
Hình 4.8 Chức năng chấm công cho nhân viên 61
Hình 4.9 Chức năng giám sát chứng thực 62
Hình 4.10 Báo cáo về thông tin nhân viên 62
Hình 5.1 Các kết quả nghiên cứu đạt được 65
Trang 11DANH SÁCH CÁC BẢNG BIỂU
Bảng 4.1 Bảng so sánh các wrapper kết nối OpenCV với NET 53
Trang 12CHƯƠNG 1: TỔNG QUAN HỆ THỐNG QUẢN
LÝ NHÂN SỰ
1.1 Tầm quan trọng của đề tài
1.1.1 Những vấn đề đặt ra với các hệ thống Quản lý nhân sự hiện nay Các hệ thống Quản lý nhân sự (QLNS) hiện nay được sử dụng rất phổ biến
và rộng rãi từ trong các công sở, xí nghiệp, nhà máy cho đến các cơ quan tổ chức Nhà nước, trường học, bệnh viện, khách sạn…[1] Có thể nói các hệ thống QLNS
đã mang lại một cuộc cách mạng trong lĩnh vực quản lý, không những giảm thời gian và chi phí so với việc quản lý thủ công mà còn nâng cao hiệu quả và độ chính xác rất cao Với những đòi hỏi mới phát sinh trong quá trình sử dụng mà các hệ thống QLNS ngày càng được tăng cường thêm nhiều chức năng mới, giảm lao động trực tiếp của con người, tăng hiệu quả quản lý Từ những chức năng đơn giản ban đầu như lưu trữ thông tin, tìm kiếm, bổ sung và xóa thông tin khỏi hệ thống, các phần mềm quản lý thông minh hiện nay còn cho phép người dùng có thể thực hiện nhiều bài toán nghiệp vụ trên đó, đặc biệt có thể thực hiện việc chấm công và tính lương một cách chính xác và trung thực
Tuy nhiên, các hệ thống QLNS đang được áp dụng hiện nay vẫn tồn tại một
số hạn chế như :
Thứ nhất, với các hệ thống quản lý thuần túy xây dựng trên các kỹ thuật lập
trình phần mềm thì việc chấm công, tính lương cho nhân viên sẽ khó thực hiện được
do không giám sát được thời gian đi, về và thời gian làm việc của nhân viên, đặc biệt là ở các công ty lớn, số lượng nhân viên nhiều Để tính được lương theo ngày công một cách chính xác với nhân viên thì hệ thống QLNS cần có khả năng ghi lại thời gian đến, thời gian ra về, thời gian đó sẽ được lưu lại trong hệ thống để từ đó tính ra thời gian làm việc của nhân viên Với các hệ thống phần mềm thuần túy, việc nhập dữ liệu về thời gian đi và về của nhân viên phải thực hiện bằng tay và không
Trang 13thể xử lý tự động được Do đó, nhu cầu đặt ra là cần tự động hóa quá trình nhập dữ liệu và xử lý dữ liệu đối với các hệ thống quản lý giám sát
Hình 1.1 Ưu điểm của hệ thống QLNS bằng phần mềm Thứ hai, việc tính toán và xử lý số liệu do con người làm đôi khi gặp phải
một số sai sót, nhầm lẫn gây ra những tổn thất cho công ty hoặc nhân viên Đặc biệt đối với những nhà máy sản xuất, khi người quản lý không giám sát chặt chẽ giờ giấc làm việc của công nhân sẽ làm mất đi độ chính xác khi chấm công tính lương Hoặc trường hợp xấu hơn có thể có là người ngoài công ty sẽ lợi dụng sơ hở của nhân viên trong công ty để ra vào trái phép, các tài sản của công ty trong thời gian này khó có thể đảm bảo an toàn Điều này đặt ra một bài toán kỹ thuật đòi hỏi tăng cường độ chính xác của thông tin đầu vào cho hệ thống quản lý, khắc phục các thiếu sót và nhầm lẫn trong quá trình giám sát truy nhập hệ thống của các nhân viên trong công ty
Trang 14HỆ THỐNG QUẢN LÝ NHÂN SỰ TRUYỀN THỐNG
xâm nhập vào công ty
Sai lệch kết quả trong bài toán chấm công tính lương
Nguy cơ với các tài sản giá trị của công ty
Hình 1.2 Hạn chế của hệ thống QLNS truyền thống
Trước những hạn chế còn tồn tại ở các hệ thống hiện thời, để xây dựng được một hệ thống QLNS đáp ứng được đầy đủ các chức năng cơ bản và đảm bảo được cho bài toán chấm công và tính lương một cách chính xác nhất, nâng cao tính bảo mật và an toàn cho hệ thống, tôi đã lựa chọn đề tài “Phát triển hệ thống nhận dạng khuôn mặt ứng dụng trong các hệ quản lý nhân sự”
1.1.2 Mục đích và ý nghĩa của đề tài
Như đã đề cập ở trên, mục đích của tôi khi chọn đề tài đó là muốn xây dựng hoàn thiện một hệ thống QLNS khắc phục được những tồn tại thiếu sót của các hệ thống trước đó, sử dụng các công nghệ hiện đang rất phát triển vào một lĩnh vực có tính áp dụng cao trong thực tế Hệ thống được xây dựng sẽ đáp ứng những mục đích
cơ bản đề ra như sau:
Thực hiện đầy đủ chức năng của một bài toán QLNS thông thường, cho phép nhập, sửa, xóa, quản lý thông tin về các nhân viên trong công ty
Trang 15 Đảm bảo được yêu cầu bài toán chấm công tính lương, thông tin đầu vào được xác thực và tính toán chính xác
Quản lý truy nhập vào các phòng ban quan trọng thông qua cơ chế phân quyền người sử dụng
1.2 Giới thiệu về hệ thống QLNS đề xuất
Hệ thống được xây dựng sẽ bao gồm các module chính được thể hiện qua sơ
đồ khối tổng quan dưới đây, tiếp theo đó sẽ là phần chú thích cụ thể về các module
và chức năng của từng module trong hệ thống
1.2.1 Sơ đồ khối
Hình 1.3 Sơ đồ khối hệ thống QLNS ứng dụng nhận dạng khuôn mặt
Trang 16Hệ thống bao gồm hai phần chính là xác thực thông tin đầu vào và phần mềm QLNS Module xác thực thông tin đầu vào gồm có webcam để chụp ảnh người sử dụng, cơ sở dữ liệu của mỗi nhân viên và cơ sở dữ liệu khuôn mặt Đầu vào sẽ là khuôn mặt người và mã nhân viên được sử dụng cùng một thời điểm
1.2.2 Các chức năng cơ bản của hệ thống
1.2.2.1 Hoạt động của hệ thống
Hệ thống sẽ hoạt động cơ bản theo chu trình sau:
1 Thu nhận thông tin User image và mã nhân viên
2 Mã nhân viên sẽ được kiểm tra sự tồn tại và tính hợp lệ
3 Nếu hợp lệ, dữ liệu trả về cho hệ thống FaceID tương ứng với mã nhân viên nhập vào
4 Sau các bước trên, hệ thống đã có được User image va FaceID tương ứng
5 Dữ kiện này được đưa vào module chứng thực khuôn mặt để thực hiện chứng thực
5.1 Nếu dữ kiện này so khớp (matched), quá trình đăng
nhập thành công, thông tin đăng nhập sẽ được cập nhật vào phần mềm QLNS (thông tin đăng nhập bao gồm ảnh khuôn mặt,mã nhân viên, thời gian đăng nhập)
5.2 Nếu dự kiện này không so khớp, hệ thống đưa ra cảnh
báo và cho phép đăng nhập lại
6 Phần mềm QLNS sẽ có Staff Database, với thông tin được trả về sau quá trình đăng nhập thành công (ảnh khuôn mặt, thời gian đăng nhập)
sẽ được xử lý để thực hiện các chức năng: Quản lý nhân viên, chấm công tính lương và kết xuất các báo cáo định kỳ
Trang 171.2.2.2 Phương pháp nhận dạng và xác thực khuôn mặt sử dụng trong hệ thống
Để nhận dạng khuôn mặt, hiện nay có 2 phương pháp chủ yếu [2]:
- 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) Phương pháp này nhận dạng khuôn mặt dựa trên 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, ) và mối quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách của hai lông mày, ) Ư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 Hơn nữa, với việc xác định đặc tính
và các mối quan hệ, phương pháp này cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi Nhưng nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác định mối quan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp Mặt khác, với các ảnh kích thước bé thì đặc tính sẽ khó phân biệt
- Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition) Phương pháp này sẽ xem mỗi bức ảnh khuôn mặt có kích thước RxC
là một vector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới có chiều nhỏ hơn sao cho khi biểu diễn trong không gian đó, các đặc điểm chính của một khuôn mặt không bị mất đi Trong không gian đó, các ảnh của cùng một người
sẽ được tập trung lại thành một nhóm gần nhau và cách xa các nhóm khác
Ngoài ra còn có một số phương pháp khác như :
- Nhận dạng 2D: Elastic Bunch Graph, Active Appearance Model
- Nhận dạng 3D: 3D Morphable Model
Trong hệ thống này, phương pháp nhận dạng khuôn mặt được tiến hành qua hai giai đoạn:
Thứ nhất là quá trình nhận dạng khuôn mặt (Face detection) cho phép tìm ra
vị trí và kích thước của khuôn mặt trong một bức ảnh số hoặc trong các hình ảnh được được ghi lại bởi camera Quá trình này cần đảm bảo nhận dạng đúng khuôn
Trang 18mặt, phân biệt tốt yếu tố khuôn mặt với các yếu tố không phải khuôn mặt như nhà cửa, cây cối… Module nhận dạng khuôn mặt được xây dựng dựa trên việc sử dụng
2 đặc trưng về kết cấu BDIP và BVLC được tính toán từ ảnh dữ liệu đầu vào, sau đó
sẽ phân loại chúng vào các mômen đặc trưng rồi sử dụng bộ phân loại SVM để xác định khuôn mặt Phương pháp này đã được thử nghiệm trên nhiều tập hình ảnh với các điều kiện khác nhau về hướng, độ sáng v.v và cho tỷ lệ nhận dạng chính xác luôn cao hơn 95%
Thứ hai là quá trình xác thực khuôn mặt Quá trình này cho phép đối chiếu
hình ảnh thu được sau bước nhận dạng khuôn mặt và các hình ảnh lấy ra từ cơ sở dữ liệu rồi đưa ra quyết định chấp nhận hay từ chối việc đăng nhập vào hệ thống Đối với hệ thống nhận dạng khuôn mặt này thì module này sẽ chỉ cần so sánh hình ảnh sau bước thu nhận với ảnh trong cơ sở dữ liệu tương ứng với mã nhân viên đó Có nhiều thuật toán có thể áp dụng cho bài toán này như Eigenface sử dụng PCA, Fisherface sử dụng LDA
1.2.2.3 Phần mềm quản lý nhân sự
Ngày nay phần mềm được ứng dụng trong hầu hết các lĩnh vực của cuộc sống hiện đại Trong cuộc sống hàng ngày, chúng ta đều tiếp xúc một cách trực tiếp hoặc gián tiếp đến các hệ thống phần mềm với quy mô từ nhỏ đến lớn Từ các thiết
bị dân dụng trong gia đình như tivi, máy giặt, lò vi sóng…đều được ứng dụng các phần mềm nhúng để điều khiển hoạt động đến các hệ thống lớn như trong các ngân hàng, các công ty, trường học… Tất cả đều được ứng dụng phần mềm trong một phần hay toàn bộ công việc Đóng góp một phần quan trọng trong thế giới phần mềm đó là các phần mềm quản lý dữ liệu, quản lý sản phẩm trong kho, quản lý bán hàng, quản lý sách, quản lý sinh viên, quản lý nhân sự công ty… đều là những ví dụ rất điển hình về dữ liệu
Phần mềm QLNS được xây dựng với mục đích ứng dụng công nghệ nhận dạng khuôn mặt gồm 2 phần chính:
Trang 19+ Giao diện dành cho người dùng để người dùng có thể đăng nhập vào hệ thống bằng việc nhập mã nhân viên và nhận dạng khuôn mặt bằng camera
+ Giao diện dành cho người quản trị, tổ chức nhân sự,…
Phần trên được xây dựng bằng ngôn ngữ C# với hệ cơ sở dữ liệu chung là SQL Server2005 Phần mềm có nhiệm vụ quản lý thông tin cán bộ công nhân viên trong một công ty hoặc trong các phòng ban của công ty, quản lý vào ra, thời gian làm việc cũng như thời gian kết thúc công việc của nhân viên trong ngày Sau đó tổng hợp số liệu cho việc chấm công, tính lương, khen thưởng, kỷ luật một cách tiện lợi, nhanh chóng và chính xác
Trang 20CHƯƠNG 2: MODULE NHẬN DẠNG KHUÔN MẶT
Nội dung của chính được trình bày trong chương này là tổng quan về bài toán nhận dạng khuôn mặt, các phương pháp tiếp cận để giải quyết bài toán nhận diện khuôn mặt, các ứng dụng của hệ thống nhận diện khuôn mặt và cơ sở lý thuyết các kỹ thuật được lựa chọn áp dụng trong luận văn để xây dựng nên hệ thống mà tôi
đã nghiên cứu và tìm hiểu
2.1 Cơ sở lý thuyết của bài toán nhận dạng khuôn mặt
Nhận dạng khuôn mặt (Face detetion) là bước đầu tiên trong hai bước của quá trình nhận dạng khuôn mặt người (Face recognition) Nhận dạng khuôn mặt là
một công nghệ phát triển rất mạnh mẽ và đã có những ứng dụng mạnh mẽ trong nhiều lĩnh vực từ công nghiệp, dịch vụ, y tế cho đến quân sự Nhận dạng khuôn mặt cũng giống như nhận dạng bằng sóng vô tuyến, là một công nghệ nhận dạng tự
động AIDC (Auto Identification Data Collection) và nằm trong hệ thống các phương pháp nhận dạng dựa trên các đặc điểm sinh trắc học (biometric) bao gồm một số phương pháp như nhận dạng khuôn mặt, nhận dạng vân tay (fingerprint), nhận dạng đồng tử mắt (iris recognition) hay nhận dạng tiếng nói (Voice recognition)…
Xác định khuôn mặt người là một kỹ thuật máy tính dùng để xác định vị trí
và kích thước của khuôn mặt người trong một ảnh số bất kỳ [9] Công nghệ nhận dạng khuôn mặt cho phép phân biệt được khuôn mặt người với các chi tiết không phải khuôn mặt người trong một bức ảnh số như nhà cửa, cây cối….Lịch sử phát triển của công nghệ nhận dạng khuôn mặt đã trải qua nhiều thập kỷ với sự tiến bộ từ những công nghệ xử lý đơn giản đối với ảnh đen trắng, xám, cho đến ảnh màu và thậm chí là công nghệ nhận dạng 3D như ngày nay Các yêu cầu đặt ra với bài toán nhận dạng khuôn mặt cũng không ngừng được nâng cao từ lúc ban đầu khi mỗi bức
Trang 21hình đen trắng chỉ có một khuôn mặt, đầu luôn ở tư thế nhìn thẳng cho đến những bức ảnh màu, trong hình gồm nhiều khuôn mặt khác nhau và có thể ở nhiều tư thế cũng như ở những điều kiện ánh sáng khác nhau Hiện nay, công nghệ nhận dạng khuôn mặt đã được phát triển giải quyết được những bài toán phức tạp như nhận diện 3D, nhận diện thời gian thực khi camera số ghi lại hình ảnh và phần mềm nhận diện khuôn mặt có thể phát hiện và bám sát mục tiêu được nhận diện là khuôn mặt Đây chính là sự tiến bộ vượt bậc khiến công nghệ nhận dạng khuôn mặt đã được áp dụng rộng rãi trong lĩnh vực công nghiệp như áp dụng trong máy ảnh kỹ thuật số
(digital camera), trong giao tiếp người và máy tính (human computer interaction), công nghệ nhận dạng khuôn mặt cùng với xác thực khuôn mặt (face authentication) được áp dụng phổ biến trong các hệ thống an ninh (security system) như chứng thực
hộ chiếu (passport verification), nhận diện tội phạm (criminal verification)
Có rất nhiều phương pháp nhận diện khuôn mặt người, tuy nhiên, tổng kết lại
có thể chia làm 4 hướng tiếp cận chính:
Hướng tiếp cận dựa trên tri thức (knowledge-based)
Hướng tiếp cận dựa trên các đặc trưng không thay đổi (feature invariant)
Hướng tiếp cận dựa trên so khớp mẫu (template matching)
Hướng tiếp cận dựa trên diện mạo (appearance-based)
a) Hướng tiếp cận dựa trên tri thức
Hướng tiếp cận này chủ yếu dựa trên các luật định nghĩa về khuôn mặt người Các luật này thường mô tả về các mối quan hệ giữa các thành phần trên khuôn mặt người Các quan hệ đặc trưng có thể được mô tả như quan hệ về khoảng cách và vị trí Theo phương pháp này, những người thực hiện sẽ trích chọn đặc trưng của khuôn mặt trước tiên để có được các ứng viên, sau đó các ứng viên này sẽ được xác định thông qua các luật để biết ứng viên nào là khuôn mặt và ứng viên nào không phải là mặt Khó khăn với phương pháp này là làm sao chuyển từ tri thức của
Trang 22con người về khuôn mặt sang các luật một cách có hiệu quả vì nếu các luật chặt chẽ quá thì có thể xác định thiếu các khuôn mặt vì không phải khuôn mặt nào cũng đáp ứng được tất cả các luật Một số phương pháp nghiên cứu theo hướng này như Kanade, G.Yang, Kotropoulos, Sahbi và Boujemaa, Farhad và Abdolhorsein…
b) Hướng tiếp cận dựa trên các đặc trưng không thay đổi
Hướng tiếp cận này tập trung vào việc tìm kiếm những đặc trưng độc lập của khuôn mặt – những đặc trưng không phụ thuộc vào tư thế khuôn mặt nghiêng hay thẳng, điều kiện chiếu sáng, chất lượng hình ảnh v.v Các đặc trưng thỏa mãn những điều đó gọi là các đặc trưng bất biến và được sử dụng để phát hiện khuôn mặt Các nghiên cứu đầu tiên sẽ chỉ ra các đặc trưng của khuôn mặt sau đó quyết định xem khuôn mặt có nằm trong ảnh hay không Các đặc trưng như lông mày, mắt, mũi, miệng và đường viền của tóc được trích chọn bằng phương pháp xác định cạnh Trên cơ sở các đặc trưng này, xây dựng mô hình thống kê để mô tả quan hệ của các đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh Phương pháp này có thể xác định dựa trên các đặc trưng cạnh của khuôn mặt, phân bố của màu da… với các nghiên cứu của Sirohey, Chetverikov và Lerch, Yow và Cipolla, Augusteijin và Skufca, Sobottka và Pitas…
c) Hướng tiếp cận dựa trên so khớp mẫu
Trong hướng tiếp cận này, một mẫu khuôn mặt được định nghĩa bằng tay trước hoặc được tham số hóa bằng một hàm số Mẫu này được sử dụng để phát hiện khuôn mặt người bằng cách quét nó qua ảnh và tính toán giá trị tương đồng cho mỗi
vị trí ví dụ về đường viền khuôn mặt, mắt, mũi và miệng Việc xuất hiện một khuôn mặt tại một vị trí nào đó trong ảnh phụ thuộc và giá trị tương đồng của điểm đó so với mẫu chuẩn Hướng tiếp cận này có lợi thế là dễ sử dụng, nhưng không có hiệu quả khi tỷ lệ, tư thế và hình dáng thay đổi Nhiều độ phân giải, đa tỷ lệ, các mẫu con
và các mẫu biến dạng được xem xét thành bất biến về tỷ lệ và hình dạng
Phương pháp tiêu biểu trong hướng tiếp cận này là PCA (Principal Component Analysis) để xác định hình chiếu của khuôn mặt được sử dụng như các
mẫu để xác định khuôn mặt người, hình chiếu được mô tả như một mảng các bit
Trang 23d) Hướng tiếp cận dựa trên diện mạo
Phương pháp này thường dùng một mô hình máy học nên còn được gọi là
phương pháp máy học (machine learning-based) Ngược với phương pháp so sánh
mẫu sử dụng các mẫu được định nghĩa trước, phương pháp này sử dụng những mẫu được rút trích qua một quá trình học Nói cách khác, các thuật toán dựa trên máy học dùng các kỹ thuật phân tích thống kê và máy học xấp xỉ một hàm phân lớp tuyến tính Có nhiều mô hình máy học được áp dụng trong hướng tiếp cận này như:
Eigenface (M.Turk và A Pentland), Mô hình dựa trên phân phối (K.Sung và T.Poggion), Mạng nơron (H.Rowley), Support Vector Machine (E.Osuna), Phân lớp Bayes (H.Schneiderman và T.Kanade), Mô hình Markov ẩn (A.Rajagopalan) và các
mô hình tăng cường như AdaBoost (P.Viola và M.Jones), FloatBoost (Stan Z.Li và Zhen Qiu Zhang)…
2.2 Đặc trưng Haar
Đặc trưng Haar được xây dựng từ các hình chữ nhật có kích thước bằng nhau dùng để tính độ chênh lệch giữa các giá trị điểm ảnh trong các vùng kề nhau Mỗi đặc trưng Haar là sự kết hợp của các hình chữ nhật “trắng” hay “ đen” và có 4 đặc trưng cơ bản như sau:
Hình 2.1 Đặc trưng haar cơ bản
Để sử dụng các đặc trưng này vào việc xác định khuôn mặt người, 4 đặc trưng Haar cơ bản được mở rộng vào chia làm 3 tập đặc trưng:
1 Đặc trưng cạnh (edge features):
Trang 242 Đặc trưng đường (line features):
3 Đặc trưng xung quanh tâm (center-surround features):
Hình 2.2 Các đặc trưng Haar mở rộng
Để phát hiện ra mặt người bằng cách ta huấn luyện dựa vào các đặc trưng haar like, sau đó dựa vào tập huấn luyện này để phát hiện khuôn mặt Để làm được như vậy, ảnh đầu vào trước hết phải được xám hóa, sau đó cho một hoặc nhiều hình chữ nhật chứa đặc trưng haar-like chạy khắp bức ảnh, những chỗ khác biệt sẽ được lưu trữ lại Tập hợp hàng nghìn điểm khác biệt của hàng trăm khuôn mặt khác nhau
sẽ cho ta một tập dữ liệu dùng cho việc phát hiện mặt người
Hình 2.3 phân loại dựa trên đặc tính haar
Trang 25Trên hình là một đặc trưng haar-like trên vùng mắt, bây giờ nếu có hàng trăm đặc trưng như vậy trên hàng trăm bức ảnh huấn luyện thì sao? ta sẽ được một phân
lớp, tập hợp của rất nhiều phân lớp này sẽ cho ta xác định vùng chứa khuôn mặt
2.3 Support vector machine (SVM)
Với một tập các mẫu huấn luyện từ 2 nhóm khác nhau, SVM có thể tìm được một mặt phẳng tối ưu phân tách 2 nhóm của các mẫu này, sao cho phần lề cho trước
ở hai bên mặt phẳng tối ưu này là lớn nhất, có nghĩa là khoảng cách từ mặt phẳng này tới mẫu gần nhất là lớn nhất Các mẫu huấn luyện nằm song song với mặt phẳng tối ưu được sử dụng để xác định phần lề được gọi là vector trợ giúp như mô
tả trong hình 2.4
Hình 2.4 Phân loại mẫu sử dụng SVM thông qua mặt phẳng tối ưu
2.3.1 Bộ phân loại SVM tuyến tính
Dựa trên ý tưởng về mặt phẳng tối ưu để phân loại các mẫu Giả sử ta có tập mẫu huấn luyện S:{(xi,y i),i1, ,N}có thể phân tách tuyến tính, trong đó Rn
và y i{} Mục đích của SVM là xây dựng mặt phẳng tối ưu để chia các mẫu trong tập S thành hai phần và được gắn nhãn tương ứng Điều đó tương đương với việc tìm mặt phẳng tối ưu H : w x b 0 và hai mặt phẳng khác H1: w x b 1
vàH2: w x b 1 song song và có cùng khoảng cách tới mặt phẳng tối ưu, với điều kiện là khoảng cách giữa H1 và H2 là lớn nhất và không có mẫu nào nằm giữa chúng Có nghĩa là có thể tìm được cặp ( w ,b) thỏa mãn điều kiện:
Trang 26N i
2
2
1 2
1
w w
w
(2.2)với điều kiện ràng buộc trong công thức (2.1)
Nếu chúng ta ký hiệu α(1,2, ,N) là N hệ số Lagrange với giá trị không âm gắn với điều kiện ràng buộc trong công thức (2.4), bài toán tìm OSH sẽ tương đương với tối thiểu hóa hàm số sau đây:
i
i i
b L
1 1
) (
2
1 ) , ,
(2.3)trong đó α 0
Bài toán này có thể đưa về việc giải bài toán hai chiều của Wolfe, tức là thay
vì tìm giá trị tối thiểu của hàm, chúng ta sẽ tìm giá trị tối đa của hàm (w b, ,α) theo
α và thỏa mãn điều kiện ràng buộc:
0
w
Trang 27i y
(2.5.2)Thay vào biểu thức của L(w b, ,α), ta có:
i i
L
1 ,
1
xx
(2.6)Giá trị ngưỡng b khi đó có thể được xác định như sau :
N i
) (
2.3.2 Bộ phân loại SVM phi tuyến
Trên thực tế, với các dữ liệu không thể phân loại sử dụng phương pháp phi tuyến, ta thường phân tích và sử dụng các toán tử phân loại phi tuyến φ( ) để ánh xạ các mẫu dữ liệu ban đầu trong không gian đầu vào vào không gian nhiều chiều F, còn gọi là không gian đăc tính, như mô tả hình 2.5 Trong không gian F, chúng ta
có thể áp dụng phương pháp phân loại SVM tuyến tính như đã xét
F
Hình 2.5 Toán tử ánh xạ φ biến đổi mặt phân cách phi tuyến thành mặt
phẳng tuyến tính trong miền không gian đặc tính F
Trang 28Sử dụng kỹ thuật Lagrange, điều kiện cân thiết để tối thiểu hóa trong biểu thức 2.10 là vector w được biểu diễn từ tổ hợp tuyến tính các vector ánh xạ φ( ), có nghĩa là:
) (
1
i
x φ
i y
(2.9)Trong đó, i0 là các hệ số Lagrange gắn với các ràng buộc trong công thức (2.8) và (2.9) Trong không gian F, chúng ta giải bài toán:
)()(2
1)
(
1 1 1
j N
i N
j
i j i j i N
) (
f x x x
(2.11)Trong đó K(xi,xj)φ(xj)φ(xj) ký hiệu là hàm lõi của không gian đầu vào
và thỏa mãn định lý Mercer’s, có nghĩa là hàm lõi trong không gian đầu vào có thể biểu diễn ở dạng tích vô hướng trong không gian đa chiều F Một số hàm lõi thường sử dụng được liệt kê dưới đây:
1 Lõi đa thức (Polynomial kernel)
d
K(x,y)(x,y) , trong đó d là bậc của lõi (2.12)
2 Lõi Gaussian cơ sở (Gaussian radial basic function kernel)
Trang 29j i j
i
(2.13)2.3.3 Mặt phân loại không lí tưởng
Trên thực tế, rất khó để tìm được mặt phẳng tối ưu H mà không có dữ liệu mẫu nào ở giữa mặt phẳng H1 và H2 Vì vậy chúng ta cần sử dụng thêm các biến
) ,
b
y i(wxi )1i, 1, ,
(2.14)Hàm giá trị có thể được thay đổi như sau :
N i C
2.3.4 Thuật toán SMO
Thuật toán SMO tìm kiếm các giá trị cho phép thỏa mãn điều kiện kép (dual proplem) và tối đa hóa hàm tổng quan:
Trang 30Điều kiện giới hạn cho sự tối ưu hóa thể hiện như hình vẽ :
Hình 2.7 Điều kiện giới hạn cho sự tối ưu hóa
Thay vào LD ta có :
=
Đặt
Trang 31-Nếu γ>C thì max α2 =C, min α2= γ-C
-Nếu γ<C thì min α2 =0, max α2 = γ
+Nếu s=1 , α1- α2=γ
-Nếu γ>0 thì min α2=0, max α2= C- γ
-Nếu γ<0 thì min α2= - γ, max α2=C
Gọi giá trị nhỏ nhất và lớn nhất trong dải giá trị cho phép của α2 là L và H Khi đó ta có:
(2.20)
Trang 32Tổng kết:
Cho giá trị (có các giá trị hàm tương ứng
), ta có thể tối ưu các hệ số này theo các bước sau:
*Tính toán lại các thông số sau khi tối ưu các hệ số :
Khi được thay đổi bởi , ta phải tính toán lại các thành phần
Ei, w (với bộ phân loại tuyến tính) và b
(2.21) (2.22)
(2.23)
Trang 33CHƯƠNG 3: MODULE CHỨNG THỰC KHUÔN MẶT VÀ PHẦN MỀM QUẢN LÝ NHÂN SỰ
3.1 Giới thiệu về các công nghệ chứng thực sinh trắc học
Công nghệ chứng thực sinh trắc học (Biometric Authentication Technology)
là một phương pháp chứng thực tự động dựa trên những đặc điểm sinh học hay hành vi của con người [10]
Các phương pháp nhận dạng dựa trên các đặc điểm sinh lý học (dựa trên giá trị đo và dữ liệu thu nhận được từ những phép đo áp dụng trên cơ thể con người) bao gồm:
- Nhận dạng vân tay (Fingerprint Scan)
- Nhận dạng khuôn mặt (Face Recognition)
- Nhận dạng đồng tử (Iris Recognition)
- Nhận dạng võng mạc (Retina Recognition)
- Nhận dạng bàn tay (Hand Recognition)
Các phương pháp nhận dạng dựa trên hành vi (dựa trên các giá trị đo và dữ liệu nhận được từ hành động của con người) bao gồm:
- Nhận dạng giọng nói (Voice Recognition)
- Nhận dạng chữ kí (Signature Recognition)
- Nhận dạng chữ viết tay (Handwriting Recogniton)
Việc chứng thực sinh trắc học yêu cầu cần phải so sánh những mẫu sinh trắc mà hệ thống đã được “học” (gọi là mẫu đã được đăng kí) với mẫu sinh trắc mới được hệ thống thu nhận và yêu cầu chứng thực (ví dụ như ảnh người sử dụng khi đăng nhập) [11]
Trang 34Hình 3.1 Quá trình hoạt động của hệ thống chứng thực sinh trắc học
3.2 Tổng quan về bài toán chứng thực khuôn mặt
3.2.1 Bài toán chứng thực khuôn mặt và các ứng dụng
Khuôn mặt con người đóng vai trò quan trọng trong việc chứa đựng thông tin
về bản thân con người Cho tới bây giờ, cơ chế nhận dạng khuôn mặt của bộ não vẫn còn chưa được hiểu biết hết và đó vẫn là một đề tài đang tiếp tục được nghiên cứu Trong khi đó, bài toán nhận dạng và chứng thực khuôn mặt trên máy tính cũng
là một đề tài nóng hổi được nhiều nhà khoa học trên thế giới tiếp tục phát triển và hoàn thiện Việc chứng thực khuôn mặt bằng máy tính cho phép triển khai nhiều ứng dụng có ý nghĩa to lớn trong thực tế, từ các lĩnh vực dân sự như công nghiệp, y
tế, dịch vụ… cho đến quân sự như các hệ thống an ninh, giám sát … Có thể nêu một số ứng dụng tiêu biểu của nhận dạng và chứng thực khuôn mặt như:
- Hệ thống tương tác giữa người và máy tính (Human computer interaction): giúp những người bị tật hoặc khiếm khuyết có thể trao đổi làm việc với máy tính thông qua các biểu hiện về nét mặt, cảm xúc hoặc các cử chỉ (hệ thống nhận dạng
cử chỉ có nguyên tắc tương tự như hệ thống nhận dạng khuôn mặt)
- Hệ thống máy rút tiền tự động ATM: Kiểm tra và lưu trữ người rút tiền để đối chứng với thông tin về chủ tài khoản, tránh trường hợp chủ tài khoản bị mất thẻ
và mã PIN hoặc trường hợp cho mượn thẻ Đồng thời, nếu hiện tượng nói trên xảy
ra có thể dễ dàng tìm ra thủ phạm nhờ việc lưu giữ hình ảnh sau khi đối chiếu