Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho android

  • Số trang: 60 |
  • Loại file: PDF |
  • Lượt xem: 15 |
  • Lượt tải: 0
minhtuan

Đã đăng 15929 tài liệu

Mô tả:

Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android LỜI CẢM ƠN  Sau hơn 3 tháng nỗ lực thực hiện, luận văn đề tài “Nghiên cứu và phát triển phần mềm nhận diện khuôn mặt trên Android” đã phần nào hoàn thành. Ngoài sự cố gắng hết mình của bản thân, chúng tôi đã nhận được sự khích lệ rất nhiều từ phía nhà trường, thầy cô, gia đình và bạn bè. Chúng tôi xin chân thành cám ơn thầy cô Trường Đại Học Cần Thơ – Khoa Công Nghệ Thông Tin và Truyền Thông đã truyền đạt những kiến thức quý báu cho chúng tôi trong suốt quá trình học tập. Đặc biệt, chúng tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc đến thầy Đoàn Hòa Minh, người đã tận tình hướng dẫn và giúp đỡ chúng tôi trong quá trình hoàn thành luận văn tốt nghiệp. Xin cảm ơn đến các thành viên của diễn đàn stackoverflow.com, developer.android.com, và các trang diễn đàn về lập trình khác đã cung cấp những tài liệu và trả lời những thắc mắc giúp chúng tôi vượt qua khó khăn của giới hạn kiến thức. Xin gửi lời cảm ơn đến Chris Evans, tác giả thư viện mở OpenSURF, và nhóm phát triển thư viện OpenCV. Xin cảm ơn tất cả bạn bè đã và đang động viên, giúp đỡ chúng tôi trong quá trình học tập và hoàn thành tốt luận văn này. Nhóm sinh viên thực hiện GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 1 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android MỤC LỤC LỜI CẢM ƠN ............................................................................................................. 1 KÝ HIỆU VÀ VIẾT TẮT ............................................................................................ 5 TÓM TẮT ................................................................................................................... 6 ABSTRACT ................................................................................................................ 7 TỪ KHÓA ................................................................................................................... 8 BẢNG PHÂN CÔNG CÔNG VIỆC ............................................................................ 9 CHƢƠNG 1: TỔNG QUAN ...................................................................................... 10 1.1 ĐẶT VẤN ĐỀ .............................................................................................. 10 1.1.1 Giới thiệu ............................................................................................... 10 1.1.2 Nhận dạng khuôn mặt và hệ thống nhận dạng khuôn mặt ....................... 12 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ ............................................................... 13 1.2.1 Những năm 1960 .................................................................................... 13 1.2.2 Những năm 1970 .................................................................................... 13 1.2.3 Những năm 1980 .................................................................................... 14 1.2.4 Năm 1991 .............................................................................................. 14 1.2.5 Năm 1993 .............................................................................................. 15 1.2.6 Năm 2002 .............................................................................................. 15 1.2.7 Năm 2006 .............................................................................................. 16 1.2.8 Vị trí của Việt Nam trong lĩnh vực này .................................................. 17 1.3 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID ........................................... 17 1.3.1 Tổng quan .............................................................................................. 17 1.3.2 Nhận xét cá nhân.................................................................................... 18 1.4 MỤC TIÊU VÀ NHIỆM VỤ ........................................................................ 19 1.4.1 Kiến thức và kỹ năng ............................................................................. 19 1.4.2 Đóng góp về mặt công nghệ: .................................................................. 21 1.4.3 Vấn đề cần giải quyết: ............................................................................ 21 1.5 PHẠM VI ĐỀ TÀI ....................................................................................... 22 CHƢƠNG 2: CƠ SỞ LÝ THUYẾT ........................................................................... 24 2.1 GIỚI THIỆU VỀ THỊ GIÁC MÁY HỌC ......................................................... 24 GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 2 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android 2.2 CÁC GÓI THƢ VIỆN MỞ .............................................................................. 24 2.3 CÁC BƢỚC THỰC HIỆN KỸ THUẬT NHẬN DẠNG KHUÔN MẶT ......... 25 2.4 PHÁT HIỆN KHUÔN MẶT TRONG ẢNH .................................................... 25 2.5 TIỀN XỬ LÝ ẢNH.......................................................................................... 27 Histogram Equalization: ..................................................................................... 27 2.6 NHẬN DẠNG KHUÔN MẶT ......................................................................... 28 2.1.1 Các kỹ thuật đã đƣợc nghiên cứu và phát triển ....................................... 28 2.1.2 Phƣơng pháp trích xuất điểm thuộc tính: ................................................ 28 2.1.3 SURF – Cải tiến phƣơng pháp trích xuất điểm thuộc tính ....................... 30 1. Ảnh tích hợp:............................................................................................. 31 2. Định vị nhanh bằng ma trận Hessian: ........................................................ 32 3. Mô tả điểm thuộc tính................................................................................ 36 4. Nhận dạng bằng cách so sánh: ................................................................... 39 5. Cấu trúc tổng quát của thƣ viện giải thuật SURF: ...................................... 39 CHƢƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ........................................ 41 3.1 KẾT QUẢ NGHIÊN CỨU ........................................................................... 41 3.1.1 Các tiêu chí đánh giá chƣơng trình khi phát triển trên nền tảng di động.. 41 3.1.2 Giải thuật và thƣ viện giải thuật dành cho Android................................. 41 3.2 GIẢI PHÁP THỰC HIỆN ............................................................................ 43 3.2.1 Những khó khăn và vấn đề cần giải quyết .............................................. 43 3.2.2 Cách giải quyết ...................................................................................... 43 3.2.3 Cấu trúc chƣơng trình ............................................................................ 45 1. Gói com.opencv.samples.fd ....................................................................... 45 2. Gói com.theveganrobot.OpenASURF........................................................ 45 3. Gói com.theveganrobot.OpenASURF.swig ............................................... 46 3.3 KẾT QUẢ ĐẠT ĐƢỢC ............................................................................... 47 1. Bảng điều khiển......................................................................................... 47 2. Thêm ảnh vào cơ sở dữ liệu ....................................................................... 48 3. Nhận dạng khuôn mặt ................................................................................ 50 4. Xem và xóa cơ sở dữ liệu ảnh khuôn mặt .................................................. 51 GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 3 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android 5. Minh họa cho giải thuật SURF .................................................................. 52 3.4 ĐÁNH GIÁ KẾT QUẢ ................................................................................ 54 3.5 NHỮNG VẤN ĐỀ CHƢA ĐƢỢC GIẢI QUYẾT ........................................ 55 KẾT LUẬN VÀ ĐỀ NGHỊ ........................................................................................ 57 KẾT LUẬN ........................................................................................................... 57 ĐỀ NGHỊ............................................................................................................... 58 TÀI LIỆU THAM KHẢO.......................................................................................... 59 GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 4 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android KÝ HIỆU VÀ VIẾT TẮT TỪ VIẾT TẮT NGUYÊN MẪU TIẾNG ANH DỊCH SANG TIẾNG VIỆT API Application Programming Interface giao diện lập trình ứng dụng do một hệ thống hoặc một ứng dụng cung cấp CPU Core Processor Unit bộ xử lý trung tâm JDK Java Development Kit công cụ phát triển phần mềm của Java NDK Native code Development Kit công cụ phát triển mã nền (mã bản địa) PIN Personal Identification Number mật khẩu, chỉ bao gồm các chữ số RAM Random Access Memory bộ nhớ tạm SDK Software Development Kit công cụ phát triển phần mềm SIFT Scale (Size) Invariant Feature giải thuật biến đổi thuộc Transform tính bất biến theo kích cỡ SURF Speeded Up Robust Feature giải thuật trích xuất điểm thuộc tính bất biến mạnh 2D, 3D 2 Dimensional, 3 Dimensional 2 chiều, 3 chiều GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 5 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android TÓM TẮT Nội dung nghiên cứu của luận văn này là: “Phát triển ứng dụng nhận dạng khuôn mặt trên nền tảng di động Android”. Chúng tôi đã sử dụng các kỹ thuật, giải thuật cũng nhƣ thƣ viện có sẵn để thực hiện luận văn này. Kết quả nghiên cứu là một ứng dụng sử dụng giải thuật nhận dạng tiên tiến, mới, và hứa hẹn mang lại hiệu quả cao hơn các giải thuật truyền thống. Giải thuật đƣợc chọn để phát triển là giải thuật nhận dạng cá nhân bằng phƣơng pháp mô tả điểm thuộc tính SURF, đƣợc kết hợp với kỹ thuật phát hiện khuôn mặt Haar Feature-based Cascade Classifier. Chƣơng trình ứng dụng đƣợc xây dựng khá thành công, có thể đƣợc cài đặt trên các mẫu điện thoại hoạt động trên hệ điều hành Android, có cấu hình tối thiểu là 800Mhz CPU và 256Mb Ram. Tuy nhiên vẫn còn những vấn đề cần giải quyết trƣớc khi có thể trở thành một ứng dụng nhận dạng khuôn mặt hoàn hảo cho Android, nhƣ tối ƣu hóa giải thuật và công đoạn xử lý, sử dụng phần cứng một cách tốt hơn.. Và hiện nay ứng dụng chỉ hỗ trợ camera của một số mẫu điện thoại nhất định, do sự hạn chế của thƣ viện điều khiển đƣợc sử dụng. GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 6 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android ABSTRACT This thesis is about the studying and developing of a personal identifying application by facial recognition on mobile platform, Google Android for specific, by using available achievements and open resources in the computer vision field. The chosen recognition algorithm is the most advanced and promising one among any others, SURF – Speeded Up Robust Features, enhanced with many improved technologies and calculation methods for processing time reduction, and is combined with Haar Feature-based Cascade Classifier for multi-scale face dectection. The result application is rather good, the algorithms works well, and can be installed on Android devices, which have at least 800Mhz CPU and 256Mb RAM. But there are still many issues to solve before completion, such as reducing the processing time as it is taking too long for recognizing with larger database, optimizing algorithm and better use of hardware resource, in order to lower the minimum hardware requirement.. And due to the limitation of OpenCV API for functioning Android camera, we only support some specific models of Android handset, so far. GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 7 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android TỪ KHÓA          SURF Speeded Up Robust Feature Nhận dạng khuôn mặt Android Điểm thuộc tính Bộ dò Hessian, ma trận Hessian Bộ lọc Gaussian Ảnh tích hợp Không gian quy mô GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 8 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android BẢNG PHÂN CÔNG CÔNG VIỆC TUẦN CÔNG VIỆC THỰC HIỆN 1 Tìm hiểu đề tài và tìm kiếm tài liệu tham Lý Phát Việt Linh khảo Nguyễn Lƣu Trung Ngôn 2 Tìm kiếm và so sánh các giải thuật nhận Nguyễn Lƣu Trung Ngôn dạng 3 và 4 Nghiên cứu mã nguồn của các phần mềm Lý Phát Việt Linh tham khảo sử dụng nhiều giải thuật Nguyễn Lƣu Trung Ngôn 5 Tìm kiếm và cài đặt giải thuật phát hiện khuôn mặt . 1. Sử dụng OpenCV 2. Sử dụng Android Face Detector 6 1. Lý Phát Việt Linh 2. Nguyễn Lƣu Trung Ngôn Viết mã nguồn chƣơng trình cho giai đoạn Nguyễn Lƣu Trung Ngôn tiền xử lý khuôn mặt 7 và 8 Thử nghiệm các thƣ viện sử dụng cho giải Lý Phát Việt Linh thuật nhận dạng 9 và 10 Đóng gói thƣ viện OpenCV và OpenSURF Lý Phát Việt Linh vào chƣơng trình 11,12,13 Hoàn thành chƣơng trình Lý Phát Việt Linh Nguyễn Lƣu Trung Ngôn 14,15,16 17 và 18 Viết báo cáo: 1. Chƣơng 2 2. Chƣơng 1 và 3 1. Lý Phát Việt Linh 2. Nguyễn Lƣu Trung Ngôn Thử nghiệm chƣơng trình Lý Phát Việt Linh Nguyễn Lƣu Trung Ngôn GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 9 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.1.1 Giới thiệu Khuôn mặt là một trong những yếu tố chủ yếu để phân biệt ngƣời này với ngƣời khác. Hiện nay, đa số các công việc đòi hỏi xác nhận cá nhân của chúng ta đều đƣợc thực hiện dựa trên mắt ngƣời. Tầm nhìn về một tƣơng lai gần khi tất cả các công việc xác nhận và chứng thực cá nhân đều đƣợc máy móc thực hiện là không hề viễn vông, với sức mạnh phát triển kỹ thuật số nhƣ hiện nay. Công nghệ nhận dạng khuôn mặt phát triển mạnh từ lúc máy tính bắt đầu trở nên phổ biến, thông minh và mạnh mẽ hơn. Với những bộ máy đƣợc trang bị sức mạnh phần cứng đồ sộ, và với một giải thuật tốt, máy có thể nhận dạng nhanh chóng một khuôn mặt là ai trong khi chúng ta vẫn còn đang lục lại ký ức và tự hỏi đã gặp khuôn mặt này ở đâu và khi nào. Giữa một trăm ngƣời, một nghìn ngƣời, một triệu hay một tỉ ngƣời, việc nhận dạng đƣợc ai là ai giữa họ, thực chất chỉ một bộ máy mới có thể làm đƣợc. Vì những ứng dụng và nhu cầu vô cùng thiết thực đó, con ngƣời đang nỗ lực phát triển khả năng nhìn và nhận biết cho các bộ máy của mình. Có nhiều cách để một trí tuệ nhân tạo có thể nhận biết một con ngƣời, chẳng hạn nhƣ nhận dạng bằng vân tay, võng mạc, mống mắt.. Các phƣơng pháp này cho kết quả nhận dạng chính xác hơn so với nhận dạng khuôn mặt, vì khuôn mặt bị ảnh hƣởng bởi rất nhiều yếu tố mà ta không thể điều khiển hay quản lý đƣợc, nhƣ ánh sáng, góc xoay, cảm xúc, sự già đi của khuôn mặt.. Do đó các kỹ thuật nhận dạng dựa trên đặc điểm không thể thay đổi của con ngƣời nhƣ vân tay và võng mạc đƣợc sử dụng trong những công việc quan trọng và bảo mật mang tính tổ chức, đòi hỏi xác nhận nhân dạng một cách chính xác tuyệt đối. Tuy nhiên, các phƣơng pháp đó đòi hỏi con ngƣời phải chủ động trong công tác nhận dạng, nhƣ áp ngón tay lên bộ quét, hoặc nhìn vào bộ phận quét võng mạc. Có những công việc và hoạt động khác đòi hỏi một kỹ thuật nhận dạng giống cách mà chúng ta vẫn thƣờng làm hơn, nhƣ nhìn vào một bức ảnh và nói tên của ngƣời trong ảnh. Hãy tƣởng tƣợng một bức ảnh của nhiều ngƣời đƣợc chụp từ một máy ảnh cách đây rất lâu, dĩ nhiên chúng ta không thế nhận dạng bằng cách tìm những ngƣời đó và yêu cầu họ đặt ngón tay lên máy quét vân tay. Trong trƣờng hợp này, có thể nói nhận dạng dựa khuôn mặt là phƣơng pháp thiết thực nhất, và cũng là duy nhất. Trong mƣời năm trở lại đây, cùng với sự tiến bộ của các hệ thống máy tính, camera kỹ thuật số, điện thoại di động, và nhiều giải thuật nhận dạng khuôn mặt bằng GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 10 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android các phép phân tích khác nhau đã đƣa công nghệ nhận dạng vƣợt ra xa khỏi sự thụ động từ chỗ chỉ đƣợc áp dụng cho những công việc đòi hỏi bảo mật cao, ngày nay, các điện thoại di động, laptop và máy tính cá nhân cũng có thể chạy và xử lý nhanh chóng một giải thuật nhận dạng phức tạp mà không mất quá nhiều thời gian. Đối với máy tính cá nhân, laptop và thiết bị di động cầm tay, đã có rất nhiều phƣơng pháp bảo mật khác nhau đƣợc sử dụng để bảo vệ dữ liệu cá nhân của ngƣời dùng. Phƣơng pháp phổ biến nhất hiện nay là khóa máy với một mật khẩu duy nhất do ngƣời dùng đặt ra (Password / PIN). Phƣơng pháp này rất đơn giản, và hiệu quả, tuy nhiên vẫn có những hạn chế nhất định, đó là:  Tất cả, hay hầu hết mọi thông tin số cần đƣợc bảo vệ hiện nay, nhƣ tài khoản mail, tài khoản ngân hàng, tài khoản mạng xã hội... đều sử dụng mật khẩu để bảo vệ.  Có thể có nhiều cải tiến đƣợc áp dụng thêm cho việc sử dụng mật khẩu, nhƣ mật khẩu cấp 1, mật khẩu cấp 2, câu hỏi bảo vệ, nhƣng sau cùng, vẫn cần có ít nhất một mật khẩu để bảo vệ một tài khoản.  Mỗi một tài khoản cá nhân, tài khoản ngân hàng, mật khẩu cho máy tính, mật khẩu cho điện thoại.. sử dụng những ràng buộc về mật khẩu khác nhau, và luôn khuyên chúng ta sử dụng một mật khẩu “độc nhất”, nghĩa là chúng ta không thể sử dụng một mật khẩu cho tất cả những thông tin cần đƣợc bảo vệ bảo vệ. Mật khẩu laptop của tôi là một dãy gồm 12 chữ, trong khi mật mã mở khóa điện thoại sử dụng 4 ký tự số, và mật mã cho tài khoản mail của tôi là chuỗi 16 ký tự gồm có chữ cái, chữ cái đƣợc viết hoa, và ký tự số. Vậy thì, tại sao chúng ta không nghĩ ra một cách khác để vứt bỏ đi những chuỗi ký tự phức tạp và khó nhớ đó mỗi lần đăng nhập hay mở khóa cho những công việc mà ta thƣờng làm? Câu trả lời cho vấn đề trên chính là nhận dạng khuôn mặt và nhận dạng giọng nói, hay còn gọi là nhận dạng thụ động. Nhận dạng khuôn mặt và nhận dạng giọng nói có một vị trí quan trọng trong các hệ thống nhận dạng thông minh thế hệ kế tiếp vì nó có thể nhận dạng thụ động dựa và thông tin ghi lại từ máy ghi hình hay máy ghi âm mà không yêu cầu ngƣời dùng tƣơng tác trực tiếp với máy để nhận dạng. Phƣơng pháp này phù hợp cho việc theo dõi, quản lý hay điều tra an ninh, hay những công việc khác mà ta có thể nghĩ ra. Trƣớc kia, các công trình nghiên cứu này đƣợc xây dựng thành các ứng dụng để cài đặt trên các hệ thống máy lớn, thƣờng đƣợc phục vụ cho nghiên cứu hay điều tra an ninh, là công việc của các tổ chức và tập đoàn. Các ứng dụng này đòi hỏi hệ thống máy tính phải rất mạnh để có thể hoạt động với cơ sở dữ liệu lớn. Ngày nay với sự GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 11 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android phát triển vƣợt bực của máy tính cá nhân, điện thoại thông minh và máy ảnh kỹ thuật số, ngƣời ta nghĩ ra những nhu cầu và ứng dụng mới để đƣa công nghệ nhận dạng đến mỗi cá nhân, dùng trong những hoạt động và nhu cầu đại chúng đa dạng chứ không chỉ là bảo vệ dữ liệu cá nhân. 1.1.2 Nhận dạng khuôn mặt và hệ thống nhận dạng khuôn mặt Nhận dạng khuôn mặt là một bộ phận rộng lớn của công nghệ nhận dạng mẫu. Nhận dạng và đặc biệt là nhận dạng khuôn mặt là một loạt các hoạt động đƣợc sử dụng rất nhiều trong cuộc sống. Nhận dạng khuôn mặt nói chung và nhận dạng chuyển động của con ngƣời trong hoàn cảnh tự nhiên, đòi hỏi một tập hợp phức tạp các tác vụ trực quan. Quá trình đó bao gồm chủ yếu là ba công việc sau: thu thập, chuẩn hóa và nhận dạng. Công việc thu thập là phát hiện và theo dõi sự sai lệch của hình ảnh khuôn mặt trong một hoạt cảnh. Chuẩn hóa là chia nhỏ, sắp xếp và chuẩn hóa hình ảnh khuôn mặt. Cuối cùng, công việc nhận dạng mô hình hóa khuôn mặt cần nhận dạng sau đó so sánh các mô hình đó với các mô hình đã đƣợc lƣu trữ. Điểm yếu của nhận dạng khuôn mặt là đó là: hình mẫu dùng để nhận dạng - khuôn mặt ngƣời, là một thực thể tự nhiên luôn chuyển động. Các chuyển động này dẫn đến góc nhìn, độ sáng cùng nhiều yếu tố của khuôn mặt bị thay đổi, gây khó khăn cho việc nhận dạng. Cảm xúc cũng có ảnh hƣởng rất lớn đến sự thay đổi của khuôn mặt. Thời gian cũng là một yếu tố quan trọng làm thay đổi khuôn mặt, vì dĩ nhiên là chúng ta luôn già đi theo thời gian. Hệ thống nhận dạng khuôn mặt là một ứng dụng có thể xác minh hoặc nhận ra một ngƣời từ một hình ảnh kỹ thuật số. Một trong những cách để làm điều này là lựa chọn và so sánh các đặc điểm nhận dạng, điểm thuộc tính (features) trên khuôn mặt với một cơ sở dữ liệu khuôn mặt. Ứng dụng này thƣờng đƣợc sử dụng trong các hệ thống an ninh, bảo mật, hoặc các hoạt động giải trí nhƣ nhận dạng và gắn tên cho những ngƣời có mặt trong ảnh, trên một mạng xã hội. Ngoài ra còn có các kỹ thuật nhận dạng khác cũng phục vụ cho công việc xác minh một cá nhân nhƣ nhận dạng sinh trắc học: dấu vân tay, nhận dạng võng mạc, mống mắt. Những công nghệ và kỹ thuật hiện đại nhƣ nhận dạng không còn nằm yên trong các phòng nghiên cứu hay các trung tâm hoạt động khép kín và cục bộ nữa, mà đang từ từ trở nên phổ biến và thông dụng đến cả những ngƣời dùng bình thƣờng nhất. Một phần của sự tiến bộ này là do điện thoại di động, đặc biệt là các mẫu điện thoại di động thông minh (smart phones). Mảnh công nghệ nho nhỏ nằm gọn trong lòng bàn tay đó hiện nay đã đƣợc trang bị phần cứng mạnh mẽ không thua kém gì các máy tính cá nhân và máy tính xách tay. Android là một hệ điều hành mở dành cho điện thoại di động, máy tính bảng và trong tƣơng lai, sẽ bao gồm cả máy tính cá nhân. Android hiện GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 12 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android nay đang là hệ điều hành động phổ biến nhất trên điện thoại di dộng thông minh, chiếm 41,8% thị phần smart phones trên toàn thế giới (theo thống kê của ComScore vào cuối năm 2011). Cộng đồng phát triển ứng dụng cho Android hiện nay đã rất lớn và đa dạng, phong phú về chủng loại cũng nhƣ to lớn về số lƣợng các ứng dụng đƣợc viết cho nền tảng này. Cùng với nhu cầu sử dụng trên nhiều lĩnh vực của ngƣời dùng Android, các ứng dụng về nhận dạng khuôn mặt cũng đã và đang đƣợc phát triển. Nhu cầu sử dụng liên quan đến nhận dạng khuôn mặt bao gồm: mở khóa điện thoại, khóa thƣ mục và tập tin, khóa ứng dụng, nhận diện và gắn tên cho những ngƣời trong ảnh, ghép ảnh khuôn mặt từ hình này sang một hình khác… Nhu cầu và ứng dụng cho công nghệ nhận dạng cá nhân trên một hệ điều hành cầm tay chắc chắn là không nhỏ. 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1.2.1 Những năm 1960 Những nỗ lực đầu tiên để tự động nhận dạng khuôn mặt bắt đầu vào những năm 1960 và hoạt động trong chế độ bán tự động. Phƣơng pháp nhận dạng khuôn mặt này đƣợc tạo ra bởi Woody Bledsoe, Helen Chan Wolf và Charles Bisson. Cách tiếp cận bao gồm các phép đo giữa các vị trí của đặc điểm nhận dạng khác nhau trên khuôn mặt (mắt, tai, mũi, miệng… vv) trên các bức ảnh chụp trƣớc và sau đó tính khoảng cách cũng nhƣ tỷ lệ để so sánh với dữ liệu tham khảo. Những nỗ lực đầu tiên này không đạt đƣợc những thành công nhƣ mong đợi bởi khuôn mặt là một thực thể tự nhiên rất linh hoạt, các đặc điểm đặt trƣng bị ảnh hƣởng bởi cảm xúc cũng nhƣ hƣớng xem. 1.2.2 Những năm 1970 Goldstein, Harmon, và Lesk sử dụng 21 điểm đánh dấu chủ quan, chẳng hạn nhƣ màu tóc và độ dày môi…. để tự động hóa nhận dạng. Các phép đo và vị trí cần đƣợc tính toán bằng tay nên các chƣơng trình đòi hỏi rất nhiều thời gian lao động. Một cách tiếp cận tự động nhận dạng khác do Fisher và Elschlagerb phát triển chỉ một vài năm sau chƣơng trình của Goldstein, Harmon, và Lesk. Cách tiếp cận này đo các đặc điểm nhận dạng trên bằng cách sử dụng các đặc điểm nhận dạng trên các phần khác nhau của khuôn mặt và sau đó họ xây dựng tất cả vào một khuôn mặt mẫu. Sau khi tiếp tục nghiên cứu, họ phát hiện ra rằng các đặc điểm nhận dạng này không chứa đủ dữ liệu là đặc trƣng duy nhất để đại diện cho một khuôn mặt ngƣời. Cách tiếp cận khác là cách tiếp cận Connectionist, tìm kiếm để phân loại các khuôn mặt con ngƣời bằng cách sử dụng một bộ xác định các cử chỉ đƣợc đánh dấu. Phƣơng pháp đƣợc thực hiện bằng cách sử dụng nhận dạng mẫu 2 chiều và các nguyên tắc mạng neuron. Phần lớn thời gian của cách tiếp cận này đòi hỏi một số lƣợng lớn GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 13 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android các khuôn mặt huấn luyện để đạt đƣợc độ chính xác khá, vì lý do đó nó vẫn chƣa đƣợc thực hiện trên quy mô lớn. Hệ thống hoàn toàn tự động đầu tiên đƣợc phát triển sử dụng phƣơng pháp nhận dạng rất chung chung. Nó so sánh khuôn mặt một mô hình khuôn mặt tổng hợp với các đặc điểm nhận dạng đƣợc dự kiến. Cách tiếp cận này chủ yếu dựa trên thống kê và trên biểu đồ. 1.2.3 Những năm 1980 Vào cuối những năm 1980, sự phát triển của kỹ thuật eigenfaces, đã thúc đẩy nổ lực nghiên cứu mạnh mẽ hơn. Kỹ thuật này đƣợc sử dụng để phát hiện một khuôn mặt trong một bức ảnh bằng các so sánh hình ảnh của khuôn mặt. Các nhà nghiên cứu nhanh chóng phát hiện ra rằng nhận dạng khuôn mặt là khá phức tạp nhƣng có thể đƣợc đơn giản hóa bằng cách chỉ xem xét các hình ảnh tƣơng tự về hƣớng nhìn, ánh sáng, cảm xúc và chất lƣợng hình ảnh. Nghiên cứu tập trung vào vấn đề này, Tổ chức Hàng không dân dụng quốc tế (ICAO) đã quy định tiêu chuẩn của các hình ảnh kiểm tra. Ví dụ khá nổi tiếng của một hệ thống nhận dạng khuôn mặt là do Kohonen, ngƣời đã chứng minh rằng một mạng lƣới nơ-ron đơn giản có thể thực hiện nhận dạng khuôn mặt cho hình ảnh khuôn mặt đã đƣợc chuẩn hóa. Khuôn mặt đƣợc mô tả bằng cách tính toán các eigenvectors, của ma trận tƣơng quan hình ảnh khuôn mặt. Hệ thống của Kohonen không phải là một thành công nhƣng cũng là tiền đề cho những hệ thống sau này. Trong những năm sau, nhiều nhà nghiên cứu đã thử nghiệm chƣơng trình nhận dạng khuôn mặt dựa trên các cạnh và khoảng cách giữa các điểm nhận dạng sử dụng các cách tiếp cận mạng lƣới nơ-ron phức tạp hơn.Nó khá thành công trên cơ sở dữ liệu nhỏ của hình ảnh, tuy nhiên nó không giải quyết triệt để vấn đề thực tế của cơ sở dữ liệu lớn. Năm 1989 Kirby và Sirovich áp dụng phƣơng pháp phân tích thành phần chính – PCA để dễ dàng tính toán trực tiếp các eigenfaces, và cho thấy chỉ cần ít hơn 100 thuộc tính nhận dạng cần để mã hóa hình ảnh khuôn mặt và chuẩn hóa nó. 1.2.4 Năm 1991 1991 Turk và Pentland đã chứng minh rằng các lỗi còn lại khi mã hóa bằng cách sử dụng các eigenfaces có thể đƣợc sử dụng để phát hiện khuôn mặt trong hình ảnh tự nhiên lộn xộn. Kỹ thuật này dùng để xác định vị trí chính xác và độ lớn của khuôn mặt trong một hình ảnh gần nhƣ là tức thì bởi những cải tiến sau đó. Cuộc cách mạng này đã đơn giản hóa thời gian thực thi các kỹ thuật nhận dạng. Mặc dù phƣơng pháp đã GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 14 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android đƣợc hạn chế bởi các yếu tố môi trƣờng nhƣng đây là một bƣớc tiến to lớn của lĩnh vực của nhận dạng khuôn mặt. Sau đó không lâu, Turk và Pentland tiếp tục phát triển một hệ thống máy tính nhận dạng thời gian thực làm công việc xác định vị trí và theo dõi phần đầu của một đối tƣợng để sau đó nhận dạng đƣợc những ngƣời đó bằng cách so sánh đặc điểm khuôn mặt của họ với những ngƣời đã biết. Phƣơng pháp tính toán đƣợc thực hiện trong hệ thống này kết hợp cả sinh lý học và lý thuyết thông tin, khó khăn đặt ra là phải thỏa mãn các yêu cầu tính toán trong thời gian thực cũng nhƣ độ chính xác của nhận dạng. Phƣơng pháp tiếp cận của Turk và Pentland nhận diện khuôn mặt trong môi trƣờng mô hình 2 chiều (2-D) chứ không đòi hỏi các mô hình hình học 3 chiều (3-D). Phƣơng pháp này tận dụng lợi thế là khuôn mặt trực diện, bình thƣờng và thẳng đứng có thể đƣợc mô tả bởi một tập hợp nhỏ các đặc trƣng 2 chiều. Hệ thống thực thi bằng cách chiếu các đặc trƣng của hình ảnh khuôn mặt vào một không gian. Các đặc trƣng của hình ảnh khuôn mặt không nhất thiết phải tƣơng ứng với các đặc điểm nhận dạng nhƣ mắt, tai và mũi. Các hoạt động chiếu đặc trƣng cho một khuôn mặt cá nhân đƣợc tổng hợp thành trọng số của các thuộc tính eigenface, để nhận dạng một khuôn mặt cụ thể cần thiết phải so sánh các trọng số này với trọng số của các hình ảnh khuôn mặt đã biết. 1.2.5 Năm 1993 Công nghệ nhận diện khuôn mặt (The Facial Recognition Technology - FERET) đƣợc tài trợ bởi cơ quan nghiên cứu phòng vệ (Defense Advanced Research Products Agency - DARPA) từ năm 1993 đến năm 1997. Chƣơng trình khuyến khích phát triển các thuật toán nhận diện khuôn mặt bằng cách tổ chức lại nguyên mẫu các hệ thống nhận diện khuôn mặt đã có. Nó thúc đẩy nhận dạng khuôn mặt từ giai đoạn phôi thai cho đến một sản phẩm thƣơng mại. Mục tiêu của FERET là để phát triển khả năng tự động nhận dạng khuôn mặt để hỗ trợ an ninh, tình báo, và các nhân viên thực thi pháp luật trong lúc thực hiện nhiệm vụ của mình. Chƣơng trình bao gồm ba yếu tố chính:  Tài trợ nghiên cứu các thuật toán nhận dạng khuôn mặt.  Thu thập cơ sở dữ liệu khuôn mặt để phục vụ cho các ứng dụng nhận dạng.  Thực hiện đánh giá đo lƣờng sự tiến bộ trong phát triển thuật toán và xác định các hƣớng nghiên cứu trong tƣơng lai. 1.2.6 Năm 2002 Thử nghiệm nhận dạng khuôn mặt (Face Recognition Vendor Tests - FRVT) bao gồm một loạt các đánh giá độc lập quy mô lớn cho các hệ thống nhận diện khuôn mặt nhận bởi Học viện quốc gia về Tiêu chuẩn và Công nghệ (National Institute of Standards and Technology) vào năm 2000, 2002 và 2006. GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 15 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android Những đánh giá này đƣợc xây dựng dựa trên những công việc đã làm của FERET. Hai mục tiêu của chƣơng trình là đánh giá khả năng của các hệ thống nhận dạng khuôn mặt thử nghiệm và huấn luyện các nhà thử nghiệm làm thế nào để trình bày và phân tích kết quả. Mục tiêu chính của chƣơng trình FRVT năm 2006 là đo lƣờng sự tiến bộ của hệ thống nguyên mẫu so với thuật toán và hệ thống nhận dạng khuôn mặt thử nghiệm kể từ khi thực hiện FRVT năm 2002. FRVT 2006 đánh giá hiệu suất trên:  Độ phân giải cao của hình ảnh (5-6 megapixel).  Quét khuôn mặt 3D.  Xử lý đa mẫu trên khuôn mặt.  Thuật toán tiền xử lý để bù đắp cho tƣ thế và chiếu sáng. Để đảm bảo đánh giá chính xác, năm 2006 FRVT đo hiệu suất, cô lập dữ liệu (không đƣợc nhìn thấy bởi các nhà nghiên cứu hoặc các nhà phát triển). Một số liệu tiêu chuẩn và phƣơng pháp thử nghiệm chuẩnđƣợc đề ra. Chính phủ cung cấp cả dữ liệu thử nghiệm và môi trƣờng thử nghiệm cho ngƣời tham gia. Môi trƣờng thử nghiệm đƣợc gọi là Môi trƣờng thí nghiệm sinh trắc học (Biometric Experimentation Environment-BEE). Nó cho phép các thí nghiệm tập trung vào thử nghiệm bằng cách đơn giản hóa quản lý kiểm tra dữ liệu, cấu hình thử nghiệm, và xử lý kết quả. 1.2.7 Năm 2006 Face Recognition Grand Challenge (FRGC), là một đánh giá mới nhất của thuật toán nhận dạng khuôn mặt có sẵn. Độ phân giải cao hình ảnh khuôn mặt, quét khuôn mặt 3D, và mống mắt hình ảnh đƣợc sử dụng trong các thử nghiệm kiểm tra. Kết quả chỉ ra rằng các thuật toán mới chính xác gấp 10 lần các thuật toán nhận diện khuôn mặt năm 2002 và chính xác hơn 100 lần so với các thuật toán nhận diện khuôn mặt năm 1995. Một số các thuật toán có thể tốt hơn và có thể nhận dạng đƣợc các cặp song sinh giống hệt nhau. Mục tiêu chính của FRGC là để thúc đẩy và nâng cao công nghệ nhận dạng khuôn mặt trong nỗ lực nhận dạng khuôn mặt của Chính phủ Hoa Kỳ. FRGC phát triển các kỹ thuật nhận dạng khuôn mặt mới và tăng hiệu suất của các hệ thống nguyên mẫu. FRGC thực hiện từ tháng 5 năm 2004 đến tháng 3 năm 2006. Có ba các phƣơng pháp chính để cải thiện các thuật toán nhận diện khuôn mặt: sử dụng hình ảnh có độ phân giải cao, nhận dạng khuôn mặt ba chiều (3D), và sử dụng kỹ thuật tiền xử lý:  Độ phân giải cao: Vào thời điểm đó các hệ thống nhận dạng khuôn mặt đƣợc thiết kế để làm việc với hình ảnh tƣơng đối nhỏ của trên khuôn mặt. Phƣơng GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 16 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android pháp truyền thống để đo kích thƣớc của khuôn mặt là số lƣợng điểm ảnh ở trung tâm của mắt. Trong hình ảnh hiện tại có 40 đến 60 điểm ảnh ở trung tâm của mắt (10.000 đến 20.000 điểm ảnh trên khuôn mặt). Trong FRGC, hình ảnh có độ phân giải cao bao gồm hình ảnh gƣơng mặt với trung bình 250 điểm ảnh ở trung tâm mắt.  Kỹ thuật 3 chiều (3-D): Sử dụng các thuật toán nhận dạng khuôn mặt xác định khuôn mặt 3D từ hình dạng của khuôn mặt của một ngƣời. Trong các hệ thống hiện tại ảnh hƣởng của ánh sáng và góc nhìn của khuôn mặt làm giảm hiệu suất nhận dạng khuôn mặt. Bởi vì hình dạng của khuôn mặt không bị ảnh hƣởng bởi những yếu tố trên nên nhận dạng khuôn mặt 3D có giúp cải thiện hiệu suất.  Trong những năm đó đã có nhiều tiến bộ trong đồ họa máy tính và thị giác máy. Những tiến bộ này đã dẫn đến sự phát triển của các thuật toán mới có thể tự động hiệu chỉnh ánh sáng và tạo nên những thay đổi trong hình ảnh khuôn mặt. Các thuật toán này giúp cho giai đoạn tiền xử lý một hình ảnh khuôn mặt trƣớc khi đƣợc xử lý thông qua một hệ thống nhận diện khuôn mặt. 1.2.8 Vị trí của Việt Nam trong lĩnh vực này Nhận dạng khuôn mặt là một lĩnh vực phát triển khá muộn ở Việt Nam, do ảnh hƣởng của chiến tranh và quá trình quá độ nên khoa học công nghệ chậm phát triển. Những năm sau khi thống nhất cho đến nay, các lĩnh vực khoa học công nghệ nói chung và nhận dạng khuôn mặt nói riêng đã đƣợc đƣa vào nghiên cứu và ứng dụng và giảng dạy tại các trƣờng đại học. Các môn học liên quan đến lĩnh vực nhận dạng khuôn mặt có thể kể đến nhƣ : xử lý ảnh, mạng nơ-ron… 1.3 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 1.3.1 Tổng quan Android là một hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux. Trƣớc đây, Android đƣợc phát triển bởi công ty liên hợp Android (sau đó đƣợc Google mua lại vào năm 2005). Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tƣơng lai Android có một cộng đồng những nhà phát triển rất lớn để viết các ứng dụng cho hệ điều hành của mình. Sức tăng trƣởng của Android là cực kỳ mạnh. Hiện nay điện thoại chạy trên hệ điều hành Android chiếm phân nửa thị trƣờng di động thông minh. GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 17 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android So sánh riêng với iOS của Apple, hiện nay Google có khoảng 500.000 ứng dụng trên Play Store, và Apple có khoảng 600.000 trên App Store. Tháng 3 năm 2012, App Store đã cán mốc 25 tỷ lƣợt tải ứng dụng và Play Store của Google đạt mốc 15 tỷ lƣợt tải vào giữa tháng 5 năm 2012. Tuy Apple bỏ xa Google và số lƣợt tải ứng dụng, nhƣng sức tăng trƣởng của Google vƣợt xa Apple so với năm ngoái. 1.3.2 Nhận xét cá nhân Do Android đƣợc Google tạo ra để cạnh tranh với iOS của Apple, nên phần này chỉ nói qua ƣu và nhƣợc điểm của Android, và so sánh với iOS, cũng nhƣ lập trình Android so với lập trình iOS. Hệ điều hành Android có độ tùy biến rất cao, hầu hết tất cả mọi thứ của Android đều có thể thay đổi đƣợc bởi ngƣời dùng cuối. So sánh riêng với iOS, đối thủ lớn nhất của Android, thì Android cho ngƣời dùng nhiều chức năng mới mẻ hơn, cũng nhƣ nhiều lựa chọn về phần cứng, nhà sản xuất, nhà cung cấp mạng. Ngƣời dùng Android đa số là kiểu ngƣời thích sáng tạo, muốn sử dụng điện thoại theo cách của mình, không bị ràng buộc bởi nhà phát triển. Tuy nhiên, đây có lẽ cũng là lý do Play Store của Google không kiếm đƣợc nhiều tiền bằng App Store của Apple, khi ngƣời dùng có thể “tự” làm quá nhiều thứ. Chợ ứng dụng Play Store của Google có hơn 70% là ứng dụng miễn phí, thể hiện rõ tính “mở” của một hệ điều hành mã nguồn mở. Các ứng dụng thƣờng có 2 phiên bản, một bản miễn phí, và một bản trả phí. Đa số các ứng dụng miễn phí đã làm rất tốt công việc của nó, ngƣời dùng chỉ trả phí để hỗ trợ (donate) cho lập trình viên, nếu muốn. Tôi đã thử email một lập trình viên để xin mã nguồn một chƣơng trình trên Play Store, và thật bất ngờ là tôi đã nhận đƣợc email toàn bộ gói mã nguồn chƣơng trình. Trong khi đó App Store với chỉ hơn 30% ứng dụng miễn phí, và các ứng dụng miễn phí đó bị hạn chế khá nhiều chức năng so với bản phải trả phí. Rõ ràng đây là lý do App Store kiếm ra tiền nhiều hơn Play Store. So với cơ chế kinh doanh và phát triển của Apple, việc Google cho phép hệ điều hành của mình đƣợc phát triển bởi nhiều nhà phát triển và chạy trên nhiều điện thoại của nhiều hãng sản xuất khác nhau, có vẻ nhƣ cho lập trình viên nhiều cơ hội hơn, khi mà Android là hệ điều hành chiếm nhiều thị phần nhất hiện nay. Đây có vẻ nhƣ là yếu tố chính tạo nên sức tăng trƣởng mạnh mẽ của Android trong những năm qua. Tuy nhiên, điều này lại gây ra khó khăn cho lập trình viên Android khi phải hỗ trợ quá nhiều phần cứng điện thoại. iOS chạy các ứng dụng với các giới hạn quyền nhƣ nhau, và ngƣời dùng không thấy đƣợc các quyền này, hơn nữa Apple luôn muốn tất cả các ứng dụng cho thiết bị của họ (iDevices) đều đƣợc tải từ App Store, do đó Apple quản lý tuyệt đối quyền hạn bảo mật trên các iDevice, các ứng dụng có khả năng trao đổi với nhau rất ít. Còn về phía Android, Google luôn cho phép ngƣời dùng cài đặt ứng dụng từ nhà phát triển bên thứ ba, nên các quyền hạn bảo mật của thiết bị Android, hầu nhƣ mọi thứ đều do GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 18 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android ngƣời dùng chọn lựa, mà hầu nhƣ, rất ít ngƣời chịu khó đọc các quyền hạn đƣợc nêu ra khi cài đặt một ứng dụng bên ngoài Play Store. Việc phá bỏ các rào cản ứng dụng làm cho nhà phát triển ứng dụng bên thứ ba có thể tạo ra các ứng dụng cực kỳ sáng tạo và nhắm đến lợi ích lớn nhất là sự tiện lợi cho ngƣời dùng cuối. Điều này làm cho mọi nhu cầu thiết thực cho ngƣời dùng, dù đi ngƣợc lại với lợi ích của nhà phát triển, trở nên khả thi. Ví dụ cụ thể: ứng dụng NinjaMorph của Google Play Store có thể lấy bất cứ ứng dụng nào, từ ứng dụng do ngƣời dùng cài đặt, đến chƣơng trình của nhà phát triển hệ thống, giải mã toàn bộ ứng dụng và thay đổi mã nguồn chƣơng trình, sau đó đóng gói lại và cài đặt lại trên điện thoại. Tất cả đều đƣợc thực hiện trên điện thoại. Tuy nhiên việc cho một ứng dụng thứ ba gần nhƣ mọi quyền điều khiển hệ thống, khiến cho ngƣời dùng Android dễ bị lợi dụng hơn bởi các ứng dụng không trong sạch. Điều này không có nghĩa là cơ chế bảo mật của Android yếu hơn iOS. Quyền cài đặt và cấp quyền cho một ứng dụng do ngƣời dùng quyết định, nên Android dễ bị xâm nhập bằng sự sơ hở của ngƣời sử dụng, đây là khuyết điểm về mặt “an toàn” (safety) của Android so với iOS. Cá nhân tôi không đủ kiến thức để đánh giá sâu hơn về mặt “bảo mật” (security) nên xin lấy ý kiến chuyên môn từ một thành viên của diễn đàn XDADevelopers.com có tài khoản là Alex, trong một topic về chủ đề bảo mật của Android so với iOS: Nếu bạn có ý định tấn công một điện thoại Android (không root) hoặc một thiết bị iOS (không jailbreak) thì iOS là một mục tiêu “mềm” hơn. Tuy nhiên, BlackBerry OS mới là hệ điều hành di động có cơ chế bảo mật tốt nhất. Android chính là nền tảng cho một lập trình viên yêu thích sự sáng tạo và đáp ứng những nhu cầu thiết thực của ngƣời dùng đối với một thiết bị cầm tay cũng nhƣ các thiết bị khác có liên quan. 1.4 MỤC TIÊU VÀ NHIỆM VỤ 1.4.1 Kiến thức và kỹ năng Trong quá trình nghiên cứu và thực hiện đề tài chúng tôi đã tiếp thu đƣợc nhiều kiến thức và kỹ năng về:  Kiến thức về phân tích yêu cầu: Nhận dạng khuôn mặt trên Android là một đề tài tƣơng đối rộng và mới mẻ. Phần lớn các ứng dụng nhận dạng khuôn mặt trên Android đều đƣợc các công ty phần mềm lớn phát triển. Quá trình phân tích yêu cầu đòi hỏi sự tập trung cao và có đủ các kiến thức về lĩnh vực nhận dạng để định hƣớng cho đề tài. Cách phân tích cũng khác với những gì đã đƣợc học. Phân tích và định hƣớng phần lớn dựa vào phán đoán. Kết quả ứng dụng đƣợc tạo thành từ nhiều hƣớng đi và chọn ra một hƣớng phù hợp nhất thông qua kết quả thực nghiệm, có nhiều kết quả là thất bại. GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 19 Nghiên cứu và phát triển ứng dụng nhận dạng khuôn mặt cho Android  Kiến thức về một lĩnh vực mới, chƣa đƣợc giới thiệu trong nhà trƣờng: Nhận dạng khuôn mặt là một lĩnh vực đã có từ rất lâu nhƣng vẫn chƣa đƣợc giới thiệu và giảng dạy ở trƣờng chúng ta. Quá trình tìm hiểu và phân tích đề tài này đã đem lại nhiều hiểu biết về lịch sử của nhận dạng khuôn mặt, các phƣơng pháp tiếp cận, các ứng dụng của nhận dạng khuôn mặt trong thực tế.  Kiến thức về một nền tảng lập trình cho thiết bị di động: Hệ điều hành Android đã và đang rất phổ biến, cộng đồng phát triển ứng dụng cho nền tảng này cũng rất lớn. Đối với chƣơng trình đào tạo ở trƣờng ta nền tảng này vẫn chƣa đƣợc đƣa vào giảng dạy, có lẽ một vài năm tới sẽ đƣợc phát triển. Quá trình làm việc cùng với nền tảng này đã cho chúng tôi nhiều sự hiểu biết về lập trình ứng dụng và sử dụng các thƣ viện hàm.  Kỹ năng tìm kiếm tài liệu: Internet là một công cụ thuận tiện để tiếp cận nhanh và dễ dàng đến một lƣợng thông tin khổng lồ và phong phú trên khắp thế giới, trong mọi lĩnh vực. Nhƣng, trong một thế giới hỗn độn thông tin nhƣ thế, làm sao để tìm đƣợc thông tin phù hợp với nhu cầu một cách nhanh chóng, hiệu quả? Không phải lúc nào kết quả trả về từ công cụ tìm kiếm đều hữu ích và chính xác. Kỹ năng lựa chọn từ khóa tìm kiếm cũng nhƣ chọn lọc thông tin phải đƣợc nâng cao.  Kỹ năng phân tích tài liệu: Các tài liệu về lập trình ứng dụng cho nền tảng Android đã đƣợc cung cấp nhƣng phần lớn là viết bằng tiếng Anh, vấn đề là đọc và hiểu để sử dụng chính xác.  Kỹ năng về trao đổi trực tuyến: Một lợi ích khác của internet là sự giao tiếp giữa các cá nhân trên khắp thế giới thông qua các diễn đàn, các group. Kết quả trao đổi có thể tốt ngoài mong đợi nhƣng đôi khi không giúp ích đƣợc gì. Và các ý kiến đóng góp của các thành viên khác cũng cần phải đƣợc xem xét trƣớc khi áp dụng cho đề tài của mình.  Kỹ năng phán đoán, dựa trên các thông tin ít ỏi tiếp nhận đƣợc từ các dự án hoàn thành và chƣa hoàn thành để xác định hƣớng thực hiện đề tài. Các thông tin có thể rất hữu ích hoặc vô ích vì đó có thể là một hƣớng phân tích sai.  Kỹ năng làm việc nhóm: nhƣ đã nói ở trên, nhận dạng khuôn mặt là một đề tài khá rộng và ở đề tài chúng tôi bao gồm hai sinh viên thực hiện, yêu cầu đặt ra là phân chia công việc hợp lý dựa và khả năng của từng cá nhân và trao đổi thông tin xuyên suốt. GV Hướng dẫn: GVC, ThS. Đoàn Hòa Minh Trang 20
- Xem thêm -