2012-01-10 149 views
10

Tôi đang cố gắng sử dụng opencv để phát hiện khuôn mặt. Khuôn mặt không phải mặt trước, máy ảnh chụp các khuôn mặt từ bên để chỉ có một mắt và một phần của miệng được xem. Tôi đã thử HaarDetectObjects với nhiều cấu hình mà không nhận được lợi ích. Tôi đã thay đổi cascade và thử nghiệm: haarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml với kết quả rất xấu. Có bất kỳ thác tốt hơn nào khác không? Có đề xuất nào khác không?Nhận diện khuôn mặt bằng OpenCV cho hình ảnh không phải mặt trước

Cảm ơn

Trả lời

8

Các tập tin cascade bạn tham chiếu (ví dụ aarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml) được tạo ra sử dụng toàn bộ phần trước khuôn mặt để phát hiện khuôn mặt trán đầy đủ. Vì vậy, một nửa khuôn mặt không rõ ràng sẽ được nhận diện chính xác như là hình dạng chính xác cho máy tính.

Những gì bạn có thể cần phải làm gì trong tình huống này là đào tạo OpenCV để nhận ra đối tượng mà bạn quan tâm đó là "một nửa của một face_ trong trường hợp này Trong OpenCV thuật ngữ nó được gọi là -.. 'HaarTraining' Sử dụng this, this

Một khi bạn đã đào tạo OpenCV sử dụng dữ liệu của bạn (ví dụ như rất nhiều hình ảnh khác nhau của một nửa khuôn mặt), bạn sẽ có sẵn một tệp XML cascade mà bạn có thể cắm vào mã riêng để phát hiện một nửa khuôn mặt.

Chúc may mắn!

+4

một nửa khuôn mặt còn được gọi là hồ sơ. :) – Sam

+0

Haarcascade_profileface.xml là dành cho các khuôn mặt hồ sơ (Không phải mặt trước, nhưng ngang) – saurabheights

+0

Nhân tiện, hãy thử mặt cắt xén của Haarcascade, nhưng hóa ra nó không chính xác lắm. – saurabheights

9

Bây giờ bạn có trong OpenCV thác mới LBP cho khuôn mặt cấu hình, được tạo ra bởi Vadim Pisarevsky:

https://github.com/Itseez/opencv/blob/master/data/lbpcascades/lbpcascade_profileface.xml

Rõ ràng, nó chỉ phát hiện khuôn mặt hồ sơ đúng, vì vậy để phát hiện tất cả các hồ sơ phải đối mặt với người ta phải chạy một giây bước với hình ảnh lộn xộn.

+0

Công trình này rất phù hợp cho các khuôn mặt đầy đủ. Tuy nhiên, không phải lúc nào cũng hoạt động tốt đối với một phần khuôn mặt tiểu sử. Có phiên bản tốt hơn của một hồ sơ cascade có sẵn ngay bây giờ? –

+1

Không phải là tôi biết, nhưng bạn luôn có thể đào tạo bộ mặt của riêng bạn bằng cách sử dụng một cơ sở dữ liệu của khuôn mặt hồ sơ (bạn sẽ có thể tìm thấy một số cơ sở dữ liệu của khuôn mặt xung quanh). Nếu bạn làm như vậy, xin vui lòng gửi cascade tạo ra để OpenCV để nó có sẵn cho cộng đồng. –

+0

Điều đó thật thú vị. Cảm ơn bạn đã ghi lại giới hạn này và quy trình để làm cho nó hoạt động với tất cả các mặt hồ sơ. –

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