Luận Văn Hệ điều hành android và thực thực thi dụng phát hiện khuôn mặt trên android

Thảo luận trong 'Chưa Phân Loại' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    173
    Điểm thành tích:
    0
    Xu:
    0Xu
    TÓM TẮT
    Android là hệ điều hành cho thiết bị di động được phát triển bởi Google. Android
    dựa trên nhân Linux 2.6 và các ứng dụng Android được viết bằng ngôn ngữ lập trình
    Java. Khóa luận này tôi trình bày tổng quan về Android, kiến trúc Android, Android
    SDK, Android NDK, các thành phần tạo nên một ứng dụng Android và trình bày hai
    phương pháp phát hiện khuôn mặt sử dụng thư viện OpenCV và framework API của
    Android. Đồng thời khóa luận cũng trình bày sự khác nhau giữa máy ảo Java và máy ảo
    Dalvik. Dalvik là máy ảo thực thi các ứng dụng Android.
    Trong khóa luận này tôi trình bày quy trình xây dựng và thực thi một ứng dụng với
    Android NDK. Quy trình này sẽ được sử dụng để xây dựng ứng dụng phát hiện khuôn
    mặt sử dụng OpenCV. OpenCV là một thư viện hỗ trợ cho xử lý ảnh do Intel phát triển,
    bao gồm khoảng 500 hàm viết bằng các ngôn ngữ C và C++. Để sử dụng được thư viện
    này thì đầu tiên phải porting được thư viện OpenCV vào Android. Khóa luận cũng trình
    bày cách porting thư viện và trình bày thuật toán phát hiện khuôn mặt do Viola và Jones
    đưa ra. Để sử dụng thư viện OpenCV thì cần một giao diện để chương trình ứng dụng
    Android viết bằng Java có thể gọi được các hàm viết bằng C/C++ của OpenCV. Giao
    diện đó là JNI (Java Native Interface). Trong khóa luận tôi cũng đưa ra một demo với
    “Hello World” sử dụng Android NDK mà có hỗ trợ JNI. Từ đó đưa được giải pháp để
    phát triển ứng dụng phát hiện khuôn mặt sử dụng OpenCV.
    Phương pháp thứ hai để phát hiện khuôn mặt là sử dụng framework API của
    Android. API là giao diện lập trình ứng dụng (Application Programming Interface).
    Android cung cấp một framework API bao gồm các gói và các lớp giúp cho các nhà
    phát triển có thể sử dụng để phát triển nhiều ứng dụng hấp dẫn. Khóa luận trình bày về
    các gói và các lớp sử dụng framework API của Android để xây dựng ứng dụng phát hiện
    khuôn mặt trên Android và khóa luận đưa ra được kết quả khi tiến hành thực nghiệm.
    Với phương pháp này chỉ cần có ke nfng lập trình Java tgt là có thể xây dựng được ứng
    dụng.

    MỤC LỤC



    Danh sách hình vẽ .iv

    CHƯƠNG 1. HỆ ĐIỀU HÀNH ANDROID 1

    1.1.Android là gì? 1

    1.2.Máy ảo Dalvik .1

    1.3.Kiến trúc Android 3

    1.4.Android emulator .5

    1.5. Android SDK 6

    1.6.Android NDK 8

    1.7. Porting OpenCV vào Android 10

    1.8. Các thành phần tạo nên môt ứng dung Android 12

    1.9. Phát triển ứng dung Android và DVM .19

    1.10. Tạo và demo ứng dung “Hello World” sử dung Android NDK 20

    CHƯƠNG 2 .CÁC PHƯƠNG PHÁP PHÁT HIỆN KHUÔN MẶT TRÊN ANDROID 27

    2.1. Thuât toán của Viola — Jones trong OpenCV 27

    2.2. Phát hiên khuôn mặt sử dung framework API của Android 31

    2.3. Xây dựng chương trình phát hiên khuôn mặt trên Android 36

    CHƯƠNG 3. KẾT QUẢ ĐẠT ĐƯỢC .48

    3.1. Kết quả phát hiên khuôn mặt sử dung framework API của Android 48

    3.2. Khó khăn và hướng giải quyết .49

    KẾT LUẬN 50

    TÀI LIỆU THAM KHẢO .50



    LỜI MỞ ĐẦU
    Android là môt hê điều hành cho điên thoại di đông do Google phát triển dựa trên nền tảng Linux 2.6. Android đang từng bước thống trị thị trường di đông nhờ vào những ưu điểm vượt trôi của nó. Không như iPhone của Apple người dùng dường như bị côt chặt với những gì hãng này cho phép thì Android được kế thừa tính mở từ Linux hay nói cu thể hơn là Google và Android mang đến môt thế giới hoàn toàn mở. Người dùng được tự do với những gì họ muốn và các nhà phát triển có được sự tự do hơn để tạo ra các ứng dụng. Ngoài ra với Android người tiêu dùng có thể có nhiều sự lựa chọn. Chẳng hạn như hãng LG tung ra trên thị trường 20 sản phẩm chạy nền Android năm 2010. Bên cạnh các tính năng đó thì Android sẽ từng bước thống trị thị trường di đông nhờ vào ưu điểm hướng đến người dùng và với thương hiêu của Google đứng sau lưng nó. Đây là môt thương hiêu đáng giá.

    Hiên nay Android không chỉ được dùng cho điên thoại di đông mà còn được các nhà sản xuất điên tử trên thế giới sử dung Android như là môt nền tảng cho các sản phẩm nhúng, ví du như nhà thông minh, hê thống thông tin giải trí ô tô, . Ngoài ra trong tương lai Google sẽ sớm tung ra môt hê điều hành cho tivi, đầu thu kỹ thuật số (set-top-box).

    Trong khóa luân này tôi sẽ trình bày tổng quan về hê điều hành Android và trình bày hai hướng để phát triển ứng dung phát hiên khuôn mặt trên Android đó là sử dung OpenCV và framework API của Android. OpenCV là môt thư viên hỗ trợ mạnh cho xử lý ảnh do Intel phát triển bao gồm các hàm được viết bằng ngôn ngữ C và C++ trong đó có hỗ trợ phát hiên khuôn mặt. Thuật toán phát hiên khuôn mặt của Viola - Jones được đưa vào OpenCV vì với tốc đô gấp 15 lần so với các thuật toán hiên tại [7]. Hướng thứ hai tôi sẽ trình bày trong khóa luân để xây dựng môt ứng dung phát hiên khuôn mặt với framework API của Android. API là giao diên lâp trình ứng dung, viết tắt của Application Programming Interface. Nền tảng Android cung cấp môt framework API mà các ứng dung có thể tương tác với hê thống Android. Framework API bao gồm môt lõi thiết lâp các gói và các lớp. Trong ứng dung phát hiên khuôn mặt tôi sử dung lớp FaceDetector trong gói android.media của framework API do Android cung cấp để xây dựng ứng dung. Với hướng thứ hai này chỉ cần kỹ năng lâp trình Java tốt là có thể xây dựng được ứng dung.

    Nôi dung của khóa luân gồm 3 chương:

    Chương 1: Trình bày tổng quan về hê điều hành Android, kiến trúc Android, Android SDK, Android NDK, porting OpenCV vào Android và quy trình xây dựng và thực thi môt ứng dung Android. Bản chất của viêc Porting OpenCV vào Android là thêm môt thư viên chia sẻ vào tầng thư viên của Android để từ đó có thể dùng thư viên này để phát triển nhiều ứng dung khác không chỉ là phát hiên khuôn mặt. Chẳng hạn như dùng OpenCV có thể phát triển thêm các ứng dung phân tích chuyển đông, nhân dạng khuôn mặt. Chương này cũng đưa ra sự khác nhau giữa máy ảo Java và máy ảo Dalvik. Dalvik là máy ảo để thực thi các ứng dung Android.

    Chương 2: Trình bày hai phương pháp phát hiên khuôn mặt trên Android sử dung OpenCV và framework API của Android trong tầng applications framework của kiến trúc Android. Trong chương này tôi sẽ trình bày thuât toán của Viola - Jones sử dung trong OpenCV và xây dựng chương trình phát hiên khuôn mặt với framework API của Android.

    Chương 3: Trình bày các kết quả đạt được và những khó khăn gặp phải từ đó đưa ra hướng giải quyết khó khăn.
     

    Các file đính kèm:

Đang tải...