Xây dựng hệ thống phát hiện khuôn mặt và cảnh báo bằng Email trên Android với vi xử lý ARM CORTEX A8

6 100 0
Xây dựng hệ thống phát hiện khuôn mặt và cảnh báo bằng Email trên Android với vi xử lý ARM CORTEX A8

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 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 ứng dụng thị giác máy tính cho các hệ thống nhúng.

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

Ngày đăng: 30/01/2020, 03:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan