Nhận dạng cử chỉ chỉ bằng các kỹ thuật đơn giản


8

Tôi đang theo một khóa học về thị giác máy tính và tôi có bài tập này: viết một chương trình, đưa ra một hình ảnh bàn tay, nó có thể nhận ra nếu bàn tay đang mở, đóng, trong một cú đấm hoặc giữ một tư thế "ok", chỉ sử dụng các kỹ thuật được cung cấp cho đến bây giờ (pixel 4/8 được kết nối, vùng được kết nối, tìm đường viền, tìm lỗ, thuộc tính blob như centroid, diện tích, chu vi, độ lệch tâm, khoảnh khắc hình ảnh, chuyển đổi hình ảnh như điều chỉnh ngược / power / log / gamma / kéo dài độ tương phản, biểu đồ tính toán và cân bằng).

Tôi đã thực hiện nó với một số thuộc tính blob cơ bản (tay đóng có độ lệch tâm thấp, "ok" có lỗ, bàn tay mở có sự khác biệt lớn giữa diện tích hình elip được ghi trong blob và vùng blob có độ lệch tâm thấp) .. Nó có vẻ hoạt động nhưng hình ảnh đầu tiên là một chút vấn đề.

Tôi nghĩ rằng có thể có một cái gì đó nhiều hơn để tạo ra một thuật toán mạnh mẽ hơn. Có thể một số loại tài sản thời điểm? Một số trục blob / định hướng / điểm cực đoan có thể giúp đỡ?

Hình ảnh thử nghiệm PS:

ok2

đồng ý

mở

cú đấm


Bạn có được phép sử dụng skeletonization không? Xem bài viết Wikipedia có liên quan để biết thêm ý tưởng.
Emre

không được phép vì đó là nội dung của một lớp học trong tương lai!
nkint

Bạn có thể thử áp dụng phê duyệt Tổng hợp tượng trưng cho đường viền bên ngoài của mỗi đối tượng. Về cơ bản giảm một hình dạng phức tạp thành một serie thời gian và sau đó phân cụm chúng theo một cách nào đó.
Ivo Flipse

tôi nghĩ rằng tôi không phải sử dụng bất kỳ loại học máy nào, chỉ là một cách thông minh để kết hợp các câu được viết trong câu hỏi ..
nkint

có thể một số đặc điểm hình thái?
nkint

Câu trả lời:


2

Bạn có thể thử nhìn vào những khoảnh khắc bất biến của Hu. Chúng có thể được xây dựng từ những khoảnh khắc cơ bản, và là xoay, tỷ lệ, phản xạ và bất biến dịch.

Tính toán chúng cho một tập hợp các đường viền đào tạo trước, sau đó áp dụng chúng cho đường viền thử nghiệm.

Có những triển khai trong Matlab và OpenCV, theo như tôi nhớ.


2

Theo cuốn sách Lập trình thị giác máy tính với Python, một cách tiếp cận thú vị là sử dụng các tính năng SIFT (hay còn gọi là HoG) dày đặc trên hình ảnh của bạn và cung cấp các tính năng này cho một bộ phân loại.

Tôi đã không thử bản thân mình, nhưng có vẻ như đó là một cách tiếp cận. Hơn nữa, người phát minh ra tính năng HoG đề xuất ứng dụng Flutter hoạt động khá tốt trong các thử nghiệm của tôi và sẽ rất kỳ lạ nếu nhà phát minh không sử dụng các tính năng của riêng mình hoặc một dẫn xuất gần gũi.


2

Một trong những người bạn của tôi đã làm điều này cho luận án đại học của mình. Những gì anh ấy cơ bản đã làm là mã hóa thuộc tính của từng cử chỉ. Ví dụ, trong hình đầu tiên, lấy mặt nạ hình chữ nhật trên các phần của bàn tay. Các phần mà da gặp cạnh mặt nạ hình chữ nhật cần được lưu ý và đánh dấu. Sau đó, các vị trí tương đối của cạnh lớn hơn và cạnh nhỏ hơn có thể được so sánh.

Vì vậy, để hướng lên trên, bạn sẽ có một cạnh nhỏ hơn lên trên và cạnh lớn hơn ở cổ tay.

Để chỉ sang một bên, bạn có cạnh nhỏ hơn ở một bên và cạnh lớn hơn ở phía dưới.

Các hướng ít nhất có thể được bao phủ theo cách này.

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.