Chiến lược công nhận cử chỉ


12

Làm việc với Wii Tôi thường thấy cần phải nhận ra các cử chỉ đơn giản, cho đến nay tôi đã có thể chủ yếu nhìn vào cường độ tăng tốc để nhận ra các cử chỉ được gọi trong tài liệu thiết kế trò chơi của chúng tôi, nhưng tôi muốn tạo một hệ thống mạnh mẽ hơn cho phép "ghi lại" các cử chỉ mẫu và nhận biết các cử chỉ phức tạp.

Những chiến lược bạn đã sử dụng trong quá khứ? Tại sao họ làm việc? Tại sao họ không làm việc? bạn sẽ làm gì khác?

Câu trả lời:


5

Chỉnh sửa affinece yêu cầu phiên bản cong này rõ ràng.
http://en.wikipedia.org/wiki/Affine_curvature#Affine_curvature
Giả sử đó là những gì tôi đang đề cập đến. (Mặc dù độ cong bình thường tôi nghĩ là bất biến đối với các phép quay có thể đủ tốt).
Biên tập cho phiên bản bất biến tỷ lệ của độ cong xem tại đây
/math/1329/what-is-the-form-of-curvature-that-is-invariant-under-rotations-and-uniform- scali

Các vấn đề nhận dạng cử chỉ là một lớp con của các vấn đề nhận dạng và các vấn đề nhận dạng về cơ bản là các vấn đề so sánh mô hình.

Bạn cố gắng để phù hợp với cử chỉ của bạn với một số bộ sưu tập cử chỉ, cử chỉ tốt nhất sẽ thắng.

Tôi sẽ ghi lại cử chỉ của bạn nhiều lần và cố gắng khớp dữ liệu huấn luyện của bạn với một cái gì đó như b-spline (một đường cong). Bạn có thể muốn các cử chỉ của mình là bất biến đối với các phép biến đổi affine (phép quay, tỷ lệ, dịch), vì vậy hãy lưu trữ đường cong dưới dạng bảng các giá trị độ cong (Không chắc có dạng đóng đẹp), trái với tọa độ Cartesian của điều khiển điểm.

Đó là một mô hình của một cử chỉ. Hãy nói rằng bạn có một số.

Để so sánh chúng bắt đầu bằng cách khớp dữ liệu đầu vào của bạn và sau đó đánh giá độ cong x số lần, trong đó x mang lại sự đánh đổi tốt giữa độ chính xác và hiệu suất.

Bây giờ lặp lại qua các mô hình và trừ các giá trị độ cong (được đánh giá tại cùng một điểm dọc theo các đường cong tương ứng theo chiều dài cung) và bình phương sự khác biệt. Giá trị mà kết quả được gọi là phần dư. Tổng hợp tất cả các phần dư. Mô hình với số dư nhỏ nhất là phù hợp nhất, và là cử chỉ khả dĩ nhất của bạn.

So sánh câu trả lời của tôi với @ Olie. Về cơ bản chúng giống nhau, mặc dù chúng tôi đang chọn các mô hình khác nhau cho cử chỉ, (xây dựng bảng độ cong đã ký và ghi lại sự thay đổi góc của tiếp tuyến gần như giống nhau, tôi cho rằng dữ liệu được tạo ra trơn tru đường cong với tiếng ồn mặc dù), sự khác biệt chính là @Olie bao gồm tốc độ.

Chọn những tham số để đưa vào mô hình của bạn phụ thuộc vào tình huống và yêu cầu về hiệu suất. Hãy nhớ rằng các tham số thêm vào mô hình của bạn sẽ tăng kích thước.


4

Theo nghĩa rộng, có lẽ bạn muốn xác định một cử chỉ là một hướng, theo sau là độ trễ [có thể rất ngắn], theo sau là một hướng khác (và các góc tương đối giữa các hướng, v.v., cho đến hết.

Ví dụ: tạo "t" bằng đũa phép của bạn (và đừng quên rằng một số người là người thuận tay trái, vì vậy định nghĩa của bạn không nên phụ thuộc vào tay!) Là một swoosh dọc, độ trễ ngắn, cong đảo ngược, độ trễ ngắn, đảo ngược đầu ngang, đột ngột [gần] dừng lại.

Khi bạn đọc cử chỉ, bạn muốn xem mức độ đọc của mẫu phù hợp với mô tả mẫu.

Nói chung, trước tiên, bạn có thể loại bỏ từ điển định nghĩa bằng cách loại bỏ các kết quả sai rõ ràng (những từ thậm chí không bắt đầu chính xác hoặc quá dài hoặc quá ngắn), sau đó "chấm điểm" cử chỉ đối với các định nghĩa còn lại. Đánh giá cử chỉ bằng cách xếp hạng từng phần xem mức độ phù hợp với định nghĩa (0-100%) và RMS-ing (nhận lỗi, bình phương, tính tổng, sau đó lấy căn bậc hai của tổng đó.)

Sử dụng RMS làm nổi bật sự khác biệt lớn (dẫn đến điểm thấp hơn), trong khi có xu hướng che lấp những khác biệt nhỏ (dẫn đến kết quả khớp tốt hơn.)

Có rất nhiều tài liệu về công cụ này - nhận dạng cử chỉ của Google. Đừng lo lắng nếu đó là bút stylus hoặc các thứ không phải Wii khác, các nguyên tắc thích ứng tốt.


0

Tôi chỉ làm điều này với chuột, nhưng giải pháp của tôi hoạt động rất tốt. Tôi đã tạo một mô hình chấm của các điểm để thể hiện cử chỉ - đây là hình dạng để vẽ. Sau đó, tôi lưu trữ đường dẫn của con trỏ khi nó di chuyển xung quanh. Tiếp theo tôi thu nhỏ đường dẫn chuột này để nó có cùng chiều rộng và chiều cao với mẫu đích. Mỗi bản cập nhật tôi lặp qua tất cả các điểm trên đường dẫn con trỏ của tôi để đảm bảo rằng chúng nằm trong một khoảng cách nhất định của nút đường dẫn cử chỉ, xem xét từng điểm của đường dẫn cử chỉ.


0

Tôi đã được dạy về Game AI bởi một trong những nhà phát triển chính tại AiLive (anh ấy trong một số video), và câu trả lời ngắn gọn là cố gắng thực hiện những nhận dạng cử chỉ này là quá đau đớn để dành cả cuộc đời của bạn. Tôi khuyên bạn nên đi tuyến đường phần mềm trung gian và nhận bộ LiveMove của AiLive.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.