Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.71 MB, 22 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀTRUYỀN THƠNG VIỆT - HÀN
Sinh viên thực hiện <b>: Nguyễn Thái Bảo</b>
Giảng viên hướng dẫn <b>: ThS. Đỗ Công Đức</b>
Đơn vị thực tập <b>: Công ty TNHH MTV Phan Gia Huy</b>
Người hướng dẫn <b>: Lê Văn Tịnh</b>
<i><b>Đà Nẵng, tháng 01 năm 2021</b></i>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">Hệ thống điểm danh bằng nhận diện khuôn mặt 1
Trước tiên em xin được bày tỏ sự trân trọng và lịng biết ơn đối với thầy giáoThs.Đỗ Cơng Đức giảng viên – Khoa Khoa học máy tính. Trong suốt thời gian học vàlàm đồ án tốt nghiệp, thầy đã dành rất nhiều thời gian quý báu để tận tình chỉ bảo,hướng dẫn, định hướng cho em thực hiện đồ án thực tập.
Em xin được cảm ơn các thầy cô giáo Trường Đại Việt Hàn đã giảng dạy trongquá trình học tập, thực hành, làm bài tập, giúp em hiểu thấu đáo hơn các nội dung họctập và những hạn chế cần khắc phục trong việc học tập, nghiên cứu và thực hiện bảnđồ án này.
Em xin được cảm ơn đơn vị thực tập – Công ty TNHH MTV Phan Gia Huy, vàcác anh chị nhân viên công ty đã hỗ trợ và chỉ bảo em trong suôt qua trình thực tập
Em xin cảm ơn các bạn bè và nhất là các thành viên trong gia đình đã tạo mọiđiều kiện tốt nhất, động viên, cổ vũ trong suốt quá trình học tập và đồ án tốt nghiệp.
Em xin chân thành cảm ơn!
Đà nẵng, ngày 17 tháng 1 năm 2021Sinh viên
Nguyễn Thái Bảo
Khoa: Khoa học máy tính – Lớp 18IT2 Nguyễn Thái Bảo
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Hệ thống điểm danh bằng nhận diện khuôn mặt 2
CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN...7
2.1 Mục đích nghiên cứu và thực hiện đề tài...7
2.2 Phân tích vấn đề...7
2.3 Hệ thống điểm danh hiện tại của công ty...7
2.4 Tồn tại của hệ thống chấm công thủ công...7
2.5 Tồn tại của việc điểm danh bằng vân tay...7
2.6 Khả năng vượt trội của hệ thống điểm danh nhận diện khuôn mặt...8
2.7 Phạm vi nghiên cứu...8
2.8 Nguồn số liệu và dữ liệu nghiên cứu...8
2.9 Nội dung nghiên cứu...8
CHƯƠNG 3: CHI TIẾT ĐỀ TÀI...9
3.3.2 Chức năng của OpenCV...14
3.3.3 Cấu trúc của OpenCV...14
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Hệ thống điểm danh bằng nhận diện khuôn mặt 3
3.4.2 Đặc trưng Haar...15
3.5 Khái niệm xử lí ảnh và phát hiện khn mặt người...16
3.5.1 Khái niệm về xử lí ảnh...16
3.5.2 Bài tốn phát hiện khuôn mặt người trong ảnh...16
CHƯƠNG 4: TRIỂN KHAI VÀ XÂY DỰNG...17
4.1 Phân tích bài tốn nhận diện khn mặt người...17
4.1.1 Phát hiện khuôn mặt ( Face detection )...17
4.1.2 Tiền xử lý ( Preprocessing )...17
4.1.3 Trích rút đặc trưng ( Feature extraction )...17
4.1.4 Nhận dạng ( Recognition ) / Phân loại ( Cassification)...17
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Hệ thống điểm danh bằng nhận diện khn mặt 4
Hình 3.1 Cấu trúc OpenCV...14
Hình 3.2 Đặc trưng cạnh...15
Hình 3.3 Đặc trưng đường...15
Hình 3.4 Đặc trưng xung quanh tâm...15
Hình 3.5 Cơng thức tính giá trị Haar...15
Hình 4.1 Các bước nhận diện khn mặt người...17
Hình 4.2 Sơ đồ Usecase nhận diện khn mặt...18
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Hệ thống điểm danh bằng nhận diện khuôn mặt 5
Công nghệ Nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác địnhhoặ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 khunghì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ánhcá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.
Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể đượcso sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròngmắt như nhiều người có thể biết.
Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngànhComputer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành 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). Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớnvới nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bướctrích chọn đặt trưng (feature extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tayvà mống mắt đã đạt tới độ chín, tức là 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 và vẫn là một lĩnh vực nghiên cứu thúvị với nhiều người. So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồndữ liệu phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clipnào liên quan tới con người trên mạng) và ít địi hỏi sự tương tác có kiểm soát hơn (đểthực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi cósự hợp tác trong mơi trường có kiểm sốt).
Vì vậy, nhận dạng khn mặt được cho là có tiềm năng lớn hơn và có tính khảthi hơn trong tương lai và hệ thống điểm danh bằng nhận diện khuôn mặt không phảilà ngoại lệ.
Trong bài báo cáo này em sẽ giới thiệu về đơn vị thực tập và nêu ra các giảipháp để phát triển hệ thống điểm danh tại đây, đồng thời đưa ra phân tích và nghiêncứu về chủ đề nhận diện khuôn mặt áp dụng trong việc điểm danh.
Khoa: Khoa Học Máy Tính. – Lớp 18IT2 Nguyễn Thái Bảo
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Hệ thống điểm danh bằng nhận diện khuôn mặt 6CHƯƠNG 1: GI I THI U VỀỀ Đ N V TH C T PỚ Ệ Ơ Ị Ự Ậ
1.1 C quan th c t pơ ự ậ
Tên cơ quan: Công ty TNHH Một Thành Viên Phan Gia Huy.
Địa chỉ: 36 Nguyễn Thuật, Phường Hòa An, Quận Cẩm Lệ, Thành phố Đà Nẵng.Email:
Website: www.phangiahuy.com1.2 Gi i thi u chungớ ệ
<b>Công ty TNHH Phan Gia Huy được thành lập vào ngày 15/07/2010 với các ngành</b>
nghề hoạt động chủ yếu trong lĩnh vực CNTT và Truyền Thông như: thiết kế Web,phát triển các ứng dụng trên nền Web, tư vấn giải pháp phần mềm, thiết kế nhận diệnthương hiệu, Thương mại điện tử, Quảng bá doanh nghiệp trên Internet...
<b>Phan Gia Huy tự hào có được một đội ngũ chuyên viên, nhân viên giàu kinh</b>
nghiệm, kiến thức chuyên mơn tốt, đa dạng. Đội ngũ tư vấn uy tín của công ty luônđồng hành cùng khách hàng nhằm đưa ra những giải pháp tối ưu nhất, mang đến sự hàilịng cho khách hàng với những sản phẩm có chất lượng cao cùng với giá thành hợp lý.Với mục tiêu trở thành một đơn vị có uy tín trong lĩnh vực CNTT tại Việt Nam, đemlại những tiện ích cho khách hàng.
<b>Phan Gia Huy sẽ khơng ngừng nâng cao trình độ, củng cố đội ngũ, cải tiến nâng</b>
cao chất lượng sản phẩm để ngày càng có những sản phẩm tốt hơn phục vụ kháchhàng.
1.3 Lĩnh v c ho t đ ngự ạ ộ
Hoạt động chủ yếu trong lĩnh vực CNTT và Truyền Thông như: thiết kế Web,phát triển các ứng dụng trên nền Web, tư vấn giải pháp phần mềm, thiết kế nhận diệnthương hiệu, Thương mại điện tử, Quảng bá doanh nghiệp trên Internet...
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Hệ thống điểm danh bằng nhận diện khuôn mặt 7CHƯƠNG 2: NGHIÊN C U T NG QUANỨ Ổ
2.1 M c đích nghiên c u và th c hi n đêầ tàiụ ứ ự ệ
Đề xuất nghiên cứu và lắp đặt hệ thống điểm danh bằng nhận diện khuôn mặtthay thế cho hệ thống điểm danh thủ công hiện tại. Nhằm cải thiện hiệu suất làm việcvà kiểm soát giờ làm của nhân viên một cách chính xác hơn.
2.2 Phần tích vầấn đêầ
Việc quản lý thơng qua hình thức chấm vân tay tiềm ẩn nhiều bất cập và rủi ro,nhất là trong thời điểm hiện nay. Tại sao lại có nhận định như vậy? Hiện nay, dịchCovid – 19 đang ngày càng diễn biến phức tạp, Bộ Y tế đã đưa ra khuyến cáo để ngườidân ý thức hơn trong việc bảo vệ sức khỏe của bản thân và mọi người xung quanh.Trong đó, việc tiếp xúc nơi cơng cộng sẽ gia tăng khả năng lây nhiễm cao hơn.
Do đó, việc nhân viên công sở đi làm chấm công bằng vân tay, cư dân vào cáctòa nhà, chung cư ấn thang máy bằng tay sẽ tiềm ẩn về nguy cơ lây nhiễm virus chéo.Vì vậy, việc sử dụng hệ thống nhận diện khn mặt bằng hệ thống AI trong các ứngdụng quản lý sẽ giúp cho việc quản lý được diễn ra thuận lợi, nhanh chóng và đảm bảoan về sức khỏe.
Theo đó, mọi cư dân khi đến các tòa nhà chung cư, nhân viên đi làm tại công ty,doanh nghiệp chỉ cần đưa khn mặt của mình trước thiết bị, và trong vài giây, thiết bịsẽ thu nhận và xử lý thông tin nhanh chóng. Đây thực sự là “giải pháp vàng” không chỉtrong thời điểm dịch Covid – 19 đang bùng phát, mà nó cịn là sự lựa chọn thơng minhtrong thời đại cách mạng 4.0.
2.5 Tốần t i c a vi c đi m danh bằầng vần tayạ ủ ệ ể
Điểm danh bằng vân tay là hệ thống điểm danh được sử dụng khá rộng rãi với tínhtiện lợi của nó và khả năng kiểm sốt giờ làm nhân viên tốt hơn mà không cần mộtngười chấm công chịu trách nhiệm việc này, tuy nhiên nó vẫn cịn nhiều nhược điểmkhó giải quyết như:
– Nguy cơ lây lan dịch bệnh ( Đặc biệt là Covid-19 vào thời điểm này)
Khoa: Khoa Học Máy Tính. – Lớp 18IT2 Nguyễn Thái Bảo
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Hệ thống điểm danh bằng nhận diện khuôn mặt 8– Không thể kiểm soát được giờ làm việc của nhân viên
– Hệ thống nhận diện vân tay khó chính xác khi tay của nhân viên có thể mỗi lúccó một tình trạng khác nhau ( Vd: đổ mồ hôi, bị xước tay…)
2.6 Kh nằng vả ượt tr i c a h thốấng đi m danh nh n di n khuốn m tộ ủ ệ ể ậ ệ ặHệ thống điểm danh nhận diện khuôn mặt hầu như khắc phục được hầu hết cáctồn tại của các cách điểm danh truyền thống hay vân tay như trên và cịn có thể vượttrội hơn về nhiều mặt:
– Kiểm soát được việc ra vào của nhân viên
– Không cần một nhân viên chịu trách nhiệm cho việc điểm danh– Kiểm soát được hoạt động của nhân viên qua camera
– Có thể tích hợp hệ thống vào hệ thống camera sẵn có của cơng ty– Nhận diện nhanh và chính xác
Nghiên cứu về công nghệ điểm danh bằng nhận diện khuôn mặt
Nghiên cứu các cơng nghệ và ngơn ngữ lập trình được sử dụng xun suốt dự ánnhư:
– Ngơn ngữ lập trình Python– Thư viện OpenCV
– Thuật tốn nhận diện khn mặt Haar cascade
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Hệ thống điểm danh bằng nhận diện khuôn mặt 9
CHƯƠNG 3: CHI TIÊẾT ĐÊỀ TÀI3.1 Nh n di n khuốn m tậ ệ ặ
Công nghệ Nhận dạng khn mặt là một ứng dụng máy tính tự động xác địnhhoặ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 khunghì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ánhcá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.
Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể đượcso sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròngmắt như nhiều người có thể biết.
3.1.1 T ng quan vềề nh n di n khuôn m tổ ậ ệ ặ
Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngànhComputer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành 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). Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớnvới nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bướctrích chọn đặt trưng (feature extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tayvà mống mắt đã đạt tới độ chín, tức là 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 và vẫn là một lĩnh vực nghiên cứu thúvị với nhiều người. So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồndữ liệu phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clipnào liên quan tới con người trên mạng) và ít địi hỏi sự tương tác có kiểm sốt hơn (đểthực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người địi hỏi cósự hợp tác trong mơi trường có kiểm sốt).
Hiện nay các phương pháp nhận dạng mặt được chia thành nhiều hướng theocác tiêu chí khác nhau: nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D(still image basedFR) là phổ biến nhất, tuy nhiên tương lai có lẽ sẽ là 3D FR (vì việc bố trí nhiều camera2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn), cũng có thể chiathành 2 hướng là: làm với dữ liệu ảnh và làm với dữ liệu video. Trên thực tế người tahay chia các phương pháp nhận dạng mặt ra làm 3 loại: phương pháp tiếp cận toàn cục(global, như Eigenfaces-PCA, Fisherfaces-LDA), phương pháp tiếp cận dựa trên cácđặc điểm cục bộ (local feature based, như LBP, Gabor wavelets) và phương pháp lai(hybrid, là sự kết hợp của hai phương pháp toàn cục và local feature).
Phương pháp dựa trên các đặc điểm cục bộ đã được chứng minh là ưu việt hơnkhi làm việc trong các điều kiện khơng có kiểm sốt và có thể nói rằng lịch sử pháttriển của nhận dạng mặt (A never ending story) là sự phát triển của các phương pháptrích chọn đặc trưng (feature extractrion methods) được sử dụng trong các hệ thốngdựa trên feature based. Các ứng dụng cụ thể của nhận dạng mặt dựa trên 2 mô hìnhnhận dạng: identification (xác định danh tính, bài tốn 1-N), và verification (xác thựcKhoa: Khoa Học Máy Tính. – Lớp 18IT2 Nguyễn Thái Bảo
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Hệ thống điểm danh bằng nhận diện khn mặt 10danh tính, bài tốn 1-1). Trong bài tốn identification, ta cần xác định danh tính củaảnh kiểm tra, cịn trong bài tốn verification ta cần xác định 2 ảnh có cùng thuộc vềmột người hay khơng.
Các pha trong một hệ thống nhận dạng mặt: để xây dựng một hệ thống nhậndạng mặt, cũng không hề đơn giản, bước đầu tiên cần thực hiện là face detection, tứclà phát hiện phần ảnh mặt trong dữ liệu input (CSDL ảnh, video …) và cắt lấy phầnảnh mặt để thực hiện nhận dạng (face cropping), bước thứ hai là tiền xử lý ảnh(preprocessing) bao gồm các bước căn chỉnh ảnh (face image alignment) và chuẩn hóấnh sáng (illumination normalization) (ở đây tơi đang nói tới các ảnh có góc nhìnthẳng – frontal view face image), tiếp đến là bước trích chọn đặc điểm (featureextraction), ở bước này một phương pháp trích chọn đặc điểm nào đó (mẫu nhị phâncục bộ – Local Binary Pattern – LBP, Gabor wavelets, …) sẽ được sử dụng với ảnhmặ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ễndưới dạng một vector đặc điểm (feature vector), bước tiếp theo là bước nhận dạng(recognition) hay phân lớp (classification), tức là xác định danh tính (identity) haynhãn (label) của ảnh – đó là ảnh của ai. Ở bước classification, thường thì phương phápk-láng giềng gần nhất (k-nearest neighbor:kNN) sẽ được sử dụng, thực tế cho thấy việcdùng SVM (Support Vector Machine) không mang lại hiệu quả cao hơn mà còn chậmhơn.
Dữ liệu cho một hệ thống nhận dạng mặt được chia làm 3 tập: tập huấn luyện(training set), tập tham chiếu (reference set hay gallery set) và tập để nhận dạng (probeset hay query set, đơi khi cịn gọi là test set). Trong nhiều hệ thống, tập training trùngvới tập reference. Tập training gồm các ảnh được dùng để huấn luyện (hay học-learning), thông thường tập này được dùng để sinh ra một không gian con (projectionsubspace) là một ma trận và phương pháp hay được sử dụng là PCA (PrincipalComponent Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis),KPCA (Kernel PCA). Tập reference gồm các ảnh đã biết danh tính được chiếu(projected) vào không gian con ở bước training. Bước training nhằm 2 mục đích: giảmsố chiều (dimension reduction) của các vector đặc điểm (feature vector) vì các vectornày thường có độ dài khá lớn (vài nghìn tới vài trăm nghìn) nên nếu để ngun thì việctính tốn sẽ rất rất lâu, thứ hai là làm tăng tính phân biệt (discriminative) giữa các ảnhkhác lớp (định danh khác nhau), ngoài ra có thể làm giảm tính phân biệt giữa các ảnhthuộc về một lớp (tùy theo phương pháp, ví dụ như Linear Discriminant AnalysisLDA- còn gọi là Fisher Linear Discriminant Analysis-Fisherface là một phương pháplàm việc với tập training mà mỗi đối tượng có nhiều ảnh mặt ở các điều kiện khácnhau). 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ếtquả 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 (địnhdanh đã 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, sau khi tiền xửlý xong, mỗi ảnh sẽ được áp dụng phương pháp trích chọn đặc điểm (như với các ảnh
</div>