Do đó, vấn đề đặt ra hiện nay là cần có một hệ thống vận dụng kỹ thuật theo dõi đối tượng để theo dõi di chuyển của tay trong không gian, thông qua đó điều khiển mouse... Trong thực tế,
Giới thiệu
Ngày nay cùng với sự phát triển của khoa học công nghệ, đặc biệt là công nghệ thông tin đã mang lại cho con người những lợi ích nhất định, và cũng đặt ra cho con người vô vàng những thách thức, mà vấn đề theo vết đối tượng theo thời gian thực là một trong những vấn đề đó
Theo vết đối tƣợng theo thời gian thực là một công việc quan trọng đã và đang thu hút đƣợc nhiều sự quan tâm của cộng đồng nghiên cứu bởi nó có nhiều ứng dụng hữu ích trong lĩnh vực giải trí, truyền thông, thị giác máy tính và đa phương tiện, chẳng hạn nhƣ ứng dụng trong xử lý và biên tập video số, trong nén video, trong các thƣ viện số, trong các hệ thống giám sát giao thông, hệ thống camera mouse, v.v…
Các hệ thống ―Camera Mouse‖ đƣợc phát triển để cung cấp truy cập máy tính cho người khuyết tật nặng, người bị bệnh bại não, công nhân đang làm việc trong các nhà máy, tay dơ bẩn không thể cầm mouse hay chạm vào màn hình cảm ứng để điều khiển máy tính Do đó, vấn đề đặt ra hiện nay là cần có một hệ thống vận dụng kỹ thuật theo dõi đối tƣợng để theo dõi di chuyển của tay trong không gian, thông qua đó điều khiển mouse.
Mục tiêu của đề tài
Điều khiển mouse là thực hiện các thao tác di chuyển mouse, và các sự kiện click mouse nhƣ: click phải, click trái và double click Trong hệ thống điều khiển mouse, hai vấn đề chính phải giải quyết bao gồm di chuyển mouse và click mouse:
Di chuyển mouse có các hướng tiếp cận: dùng sự di chuyển của bàn tay, ngón tay, đầu, tròng mắt hay bút laser,…
Điều khiển sự kiện click mouse có các hướng tiếp cận: dựa vào cử chỉ của miệng, mi mắt, gật đầu, cử chỉ của các ngón tay,
Trong thực tế, việc điều khiển mouse theo các hướng tiếp cận trên thường có những hạn chế như chương trình không thể nhận dạng chính xác sự kiện click mouse, việc di chuyển mouse đôi lúc còn chƣa đồng bộ với di chuyển của đối tƣợng theo dõi Vì vậy, mục tiêu của đề tài là đơn giản hóa việc xây dựng hệ thống điều khiển mouse và cải thiện độ chính xác thông qua việc cải tiến thuật toán theo vết và sử dụng hai webcam để chỉ theo dõi sự di chuyển của bàn tay và thông qua đó điều khiển mouse.
Nội dung đề tài
Điều khiển mouse là chủ đề đã đƣợc nhiều nhà nghiên cứu trong thời gian qua, hầu hết các nghiên cứu đó tập trung vào việc tiếp cận theo hướng sử dụng một camera (hay webcam) để nhận dạng cử chỉ bàn tay, mắt, miệng và sự di chuyển của bàn tay, đầu, bút laser,… để di chuyển mouse trên màn hình và thực hiện sự kiện click mouse Hệ thống điều khiển mouse loại này thường có hiệu suất không cao, việc di chuyển mouse đôi khi không đồng bộ với di chuyển của đối tƣợng điều khiển, đồng thời việc lập trình và huấn luyện cho hệ thống này rất phức tạp
Từ những vấn đề trên, chúng tôi xây dựng hệ thống điều khiển mouse dựa trên việc cải thiện thuật toán theo dõi đối tƣợng và dùng kết hợp hai webcam để điều khiển mouse giúp điều khiển mouse chính xác hơn Hệ thống dùng webcam nên chi phí có thể tiết kiệm hơn và cải thiện tính đồng bộ của việc di chuyển mouse thông qua việc cải tiến thuật toán theo dõi đối tƣợng, chẳng hạn nhƣ thuật toán Lukas Kanade
Việc cải thiện này mang lại cho hệ thống nhiều ƣu điểm nhƣ độ chính xác được tăng cường, tính đồng bộ có thể được cải thiện, giá thành rẻ, việc xây dựng hệ thống đƣợc đơn giản hóa và không cần phải huấn luyện,
Giới hạn của đề tài
Đề tài tập trung vào thực hiện một trong các công việc sau: Cải tiến thuật toán theo dõi hiện có nhƣ Lucas-Kanade, cải tiến bằng cách tiếp cận dùng hai webcam thay vì chỉ một webcam
Việc sử dụng webcam để thu thập chuổi hình ảnh (video) về sự di chuyển của tay nên chất lƣợng của hình ảnh không cao Chính vì vậy, việc theo dõi di chuyển có thể không chính xác mặc dù có cải tiến thuật toán theo dõi(nhất là ở biên của video)
Ngoài ra, một số yếu tố khác như độ sáng của môi trường, tư thế của đối tượng đích, sự biến dạng của đối tượng đích, sự che khuất, người dùng không sử dụng tay để điều khiển, vị trí đặt webcam, khoảng cách giữa hai webcam,… không nằm trong phạm vi nghiên cứu của đề tài Tuy vậy, đề tài mở ra hy vọng cho những người bị khiếm khuyết về cơ thể hay vì lý do nào đó không thể dùng tay điều khiển mouse có thể sử dụng máy tính hay tự điều khiển xe và các thiết bị khác phục vụ cho nhu cầu cá nhân của mình hoặc ứng dụng trong các nhà máy để công nhân có thể điều khiển máy móc.
Cấu trúc luận văn
Trong khuôn khổ luận văn này, luận văn được tổ chức thành 5 chương được tóm tắt nhƣ sau:
Chương 1: Giới thiệu khái quát về vấn đề được đề cập trong luận văn này, xác định mục tiêu, nội dung thực hiện và giới hạn của đề tài
Chương 2: Giới thiệu tóm tắt các kỹ thuật phục vụ giải quyết vấn điều khiển mouse bằng hình ảnh dựa trên vết đối tƣợng: giải pháp thu thập hình ảnh, thuật toán theo vết CamShift, Lukas Kanade,…, tiêu chuẩn đánh giá giải pháp và các nghiên cứu hiện có liên quan đến đề tài
Chương 3: Trình bày nghiên cứu chi tiết về mô hình dùng webcam để thu thập chuổi hình ảnh, giải thuật để theo vết di chuyển của tay Từ đó, đề xuất một thuật toán cải tiến của thuât toán theo vết, cũng nhƣ cải tiến mô hình thu thập hình ảnh dựa trên các kết quả đã đạt được tại các phần trước của chương này Cuối chương trình bày chi tiết giải pháp này
Chương 4: Trình bày các kết quả thực nghiệm đánh giá hiệu suất thuật toán theo các tiêu chí khác nhau
Chương 5: tổng hợp kết luận, các kết quả đã đạt được và đề ra hướng phát triển đề tài.
Theo vết đối tƣợng
Theo vết đối tƣợng là một công đoạn quan trọng trong rất nhiều ứng dụng thị giác máy tính (computer vision applications) Những hệ thống thuộc loại này có thể kể ra như là: hệ thống quan sát – theo vết đối tượng, hệ thống giao diện người dùng dựa vào cảm nhận (perceptual user interface), hệ thống nén video dựa vào đối tƣợng (object-based video compression) và những hệ thống thông minh hỗ trợ tài xế lái xe tự động
Một trong những mục tiêu quan trọng nhất của theo vết đối tƣợng là để
―hiểu‖ đƣợc những chuyển động của đối tƣợng ―Hiểu‖ những thông tin về đối tƣợng nhƣ vị trí trong không gian, vận tốc chuyển động và những đặc trƣng vật lý khác, một hệ thống thông minh có thể thực hiện các bước xử lý khác ở cấp cao hơn nhƣ nhận dạng đối tƣợng, nhận dạng chuyển động, lý luận (reasoning) và tính toán trên những đặc trƣng vật lý này
Mặc dù đã đƣợc nghiên cứu nhiều năm, bài toán ―theo vết đối tƣợng‖ vẫn là một vấn đề nghiên cứu mở cho đến ngày nay [1] Mức khó khăn của vấn đề này phụ thuộc nhiều vào đối tƣợng đƣợc phát hiện và theo vết nhƣ thế nào Nếu nhƣ chỉ có một vài đặc trƣng thị giác, chẳn hạn nhƣ màu sắc … đƣợc dùng để biểu diễn đối tƣợng, thì khá dễ dàng để xác định tất cả các pixel cùng màu với đối tƣợng Nhƣng thực tế lại hoàn toàn khác, ví dụ như khuôn mặt của một người cụ thể sẽ có đầy đủ các chi tiết tri giác và thông tin nhiễu chẳn hạn nhƣ các tƣ thế và sự chiếu sáng khác nhau, rất khó để phát hiện, nhận diện và theo vết Hầu hết các khó khăn này nảy sinh từ khả năng biến động của ảnh video bởi vì các đối tượng video thường là các đối tƣợng chuyển động Khi một đối tƣợng chuyển động qua vùng quan sát của camera, hình ảnh về đối tƣợng có thể thay đổi rất nhiều Sự thay đổi này đến từ 3 nguồn chính: sự thay đổi tƣ thế đối tƣợng đích hay sự biến dạng của đối tƣợng đích, sự thay đổi về độ chiếu sáng, và sự che khuất (occlusion) một phần hay toàn bộ đối tƣợng đích
Có rất nhiều phương pháp giải quyết bài toán này, ta có thể phân loại thành bốn cách tiếp cận chính: tiếp cận dựa trên mô hình, tiếp cận dựa trên miền, tiếp cận dựa trên đường viền và tiếp cận dựa trên đặc trưng
Tiếp cận dựa trên mô hình
Cách tiếp cận dựa trên mô hình bao gồm việc tạo mô hình hình học cấu trúc của đối tƣợng Các ràng buộc trên việc mô hình đƣợc cho phép biến dạng nhƣ thế nào có thể đƣợc kết hợp vào quá trình so khớp Vấn đề với cách tiếp cận này là quá trình khởi tạo tự động thì khó khăn và chi phí tính toán cao do độ phức tạp của mô hình
Tiếp cận dựa trên miền
Cách tiếp cận dựa trên miền bao gồm việc kết hợp một miền với mỗi đối tƣợng đang được theo vết Miền được theo dõi qua thời gian bằng phép đo độ tương tự Lợi ích của cách tiếp cận này là khởi tạo khá dễ dàng, chỉ có vị trí và kích thước của cửa sổ cần đƣợc định nghĩa Các tham số của thuật toán cũng có ý nghĩa vật lý, dễ dàng khái niệm hóa
Tiếp cận dựa trên đường viền
Cách tiếp cận dựa trên đường viền bao gồm tìm đường viền bao của một đối tượng và sau đó cố gắng làm khớp đường viền với các đối tượng trong các frame sau Nơi khớp nhất sẽ là đường viền hiện tại, mô hình sẽ cập nhật đường viền hiện tại để phản ánh hình dáng của đối tƣợng trong frame hiện tại Quá trình này đƣợc lặp lại với mô hình đường viền được cập nhật Ưu điểm của cách tiếp cận này là khả năng xử lý hiệu quả sự che khuất một phần (partial occlusion) Tuy nhiên, vấn đề với mô hình là nó yêu cầu sự khởi tạo chính xác, và điều này thì khó để thực hiện tự động
Tiếp cận dựa trên đặc trƣng
Khác với các cách tiếp cận trên đều theo vết toàn bộ đối tƣợng, cách tiếp cận dựa trên đặc trƣng chỉ theo vết một tập các đặc trƣng của đối tƣợng Ví dụ nhƣ chỉ theo vết các điểm ở góc của đối tƣợng, vị trí của đối tƣợng trong frame sau sẽ đƣợc tìm thấy bằng cách tìm các điểm góc mà khớp với các điểm của mô hình nhất Ƣu điểm của cách tiếp cận này là xử lý đƣợc sự che khuất một phần Khi đối tƣợng bị che khuất, một số các đặc trƣng vẫn còn thấy đƣợc và có thể đƣợc dùng trong quá trình theo vết Khuyết điểm của phương pháp này là chất lượng theo vết phụ thuộc nhiều vào việc chọn các đặc trƣng Các đặc trƣng phải đƣợc chọn sao cho chúng cung cấp sự nhận diện duy nhất cho đối tƣợng, đó không phải là một nhiệm vụ dễ dàng
2.1.2 Nguyên tắc theo vết đối tƣợng
Một hệ thống theo vết đối tượng thông thường gồm 3 phần:
Phát hiện đối tƣợng (Object Detection)
Theo vết đối tƣợng (Object Tracking)
Dưới đây, sẽ mô tả nhiệm vụ của mỗi phần và một số cách tiếp cận để giải quyết các phần trên Các hệ thống theo vết hiệu quả thường kết hợp nhiều phương pháp khác nhau a Phát hiện đối tƣợng
Phát hiện đối tƣợng trong video [1] là xác minh sự hiện diện của một đối tƣợng trong chuỗi ảnh và cũng có thể định vị chính xác Các hệ thống theo vết đối tượng thường bắt đầu bằng quá trình phát hiện đối tượng, ngoài ra phát hiện đối tượng được lặp lại trong chuỗi ảnh sau thường cần thiết hỗ trợ và xác minh cho quá trình theo vết
Một số cách tiếp cận phát hiện đối tƣợng thông dụng:
Phát hiện đối tƣợng dựa trên đặc trƣng
Tùy vào đặc trƣng đƣợc chọn, ta có các cách tiếp cận khác nhau nhƣ: dựa trên hình dáng, dựa trên màu sắc Trong đó, cách tiếp cận dựa trên màu sắc đƣợc xem là thông dụng nhất vì đặc trƣng màu sắc thì dễ dàng lấy đƣợc và chi phí tính toán thấp
Phát hiện đối tƣợng dựa trên mẫu
Nếu nhƣ có một mẫu mô tả đối tƣợng, thì việc phát hiện đối tƣợng trở thành quá trình so khớp các đặc trưng giữa mẫu và chuỗi ảnh dưới sự phân tích Phát hiện đối tượng với việc so khớp chính xác thường tốn nhiều chi phí và chất lượng so khớp phụ thuộc vào chi tiết và mức độ chính xác của mẫu đối tƣợng Có hai kiểu so khớp mẫu, so khớp mẫu cố định và so khớp mẫu biến dạng
Phát hiện đối tƣợng chuyển động
Phần lớn các nghiên cứu về cách giải quyết bài toán theo vết đối tƣợng đƣợc tập trung trên vấn đề phát hiện đối tƣợng chuyển động trong thập kỷ qua Bởi hầu hết các hệ thống theo vết thì quan tâm đến các đối tƣợng đang chuyển động Có rất nhiều thuật toán phát hiện chuyển động đã đƣợc đề nghị Chúng đƣợc phân loại tương đối thành các nhóm sau:
Dựa trên các kỹ thuật lấy ngƣỡng
Cách tiếp cận này dựa trên việc phát hiện những thay đổi theo thời gian tại mức pixel hay khối Kỹ thuật lấy ngƣỡng đƣợc sử dụng nhằm chống nhiễu, gia tăng hiệu quả của thuật toán Một số phương pháp theo cách tiếp cận này như: phát hiện chuyển động dựa trên sự khác biệt theo thời gian, phát hiện chuyển động dựa trên trừ nền
Dựa trên các kiểm tra thống kê
Sự khác biệt giữa các frame đƣợc mô hình nhƣ hỗn hợp của phân bố Gaussian và Laplacian
Dựa trên việc xây dựng hàm chi phí toàn cục
Vấn đề phát hiện chuyển động đƣợc đƣa vào công thức nhằm giảm thiểu hàm mục tiêu toàn cục Mô hình được sử dụng rộng rãi là các trường ngẫu nhiên Markov theo không gian (Spatial Markov Random Fields) qua phân bố Gibbs Phương pháp này thì mạnh, nhưng cũng tốn khá nhiều chi phí b Phân đoạn
Điều khiển mouse bằng tay
Hệ thống bao gồm ba phần: Thứ nhất là phần huấn luyện cho hệ thống màu da của tay, phần thứ hai là theo vết tay và cuối cùng là dựa vào theo vết tay để tính toán độ dịch chuyển con trỏ chuột cũng nhƣ click chuột Hệ thống đƣợc minh họa nhƣ hình sau:
Hình 2.5 Hệ thống điều khiển mouse bằng tay
Hệ thống học màu da nhằm mục đích học các biến thể của màu sắc da do sự thay đổi tay và việc chiếu sáng gây ra[28] Một bảng lookup 2 chiều chứa các giá trị màu Hue và Saturation (giá trị mật độ xác xuất) từ không gian màu HSV tính toán bằng kỹ thuật mô tả trong[29]
Bằng cách sử dụng thuật toán theo vết nhƣ CamShift [29] hay Lukas Kanade [36] để phát hiện tay, đó là phát hiện khu vực tay đƣợc giới hạn đƣợc gọi là ROI(Region of Interest) [29], ban đầu ROI là toàn bộ frame vùng tay đƣợc phát hiện bằng các sử dụng giá trị Hue và Saturation từ bảng lookup 2 chiều đƣợc tính toán trong quá trình học màu da Ngƣỡng hoạt động cho chúng tôi ảnh nhị phân B(x,y) của vùng tay, khi B(x,y)=1 thì pixel ở trong vùng màu da Tâm của vùng tay là (x c ,y c ) và hướng θ được tính bằng cách sử dụng khoảnh khắc hình ảnh thứ 0,1,2 ROI của frame tiếp theo sau đó đƣợc tính toán từ ảnh nhị phân này Tâm của ROI đối với khu vực tiếp theo đƣợc thiết lập là tâm của vùng tay hiện tại Chiều dài và rộng (Rx, Ry) của ROI cho frame tiếp theo đƣợc tính nhƣ sau:
Trong đó: s x = cos|θ| + 1, s y = sin|θ| + 1 và M oo = khoảnh khắc ảnh thứ 0
Nhận dạng và theo vết tay
Tính toán vị trí di chuyển của mouse, và sự kiện click mouse
2.2.3 Xác định vị trí của tay
Vùng tay đƣợc làm mịn bằng cách sử dụng kỹ thuật Gaussian kernel để giảm nhiễu và sau đó phân tích hình dạng của bàn tay Phương pháp đơn giản để phân tích hình dạng của bàn tay đó là ảnh đƣợc chuyển về dạng nhị phân và hệ thống quét ảnh từ hàng trên xuống đến hàng dưới cùng Hệ thống sẽ đếm số pixel trên mỗi hàng và so sánh với độ rộng của tay Nếu đủ số lƣợng hàng với số điểm ảnh lớn hơn hay bằng chiều rộng tay, hệ thống sẽ nhận diện rằng phát hiện tay.
Xác định trạng thái mouse
Trạng thái mouse bao gồm: di chuyển mouse, click trái, click phải
2.3.1 Di chuyển mouse(Mouse move)
Di chuyển mouse đƣợc xác định dựa vào di chuyển của tay Để xác định tọa độ cụ thể của mouse phương pháp phổ biến nhất là xác định dựa vào tâm của tay[11]
Click mouse thông thường bao gồm hai sự kiện chính là click trái và click phải Để hiện thực hai sự kiện này đa số đều vận dụng kỹ thuật nhận dạng cử chỉ của tay sau đó thực hiện sự kiện click mouse[25]
Việc đánh giá định lƣợng hệ thống theo vết đƣợc thực hiện dựa vào các thông số: Latency of the system track (LT) và Track Distance Error (TDE):
2.4.1 Latency of the system track (LT) [40] Độ trễ của hệ thống theo vết đƣợc định nghĩa là khoản thời gian giữa thời gian một đối tƣợng bắt đầu đƣợc theo vết bởi hệ thống và thời gian xuất hiện đầu tiên của đối tƣợng
TDE là thông số đo lỗi vị trí của hệ thống theo vết, đƣợc Needham và Boyle giới thiệu năm 2003 TDE đƣợc xác định dựa trên khoảng cách giữa điểm di chuyển thực của đối tƣợng và điểm do thuật toán theo vết tính toán đƣợc
2.5 Các công trình liên quan
Trong nước và quốc tế đã có một số công trình nghiên cứu liên quan đến điều khiển mouse bằng dựa trên vết đối tƣợng nhƣ:
Hailing Zhou, Lijun Xie, Xuliang Fang [13] giới thiệu về visual mouse, một hệ thống đơn giản để tương tác với màn hình thông qua cử chỉ tay, phương pháp này sử dung thuật toán SIFT( Scale-Invariant Feature Transform) để tiết kiệm thời gian training dài của thuật toán Adaboost, theo vết tay trên cơ sở thuật toán CAMShift, nhận dạng cử chỉ tay trong môi trường phức tạp (cluttered background) thông qua Principle Components Analysis (PCA) mà không cần giải nén tường minh đường viền (clear-cut hand contour) và định nghĩa các từ vựng đơn giản bằng cách thay đổi cử chỉ tay, sau đó đƣợc sử dụng để kiểm soát mouse máy tính Hệ thống này cung cấp một kinh nghiệm tương tác nhanh chóng và đơn giản mà không cần phần cứng và phần mềm đắt tiền hơn Tuy nhiên giải pháp cũng có một số khuyết điểm nhƣ: nhận diện từ vựng không chính xác nên điều khiển mouse không chính xác
Nabati, M., Behrad, A.[15] đề xuất phương pháp mới để ước tính 3D về tư thế của đầu và từ ảnh thu đƣợc của camera để điều khiển mouse và thực hiện các sự kiện click mouse trên màn hình Công việc này nhằm mục tiêu cung cấp một công cụ không tiếp xúc để điều khiển mouse trên màn hình máy tính để giúp đỡ những người khuyết tật, khuyết tật nặng bằng cách sử dụng phần cứng phổ biến có sẵn với chi phí thấp Dữ liệu đầu vào là video đƣợc lấy từ một camera gắn trên màn hình máy tính Thuật toán đƣợc đề xuất dựa trên việc theo vết các điểm đánh dấu 2D trên mặt Cách tiếp cận của bài báo được thực hiện theo ba giai đoạn Trước tiên, các vị trí của các điểm đánh dấu đƣợc phát hiện và theo vết trên các khung hình video của thuật toán LK Sau đó, xoay 3D và dịch giữa các web camera và đầu đã đề xuất được ước tính 3D bằng cách sử dụng điểm và đường tương ứng Cuối cùng, sự xoay 3D và dịch ma trận đƣợc sử dụng để ƣớc lƣợng việc di chuyển mouse trên màn hình máy tính và các sự kiện click mouse Hệ thống có ƣu thế về mặt linh hoạt trong điều khiển mouse dành cho người khuyết tật Tuy nhiên thuệt toán LK chỉ theo vết trong phạm vi dịch chuyển nhỏ nên khi di chuyển với tốc độ lớn hơn việc theo vết không còn chính xác nữa, do đó mouse cũng kém chính xác
Atyabi, M.; Hosseini, M.S.K.; Mokhtari, M.; Islamic Azad Univ Sci & Res.[19] phát triển hệ thống ―Webcam Mouse‖ để cung cấp truy cập máy tính cho người khuyết tật nặng Hệ thống theo vết chuyển động của người sử dụng máy tính với một Webcam và chuyển chúng thành các động tác của mouse trên màn hình Cơ quan chức năng như đầu mũi của người sử dụng hoặc ngón tay có thể được theo vết Các thuật toán theo vết trực quan dựa trên việc lấy mẫu trực tuyến các tính năng theo vết từ các khung ảnh hiện tại và kiểm tra vị trí mẫu tương quan này trong khung ảnh tiếp theo Các vị trí của các mối tương quan cao nhất được xem như là vị trí mới của tính năng này trong khung tiếp theo
Jilin Tu, Hai Tao, and Thomas Huang [20] giới thiệu một camera mouse hoạt đông thông qua việc theo dõi khuông mặt trực quan dựa trên mô hình 3D Khi camera trở thành chuẩn cấu hình cho máy tính cá nhân (PC) và làm tăng tốc độ tính toán, để đạt được tương tác giữa người và máy tính thông qua theo dõi khuôn mặt trực quan sẽ trở thành một giải pháp khả thi để giải phóng việc điều khiển bằng tay Khi di chuyển khuôn mặt con người có thể được chia thành chuyển động cứng nhắc nhƣ xoay và dịch, và chuyển động không cứng nhắc nhƣ mở, đóng, và kéo dài của miệng Hệ thống theo dõi khuôn mặt của các tác giả đề xuất để có thể lấy chính xác các thông số chuyển động từ video theo thời gian thực Ứng dụng di chuyển khuôn mặt có thể đƣợc sử dụng để di chuyển mouse, còn các phát hiện chuyển động của miệng (không cứng nhắc) đƣợc ứng dụng điều khiển các sự kiện mouse trong hệ điều hành Các thử nghiệm trong môi trường Windows XP đã chứng minh sự tiện lợi của camera mouse trong việc thay thế điều khiển bằng tay Công nghệ này có thể là một lựa chọn để thay thế cho những người bị khuyết tật tay và lời nói
Tomàs Pallejà, Edgar Rubión, Mercè Teixidó, Marcel Tresanchez, Alicia Fernández del Viso, Carlos Rebate, Jordi Palacin [21] giới thiệu việc tạo ra một mouse ảo dựa trên việc di chuyển của đầu và cử chỉ khuôn mặt thông qua một camera giá rẻ Thiết bị ảo được thiết kế đặc biệt để điều khiển mouse cho người khuyết tật vận động ở các chi trên và giảm điều khiển đầu Các đề xuất thiết bị ảo được so sánh với một con mouse thông thường, touchpad và một phím điều khiển kỹ thuật số Việc kiểm tra kết quả gần giống một phím điều khiển kỹ thuật số nhƣng khác hơi xa từ một con mouse thông thường
Manchanda, K.; Bing, B [22] đưa ra một phương pháp để kiểm soát sự chuyển động của một mouse bằng cách sử dụng cử chỉ tay đơn giản và webcam Một thuật toán theo dõi thời gian thực đƣợc thực hiện dựa trên phát hiện da thích ứng và phân tích chuyển động Sử dụng lịch sử của chuyển động, quỹ đạo của sự chuyển động của bàn tay đƣợc vẽ và sau đó đƣợc sử dụng để xác định một cử chỉ Một số thuật toán quan tâm đƣợc đề xuất, để theo dõi các chuyển động khi người sử dụng nằm cách xa webcam
Daniel Chang, Samit Gupta, Joon Kim, Alan O'Connor[23] giới thiệu một kỹ thuật điều khiển mouse trong môi trường Windows, đó là kỹ thuât dựa trên công nghệ theo dõi mắt theo thời gian thực Trong chương trình có ba mục tiêu thiết kế chính:
Chương trình chạy trên phần cứng với giá thành ở mức trung bình
Phát hiện pupils với độ phân giải cao trong thời gian thực (1-2 pixel) Ánh xạ để chuyển động của mouse trơn tru trên màn hình Đó là điều quan trọng đối với chương trình của chúng tôi để chạy trên phần cứng giá cả phải chăng vì hai lý do Trước tiên, mục tiêu cuối cùng của dự án này là làm cho nó có thể sử dụng cho các ứng dụng "thế giới thực" Nếu phần cứng không có giá cả phải chăng, mục tiêu này sẽ không thể đat đƣợc Thứ hai, trong thiết kế và thử nghiệm chương trình này, chúng tôi chỉ được tiếp cận với nguồn lực hạn chế Đó là đều quan trọng là chúng tôi có thể đảm bảo các nguồn lực này, và chúng tôi biết làm thế nào để vận hành thiết bị nhƣ vậy
Phát hiện pupils với độ phân giải cao là một phần đơn lẻ quan trọng nhất trong chương trình của tác giả Lý do rất đơn giản: không có một sự khác biệt lớn giữa các điểm ảnh hai vị trí trên màn hình Sự khác biệt trong việc tìm kiếm ở góc độ một trong những màn hình so với các góc độ khác của màn hình (ví dụ nhƣ trái so với phía dưới bên phải) đã được ít hơn hai mươi điểm ảnh Lập bản đồ khác biệt này lên một màn hình 14,1 inch có nghĩa là một sự khác biệt của một điểm ảnh tương ứng với một sự khác biệt của khoảng 7 / 10 của một inch Chỉ cần để cung cấp một ý tưởng về cách thức quan trọng này có thể được cho người sử dụng, các khối trên trò chơi Minesweeper, một trong những ứng dụng thử nghiệm của tác giả sử dụng ít hơn một phần tƣ của một inch trên một mặt
Di chuyển của mắt làm cho mouse chuyển động trơn tru trên màn hình là phần cuối cùng của thuật toán, và cũng rất quan trọng Nếu không có một chuyển động mượt được cấu hình, người dùng sẽ không thể theo dõi chuyển động của mouse, và các lỗi sẽ cho kết quả chuyển động thất thường Kết quả cuối cùng của nghiên cứu của tác giả là một con mouse điều khiển bằng một mắt
Ondřej Poláček, Zdeněk Míkovec [24] trình bày một phương pháp mới mô phỏng cú nhấp mouse trong khi mouse đƣợc điều khiển bởi việc di chuyển của đầu theo dõi bằng webcam Phương pháp này dựa trên lệnh bằng giọng nói đơn giản Ngôn ngữ độc lập và cung cấp đầy đủ các nút điều khiển mouse thông thường Phương pháp này được so sánh với các ba phương pháp khác nhau trong một thử nghiệm để chứng minh hiệu quả của nó
Các công trình liên quan
3.1 Điều khiển mouse bằng hình ảnh Điều khiển các sự kiện của mouse nhƣ di chuyển, click mouse dựa vào tập hình ảnh thu thập từ camera Sơ đồ sau minh họa điều khiển mouse bằng hình ảnh:
Hình 3.1 Minh họa điều khiển mouse bằng hình ảnh dựa vào theo vết đối tƣợng Hình ảnh đƣợc thu thập bằng camera, làm xám và thông qua bộ phát hiện tay (bàn tay), sau đó chọn vùng bàn tay trên ảnh thu đƣợc làm đối tƣợng theo vết Với việc lựa chọn này, ở các ảnh tiếp theo vị trí của tay đƣợc theo vết bằng các thuật toán theo vết nhƣ CamShift hay Lukas Kanade, Thông qua việc phát hiện và theo vết tay, hệ thống sẽ di chuyển mouse hay thực hiện các sự kiện click mouse.
Điều khiển mouse bằng hình ảnh
Điều khiển các sự kiện của mouse nhƣ di chuyển, click mouse dựa vào tập hình ảnh thu thập từ camera Sơ đồ sau minh họa điều khiển mouse bằng hình ảnh:
Hình 3.1 Minh họa điều khiển mouse bằng hình ảnh dựa vào theo vết đối tƣợng Hình ảnh đƣợc thu thập bằng camera, làm xám và thông qua bộ phát hiện tay (bàn tay), sau đó chọn vùng bàn tay trên ảnh thu đƣợc làm đối tƣợng theo vết Với việc lựa chọn này, ở các ảnh tiếp theo vị trí của tay đƣợc theo vết bằng các thuật toán theo vết nhƣ CamShift hay Lukas Kanade, Thông qua việc phát hiện và theo vết tay, hệ thống sẽ di chuyển mouse hay thực hiện các sự kiện click mouse
3.1.1 Thu tập hình ảnh đối tƣợng
Việc thu thập hình ảnh đối tƣợng đƣợc thực hiện bằng camera hay webcam dựa vào bộ thƣ viện đồ họa Opencv, với các hàm phục vụ thu thập video nhƣ cvCaptureFromCAM, cvCaptureFromAVI, và lưu đồ thuật toán như minh hoa sau đây:
Hình 3.2 Lưu đồ thuật toán thu thập hình ảnh dựa vào thư viện OpenCV
Theo hình 3.2, hệ thống sử dụng hàm cvCaptureFromCAM của OpenCV để thu thập dữ liệu(hình ảnh) từ webcam Nếu việc thu thập thất bại, thông báo ―Không thể thu ảnh‖, nếu thành công thì gán Frame là dữ liệu thu thập đƣợc Sau đó kiểm tra frame có tồn tại hay không?, nếu không tồn tại cũng thông báo ―Không thể thu ảnh‖ Nếu frame tồn tại thì chuyển frame sang bước tính toán để xác định trạng thái di chuyển của mouse và tiếp tục thu thập frame khác Khi người dùng nhấn phím ECS thì dừng chương trình
3.1.2 Xác định trạng thái di chuyển của mouse Ảnh đầu vào đƣợc chuyển về dạng ảnh xám, sau đó dùng thuật toán theo vết để theo vết di chuyển của tay(1 tập hợp điểm trên vùng bàn tay), độ dịch chuyển trung bình của tập hợp điểm này cũng chính là di chuyển của mouse bên ngoài Giải thuật được minh họa như Hình 3.3 dưới đây Nếu không tồn tại ảnh thu thập đầu vào đã được chuyển sang dạng ảnh xám thì kết thúc chương trình Nếu tồn tại ảnh này, máy tính sẽ nhận diện vùng bàn tay và gieo ngẫu nhiên tập hợp gồm N điểm trong vùng bàn tay đƣợc nhận diện, tọa độ ban đầu của mỗi điểm là (x,y) Vị trí của (x,y) sau khi theo vết là (x’,y’), nếu (x’,y’) vƣợt ra khỏi biên của ảnh hay video(tức (x’>640 hay x’480 hay y’