2012-06-10 39 views
10

Tôi đang phát triển một ứng dụng cho iOS cần phát hiện khi người dùng ngáp.Làm thế nào tôi có thể phát hiện ngáp bằng cách sử dụng Open CV

Những gì tôi đã làm là bao gồm CV mở và tìm khuôn mặt bằng cách sử dụng tầng thác, và sau đó tìm miệng bên trong khuôn mặt (quá sử dụng haarcascade).

Những rắc rối mà tôi có là tôi tin rằng nó sẽ rất dễ dàng để phát hiện một ngáp giống như làm một cái gì đó như (face.y - mouth.y) < something = yawn. Nhưng vấn đề mà tôi có là rects đối mặt và miệng là "không thể chữa được", tôi có nghĩa là mỗi khi vòng lặp chạy X và Y giá trị cho các mặt của miệng và miệng là (obviusly) không giống nhau.

Có bất kỳ "mở miệng" haar thác mà tôi có thể sử dụng, hoặc làm thế nào tôi có thể biết khi nào người dùng mở miệng?

+0

Nó có thể được ghi nhận như là một ví dụ về nhận dạng biểu hiện khuôn mặt, chủ yếu được thực hiện bằng cách sử dụng SVM. Vì vậy, googling trong tuyến đường đó có thể cung cấp cho bạn một số kết quả tốt. –

+1

Điều gì xảy ra nếu người dùng che miệng khi họ ngáp? – Hassan

+2

@Hassan gửi cho họ một electroshock cho rằng quá! :) – kenny

Trả lời

11

Là một vị tướng, Support Vector Machine (SVM) được sử dụng để nhận dạng biểu hiện trên khuôn mặt như giận dữ, nụ cười, sự ngạc nhiên vv nơi vẫn còn hoạt động phát triển diễn ra. Googling cung cấp cho bạn rất nhiều giấy tờ về chủ đề này, (thậm chí một trong những người bạn đời lớp của tôi đã làm điều này như dự án năm cuối cùng của mình). Để làm được điều đó, ban đầu bạn cần huấn luyện SVM và làm điều đó, bạn cần những hình ảnh mẫu ngáp và khuôn mặt bình thường.

Ngáp gần như tương tự như bất ngờ, nơi miệng mở trên cả hai trường hợp. Tôi khuyên bạn nên kiểm tra trang 3 dưới giấy: Real Time Facial Expression Recognition in Video using Support Vector Machines (Nếu bạn không thể truy cập vào liên kết, google theo tên giấy)

Các giấy (ngay cả bạn cùng lớp của tôi) được sử dụng vector chuyển của đặc điểm khuôn mặt. Đối với điều này, bạn tìm thấy một số điểm đặc trưng trên khuôn mặt. Ví dụ, trong bài báo, họ đã sử dụng học sinh mắt, điểm cực của nắp, đầu mũi, điểm cực của vùng miệng (môi) vv. Sau đó, chúng liên tục theo dõi vị trí của các đối tượng địa lý và tìm khoảng cách euclide giữa chúng. Chúng được sử dụng để đào tạo SVM.

Check-out dưới hai giấy tờ:

Feature Points Extraction from Faces

Fully Automatic Facial Feature Point Detection Using Gabor Feature Based Boosted Classifiers

ảnh Look dưới đây những gì tôi có nghĩa là bởi các điểm đặc trưng trên khuôn mặt:

enter image description here

Trong trường hợp của bạn , tôi nghĩ bạn là impl ementing nó trong iPhone trong thời gian thực. Vì vậy, có thể bạn có thể tránh các điểm đặc trưng ở mắt (mặc dù không phải là một ý tưởng tốt, vì khi bạn ngáp, mắt trở nên nhỏ về kích thước). Nhưng so với nó, điểm đặc trưng ở môi cho thấy nhiều biến thể và chiếm ưu thế hơn. Vì vậy, thực hiện trên môi một mình có thể tiết kiệm thời gian. (Vâng, tất cả phụ thuộc vào bạn).

Lip Segmentation: Nó đã được thảo luận trong SOF và kiểm tra câu hỏi này: OpenCV Lip Segmentation

Và cuối cùng, tôi chắc chắn bạn có thể tìm thấy rất nhiều chi tiết về googling, bởi vì nó là một khu vực phát triển năng động, và rất nhiều giấy tờ có ở đó.

Một Lựa Chọn:

Một tùy chọn khác trong khu vực này, mà tôi đã nghe nói nhiều lần, là Active Appearance Model. Nhưng tôi không biết gì về nó cả. Google nó cho mình.

+0

Những khái niệm đó cách xa tôi :) Nhưng tôi đã giải quyết bằng cách này với các thác thác: đầu tiên tôi tìm kiếm khuôn mặt, bên trong khuôn mặt tôi tìm kiếm trong miệng. Miệng được tìm thấy khi môi không mở. Vì vậy, nếu tôi đã tìm thấy một miệng và sau đó tôi không thể tìm thấy miệng nữa, tôi cho rằng người dùng đã ngáp. KHÔNG hoàn hảo, thậm chí không đẹp, nhưng nó đã giải quyết được những gì tôi cần để phát triển ứng dụng của mình. – FreelanceAr

+0

Phương pháp tôi nói không phải là cho đến nay. Điều này đã được thực hiện bởi bạn tôi trong MATLAB khi chúng tôi đang trải qua. Và tất cả các chức năng được thực hiện trong OpenCV. Không có vấn đề, bạn là sự lựa chọn. chỉ ra phương pháp này. Chúc may mắn –

+0

Thnanks @Abid rắc rối là tôi không có bất kỳ ý tưởng nào về SVM và cả về Open CV, chỉ là những điều cơ bản: D nhưng nó thực sự thú vị nên sau dự án này tôi sẽ nghiên cứu thêm một chút để tạo ra "thực hiện điều này. Và cũng có kiến ​​thức này có nhiều công dụng cho ví dụ tăng cường thực tế, và nó có thể được thực hiện hầu hết mọi nơi với Open CV (Android, iOS, Desktop, vv). Vì vậy, trong tương lai tôi sẽ nghiên cứu thêm về các phương pháp mà bạn đã nói với tôi. Cảm ơn một lần nữa! – FreelanceAr

0

OpenCV cũng có khả năng nhận diện/phát hiện khuôn mặt (xem các ví dụ đi kèm với SDK openCV). Tôi nghĩ rằng đây sẽ là một nơi tốt hơn để xem xét, như thác haar không thực sự phân tích các biểu hiện trên khuôn mặt theo cách bạn cần nó. Hãy thử chạy các ví dụ và xem cho chính mình - bạn sẽ nhận được dữ liệu thời gian thực về mắt/miệng được phát hiện và như vậy.

Chúc may mắn

Các vấn đề liên quan