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 -