UBND T Ỉ NH QU Ả NG NAM TRƯ Ờ NG Đ Ạ I H Ọ C QU Ả NG NAM KHOA: TOÁN - TIN ----- ----- CHANSAMOUTH INTHAVONG TÌM HI Ể U FACE ID VÀ TRI Ể N KHAI Ứ NG D Ụ NG NH Ậ N DI Ệ N SINH VIÊN VÀO L Ớ P KHOÁ LU Ậ N T Ố T NGHI Ệ P Đ Ạ I H Ọ C Qu ả ng nam, tháng 5 năm 2022 UBND T Ỉ NH QU Ả NG NAM TRƯ Ờ NG Đ Ạ I H Ọ C QU Ả NG NAM KHOA: TOÁN TIN ----- ----- KHÓA LU Ậ N T Ố T NGHI Ệ P Đ Ạ I H Ọ C Tên đ ề tài: TÌM HI Ể U FACE ID VÀ TRI Ể N KHAI Ứ NG D Ụ NG NH Ậ N DI Ệ N SINH VIÊN VÀO L Ớ P Sinh viên th ự c hi ệ n CHANSAMOUTH INTHAVONG MSSV: 2118100114 CHUYÊN NGÀNH: CÔNG NGH Ệ THÔNG TIN KHÓA 2018 – 2022 Cán b ộ hư ớ ng d ẫ n THS NGUY Ễ N VĂN KHƯƠNG MSCB: 15111 - 000170 Qu ả ng Nam, tháng 5 năm 2022 L Ờ I C Ả M ƠN Trong su ố t quá trình làm khóa lu ậ n t ố t nghi ệ p c ủ a mình, tôi luôn đươc s ự quan tâm giúp đ ỡ t ậ n tình đ ế n t ừ th ầ y giáo ThS Nguy ễ n Văn Khương, chính s ự giúp đ ỡ t ậ n tình ấ y đã giúp tôi hoàn thành t ố t khóa lu ậ n này Tôi xin g ử i l ờ i c ả m ơn chân thành và sâu s ắ c nh ấ t đ ế n th ầ y! Tôi xin chân thành c ả m ơn quý th ầ y giáo, cô giáo khoa Toán tin , trư ờ ng Đ ạ i h ọ c Qu ả ng Nam đã t ậ n tình dìu d ắ t và truy ề n đ ạ t ki ế n th ứ c cho tôi trong su ố t 4 năm h ọ c v ừ a qua V ớ i v ố n ki ế n th ứ c đư ợ c ti ế p thu trong quá trình h ọ c không ch ỉ là n ề n t ả ng ch o quá trình nghiên c ứ u khóa lu ậ n mà còn là hành trang qúy báu đ ể tôi bư ớ c vào đ ờ i m ộ t cách v ữ ng ch ắ c và t ự tin Xin chân thành c ả m ơn gia đình, b ạ n bè đã là ch ỗ d ự a v ữ ng ch ắ c, giúp tôi t ự tin hơn trong quá trình h ọ c t ậ p Trong quá trình làm bài khóa lu ậ n t ố t nghi ệ p này do trình đ ộ còn h ạ n h ẹ p, đ ề tài r ộ ng, th ờ i gian có h ạ n, khó tránh kh ỏ i sai sót, kính mong quý th ầ y cô giáo góp ý ki ế n đ ể tôi có th ể h ọ c h ỏ i thêm nhi ề u kinh nghi ệ m Xin chân thành c ả m ơn! Tam K ỳ , tháng 5 năm 2022 Sinh viên th ự c hi ệ n CHANSAMOUTH INTHAVONG M Ụ C L Ụ C PH Ầ N 1 M Ở Đ Ầ U 1 1 Lý do ch ọ n đ ề tài 1 2 M ụ c tiêu c ủ a đ ề tài 1 3 Đ ố i tư ợ ng và ph ạ m vi nghiên c ứ u 1 4 Phương pháp nghiên c ứ u 1 5 L ị ch s ử nghiên c ứ u 2 6 Đóng góp c ủ a đ ề tài 2 7 C ấ u trúc đ ề tài 2 CHƯƠNG 1: T Ổ NG QUAN V Ề B Ả O M Ậ T THÔNG TIN 3 1 1 GIỚI THIỆU VỀ BẢO MẬT THÔNG TIN 3 1 2 BẢO VỆ THÔNG TIN TRONG QUÁ TRÌNH TRUYỀN THÔNG TIN TRÊN MẠNG 3 1 2 1 Các loại hình tấn công 3 1 2 2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật 6 1 2 3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng 6 1 2 4 Các giao thức (protocol) thực hiện bảo mật 7 1 3 BẢO VỆ HỆ THỐNG KHỎI SỰ XÂM NHẬP PHÁ HOẠI TỪ BÊN NGOÀI 7 CHƯƠNG 2: GI Ớ I THI Ệ U CÔNG NGH Ệ FACE ID 9 2 1 T Ổ NG QUAN V Ề NH Ậ N D Ạ NG KHUÔN M Ặ T 9 2 1 1 Khái ni ệ m 9 2 1 2 D ự a tr ên tri th ứ c 9 2 1 2 1 D ự a trên đ ặ c trưng không đ ổ i 11 2 1 2 2 D ự a trên so kh ớ p m ẫ u 11 2 1 2 3 D ự a trên di ệ n m ạ o 13 2 1 3 Nh ữ ng khó khăn trong nh ậ n d ạ ng khuôn m ặ t 14 2 1 4 T ầ m quan tr ọ ng c ủ a nh ậ n d ạ ng khuôn m ặ t 15 2 1 5 Các ứ ng d ụ ng 15 2 2 GI Ớ I THI Ệ U CÔNG NGH Ệ FACE ID 16 2 2 1 Khái ni ệ m 16 2 2 2 Tính b ả o m ậ t c ủ a Face ID 17 2 2 3 Face ID ho ạ t đ ộ ng như th ế nào 18 2 2 4 Ưu và như ợ c đi ể m 18 2 3 GI Ớ I THI Ệ U THƯ VI Ệ N EMGUCV TRONG NGÔN NG Ữ L Ậ P TRÌNH C# 18 2 3 1 Gi ớ i thi ệ u 18 2 3 2 Imagebox 19 2 3 3 M ộ t s ố khái ni ệ m, thu ậ t ng ữ trong EmguCV 19 2 3 4 Các thao tác x ử lý hình ả nh cơ b ả n 21 CHƯƠNG 3: XÂY D Ự NG H Ệ TH Ố NG NH Ậ N DI Ệ N SINH VIÊN VÀO L Ớ P B Ằ NG FACE ID 25 3 1 CÁC BƯ Ớ C TRONG CHU TR ÌNH NH Ậ N DI Ệ N KHUÔN M Ặ T 25 3 2 M Ộ T S Ố ĐO Ạ N CODE CHƯƠNG TRÌNH 26 3 2 1 Đo ạ n code đưa thêm m ộ t khuôn m ặ t vào h ệ th ố ng 26 3 2 2 Đo ạ n code nh ậ n di ệ n và hi ể n th ị thông tin 27 2 3 M Ộ T S Ố GIAO DI Ệ N CHƯƠNG TRÌNH 30 2 3 1 Giao di ệ n chương trình chính 30 2 3 2 Giao di ệ n Nh ậ n di ệ n và t ổ ch ứ c 30 2 3 3 Giao di ệ n lưu thông tin khuôn m ặ t vào h ệ th ố ng 31 2 3 4 Giao di ệ n nh ậ n di ệ n 31 PH Ầ N 3 K Ế T LU Ậ N VÀ KHUY Ế N NGH Ị 32 1 K Ế T LU Ậ N 32 2 KI Ế N NGH Ị 32 TÀI LI Ệ U THAM KH Ả O 33 1 PH Ầ N 1 M Ở Đ Ầ U 1 Lý do ch ọ n đ ề tài Công ngh ệ thông tin ngày càng phát tri ể n và có vai trò h ế t s ứ c quan tr ọ ng không th ể thi ế u trong cu ộ c s ố ng hi ệ n đ ạ i Con ngư ờ i ngày càng t ạ o ra nh ữ ng c ỗ máy thông minh có kh ả năng t ự nh ậ n bi ế t và x ử lí đư ợ c các công vi ệ c m ộ t cách t ự đ ộ ng, ph ụ c v ụ cho l ợ i ích c ủ a con ngư ờ i Trong nh ữ ng năm g ầ n đây, m ộ t trong nh ữ ng bài toán nh ậ n đư ợ c nhi ề u s ự quan tâm và t ố n nhi ề u công s ứ c nh ấ t c ủ a lĩnh v ự c công ngh ệ thông tin, đó chính là bài toán nh ậ n d ạ ng Tuy m ớ i xu ấ t hi ệ n chưa lâu nhưng nó đã r ấ t đư ợ c quan tâm vì tính ứ ng d ụ ng th ự c t ế c ủ a bài toán cũng như s ự ph ứ c t ạ p c ủ a nó Bài toán nh ậ n d ạ ng có r ấ t nhi ề u lĩnh v ự c như: nh ậ n d ạ ng v ậ t ch ấ t (nư ớ c, l ử a, đ ấ t, đá, g ỗ ) nh ậ n d ạ ng ch ữ vi ế t, nh ậ n d ạ ng gi ọ ng nói, nh ậ n dang hình dáng, nh ậ n d ạ ng khuôn m ặ t trong đó ph ổ bi ế n và đư ợ c ứ ng d ụ ng nhi ề u hơn c ả là bài toán nh ậ n di ệ n khuôn m ặ t Đ ể nh ậ n d ạ ng đư ợ c khuôn m ặ t, bư ớ c đ ầ u tiên đ ể nh ậ n d ạ ng là phát hi ệ n ra khuôn m ặ t, đi ề u này th ự c s ự là quan tr ọ ng và h ế t s ứ c khó khăn Cho đ ế n t ậ n bây gi ờ , các nhà nghiên c ứ u v ẫ n chưa đ ạ t đư ợ c s ự ưng ý trong vi ệ c gi ả i quy ế t các khó khăn c ủ a bài toán và cho k ế t qu ả hoàn toàn đúng Tuy nhiên, nh ữ ng gì đã đ ạ t đư ợ c c ũ ng đ ủ đ ể chúng ta áp d ụ ng r ộ ng rãi và đem l ạ i nh ữ ng l ợ i ích to l ớ n trong cu ộ c s ố ng V ớ i s ự h ấ p d ẫ n c ủ a bài toán và nh ữ ng thách th ứ c còn đang ở phía trư ớ c, v ớ i ni ề m đam mê công ngh ệ hi ệ n đ ạ i và nh ữ ng ứ ng d ụ ng th ự c t ế tuy ệ t v ớ i c ủ a nó, v ớ i khát khao khám phá và chinh ph ụ c nh ữ ng chi th ứ c m ớ i m ẻ tôi đã ch ọ n đ ề tài nghiên c ứ u: Tìm hi ể u Face ID và tri ể n khai ứ ng d ụ ng nh ậ n di ệ n sinh viên vào l ớ p làm đ ề tài nghiên c ứ u và b ả o v ệ khóa lu ậ n t ố t nghi ệ p đ ạ i h ọ c c ủ a mình 2 M ụ c tiêu c ủ a đ ề tài N ắ m đư ợ c ki ế n th ứ c cơ b ả n v ề công ngh ệ face id Xây d ự ng đư ợ c ph ầ n m ề m nh ậ n di ệ n sinh viên vào l ớ p 3 Đ ố i tư ợ ng và ph ạ m vi nghiên c ứ u Công ngh ệ Face ID Ph ầ n m ề m nh ậ n di ệ n sinh viên vào l ớ p 4 Phương pháp nghiên c ứ u Phương pháp tìm hi ể u tài li ệ u Phương pháp phân tích Phương pháp th ự c nghi ệ m 2 5 L ị ch s ử nghiên c ứ u Có r ấ t nhi ề u đ ề tài nghiên c ứ u v ề v ấ n đ ề này: Đ ồ án Tìm hi ể u đ ặ c trưng lõm 3D và bài toán phát hi ệ n m ặ t ngư ờ i trong ả nh c ủ a Nguy ễ n Th ị Thơm Đ ề tài H ệ th ố ng nh ậ n di ệ n khuôn m ặ t trong ch ấ m công và đi ể m danh c ủ a Lê Trung Kiên, Nguy ễ n Văn Ki ệ n 6 Đóng góp c ủ a đ ề tài Có th ể góp ph ầ n giúp cho các ngư ờ i đ ọ c hi ể u rõ hơn v ề công ngh ệ Face ID và tri ể n khai m ộ t ứ ng d ụ ng nh ậ n di ệ n đơn gi ả n 7 C ấ u trúc đ ề tài Ngoài ph ầ n m ở đ ầ u, n ộ i dung, k ế t lu ậ n và tài li ệ u tham kh ả o thì n ộ i dung khóa lu ậ n g ồ m 3 chương: Chương I: T ổ ng quan v ề b ả o m ậ t thông tin Chương II: Gi ớ i thi ệ u công ngh ệ Face ID Chương III: Xây d ự ng h ệ th ố ng nh ậ n di ệ n sinh viên vào l ớ p b ằ ng Face ID 3 CHƯƠNG 1 : T Ổ NG QUAN V Ề B Ả O M Ậ T THÔNG TIN 1 1 GIỚI THIỆU VỀ BẢO MẬT THÔNG TIN Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn đề an toàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩ đến các biện pháp nhằm đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn và bí mật Chẳng hạn là các biện pháp như: - Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư có được chuyển nguyên vẹn đến người nhận hay không - Dùng mật mã mã hóa thông điệp để chỉ có người gửi và người nhận hiểu được thông điệp Phương pháp này thường được sử dụng trong chính trị và quân sự - Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo vệ nghiêm ngặt, chỉ có những người được cấp quyền mới có thể xem tài liệu Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triển của mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính và gửi đi trên mạng Internet Và do đó xuất hiện nhu cầu về an toàn và bảo mật thông tin trên máy tính Có thể phân loại mô hình an toàn bảo mật thông tin trên máy tính theo hai hướng chính như sau: 1) Bảo vệ thông tin trong quá trình truyền thông tin trê n mạng (Network Security) 2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại từ bên ngoài (System Security) 1 2 BẢO VỆ THÔNG TIN TRONG QUÁ TRÌNH TRUYỀN THÔNG TIN TRÊN MẠNG 1 2 1 Các loại hình tấn công Để xem xét những vấn đề bảo mật liên quan đến truyền thông trên mạng, chúng ta hãy lấy một bối ảnh sau: có ba nhân vật tên là Alice, Bob và Trudy, trong đó Alice và Bob thực hiện trao đổi thông tin với nhau, còn Trudy là kẻ xấu, đặt thiết bị can thiệp vào kênh truyền tin giữa Alice v à Bob Sau đây là các loại hành động tấn công của Trudy mà ảnh hưởng đến quá trình truyền tin giữa Alice và Bob: 4 1) Xem trộm thông tin (Release of Message Content) Trong trường hợp này Trudy chặn các thông điệp Alice gửi cho Bob, và xem được nội dung của thông điệp Xem trộm thông điệp 2) Thay đổi thông điệp (Modification of Message) Trudy chặn các thông điệp Alice gửi cho Bob và ngăn không cho các thông điệp này đến đích Sau đó Trudy thay đổi nội dung của thông điệp và gửi tiếp cho Bob Bob nghĩ rằng nhận được thông điệp nguyên bản ban đầu của Alice mà không biết rằng chúng đã bị sửa đổi Sửa thông điệp 5 3) Mạo danh (Masquerade) Trong trường hợp này Trudy giả là Alice gửi thông điệp cho Bob Bob không biết điều này và nghĩ rằng thông điệp là của Alice Mạo danh 4) Phát lại thông điệp (Replay) Trudy sao chép lại thông điệp Alice gửi cho Bob Sau đó một thời gian Trudy gửi bản sao chép này cho Bob Bob tin rằng thông đ iệp thứ hai vẫn là từ Alice, nội dung hai thông điệp là giống nhau Thoạt đầu có thể nghĩ rằng việc phát lại này là vô hại, tuy nhiên trong nhiều trường hợp cũng gây ra tác hại không kém so với việc giả mạo thông điệp Xét tình huống sau: giả sử Bob là ngâ n hàng còn Alice là một khách hàng Alice gửi thông điệp đề nghị Bob chuyển cho Trudy 1000$ Alice có áp dụng các biện pháp như chữ ký điện tử với mục đích không cho Trudy mạo danh cũng như sửa thông điệp Tuy nhiên nếu Trudy sao chép và phát lại thông điệ p thì các biện pháp bảo vệ này không có ý nghĩa Bob tin rằng Alice gửi tiếp một thông điệp mới để chuyển thêm cho Trudy 1000$ nữa Phát lại thông điệp 6 1 2 2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật Phần trên đã trình bày các hình thức tấn công, một hệ truyền tin được gọi là an toàn và bảo mật thì phải có khả năng chống lại được các hình thức tấn công trên Như vậy hệ truyền tin phải có các đặc tính sau: 1) Tính bảo mật ( Confidentiality ): Ngăn chặn đư ợc vấn đề xem trộm thông điệp 2) Tính chứng thực ( Authentication ): Nhằm đảm bảo cho Bob rằng thông điệp mà Bob nhận được thực sự được gửi đi từ Alice, và không bị thay đổi trong quá trình truyền tin Như vậy tính chứng thực ngăn chặn các hình thức tấn côn g sửa thông điệp, mạo danh, và phát lại thông điệp 3) Tính không từ chối ( Nonrepudiation ): xét tình huống sau: Giả sử Bob là nhân viên môi giới chứng khoán của Alice Alice gởi thông điệp yêu cầu Bob mua cổ phiếu của công ty Z Ngày hôm sau, giá cổ phiếu công ty này giảm hơn 50% Thấy bị thiệt hại, Alice nói rằng Alice không gửi thông điệp nào cả và quy trách nhiệm cho Bob Bob phải có cơ chế để xác định rằng chính Alice là người gởi mà Alice không thể từ chối trách nhiệm được Khái niệm chữ ký trên giấy m à con người đang sử dụng ngày nay là một cơ chế để bảo đảm tính chứng thực và tính không từ chối Và trong lĩnh vực máy tính, người ta cũng thiết lập một cơ chế như vậy, cơ chế này được gọi là chữ ký điện tử Mô hình bảo mật truyền thông tin trên mạng 1 2 3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng Mật mã hay mã hóa dữ liệu (cryptography), là một công cụ cơ bản thiết yếu của bảo mật thông tin Mật mã đáp ứng được các nhu cầu về tính bảo mật (confidentiality), tính chứng thực (authenticat ion) và tính không từ chối (non - repudiation) của một hệ truyền tin Tài liệu này trước tiên trình bày về mật mã cổ điển Những hệ mật mã cổ điển này tuy ngày nay tuy ít được sử dụng, nhưng chúng thể hiện những nguyên lý cơ bản 7 được ứng dụng trong mật mã hiện đại Dựa trên nền tảng đó, chúng ta sẽ tìm hiểu về mã hóa đối xứng và mã hóa bất đối xứng , chúng đóng vai trò quan trọng trong mật mã hiện đại Bên cạnh đó chúng ta cũng sẽ tìm hiểu về hàm Hash , cũng là một công cụ bảo mật quan trọng mà có nhiều ứng d ụng lý thú, trong đó có chữ ký điện tử 1 2 4 Các giao thức (protocol) thực hiện bảo mật Sau khi tìm hiểu về mật mã, chúng ta sẽ tìm hiểu về cách ứng dụng chúng vào thực tế thông qua một số giao thức bảo mật phổ biến hiện nay là: - Keberos: là giao thức d ùng để chứng thực dựa trên mã hóa đối xứng - Chuẩn chứng thực X509: dùng trong mã hóa khóa công khai - Secure Socket Layer (SSL): là giao thức bảo mật Web, được sử dụng phổ biến trong Web và thương mại điện tử - PGP và S/MIME: bảo mật thư điện tử email 1 3 BẢO VỆ HỆ THỐNG KHỎI SỰ XÂM NHẬP PHÁ HOẠI TỪ BÊN NGOÀI Ngày nay, khi mạng Internet đã kết nối các máy tính ở khắp nơi trên thế giới lại với nhau, thì vấn đề bảo vệ máy tính khỏi sự thâm nhập phá hoại từ bên ngoài là một điều cần thiết Thông qua mạng Internet, các hacker có thể truy cập vào các máy tính trong một tổ chức (dùng telnet chẳng hạn), lấy trộm các dữ liệu quan trọng như mật khẩu, thẻ tín dụng, tài liệu… Hoặc đơn giản chỉ là phá hoại, gây trục trặc hệ thống mà tổ chức đó phải tốn nhiều chi p hí để khôi phục lại tình trạng hoạt động bình thường Để thực hiện việc bảo vệ này, người ta dùng khái niệm “kiểm soát truy cập” (Access Control) Khái niệm kiểm soát truy cập này có hai yếu tố sau: - Chứng thực truy cập (Authentication): xác nhận rằng đ ối tượng (con người hay chương trình máy tính) được cấp phép truy cập vào hệ thống Ví dụ: để sử dụng máy tính thì trước tiên đối tượng phải logon vào máy tính bằng username và password Ngoài ra, còn có các phương pháp chứng thực khác như sinh trắc học (d ấu vân tay, mống mắt…) hay dùng thẻ (thẻ ATM…) - Phân quyền (Authorization): các hành động được phép thực hiện sau khi đã truy cập vào hệ thống Ví dụ: bạn được cấp username và password để logon vào hệ điều hành, tuy nhiên bạn chỉ được cấp quyền để đọc mộ t file nào đó Hoặc bạn chỉ có quyền đọc file mà không có quyền xóa file 8 Với nguyên tắc như vậy thì một máy tính hoặc một mạng máy tính được bảo vệ khỏi sự thâm nhập của các đối tượng không được phép Tuy nhiên thực tế chúng ta vẫn nghe nói đến các vụ tấn công phá hoại Để thực hiện điều đó, kẻ phá hoại tìm cách phá bỏ cơ chế Authentication và Authorization bằng các cách thức sau: - Dùng các đoạn mã phá hoại (Malware): như virus, worm, trojan, backdoor… những đoạn mã độc này phát tán lan truyền từ máy tính này qua máy tính khác dựa trên sự bất cẩn của người sử dụng, hay dựa trên các lỗi của phần mềm Lợi dụng các quyền được cấp cho người sử dụng (chẳng hạn rất nhiều người login vào máy tính với quyền administrator), các đoạn mã này thực hiện các lệnh phá ho ại hoặc dò tìm password của quản trị hệ thống để gửi cho hacker, cài đặt các cổng hậu để hacker bên ngoài xâm nhập - Thực hiện các hành vi xâm phạm (Intrusion): việc thiết kế các phần mềm có nhiều lỗ hổng, dẫn đến các hacker lợi dụng để thực hiện những lệ nh phá hoại Những lệnh này thường là không được phép đối với người bên ngoài, nhưng lỗ hổng của phần mềm dẫn đến được phép Trong những trường hợp đặc biệt, lỗ hổng phần mềm cho phép thực hiện những lệnh phá hoại mà ngay cả người thiết kế chương trình khô ng ngờ tới Hoặc hacker có thể sử dụng các cổng hậu do các backdoor tạo ra để xâm nhập - Để khắc phục các hành động phá hoại này, người ta dùng các chương trình có chức năng gác cổng, phòng chống Những chương trình này dò tìm virus hoặc dò tìm các hành v i xâm phạm đển ngăn chặn chúng, không cho chúng thực hiện hoặc xâm nhập Đó là các chương trình chống virus, chương trình firewall… Ngoài ra các nhà phát triển phần mềm cần có quy trình xây dựng và kiểm lỗi phần mềm nhằm hạn chế tối đa những lỗ hổng bảo mậ t có thể có Mô hình phòng chống xâm nhập và phá hoại hệ thống 9 CHƯƠNG 2 : GI Ớ I THI Ệ U CÔNG NGH Ệ FACE ID 2 1 TỔNG QUAN VỀ NHẬN DẠ NG KHUÔN MẶT 2 1 1 Khái ni ệ m H ệ th ố ng nh ậ n d ạ ng m ặ t ngư ờ i là m ộ t h ệ th ố ng nh ậ n vào là m ộ t ả nh ho ặ c m ộ t đo ạ n video (m ộ t dòng các hình ả nh liên t ụ c) Qua x ử lý, tính toán h ệ th ố ng xác đ ị nh đư ợ c v ị trí m ặ t ngư ờ i (n ế u có) trong ả nh và xác đ ị nh là ngư ờ i nào trong s ố nh ữ ng ngư ờ i mà h ệ th ố ng đã đư ợ c bi ế t (qua quá trình h ọ c) ho ặ c là ngư ờ i l ạ Hình 2 1 Hệ thống nhận dạng mặt người 2 1 2 D ự a trên tri th ứ c Trong hư ớ ng ti ế p c ậ n này, các lu ậ t s ẽ ph ụ thu ộ c r ấ t l ớ n vào tri th ứ c c ủ a nh ữ ng tác gi ả nghiên c ứ u v ề bài toán xác đ ị nh khuôn m ặ t ngư ờ i Đây là hư ớ ng ti ế p c ậ n d ạ ng top - down D ễ dàng xây d ự ng các lu ậ t cơ b ả n đ ể mô t ả các đ ặ c trưng c ủ a khuôn m ặ t và các quan h ệ tương ứ ng Ví d ụ , m ộ t khuôn m ặ t thư ờ ng có hai m ắ t đ ố i x ứ ng nhau qua tr ụ c th ẳ ng đ ứ ng ở gi ữ a khuôn m ặ t và có m ộ t mũi, m ộ t mi ệ ng Các quan h ệ c ủ a các đ ặ c trưng có th ể đư ợ c mô t ả như quan h ệ v ề kho ả ng cách và v ị trí Thông thư ờ ng s ẽ trích đ ặ 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 10 nào không ph ả i khuôn m ặ t Thư ờ ng áp d ụ ng quá trình xác đ ị nh đ ể g i ả m s ố lư ợ ng xác đ ị nh sai M ộ t v ấ n đ ề khá ph ứ c t ạ p khi dùng hư ớ ng ti ế p c ậ n này là làm sao chuy ể n t ừ tri th ứ c con ngư ờ i sang các lu ậ t m ộ t các hi ệ u qu ả N ế u các lu ậ t này quá chi ti ế t thì khi xác đ ị nh có th ể xác đ ị nh thi ế u các khuôn m ặ t có trong ả n h, vì nh ữ ng khuôn m ặ t này không th ể th ỏ a mãn t ấ t c ả các lu ậ t đưa ra Nhưng các lu ậ t t ổ ng quát quá thì có th ể chúng ta s ẽ xác đ ị nh l ầ m m ộ t vùng nào đó không ph ả i là khuôn m ặ t mà l ạ i xác đ ị nh là khuôn m ặ t Và cũng khó khăn m ở r ộ ng yêu c ầ u t ừ bài toán đ ể xác đ ị nh các khuôn m ặ t có nhi ề u tư th ế khác nhau Hai tác gi ả Yang và Huang dùng m ộ t phương th ứ c theo hư ớ ng ti ế p c ậ n như sau đ ể xác các khuôn m ặ t H ệ th ố ng c ủ a hai tác gi ả này bao g ồ m ba m ứ c lu ậ t Ở m ứ c cao nh ấ t, dùng m ộ t khung c ử a s ổ quét trên ả nh và thông qua m ộ t t ậ p lu ậ t đ ể tìm các ứ ng viên có th ể là khuôn m ặ t Ở m ứ c k ế ti ế p, hai ông dùng m ộ t t ậ p lu ậ t đ ể mô t ả t ổ ng quát hình dáng khuôn m ặ t Còn ở m ứ c cu ố i cùng l ạ i dùng m ộ t t ậ p lu ậ t khác đ ể xem xét ở m ứ c chi ti ế t các đ ặ c trưng khuôn m ặ t M ộ t h ệ th ố ng đa đ ộ phân gi ả i có th ứ t ự đư ợ c dùng đ ể xác đ ị nh Các lu ậ t ở m ứ c cao nh ấ t đ ể tìm ứ ng viên như: “vùng trung tâm khuôn m ặ t có b ố n ph ầ n v ớ i m ộ t m ứ c đ ộ đ ề u cơ b ả n”, “ph ầ n xung quanh bên trên c ủ a m ộ t khuôn m ặ t có m ộ t m ứ c đ ộ đ ề u cơ b ả n”, và “m ứ c đ ộ kh ác nhau gi ữ a các giá tr ị xám trung bình c ủ a ph ầ n trung tâm và ph ầ n bao bên trên là đáng k ể ” Đ ộ phân gi ả i th ấ p nh ấ t c ủ a ả nh dùng đ ể tìm ứ ng viên khuôn m ặ t mà còn tìm ở các m ứ c phân gi ả i t ố t hơn Ở m ứ c hai, xem xét bi ể u đ ồ histogram c ủ a các ứ ng viên đ ể lo ạ i b ớ t ứ ng viên nào không ph ả i là khuôn m ặ t, đ ồ ng th ờ i dò ra c ạ nh bao xung quanh ứ ng viên Ở m ứ c cu ố i cùng, nh ữ ng ứ ng viên nào còn l ạ i s ẽ đư ợ c xem xét các đ ặ c trưng c ủ a khuôn m ặ t v ề m ắ t và mi ệ ng Hai ông đã dùng m ộ t chi ế n lư ợ c “t ừ thô đ ế n m ị n” hay “làm rõ d ầ n” đ ể gi ả m s ố lư ợ ng tính toán trong x ử lý M ặ c dù t ỷ l ệ chính xác chưa cao, nhưng đây là ti ề n đ ề cho nhi ề u nghiên c ứ u sau này Hai tác gi ả Kotropoulos và Pitas đưa m ộ t phương pháp tương t ự dùng trên đ ộ phân gi ả i th ấ p Hai ông dùng phương pháp chi ế u đ ể x ác đ ị nh các đ ặ c trưng khuôn m ặ t, Kanade đã thành công v ớ i phương pháp chi ế u đ ể xác đ ị nh biên c ủ a khuôn m ặ t V ớ i I(x,y) là giá tr ị xám c ủ a m ộ t đi ể m trong ả nh có kích thư ớ c m x n ở t ạ i v ị trí (x,y), các hàm đ ể chi ế u ả nh theo phương ngang và th ẳ ng đ ứ ng đư ợ c đ ị nh nghĩa như sau: 11 {
TỔNG QUAN VỀ BẢO MẬT THÔNG TIN
GIỚI THIỆU VỀ BẢO MẬT THÔNG TIN
Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn đề an toàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩ đến các biện pháp nhằm đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn và bí mật Chẳng hạn là các biện pháp như:
- Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư có được chuyển nguyên vẹn đến người nhận hay không
- Dùng mật mã mã hóa thông điệp để chỉ có người gửi và người nhận hiểu được thông điệp Phương pháp này thường được sử dụng trong chính trị và quân sự
- Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo vệ nghiêm ngặt, chỉ có những người được cấp quyền mới có thể xem tài liệu.
BẢO VỆ THÔNG TIN TRONG QUÁ TRÌNH TRUYỀN THÔNG TIN TRÊN MẠNG
Có thể phân loại mô hình an toàn bảo mật thông tin trên máy tính theo hai hướng chính như sau:
1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network Security)
2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại từ bên ngoài (System Security)
1.2 BẢO VỆ THÔNG TIN TRONG QUÁ TRÌNH TRUYỀN THÔNG TIN TRÊN MẠNG
1.2.1 Các loại hình tấn công Để xem xét những vấn đề bảo mật liên quan đến truyền thông trên mạng, chúng ta hãy lấy một bối ảnh sau: có ba nhân vật tên là Alice, Bob và Trudy, trong đó Alice và Bob thực hiện trao đổi thông tin với nhau, còn Trudy là kẻ xấu, đặt thiết bị can thiệp vào kênh truyền tin giữa Alice và Bob Sau đây là các loại hành động tấn công của Trudy mà ảnh hưởng đến quá trình truyền tin giữa Alice và Bob:
1) Xem trộm thông tin (Release of Message Content)
Trong trường hợp này Trudy chặn các thông điệp Alice gửi cho Bob, và xem được nội dung của thông điệp
2) Thay đổi thông điệp (Modification of Message)
Trudy chặn các thông điệp Alice gửi cho Bob và ngăn không cho các thông điệp này đến đích Sau đó Trudy thay đổi nội dung của thông điệp và gửi tiếp cho Bob Bob nghĩ rằng nhận được thông điệp nguyên bản ban đầu của Alice mà không biết rằng chúng đã bị sửa đổi
Trong trường hợp này Trudy giả là Alice gửi thông điệp cho Bob Bob không biết điều này và nghĩ rằng thông điệp là của Alice
4) Phát lại thông điệp (Replay)
Trudy sao chép lại thông điệp Alice gửi cho Bob Sau đó một thời gian Trudy gửi bản sao chép này cho Bob Bob tin rằng thông điệp thứ hai vẫn là từ Alice, nội dung hai thông điệp là giống nhau Thoạt đầu có thể nghĩ rằng việc phát lại này là vô hại, tuy nhiên trong nhiều trường hợp cũng gây ra tác hại không kém so với việc giả mạo thông điệp Xét tình huống sau: giả sử Bob là ngân hàng còn Alice là một khách hàng Alice gửi thông điệp đề nghị Bob chuyển cho Trudy 1000$ Alice có áp dụng các biện pháp như chữ ký điện tử với mục đích không cho Trudy mạo danh cũng như sửa thông điệp Tuy nhiên nếu Trudy sao chép và phát lại thông điệp thì các biện pháp bảo vệ này không có ý nghĩa Bob tin rằng Alice gửi tiếp một thông điệp mới để chuyển thêm cho Trudy 1000$ nữa
1.2.2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật
Phần trên đã trình bày các hình thức tấn công, một hệ truyền tin được gọi là an toàn và bảo mật thì phải có khả năng chống lại được các hình thức tấn công trên Như vậy hệ truyền tin phải có các đặc tính sau:
1) Tính bảo mật ( Confidentiality ): Ngăn chặn được vấn đề xem trộm thông điệp
2) Tính chứng thực ( Authentication ): Nhằm đảm bảo cho Bob rằng thông điệp mà Bob nhận được thực sự được gửi đi từ Alice, và không bị thay đổi trong quá trình truyền tin Như vậy tính chứng thực ngăn chặn các hình thức tấn công sửa thông điệp, mạo danh, và phát lại thông điệp
3) Tính không từ chối ( Nonrepudiation ): xét tình huống sau:
Giả sử Bob là nhân viên môi giới chứng khoán của Alice Alice gởi thông điệp yêu cầu Bob mua cổ phiếu của công ty Z Ngày hôm sau, giá cổ phiếu công ty này giảm hơn 50% Thấy bị thiệt hại, Alice nói rằng Alice không gửi thông điệp nào cả và quy trách nhiệm cho Bob Bob phải có cơ chế để xác định rằng chính Alice là người gởi mà Alice không thể từ chối trách nhiệm được
Khái niệm chữ ký trên giấy mà con người đang sử dụng ngày nay là một cơ chế để bảo đảm tính chứng thực và tính không từ chối Và trong lĩnh vực máy tính, người ta cũng thiết lập một cơ chế như vậy, cơ chế này được gọi là chữ ký điện tử
Mô hình bảo mật truyền thông tin trên mạng
1.2.3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng
Mật mã hay mã hóa dữ liệu (cryptography), là một công cụ cơ bản thiết yếu của bảo mật thông tin Mật mã đáp ứng được các nhu cầu về tính bảo mật (confidentiality), tính chứng thực (authentication) và tính không từ chối (non-repudiation) của một hệ truyền tin
Tài liệu này trước tiên trình bày về mật mã cổ điển Những hệ mật mã cổ điển này tuy ngày nay tuy ít được sử dụng, nhưng chúng thể hiện những nguyên lý cơ bản được ứng dụng trong mật mã hiện đại Dựa trên nền tảng đó, chúng ta sẽ tìm hiểu về mã hóa đối xứng và mã hóa bất đối xứng, chúng đóng vai trò quan trọng trong mật mã hiện đại Bên cạnh đó chúng ta cũng sẽ tìm hiểu về hàm Hash, cũng là một công cụ bảo mật quan trọng mà có nhiều ứng dụng lý thú, trong đó có chữ ký điện tử
1.2.4 Các giao thức (protocol) thực hiện bảo mật
Sau khi tìm hiểu về mật mã, chúng ta sẽ tìm hiểu về cách ứng dụng chúng vào thực tế thông qua một số giao thức bảo mật phổ biến hiện nay là:
- Keberos: là giao thức dùng để chứng thực dựa trên mã hóa đối xứng
- Chuẩn chứng thực X509: dùng trong mã hóa khóa công khai
- Secure Socket Layer (SSL): là giao thức bảo mật Web, được sử dụng phổ biến trong Web và thương mại điện tử
- PGP và S/MIME: bảo mật thư điện tử email.
BẢO VỆ HỆ THỐNG KHỎI SỰ XÂM NHẬP PHÁ HOẠI TỪ BÊN NGOÀI
Ngày nay, khi mạng Internet đã kết nối các máy tính ở khắp nơi trên thế giới lại với nhau, thì vấn đề bảo vệ máy tính khỏi sự thâm nhập phá hoại từ bên ngoài là một điều cần thiết Thông qua mạng Internet, các hacker có thể truy cập vào các máy tính trong một tổ chức (dùng telnet chẳng hạn), lấy trộm các dữ liệu quan trọng như mật khẩu, thẻ tín dụng, tài liệu… Hoặc đơn giản chỉ là phá hoại, gây trục trặc hệ thống mà tổ chức đó phải tốn nhiều chi phí để khôi phục lại tình trạng hoạt động bình thường Để thực hiện việc bảo vệ này, người ta dùng khái niệm “kiểm soát truy cập” (Access Control) Khái niệm kiểm soát truy cập này có hai yếu tố sau:
- Chứng thực truy cập (Authentication): xác nhận rằng đối tượng (con người hay chương trình máy tính) được cấp phép truy cập vào hệ thống Ví dụ: để sử dụng máy tính thì trước tiên đối tượng phải logon vào máy tính bằng username và password Ngoài ra, còn có các phương pháp chứng thực khác như sinh trắc học (dấu vân tay, mống mắt…) hay dùng thẻ (thẻ ATM…)
- Phân quyền (Authorization): các hành động được phép thực hiện sau khi đã truy cập vào hệ thống Ví dụ: bạn được cấp username và password để logon vào hệ điều hành, tuy nhiên bạn chỉ được cấp quyền để đọc một file nào đó Hoặc bạn chỉ có quyền đọc file mà không có quyền xóa file
Với nguyên tắc như vậy thì một máy tính hoặc một mạng máy tính được bảo vệ khỏi sự thâm nhập của các đối tượng không được phép Tuy nhiên thực tế chúng ta vẫn nghe nói đến các vụ tấn công phá hoại Để thực hiện điều đó, kẻ phá hoại tìm cách phá bỏ cơ chế Authentication và Authorization bằng các cách thức sau:
- Dùng các đoạn mã phá hoại (Malware): như virus, worm, trojan, backdoor… những đoạn mã độc này phát tán lan truyền từ máy tính này qua máy tính khác dựa trên sự bất cẩn của người sử dụng, hay dựa trên các lỗi của phần mềm Lợi dụng các quyền được cấp cho người sử dụng (chẳng hạn rất nhiều người login vào máy tính với quyền administrator), các đoạn mã này thực hiện các lệnh phá hoại hoặc dò tìm password của quản trị hệ thống để gửi cho hacker, cài đặt các cổng hậu để hacker bên ngoài xâm nhập
- Thực hiện các hành vi xâm phạm (Intrusion): việc thiết kế các phần mềm có nhiều lỗ hổng, dẫn đến các hacker lợi dụng để thực hiện những lệnh phá hoại Những lệnh này thường là không được phép đối với người bên ngoài, nhưng lỗ hổng của phần mềm dẫn đến được phép Trong những trường hợp đặc biệt, lỗ hổng phần mềm cho phép thực hiện những lệnh phá hoại mà ngay cả người thiết kế chương trình không ngờ tới Hoặc hacker có thể sử dụng các cổng hậu do các backdoor tạo ra để xâm nhập
- Để khắc phục các hành động phá hoại này, người ta dùng các chương trình có chức năng gác cổng, phòng chống Những chương trình này dò tìm virus hoặc dò tìm các hành vi xâm phạm đển ngăn chặn chúng, không cho chúng thực hiện hoặc xâm nhập Đó là các chương trình chống virus, chương trình firewall… Ngoài ra các nhà phát triển phần mềm cần có quy trình xây dựng và kiểm lỗi phần mềm nhằm hạn chế tối đa những lỗ hổng bảo mật có thể có
Mô hình phòng chống xâm nhập và phá hoại hệ thống
GIỚI THIỆU CÔNG NGHỆ FACE ID
TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT
Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh hoặc một đoạn video (một dòng các hình ảnh liên tục) Qua xử lý, tính toán hệ thống xác định được vị trí mặt người (nếu có) trong ảnh và xác định là người nào trong số những người mà hệ thống đã được biết (qua quá trình học) hoặc là người lạ
Hình 2.1 Hệ thống nhận dạng mặt người
Trong hướng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài toán xác định khuôn mặt người Đây là hướng tiếp cận dạng top-down Dễ dàng xây dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan hệ tương ứng Ví dụ, một khuôn mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở giữa khuôn mặt và có một mũi, một miệng Các quan hệ của các đặc trưng có thể được mô tả như quan hệ về khoảng cách và vị trí Thông thường sẽ trích đặ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 khuôn mặt Thường áp dụng quá trình xác định để giảm số lượng xác định sai
Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao chuyển từ tri thức con người sang các luật một các hiệu quả Nếu các luật này quá chi tiết thì khi xác định có thể xác định thiếu các khuôn mặt có trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đưa ra Nhưng các luật tổng quát quá thì có thể chúng ta sẽ xác định lầm một vùng nào đó không phải là khuôn mặt mà lại xác định là khuôn mặt Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác định các khuôn mặt có nhiều tư thế khác nhau
Hai tác giả Yang và Huang dùng một phương thức theo hướng tiếp cận như sau để xác các khuôn mặt Hệ thống của hai tác giả này bao gồm ba mức luật Ở mức cao nhất, dùng một khung cửa sổ quét trên ảnh và thông qua một tập luật để tìm các ứng viên có thể là khuôn mặt Ở mức kế tiếp, hai ông dùng một tập luật để mô tả tổng quát hình dáng khuôn mặt Còn ở mức cuối cùng lại dùng một tập luật khác để xem xét ở mức chi tiết các đặc trưng khuôn mặt Một hệ thống đa độ phân giải có thứ tự được dùng để xác định Các luật ở mức cao nhất để tìm ứng viên như: “vùng trung tâm khuôn mặt có bốn phần với một mức độ đều cơ bản”, “phần xung quanh bên trên của một khuôn mặt có một mức độ đều cơ bản”, và “mức độ khác nhau giữa các giá trị xám trung bình của phần trung tâm và phần bao bên trên là đáng kể” Độ phân giải thấp nhất của ảnh dùng để tìm ứng viên khuôn mặt mà còn tìm ở các mức phân giải tốt hơn Ở mức hai, xem xét biểu đồ histogram của các ứng viên để loại bớt ứng viên nào không phải là khuôn mặt, đồng thời dò ra cạnh bao xung quanh ứng viên Ở mức cuối cùng, những ứng viên nào còn lại sẽ được xem xét các đặc trưng của khuôn mặt về mắt và miệng Hai ông đã dùng một chiến lược “từ thô đến mịn” hay “làm rõ dần” để giảm số lượng tính toán trong xử lý Mặc dù tỷ lệ chính xác chưa cao, nhưng đây là tiền đề cho nhiều nghiên cứu sau này Hai tác giả Kotropoulos và Pitas đưa một phương pháp tương tự dùng trên độ phân giải thấp Hai ông dùng phương pháp chiếu để xác định các đặc trưng khuôn mặt, Kanade đã thành công với phương pháp chiếu để xác định biên của khuôn mặt Với I(x,y) là giá trị xám của một điểm trong ảnh có kích thước m x n ở tại vị trí (x,y), các hàm để chiếu ảnh theo phương ngang và thẳng đứng được định nghĩa như sau:
Dựa trên biểu đồ hình chiếu ngang, có hai cực tiểu địa phương khi hai ông xét quá trình thay đổi độ đốc của HI, đó chính là cạnh bên trái và phải của hai bên đầu Tương tự với hình chiếu dọc VI, các cực tiểu địa phương cũng cho ta biết vị trí miệng, đỉnh mũi, và hai mắt Các đặc trưng này đủ để xác định khuôn mặt.
2.1.2.1 Dựa trên đặc trưng không đổi Đây là hướng tiếp cận theo kiểu bottom-up Các tác giả cố gắng tìm các đặc trưng không thay đổi của khuôn mặt người để xác định khuôn mặt người Dựa trên nhận xét thực tế, con người dễ dàng nhận biết các khuôn mặt và các đối tượng trong các tư thế khác nhau và điều kiện ánh sáng khác nhau, thì phải tồn tại các thuộc tính hay đặc trưng không thay đổi Có nhiều nghiên cứu đầu tiên xác định các đặc trưng khuôn mặt rồi chỉ ra có khuôn mặt 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 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ột 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 Một vấn đề của các thuật toán theo hướng tiếp cân đặc trưng cần phải điều chỉnh cho phù hợp điều kiện ánh sáng, nhiễu, và bị che khuất Đôi khi bóng của khuôn mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ hơn cạnh thật sự của khuôn mặt, vì thế nếu dùng cạnh để xác định sẽ gặp khó khăn
2.1.2.2 Dựa trên so khớp mẫu
Trong so khớp mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông qua một hàm Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn về đường viền khuôn mặt, mắt, mũi và miệng Thông qua các giá trị tương quan này mà các tác giả quyết định có hay không có tồn tại khuôn mặt trong ảnh Hướng tiếp cận này có lợi thế là rất dễ cài đặt, nhưng không 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 Hướng tiếp cận này có thể đi theo phương pháp sau: a Xác định mẫu trước
Tác giả Sakai đã cố gắng thử xác định khuôn mặt người chụp thẳng trong ảnh Ông dùng vài mẫu con về mắt, mũi, miệng, và đường viền khuôn mặt để mô hình hóa một khuôn mặt Mỗi mẫu con được định nghĩa trong giới hạn của các đoạn thẳng Các đường thẳng trong ảnh được trích bằng phương pháp xem xét thay đổi gradient nhiều nhất và so khớp các mẫu con Đầu tiên tìm các ứng viên thông qua mối tương quan giữa các ảnh con và các mẫu về đường viền Sau đó, so khớp với các mẫu con khác Hay nói một cách khác, giai đoạn đầu xem như là giai đoạn sơ chế để tìm ứng viên, giai đọan thứ hai là giai đoạn tinh chế để xác định có tồn tại hay không một khuôn mặt người Ý tưởng này được duy trì cho đến các nghiên cứu sau này
Còn tác giả Craw đưa ra một phương pháp xác định khuôn mặt người dựa vào các mẫu về hình dáng của các ảnh được chụp thẳng (dùng vẻ bề ngoài của hình dáng khuôn mặt) Đầu tiên dùng phép lọc Sobel để tìm các cạnh Các cạnh này sẽ được nhóm lại theo một số ràng buộc Sau đó, tìm đường viền của đầu, quá trình tương tự được lặp đi lặp lại với mỗi tỷ lệ khác nhau để xác định các đặc trưng khác như: mắt, lông mày,và môi
Sau đó Craw mô tả một phương thức xác định dùng một tập có 40 mẫu để tìm các đặc trưng khuôn mặt và điều khiển chiến lược dò tìm b Các mẫu bị biến dạng
Tác giả Yuille dùng các mẫu biến dạng để mô hình hóa các đặc trưng của khuôn mặt, mô hình này có khả năng linh hoạt cho các đặc trưng khuôn mặt Trong hướng tiếp cận này, các đặc trưng khuôn mặt được mô tả bằng các mẫu được tham số hóa Một hàm năng lượng (giá trị) được định nghĩa để liên kết các cạnh, đỉnh, và thung lũng trong ảnh để tương ứng với các tham số trong mẫu Mô hình này tốt nhất khi tối thiểu hàm năng lượng qua các tham số, Mặc dù kết quả tốt với mẫu biến dạng trong theo vết đối tượng trên đặc trưng không mô hình theo lưới, một hạn chế của hướng tiếp cận này là các mẫu biến dạng phải được khởi tạo trong phạm vi gần các đối tượng để xác định
Hai tác giả Huang và Su dùng lý thuyết dòng chảy để xác định đường viền khuôn mặt dựa trên đặc tính hình học Hai ông dùng lý thuyết tập đồng mức (Level Set) để loang từ các khởi động ban đầu để có được các khuôn mặt người
Trái ngược với các phưong pháp so khớp mẫu với các mẫu đã được định nghĩa trước bởi những chuyên gia, các mẫu trong hướng tiếp cận này được học từ các ảnh mẫu Một các tổng quát, các phương pháp theo hướng tiếp cận này áp dụng các kỹ thuật theo hướng xác suất thống kê và máy học để tìm những đặc tính liên quan của khuôn mặt và không phải là khuôn mặt Các đặc tính đã được học ở trong hình thái các mô hình phân bố hay các hàm biệt số nên dùng có thể dùng các đặc tính này để xác định khuôn mặt người Đồng thời, bài toán giảm số chiều thường được quan tâm để tăng hiệu quả tính toán cũng như hiệu quả xác định
Có nhiều phương pháp áp dụng xác suất thống kê để giải quyết Một ảnh hay một vector đặc trưng xuất phát từ một ảnh được xem như một biến ngẫu nhiên x, và biến ngẫu nhiên có đặc tính là khuôn mặt hay không phải khuôn mặt bởi công thức tính theo các hàm mật độ phân lớp theo điều kiện
P(x | khuôn mặt) và P(x | ~ khuôn mặt)
Có thể dùng phân loại Bayes hoặc khả năng cực đại để phân loại một ứng viên là khuôn mặt hay không phải là khuôn mặt Không thể cài đặt trực tiếp phân loại Bayes bởi vì số chiều của x khá cao, bởi vì P(x | khuôn mặt) và P(x | không phải khuôn mặt) là đa phương thức, và chưa thể hiểu nếu xây dựng các dạng tham số hóa một cách tự nhiên cho P(x | khuôn mặt) và P(x | không phải khuôn mặt) Có khá nhiều nghiên cứu theo hướng tiếp cận này quan tâm xấp xỉ có tham số hay không có tham số cho P(x | khuôn mặt) và P(x | không phải khuôn mặt)
GIỚI THIỆU CÔNG NGHỆ FACE ID
Face ID sử dụng khuôn mặt để mở khóa thiết bị, bằng cách sử dụng tính năng xác thực sinh trắc học
Sản phẩm của trí tuệ nhân tạo – Face ID đã không còn xa lạ trong cuộc sống của chúng ta hiện nay Face ID xuất hiện để mở khóa điện thoại thông minh Smartphone Face ID được ứng dụng trên camera chấm công tại nơi làm việc Face ID được gắn vào ATM giúp khách hàng rút tiền dễ dàng, thuận lợi không cần thẻ Vậy phần mềm Face ID là gì và hoạt động như thế nào? Bài viết dưới đây sẽ giới thiệu khái niệm Face ID và nguyên tắc hoạt động của Face ID
2.2.2 Tính bảo mật của Face ID
Hiện nay có rất nhiều công ty đang triển khai và phát triển công nghệ Face ID, ví dụ Apple cho biết rất nhiều biện pháp bảo vệ được áp dụng khi nói đến Face ID Trọng tâm của những biện pháp này là Secure Enclave, nơi bản đồ độ sâu gương mặt và hình ảnh hồng ngoại được lưu trữ trực tiếp trên thiết bị và mã hóa “Chìa” để mở khóa thiết bị được lưu trữ trong Secure Enclave đó và không được gửi cho Apple hoặc bên thứ ba nào khác Nó cũng không được sao lưu vào iCloud hoặc bất kỳ nơi nào khác tách biệt với thiết bị của bạn
Bên cạnh đó còn có một biện pháp bảo vệ bổ sung: Apple chỉ cho phép 5 lần thử khớp mặt không thành công trước khi yêu cầu passcode trên thiết bị
Hơn nữa, Apple cũng không cho phép sử dụng Face ID trong các trường hợp khi:
- Thiết bị vừa được bật hoặc khởi động lại
- Thiết bị này chưa được mở khóa trong hơn 48 giờ
- Passcode không được sử dụng để mở khóa thiết bị trong 6,5 ngày qua và Face
ID không được sử dụng để mở khóa thiết bị trong 4 giờ trước đó
- Thiết bị đã nhận được lệnh khóa từ xa
- Sau khi bắt đầu tắt nguồn hoặc vào chế độ Emergency SOS, bằng cách nhấn và giữ đồng thời nút âm lượng cộng với nút Side trong 2 giây
Theo dữ liệu mới nhất của Apple, xác suất một người ngẫu nhiên có thể mở thiết bị di động bằng Face ID là xấp xỉ 1 trên 1 triệu
2.2.3 Face ID hoạt động như thế nào
Sau đây là một ví dụ khi sử dụng Face ID trên điện thoại IPX: Khi bạn nhìn vào màn hình khoá của thiết bị, các cảm biến dày đặc trên phần viền đen của iPhone X sẽ hoạt động (TrueDepth Camera System) Dãy cảm biến này sẽ hoạt động như sau:
Bước 1: Flood illuminator phát ra 1 chùm sáng mắt người không thấy được để thắp sáng gương mặt của bạn cả khi trời sáng lẫn trong tối
Bước 2: Infrared camera (Cảm biến hồng ngoại) tiến hành chụp lại khuôn mặt của bạn bằng tia hồng ngoại mà mắt người không nhận thấy được
Bước 3: Dot projector tiếp tục chiếu ra một loạt chấm hồng (khoản 30.000 chấm) trên khuôn mặt và Infrared camera tiếp tục ghi lại các chấm này
Bước 4: Các hình ảnh được ghi lại từ bước 2 và 3 sẽ được đưa vào xử lý với chip A11 Bionic Các thuật toán của chip sẽ tiến hành dựng lại một mô hình gương mặt và so sánh với mô hình gốc đã được lưu trữ khi thiết lập Face ID
Bước 5: Nếu khớp máy sẽ mở khoá cho bạn
- Theo Apple xác suất để người lạ với khuôn mặt giống bạn có thể mở máy là khoản 1/1.000.000 trong khi đó với Touch ID là 1/50.000
- Face ID sẽ sử dụng công nghệ được tích hợp trên chip A11 để quét toàn bộ khuôn mặt và lưu trữ dữ liệu vào bộ nhớ của con chip này Sau đó khi bạn thực hiện mở khoá bằng Face ID, hệ thống sẽ so sánh với dữ liệu gốc đã được lưu trước đó
- Khi mở khoá bằng Face ID bắt buộc người dùng phải mở mắt và nhìn vào thiết bị thì mới mở khoá được Do đó, Face ID có độ bảo mật rất cao và người dùng có thể hoàn toàn yên tâm người lạ không thể mở khoá trong lúc mình đang ngủ.
GIỚI THIỆU THƯ VIỆN EMGUCV TRONG NGÔN NGỮ LẬP TRÌNH C#
EmguCV là một thư viện xử lý hình ảnh, thị giác máy tính dành riêng cho ngôn ngữ C# EmguCV đã xây dựng những control xử lý hình ảnh
Bài viết này sẽ giới thiệu control xử lý hình ảnh của EmguCV, lý do tại sao nên sử dụng nó thay vì tự xây dựng và một số thao tác xử lý ảnh cơ bản với thư viện EmguCV
Toolbox được thư viện EmguCV xây dựng nhằm xử lý hình ảnh Có thể tự xây dựng cho mình một tool để xử lý hình ảnh riêng, nên sử dụng ImageBox trong EmguCV vì các lý do sau:
ImageBox là một control hiệu suất cao để hiển thị hình ảnh Bất cứ khi nào có thể, nó sẽ hiển thị một Bitmap với các đối tượng hình ảnh Nó không cần một bản sao lưu trữ nên tốc độ hiển thị ảnh rất nhanh
Có thể kiểm tra các giá trị điểm ảnh, tỷ lệ khung hình, màu sắc, các thiết lập hình ảnh,… khi hình ảnh được hiển thị
Thao tác đơn giản với hộp thoại Option sẽ hiện ra chỉ với một cái click mouse
Sử dụng nhanh chóng với bất kỳ project nào muốn có
2.3.3 Một số khái niệm, thuật ngữ trong EmguCV
Không gian màu của hình ảnh Trong EmguCV sử dụng nhiều không gian màu như:
Bgra (Blue Green Red Alpha)
Không gian màu là một mô hình toán học để mô tả các màu sắc trong thực được biểu diễn dưới dạng số học
Ý tưởng chính là kết hợp 3 màu sắc cơ bản là đỏ (Red, R), xanh lục (Green, G), xanh lơ (Blue, B) để mô tả ra các màu sắc khác
Nếu hình ảnh được mã hóa bằng 24 bit thì có 8 bit lần lượt cho cả 3 kênh B-G-
R Mỗi kênh nhận một giá trị từ 0-255 Như vậy có 255x255x255 = 1.66 triệu màu
Màu trắng có giá trị (255, 255, 255) và màu đen có giá trị (0, 0, 0)
Là biểu đồ nói lên mối quan hệ các giá trị pixel ảnh (điểm ảnh) và tuần suất xuất hiện của chúng Nhìn vào biểu đồ Histogram có thể biết được một hình ảnh sáng tối thế nào (biểu đồ lệch phía phải thì là thừa sáng và ngược lại)
Với control histogramBox có thể hiển thị biểu đồ Histogram của hình ảnh
Cấu trúc của một bức ảnh
Một ảnh được lưu trữ trên máy tính là một ma trận điểm ảnh (pixel) Nhờ vào ma trận này mà thư viện EmguCV xây dựng các thao tác về xử lý màu sách của ảnh, phóng to, thu nhỏ,…
Phân tích Ở trên có một phần hình ảnh:
Có kích thước 4×4 và có Imager Color là Bgr
Ứng với mỗi tọa độ pixel này sẽ có một màu sắc nhất định Với Image Color là Bgr thì mỗi điểm này có 3 giá trị là Blue-Green-Red Có thể truy cập nó với phương thức Data
Ví dụ: Tại điểm (3:1) có giá trị màu là (0-0-255) tức là màu đỏ
2.3.4 Các thao tác xử lý hình ảnh cơ bản Ở mục ImageBox đã giới thiệu rằng chỉ cần nhấp chuột phải là có thể một hộp thoại Option xử lý hình ảnh với EmguCV Với các thao tác chỉ việc chọn các thao tác phù hợp với mục đích
Open file và save file
Lần lượt là các thao tác mở file hình ảnh được chọn và lưu các hình ảnh đã được (hoặc chưa) được xử lý với một thư mục tùy chọn xác định
Trong class Image, function ToBitmap() giúp có thể return một Bitmap Object Nhờ đó có thể sử dụng một control PictureBox để hiển thị hình ảnh
Right Mouse Click > Property.Chọn thao tác này sẽ xuất hiện một hộp thoại có một một số chức năng sau:
Hiển thị thông số của hình ảnh như Size, Image Color, Image Depth
Giá trị BGR tại vị trí trỏ chuột hiện tại
Chức năng phóng to hoặc thu nhỏ hình ảnh với một tỉ lệ cho trước
Right mouse click > Filters > Conversion > Convert() Là chức năng dùng để chuyển đổi các không gian màu cho hình ảnh
Với thành phần code trong hộp thoại Image Property, có thể thấy phương thức xử lý ảnh Ví dụ ở trên xử lý từ một ảnh có không gian màu là Bgr sang Gray Trong EmguCV để chuyển không gian màu thì sử dụng phương thức Convert
Phóng to hoặc thu nhỏ hình ảnh nhờ vào chức năng Zoom trong Option hoặc chức năng Zoom trong hộp thoại Image Property
Với chức năng Zoom trong hộp thoại Option.Có 3 chức năng:
Zoom In: Phóng to hình ảnh hiển thị hiện tại lên x2 lần
Zoom Out: Thu nhỏ hình ảnh hiển thị hiện tại xuống x2 lần
Un-Zoom: Đưa hình ảnh hiển thị về kích thước ban đầu.
XÂY DỰNG HỆ THỐNG NHẬN DIỆN SINH VIÊN VÀO LỚP BẰNG FACE ID
CÁC BƯỚC TRONG CHU TRÌNH NHẬN DIỆN KHUÔN MẶT
Nhiều người đã quen thuộc với công nghệ nhận diện khuôn mặt thông qua các phần mềm được sử dụng để mở khóa điện thoại thông minh (tuy nhiên, đây chỉ là một ứng dụng nhỏ của công nghệ này) Thông thường, tính năng được sử dụng để mở khóa điện thoại không dựa vào cơ sở dữ liệu ảnh khổng lồ nhằm xác định danh tính của một cá nhân – nó chỉ xác định và công nhận một người là chủ sở hữu duy nhất của thiết bị, đồng thời hạn chế quyền truy cập của những người khác
Ngoài việc mở khóa điện thoại, tính năng này cũng hoạt động nhằm mục đích khớp khuôn mặt của những người đi ngang qua máy ảnh với hình ảnh của những người trong danh sách đang theo dõi Danh sách theo dõi là một tập dữ liệu mở được đến từ các nguồn được cung cấp công khai Các hệ thống công nghệ trên khuôn mặt có thể khác nhau, nhưng nhìn chung, chúng có xu hướng hoạt động theo một số bước như sau:
Bước 1: Nhận diện khuôn mặt
Máy ảnh phát hiện và định vị hình ảnh của một khuôn mặt khi đối tượng đang ở một mình hoặc trong một đám đông Từ đó ghi nhận hình ảnh của đối tượng
Bước 2: Phân tích khuôn mặt
Tiếp theo, hình ảnh khuôn mặt đối tượng được chụp lại và tiến hành phân tích Hầu hết công nghệ nhận diện khuôn mặt dựa trên hình ảnh 2D thay vì 3D vì nó có thể khớp hình ảnh 2D với ảnh công khai trong cơ sở dữ liệu một cách thuận tiện và chính xác hơn Sau đó đưa vào phần mềm để tiến hành đọc hình dạng khuôn mặt của đối tượng Các yếu tố chính cần xử lý bao gồm khoảng cách giữa hai mắt, độ sâu của hốc mắt, khoảng cách từ trán đến cằm, hình dạng của gò má và đường viền của môi, tai và cằm Mục đích là để xác định các điểm mốc chính trên khuôn mặt nhằm phân biệt nhiều người khác nhau
Bước 3: Chuyển đổi hình ảnh thành dữ liệu
Chuyển đổi ảnh chụp khuôn mặt thành một tập hợp thông tin kỹ thuật số (dữ liệu) dựa trên các đặc điểm khuôn mặt của người đó Những thuộc tính khuôn mặt sẽ được xử lý dưới dạng các thuật toán và công thức, và mỗi người sẽ sở hữu một dữ liệu khuôn mặt riêng biệt
Bước 4: Tìm kết quả nhận diện khuôn mặt phù hợp
Bước tiếp theo tiến hành so sánh với cơ sở dữ liệu khuôn mặt sẵn có Nếu khuôn mặt được ghi lại khớp với một hình ảnh trong cơ sở dữ liệu, thì việc xác định sẽ hoàn tất.
MỘT SỐ ĐOẠN CODE CHƯƠNG TRÌNH
3.2.1 Đoạn code đưa thêm một khuôn mặt vào hệ thống try
//Get a gray frame from capture device gray = grabber.QueryGrayFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
MCvAvgComp[][] facesDetected = gray.DetectHaarCascade( face,
Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));
//Action for each element detected foreach (MCvAvgComp f in facesDetected[0])
TrainedFace = currentFrame.Copy(f.rect).Convert(); break;
//resize face detected image for force to compare the same size with the
//test image with cubic interpolation type method
TrainedFace = result.Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); trainingImages.Add(TrainedFace); labels.Add(textBox1.Text);
//Show face added in gray scale imageBox1.Image = TrainedFace;
//Write the number of triained faces in a file text for further load
File.WriteAllText(Application.StartupPath + "/TrainedFaces/TrainedLabels.txt", trainingImages.ToArray().Length.ToString() + "%");
//Write the labels of triained faces in a file text for further load for (int i = 1; i < trainingImages.ToArray().Length + 1; i++)
{ trainingImages.ToArray()[i - 1].Save(Application.StartupPath + "/TrainedFaces/face" + i + ".bmp"); File.AppendAllText(Application.StartupPath + "/TrainedFaces/TrainedLabels.txt", labels.ToArray()[i - 1] +
MessageBox.Show(textBox1.Text + "´s face detected and added :)", "Training OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("Enable the face detection first", "Training Fail", MessageBoxButtons.OK,
3.2.2 Đoạn code nhận diện và hiển thị thông tin void FrameGrabber(object sender, EventArgs e)
//Get the current frame form capture device currentFrame = grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
//Convert it to Grayscale gray = currentFrame.Convert();
MCvAvgComp[][] facesDetected = gray.DetectHaarCascade( face,
Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));
//Action for each element detected foreach (MCvAvgComp f in facesDetected[0])
{ t = t + 1; result = currentFrame.Copy(f.rect).Convert().Resize(100, 100,
Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
//draw the face detected in the 0th (gray) channel with blue color currentFrame.Draw(f.rect, new Bgr(Color.Red), 2); if (trainingImages.ToArray().Length != 0)
//TermCriteria for face recognition with numbers of trained images like maxIteration
MCvTermCriteria termCrit = new MCvTermCriteria(ContTrain, 0.001);
EigenObjectRecognizer recognizer = new EigenObjectRecognizer( trainingImages.ToArray(), labels.ToArray(),
3000, ref termCrit); name = recognizer.Recognize(result);
//Draw the label for each face detected and recognized currentFrame.Draw(name, ref font, new Point(f.rect.X - 2, f.rect.Y - 2), new Bgr(Color.LightGreen));
//Set the number of faces detected on the scene label3.Text = facesDetected[0].Length.ToString();
//Set the region of interest on the faces gray.ROI = f.rect;
MCvAvgComp[][] eyesDetected = gray.DetectHaarCascade( eye,
Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); gray.ROI = Rectangle.Empty; foreach (MCvAvgComp ey in eyesDetected[0])
Rectangle eyeRect = ey.rect; eyeRect.Offset(f.rect.X, f.rect.Y); currentFrame.Draw(eyeRect, new Bgr(Color.Blue), 2);
//Names concatenation of persons recognized for (int nnn = 0; nnn < facesDetected[0].Length; nnn++)
//Show the faces procesed and recognized imageBoxFrameGrabber.Image = currentFrame; label4.Text = names; names = "";
//Clear the list(vector) of names
MỘT SỐ GIAO DIỆN CHƯƠNG TRÌNH
2.3.1 Giao diện chương trình chính
Giao diện có 2 chức năng cơ bản là nhận diện một khuôn mặt thông qua camera và lưu thông tin khuôn mặt đó vào hệ thống
2.3.2 Giao diện Nhận diện và tổ chức
Sau khi nhấn nút: “Nhận diện và tổ chức” thì hệ thống sẽ kích hoạt Camera và hiển thị hình ảnh người đối diện Camera Đồng thời nút “Đưa thêm một khuôn mặt” được kích hoạt
2.3.3 Giao diện lưu thông tin khuôn mặt vào hệ thống
Hệ thống cho phép lưu thông tin hình ảnh tương ứng với tên của người cần nhận diện