Công cụ và thiết bị

Một phần của tài liệu xây dựng hệ thống tương tác giữa người và máy thông qua nhận dạng cử chỉ bàn tay (Trang 76)

3.2.1 Phần cứng

Webcam: Logitech Quickcam Orbit MF Video capture: 320x240 (24 bit depth) Frame rate: 30 frames/s

CPU: Intel Core 2 Duo P8400 2.27Ghz, 2GB RAM

3.2.2 Phần mềm, thư viện và môi trường phát triển

Chương trình Posture/Gesture Recognition Server chủ yếu được xây dựng trên nền tảng những bộ thư viện và các công cụ sau:

Tên Tác giả Giấy phép Mô tả

OpenCV Intel BSD Đây là một thư viện về xử lý

ảnh và thị giác máy rất mạnh. Có rất nhiều tính năng như: Xử lý hình ảnh Video I/O Các hàm toán học Nhận dạng Học máy

ANN Library Mount & Arya

LGPL Approximate Nearest

Neighbor Searching Library.

LibSVM Chih-Jen Lin BSD Support vector machine

library

LBImproved Lemire GPLv3 Thư viện tính DTW

Integrated Performance Primitives

Intel Commercial IPP là một thư viện mở rộng khai thác các tính năng multi- core giúp tăng tốc các hệ thống digital media và data- processing

Math Kernel Library Intel Commercial Math Kernel Library cung

cấp các API liên quan đến tính toán đã được tối ưu hóa trên các hệ thống CPU Intel.

Intel Vtune Intel Commercial Bộ công cụ giúp tối ưu hóa

chương trình thông qua profiling và tìm hotspot trong mã nguồn.

Intel C/C++ Compiler Intel Commercial Trình biên dịch C/C++ của Intel, giúp khai tác tối đa hiệu năng của hệ thống CPU Intel (đặc biệt Core 2 Duo).

Bảng 3.2-1: Thư viện và công cụ dùng để phát triển

3.3 Thiết kế và phát triển

Chương trình được xây dựng trên ngôn ngữ C/C++ được môđun hóa với các chức năng riêng biệt và sử dụng một số thư viện như trong bảng 3.2-1. Hình dưới đây chính là UML sequence diagram của chương trình:

3.4 Mục đích và phương pháp

Sau khi xây dựng thành công chương trình, ta cần thử nghiệm khả năng nhận dạng của nó. Với 12 lớp posture, ở mỗi lớp ta thử 10 lần ở các vị trí, góc độ nhìn khác nhau để xác định khả năng bất biến với phép quay, tịnh tiến, tỉ lệ trong việc nhận như miêu tả trong phương pháp mô tả hình dạng Generic Fourier Descriptor [12]. Với 6 lớp gesture, ta cũng tiến hành tương tự, 10 lần thử mỗi lớp.

Cuối cùng ta tiến hành thử tổng thể chương trình, nhằm xác định khả năng, thời gian đáp ứng, sự liên lạc đồng bộ giữ Server – Client thông qua việc điều khiển chương trình giải trí đa truyền thông Windows Media Center như trong mô hình 3.1-1.

3.5 Kết quả thu được

Kết quả của việc thử 10 lần trên mỗi lớp posture và gesture như sau:

0 1 2 3 4 5 6 7 8 9 10 11 100% 90% 100% 90% 90% 100% 80% 90% 90% 80% 100% 90% Độ chính xác trung bình là 91.67% 0 1 2 3 4 5 90% 80% 80% 90% 80% 70% Độ chính xác trung bình là 81.67%

Sử dụng hệ thống để điều khiển chương trình Windows Media Center. Với tập tin cấu hình như sau: (adsbygoogle = window.adsbygoogle || []).push({});

Hand code Giả lập keyboard Enter Esc Up Down Left Right Page up Page down

Pop-up menu Open Music Back

Page down Page up

Bảng 3.5-1: Thông tin cấu hình để giả lập sự kiện bàn phím

Kết quả thu được rất khả quan, các posture được nhận diện với độ chính xác có thể chấp nhận được (trên 90%), các gesture thì khó khăn hơn một chút (gần 80%).

Thời gian đáp ứng trung bình là 35ms/frame (khoảng 28 FPS). Dưới đây là một vài screenshot từ demo video:

Hình 3.5-2: Ra hiệu “Left” để chuyển qua mục Picture Library bên trái Play favorites

“Life is like riding a bicycle. To keep your balance you must keep moving”

– Albert Einstein

KT LUN

Trong luận văn này, em đã xây dựng một hệ thống tương tác giữa người và máy thông qua nhận dạng dáng điệu của bàn tay trên cơ sở những thuật toán, lý thuyết đã tìm hiểu được.

