Đoàn Ngọc Phƣơng<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
116 (02): 105 - 110<br />
<br />
XÂY DỰNG HỆ THỐNG PHÁT HIỆN KHUÔN MẶT VÀ CẢNH BÁO BẰNG<br />
EMAIL TRÊN ANDROID VỚI VI XỬ LÝ ARM CORTEX A8<br />
Đoàn Ngọc Phương*<br />
Trường Đại học Công nghệ thông tin và Truyền thông – ĐH Thái Nguyên<br />
<br />
TÓM TẮT<br />
Sự phát triển của các nền tảng sử dụng hệ điều hành Android và vi xử lý ARM, cùng với sự ra đời<br />
của phiên bản OpenCV dành cho Android đã tạo điều kiện cho các lập trình viên phát triển các<br />
ứng dụng thị giác máy tính cho các hệ thống nhúng. Trong đó, các ứng dụng nhận diện khuôn mặt<br />
trên hệ nhúng hiện nay đang rất đƣợc quan tâm nhƣng chƣa đƣợc khai thác hết. Bài báo này sẽ đề<br />
xuất phƣơng pháp xây dựng hệ thống phát hiện khuôn mặt và gửi thông báo bằng email cho ngƣời<br />
dùng. Hệ thống đƣợc triển khai trên bộ Kit ARM Cubie A10 đƣợc cài đặt hệ điều hành Android<br />
với vi điều khiển ARM Cortex A8. Qua quá trình thực nghiệm, hệ thống đã đã đạt đƣợc các kết<br />
quả tốt thể hiện hiệu quả của việc sử dụng các hệ thống nhúng trong bài toán phát hiện xâm nhập<br />
qua hình ảnh và cảnh báo tới ngƣời dùng.<br />
Từ khóa: ARM, Cortex A8, OpenCV, OpenCV4Android, phát hiện khuôn mặt, thị giác máy tính,<br />
thị giác nhúng, Android.<br />
<br />
GIỚI THIỆU*<br />
Phát hiện khuôn mặt là kỹ thuật cho phép<br />
phát hiện ra khuôn mặt ngƣời trong một<br />
khung hình hay trong một đoạn video [1]. Kỹ<br />
thuật này cho phép phân biệt khuôn mặt với<br />
các thành phần khác trong hình ảnh nhƣ cơ<br />
thể, cây cối, xe cộ, …, sau đó xác định vị trí<br />
và kích thƣớc của khuôn mặt để sử dụng<br />
trong các mục đích khác nhau. Phát hiện<br />
khuôn mặt đƣợc phát triển từ những năm 70<br />
của thế kỷ trƣớc [1] và đã đạt đƣợc nhiều<br />
thành tựu đáng kể với những giải thuật điển<br />
hình nhƣ adaboost, các đặc trƣng haar-like,<br />
mô hình Cascade of Classifiers [1]. Những<br />
giải thuật đó đã giải quyết đƣợc các vấn đề<br />
đặt ra với phát hiện khuôn mặt, đó là: Phát<br />
hiện khuôn mặt ngƣời ở các tƣ thế khác nhau;<br />
Phát hiện khuôn mặt khi trên khuôn mặt có<br />
nhiều chi tiết không thuộc khuôn mặt ngƣời;<br />
Phát hiện các trạng thái khác nhau của khuôn<br />
mặt;Phát hiện khuôn mặt khi nó bị che khuất<br />
một phần,…Phát hiện khuôn mặt đã đƣợc áp<br />
dụng trong rất nhiều lĩnh vực [1]: Xác minh<br />
tội phạm,bảo mật,tìm kiếm dữ liệu…<br />
Tuy có một lịch sử phát triển lâu dài nhƣ vậy,<br />
nhƣng phát hiện khuôn mặt vẫn tiếp tục đƣợc<br />
*<br />
<br />
Tel: 0979 479940, Email: dnphuong@ictu.edu.vn<br />
<br />
nghiên cứu, cải tiến để phù hợp với những<br />
yêu cầu mới. Gần đây, kỹ thuật phát hiện<br />
khuôn mặt bắt đầu đƣợc sử dụng rộng rãi<br />
trong các hệ thống nhúng với hai lý do chính,<br />
một là:Sự phát triển của vi xử lý tiên tiến, tiết<br />
kiệm điện năng ARM, sự xuất hiện của các hệ<br />
điều hành nhƣ Android, Linux trên các hệ<br />
thống nhúng [6], [9]; Hai là, sự hỗ trợ của hệ<br />
điều hành Android cho bộ thƣ viện thị giác<br />
máy tính OpenCV[9].<br />
Với những xu hƣớng phát triển nhƣ vậy, giờ<br />
đây ngƣời lập trình có thể sử dụng thƣ viện<br />
OpenCV để tạo ra các ứng dụng phát hiện<br />
khuôn mặt cho các hệ nhúng sử dụng nền<br />
tảng Android với lõi vi xử lý ARM [6], [8].<br />
Trên thực tế bài toán đã đƣợc triển khai rất<br />
hiệu quả trên các thiết bị di động, tuy nhiên<br />
các nhà phát triển chƣa thực sự quan tâm tới<br />
việc phát triển ứng dụng phát hiện khuôn mặt<br />
trên các hệ thống nhúng. Bên cạnh đó, các hệ<br />
thống quan sát hiện nay phần lớn chỉ quan<br />
tâm tới thị trƣờng của camera, khả năng phát<br />
hiện đối tƣợng mà chƣa thực sự quan tâm tới<br />
khả năng tự động gửi thông báo từ xa cho<br />
ngƣời dùng.<br />
Bài báo này đề xuất về việc xây dựng một hệ<br />
thống thông minh cho phép phát hiện khuôn<br />
mặt và gửi email đến ngƣời giám sát trên một<br />
105<br />
<br />
Đoàn Ngọc Phƣơng<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
hệ nhúng. Chƣơng trình điều khiển đƣợc triển<br />
khai trên bộ kit Cubie A10 với nền tảng<br />
Android 4.0.4 và vi xử lý ARM Cortex A8.<br />
Để thực hiện thu hình ảnh, hệ thống sử dụng<br />
một camera để quan sát môi trƣờng xung<br />
quanh. Khi phát hiện thấy có ngƣời đi vào<br />
vùng quan sát, chƣơng trình sẽ chụp lại hình<br />
ảnh và tự động gửi thông báo đến ngƣời sử<br />
dụng bằng email.<br />
ANDROID VÀ ARM<br />
Android đƣợc phát triển và tối ƣu hóa cho bộ<br />
vi xử lý lõi ARM [6]. Đặc biệt, hệ thống<br />
Android hoạt động tốt trên lõi ARM<br />
Cortex™-Ax, trong đó có ARM Cortex-A8,<br />
vi xử lý kết hợp các chức năng của một CPU<br />
lớp netbook cho các hệ thống nhúng. Với ƣu<br />
điểm tiêu thụ điện năng thấp, vi điều khiển<br />
ARM là vi điều khiển phù hợp với các điện<br />
thoại cầm tay thông minh – môi trƣờng mà<br />
ARM đƣợc triển khai mạnh mẽ [4]. Các thiết<br />
bị ARMv7 nhƣ ARM Cortex-A8 đƣợc tích<br />
hợp công nghệ SIMD tiên tiến đƣợc gọi là<br />
công nghệ Neon, đƣợc sử dụng để tăng tốc độ<br />
nhiều thao tác nhƣ mã hóa hay thao tác đồ<br />
họa trên điểm ảnh và có thể cải thiện hiệu<br />
suất trên mã ARM hoặc tập lệnh THUMB®.<br />
[6] Tất cả các thiết bị TI đều có công nghệ<br />
Neon. Hiện nay có nhiều thế hệ ARM mới, ví<br />
dụ nhƣ ARM9, nhƣng Android không đƣợc<br />
tối ƣu hóa cho ARM9. Mặc dù Android có thể<br />
đƣợc triển khai trên hệ thống có lõi ARM9,<br />
nhƣng hiệu suất sẽ thấp hơn so với việc dùng<br />
nhân ARM Cortex-A8 [6]. Hơn nữa với lõi<br />
ARM Cortex A8 có thể thực hiện nhiều công<br />
việc phức tạp với giá thành hợp lý mà không<br />
cần đến các lõi hiện đại hơn.<br />
Các môi trƣờng phát triển của Android:<br />
Với thành tựu đạt đƣợc trong thị trƣờng điện<br />
thoại di động, Android đang nỗ lực phát triển<br />
để xâm chiếm vào các thị trƣờng khác nhƣ thị<br />
trƣờng các thiết bị gia dụng, các thiết bị<br />
chuẩn đoán y tế, các dây truyền công<br />
nghiệp,…. Trong đó Android đặc biệt chú ý<br />
đến các môi trƣờng mà những thế mạnh của<br />
nó có thể đƣợc phát huy, đó là các môi<br />
106<br />
<br />
116 (02): 105 - 110<br />
<br />
trƣờng: Quan tâm đến nội dung đa phƣơng<br />
tiện;Linh hoạt, hƣớng đồ họa và có giao diện<br />
trực quan dựa trên cảm ứng;Có ít nhất một<br />
thành phần truyền thông.<br />
Xử lý đa phƣơng tiện:Vì hầu hết các hệ<br />
thống Android đều có các ứng dụng đa<br />
phƣơng tiện mạnh mẽ nhƣ xem phim, chụp<br />
hình,…, cho nên các nhà phát triển thƣờng<br />
đặc biệt chú ý để làm thế nào video, âm thanh<br />
và đồ họa đƣợc xử lý tốt trên hệ thống. Phần<br />
lớn các bộ mã hóa/giải mã đƣợc cấu hình sẵn<br />
với Android thƣờng độ phân giải thấp/tốc độ<br />
mã hóa chậm vì các hệ thống có mục tiêu<br />
thiết kế cho ARM™-A8 . [6], [2]Một số nền<br />
tảng, nhƣ bộ vi xử lýđiện thoại TI OMAP™,<br />
bộ vi xử lý video DaVinci và C6000 DSP + vi<br />
xử lý ARM, thƣờng kết hợp lõi ARM Cortex<br />
với lõi xử lý DSP. Điều đó đem lại hiệu quả<br />
trong việc xử lý đa phƣơng tiện, vì lõi DSP có<br />
thể giúp giảm tải và đồng thời làm tăng tốc xử<br />
lý đa phƣơng tiện cho lõi ARM.<br />
CÔNG CỤ PHÁT TRIỂN<br />
OpenCV:[2], [7], [8] Là thƣ viện thị giác<br />
máy tính mã nguồn mở, đƣợc cấp phép từ<br />
năm 2000 bởi BSD. OpenCV đƣợc xây dựng<br />
nhằm mục đích cung cấp những công cụ cần<br />
thiết để giải quyết các vấn đề thị giác máy<br />
tính. Bao gồm các chức năng xử lý hình ảnh ở<br />
mức độ thấp và các thuật toán cao cấp nhƣ<br />
phát hiện khuôn mặt, phát hiện ngƣời đi bộ.<br />
Thƣ viện đã đƣợc tải về hơn 5 triệu lần. Các<br />
trƣờng đại học hàng đầu và hơn 100 công ty<br />
Foutine và nhiều thành viên khác đã phát triển<br />
và duy trì hơn 2500 thuật toán có trong thƣ<br />
viện. OpenCV đƣợc viết bằng C, C++, nhƣng<br />
giao diện ứng dụng cũng bao gồm<br />
wrappercho Java, MATLAB và Python.<br />
OpenCV hiện đang hỗ trợ cho Linux, Mac OS<br />
X, Android và các nền tảng iOS.[2] OpenCV<br />
bắt đầu hỗ trợ Android trong phiên bản<br />
OpenCV 2.2. Sau đó NDVIA đã tham gia vào<br />
dự án OpenCV và từ phiên bản OpenCV 2.3<br />
các nhà phát triển đã có thể sử dụng OpenCV<br />
trên nền tảng Android với các công cụ đầy đủ<br />
và mạnh mẽ hơn.<br />
<br />
Đoàn Ngọc Phƣơng<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Kit phát triển:Các công cụ phát triển cho<br />
ứng dụng Anrdoid trên vi xử lý ARM rất<br />
phong phú, không chỉ là phần mềm mà còn là<br />
các công cụ phần cứng. Với công nghệ tiên<br />
tiến và với những ƣu điểm của vi điều khiển<br />
ARM, rất nhiều bo mạch ARM đã ra đời cho<br />
phép ngƣời lập trình có thể nghiên cứu và xây<br />
dựng hệ thống ngay trên các thiết bị thật. Các<br />
bộ Kit phát triển này thƣờng hỗ trợ các hệ<br />
điều hành Android và Linux [6].<br />
<br />
116 (02): 105 - 110<br />
<br />
chƣơng trình điều khiển và là sản phẩm cuối<br />
cùng của hệ thống.<br />
<br />
Hình 2: Mô hình hệ thống<br />
Hình 1: Kit Cubie A10<br />
<br />
Hệ thống quan sát ngƣời qua nhận dạng<br />
khuôn mặt và gửi email cảnh báo của bài báo<br />
đƣợc thực hiện trên board Cubie A10 của<br />
Công nghệ Công ty TNHH CubieTech tại<br />
Chu Hải, Trung quốc [1], board hỗ trợ hệ điều<br />
hành Adroid, Linux, cho phép kết nối ổ HD,<br />
có cổng USB, HDMI, Ethernet, phục vụ cho<br />
việc kết nối mạng, LCD, các thiết bị ngoại vi<br />
nhƣ: chuột, bàn phím, camera, thích hợp cho<br />
việc phát triển các dự án liên quan đến thị<br />
giác máy tính trên hệ điều hành Android.<br />
XÂY DỰNG HỆ THỐNG PHÁT HIỆN<br />
KHUÔN MẶT VÀ GỬI THÔNG TIN<br />
CẢNH BÁO QUA EMAIL.<br />
Hệ thống mà tác giả đề xuất cho phép quan<br />
sát môi trƣờng xung quanh, nhận diện có<br />
ngƣời trong môi trƣờng quan sát thông qua<br />
việc phát hiện khuôn mặt, sau đó chụp ảnh và<br />
gửi thông báo đến ngƣời dùng qua email.<br />
Hệ thống gồm có một chƣơng trình điều<br />
khiển và một bo mạch. Chƣơng trình đƣợc<br />
xây dựng để điều khiển bật/tắt camera, phát<br />
hiện khuôn mặt ngƣời trong khuôn hình mà<br />
camera thu đƣợc, chụp hình và gửi email<br />
thông báo. Bo mạch đƣợc sử dụng để cài đặt<br />
<br />
Phƣơng pháp xây dựng hệ thống. Quá trình<br />
thực hiện của hệ thống quan sát phát hiện khuôn<br />
mặt và gửi thông báo qua emailnhƣ sau:<br />
Chuẩn bị board: Để vận hành board cần<br />
đƣợc gắn các thiết bị ngoại vi nhƣ camera,<br />
cáp ethernet, sau đó nạp hệ điều hành và chạy<br />
chƣơng trình điều khiển.<br />
Xử lý video và gửi email: Hoàn tất các bƣớc<br />
khởi động, chƣơng trình bắt đầu thực hiện<br />
công việc chính: Theo dõi môi trƣờng xung<br />
quanh qua camera (chƣơng trình không đƣợc<br />
thiết kế để camera có khả năng thay đổi góc<br />
quan sát, để thuận tiện cho việc lựa chọn thiết<br />
bị camera của ngƣời sử dụng), chạy khối<br />
chƣơng trình phát hiện khuôn mặt qua video,<br />
nếu thấy có khuôn mặt xuất hiện, lập tức đánh<br />
dấu vùng chứa khuôn mặt, thực hiện chụp<br />
hình, hình đƣợc thu nhỏ kích cỡ là 100x100,<br />
lƣu trong thƣ mục Gallery của thiết bị. Sau đó<br />
khối chƣơng trình gửi email đƣợc gọi, ảnh đã<br />
chụp đƣợc đính kèm vào emailvà chƣơng<br />
trình sẽ tiến hành gửi thông báo đến ngƣời<br />
dùng. Quá trình kiểm tra phát hiện khuôn mặt<br />
và gửi email đƣợc tiếp tục thực hiện cho đến<br />
khi ứng dụng bị tắt hoặc board bị ngắt nguồn.<br />
107<br />
<br />
Đoàn Ngọc Phƣơng<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
116 (02): 105 - 110<br />
<br />
Trong một bức ảnh, có nhiều vùng không<br />
chứa khuôn mặt, nếu loại bỏ đƣợc những<br />
vùng này thời gian tính toán sẽ đƣợc giảm đi<br />
đáng kể, vì vậy, ảnh đƣợc chia ra làm nhiều<br />
cửa sổ nhỏ. Trong quá trình phát hiện đối<br />
tƣợng, các cửa sổ không chứa khuôn mặt sẽ<br />
đƣợc loại bỏ dần [9].<br />
Nếu áp dụng tất cả các đặc trƣng trên một cửa<br />
sổ sẽ tốn thời gian, nên các đặc trƣng đƣợc<br />
chia thành các nhóm, và mỗi nhóm đƣợc áp<br />
dụng trong các giai đoạn khác nhau của quá<br />
trình phân lớp đối tƣợng [9].<br />
<br />
Hình 3: Biểu đồ trạng thái của hệ thống<br />
<br />
Thiết kế chức năng nhận dạng khuôn mặt<br />
với OpenCV:OpenCV dùng thuật toán Haar<br />
Cascade để phát hiện khuôn mặt cũng nhƣ các<br />
đối tƣợng khác [9]. Haar Cascade là phƣơng<br />
pháp phát hiện đối tƣợng đƣợc đƣa ra bởi<br />
Paul Viola và Michael Jones năm 2001. Là<br />
một phƣơng pháp học máy dựa trên một chức<br />
năng Cascade đƣợc huấn luyện từ rất nhiều ảnh<br />
khẳng định và phủ định, đƣợc sử dụng để phát<br />
hiện đối tƣợng trong các bức ảnh khác nhau.<br />
Với phát hiện khuôn mặt, ban đầu thuật toán<br />
cần rất nhiều ảnh phủ định (không chứa<br />
khuôn mặt) và khẳng định (chứa khuôn mặt)<br />
để làm tập huấn luyện cho phân lớp. Sau<br />
đó đƣa ra các đặc trƣng Haar. Các ảnh trong<br />
tập huấn luyện đƣợc dùng để tính toán đặc<br />
trƣng Haar.<br />
Mỗi đặc trƣng Haar là một giá trị duy nhất thu<br />
đƣợc bằng cách trừ đi tổng các điểm ảnh ở<br />
hình chữ nhật màu trắng với tổng các điểm<br />
ảnh nằm ở vùng chữ nhật màu đen. Để nhận<br />
dạng khuôn mặt, ta cần áp dụng các đặc trƣng<br />
Haar trên các hình ảnh cần kiểm tra. Sau đó<br />
chọn đặc trƣng có tỉ lệ lỗi tối thiểu. Tuy nhiên<br />
khi kết hợp các tính năng với nhau thì tỉ lệ<br />
phát hiện đối tƣợng đạt hiệu quả tốt hơn, với<br />
200 đặc trƣng Haar thì tỉ lệ phát hiện đối<br />
tƣợng đạt 95% [9].<br />
108<br />
<br />
Trên mỗi cửa sổ, nếu ở giai đoạn đầu tiên bị<br />
lỗi thì cửa sổ bị loại. Nếu vƣợt qua, áp dụng<br />
giai đoạn tiếp theo của phân lớp và tiếp tục<br />
quá trình. Cửa sổ vƣợt qua tất cả các giai<br />
đoạn là khu vực chứa khuôn mặt [9].<br />
OpenCV có tập huấn luyện tốt để huấn luyện<br />
cho phát hiện mặt, mắt,..,tập huấn luyện đƣợc<br />
lƣu<br />
trong<br />
các<br />
file<br />
XML<br />
trong<br />
opencv/data/haarcascades/. Ngƣời lập trình có<br />
thể thay đổi file này để phát hiện các đối<br />
tƣợng khác theo ý muốn.<br />
Với phát hiện khuôn mặt trong video, chƣơng<br />
trình sẽ cho phép camera thực hiện capture<br />
ảnh liên tục, sau đó áp dụng thuật toán Haar<br />
Cascade trên mỗi ảnh tĩnh chụp đƣợc.<br />
KẾT QUẢ THỰC NGHIỆM<br />
<br />
Hình 5: Test hệ thống với LCD monitor<br />
<br />
Hệ thống chạy khá hiệu quả, phát hiện đƣợc<br />
khuôn mặt trong trạng thái ánh sáng tốt, nếu<br />
ánh sáng yếu hệ thống có thể không nhận<br />
dạng đƣợc khuôn mặt, còn bị nhầm lẫn với<br />
các vật thể có khung tối (giống khuôn mặt<br />
<br />
Đoàn Ngọc Phƣơng<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
ngƣời với đôi mắt). Chƣơng trình đƣợc thử<br />
nghiệm với các trƣờng hợp sau:<br />
- Trong trƣờng hợp điều kiện tốt, ánh sáng<br />
thích hợp, không có vật thể lạ che khuất<br />
khuôn mặt, chƣơng trình thực hiện với 100<br />
lần thử nghiệm với các khuôn mặt khác nhau<br />
theo hƣớng trực diện, số lần phát hiện đúng<br />
khuôn mặt và gửi đƣợc email đạt 98%.<br />
- Khi ánh sáng kém, hình ảnh khuôn mặt<br />
không trực diện thì với 100 lần thử nghiệm,<br />
chƣơng trình chỉ phát hiện đúng khuôn mặt và<br />
gửi đƣợc email với tỉ lệ 30%.<br />
Hạn chế của phần mềm điều khiển hệ thống<br />
đó là việc nhận dạng khuôn mặt để phát hiện<br />
có ngƣời trong khung hình là không hợp lý<br />
trong các bài toán an ninh, giám sát. Do<br />
những đối tƣợng di chuyển vào trong khung<br />
hình có thể che mặt nên camera không thể<br />
phát hiện ra đƣợc. Bên cạnh đó còn có những<br />
vật thể không phải ngƣời nhƣ tranh ảnh, búp<br />
bê,… tuy không phải ngƣời nhƣng vẫn đƣợc<br />
hệ thống phát hiện khuôn mặt và đƣa ra thông<br />
báo. Vì thế bài toán có thể phát triển trong<br />
tƣơng lai là phát hiện ngƣời thông qua hình<br />
dáng cơ thể nhƣ vậy có thể sử dụng cho nhiều<br />
trƣờng hợp trong thực tế. Có thể áp dụng hệ<br />
thống này trong những trƣờng hợp quan sát<br />
đơn giản, ví dụ nhƣ khi vắng nhà, ngƣời dùng<br />
có thể dùng hệ thống để biết đƣợc những vị<br />
khách đã đến thăm.<br />
<br />
Hình 6: Kết quả thực hiện nhận dạng khuôn mặt<br />
trong điều kiện ánh sáng tốt.<br />
<br />
116 (02): 105 - 110<br />
<br />
KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU<br />
TIẾP THEO<br />
Bài báo đã trình bày về cơ sở lý thuyết, các<br />
công cụ hỗ trợ và quá trình xây dựng hệ thống<br />
phát hiện khuôn mặt và gửi email thông báo<br />
trên hệ thống nhúng sử dụng hệ điều hành<br />
Android và vi điều khiển ARM Cortex A8.<br />
Tác giả đã thử nghiệm hệ thống trên bộ Kit<br />
Cubie A10 của nhà phát triển CubieTech. Kết<br />
quả cho thấy chƣơng trình hoạt động tốt, ổn<br />
định trong điều kiện ánh sáng tốt và hình ảnh<br />
khuôn mặt trực diện, tuy nhiên, trong những<br />
điều kiện ánh sáng không tốt và khuôn mặt bị<br />
che một phần thì việc nhận dạng khuôn mặt<br />
của hệ thống không đạt hiệu quả cao. Vì vậy,<br />
trong thời gian tới, tác giả sẽ tiếp tục nghiên<br />
cứu các phƣơng pháp phát hiện khuôn mặt để<br />
chƣơng trình đạt hiệu quả tốt hơn. Bài báo có<br />
thể làm tài liệu tham khảo cho các lập trình<br />
viên muốn tìm hiểu về cách xây dựng các hệ<br />
thống quan sát, gửi thông báo trên nền tảng<br />
Android với nhân vi xử lý ARM Cortex A8.<br />
TÀI LIỆU THAM KHẢO<br />
1. All Winner Technology CO.,Ltd, (2011) A10<br />
development board hardware manual V1.1,<br />
August 24.<br />
2. Andrey Pavlenko, (2012) OpenCV for Android,<br />
Itseez CO.<br />
3. Andrew King, (2003) “A Survey of Methods for<br />
Face Detection”.<br />
4. ARM LTD, (2007) Cortex-A8 Technical<br />
Reference Manual.<br />
5. DanaH.Ballard, (1983) Christopher M. Brown,<br />
Computer Vision, Prentice Hall.<br />
6. Darren Etheridge, (2012) Android Multimedia<br />
Engineering Manager,DSP and ARM, Texas<br />
Instruments.<br />
7. Gary Bradski, Adrian Kaehler, (2008) Learning<br />
OpenCV: ComputerVision with the OpenCV<br />
Library, O'Reilly.<br />
8. G. Bradski, (Nov 2000) The opencv library,<br />
Dr.Dobb’s Journal, vol. 25.<br />
9. OpenCV 3.0.0.0, (2013) dev documentation,<br />
Face Detection using Haar Cascades, opencv<br />
dev team.<br />
10. R. LaganiÃlre, (2011) OpenCV 2 Computer<br />
Vision Application Programming Cookbook,<br />
Packt Publishing.<br />
11. Steve Furber, (2005) ARM-SoC Architecture,<br />
Addison Wesley Publishing.<br />
<br />
109<br />
<br />