Đểđạt được những kết quả tuy còn một vài hạn chế như trên là một quá trình làm việc và nghiên cứu hết sức nỗ lực bên cạnh sự hướng dẫn tận tình của thầy Đào Văn Tuyết. Một lần nữa em xin chân thành cảm ơn đến các thầy cô, gia đình, bạn bè và những người đã hỗ trợ em trong suốt thời gian thực hiện đề tài này.

1. Kết qu đạt được

Sau đây là một số kết quảđã đạt được trong quá trình thực hiện đề tài trên:

1. Nắm bắt được phương pháp, thuật toán xử lý ảnh, máy học liên quan đến vấn đề nhận dạng dáng điệu bàn tay trong phần lý thuyết và vận dụng một cách hợp lý vào thực tiễn.

2. Tăng độ chính xác của phương pháp nhận dạng dáng điệu One-Dollar[6] qua việc kết hợp với DTW.

3. Sử dụng các thư viện, chương trình tối ưu hóa để tăng khả năng đáp ứng cho chương trình (thời gian xử lý trung bình mỗi frame là 35 mili giây). 4. Xây dựng hoàn tất chương trình thực thi các kết quả đã tìm hiểu được

với khả năng nhận dạng tốt (độ chính xác gần 90%).

2. Hướng phát trin

Những kết quảđạt được trong đồ án này vẫn chỉ ở mức nghiên cứu và thử nghiệm. Hệ thống vẫn còn rất nhạy cảm với sự biến đổi của môi trường xung quanh (ánh sáng, nền…), để hoạt động được tốt nó cần có một môi trường tương đối lý tưởng. Tuy nhiên điều này không phải lúc nào cũng có được trong thực tế, vì vậy đểứng dụng vào thực tiễn vẫn còn rất nhiều việc phải làm nhằm tăng độ chính xác của chương trình đó là:

- Tìm hiểu các cách tiếp cận và thuật toán khác của các tác giả cùng nghiên cứu về chủđề này (tiếp cận trên mô hình nhận dạng ba chiều).

- Sử dụng phương pháp stereo vision (dùng hai camera) để lấy độ sâu của ảnh, từ đó giảm thiểu sai số trong việc trừ nền và phân đoạn vùng bàn tay.

- Tìm hiểu việc kết hợp với các phần cứng hỗ trợ như Camera 3D…

TÀI LIU THAM KHO

Tiếng việt

[1] Nguyễn Thị Bạch Kim, Giáo trình các phương pháp tối ưu, lý thuyết và thuật toán, NXB Bách Khoa Hà Nội.

Tiếng Anh

[2] D. Chai và K. N. Ngan, “Face segmentation using skin colour map in videophone applications”, IEEE Transactions on Circuits and Systems for Video Technology 9 (4) (1999) 551-564.

[3] David M. Mount, Sunil Arya, ”An Optimal Algorithm for Approximate Nearest Neighbor Searching in Fixed Dimensions”, ACM-SIAM, 1994, pp. 573-582

[4] Francesca Gasparini, Raimondo Schettini, “Skin Detection using Color Pixel Classification with Application”. (adsbygoogle = window.adsbygoogle || []).push({});

[5] John Shawe-Taylor, Nello Cristianini, Support Vector Machines and other kernel- based learning methods, Cambridge University Press, 2000

[6] Jacob O. Wobbrock, Andrew D. Wilson , Yang Li, “Gestures without Libraries, Toolkits or Training: A $1 Recognizer for User Interface Prototypes”.

[7] Mathias Kölsch, Vision Based Hand Gesture Interfaces for Wearable Computing and Virtual Environments, Ph. D. Dissertation, August 2004.

[8] Martin Ester, Hans-Peter Kriegel, Jörg Sander, Xiaowei Xu, “A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise”.

[9] Shahzad Malik, “Real-time Hand Tracking and Finger Tracking for Interaction”. [10] Stan Salvador và Philip Chan, “FastDTW: Toward Accurate Dynamic Time Warping in Linear Time and Space”.

[11] V. Vapnik, “Nature of statistical learning theory”, Springer-Verlag, 2000.

[12] Zhang Dengsheng, Guojun Lu, “Generic Fourier Descriptor for Shape-based Image Retrieval”.

Website

OpenCV Library, http://sourceforge.net/projects/opencvlibrary/

Approximate Nearest Neighbor Library, http://www.cs.umd.edu/~mount/ANN/

Fast Dynamic Time Warping Library, http://code.google.com/p/lbimproved/

Library for Support Vector Machine, http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Intel Math Kernel Library, http://software.intel.com/en-us/intel-mkl/

Một phần của tài liệu xây dựng hệ thống tương tác giữa người và máy thông qua nhận dạng cử chỉ bàn tay (Trang 76)