2012-07-06 73 views
10

Tôi đã thử nhận diện khuôn mặt bằng cách sử dụng OpenCV bằng tài liệu được cung cấp trên wiki của họ. Làm việc tốt và nó có thể phát hiện nhiều khuôn mặt. Tuy nhiên không có dữ liệu được cung cấp trên trang web về phát hiện đối tượng 3D hoặc theo dõi đầu. Các liên kết đến mã và wiki được cung cấp dưới đây:Phát hiện đối tượng 3D-Opencv

Face recognition

Cascade Classifier

Trong khi wiki không cung cấp đầy đủ thông tin về nhận diện khuôn mặt, như bạn có thể tìm thấy, 3D các phương pháp nhận dạng khuôn mặt không được cung cấp .

Tôi muốn biết về các dự án liên quan đến nhận dạng khuôn mặt 3D và theo dõi để tôi có thể xem mã nguồn và cố gắng thực hiện một dự án.

+0

Tôi đang ở một vị trí tương tự như bạn, tôi hiện đang tìm kiếm một cách để nhận biết và theo dõi 3D-đối tượng. Nếu tôi gặp bất cứ điều gì có thể giúp bạn, tôi sẽ đăng nó ở đây. – casper

+0

Cảm ơn một tấn. :) Bạn có bất kỳ ý tưởng về bất kỳ thuật toán có thể được sử dụng? –

+1

Tôi sợ rằng tôi vẫn còn rất nhiều người mới bắt đầu trong lĩnh vực này, nhưng tôi có thể khuyên bạn nên xem thuật toán [SURF] (http://opencv.willowgarage.com/documentation/c/feature_detection.html), hoặc tại [clip này] (http://www.youtube.com/watch?feature=endscreen&NR=1&v=G5GLIKIkd6E). Có lẽ bạn có thể sử dụng một hình thức liên tục cập nhật mẫu phù hợp như ông đã làm. [Một hướng dẫn khác] (http://www.morethantechnical.com/2010/03/19/quick-and-easy-head-pose-estimation-with-opencv-w-code/) mà tôi thấy thú vị. Chúc may mắn! – casper

Trả lời

6

Điều này có thể đến muộn nhưng nhà để xe liễu có một dự án khác đang chạy được gọi là Thư viện đám mây điểm (PCL) tập trung hoàn toàn vào nhiệm vụ xử lý dữ liệu 3D. Nhận diện khuôn mặt là một trong những trường hợp sử dụng mà họ sử dụng để quảng cáo dự án. Dĩ nhiên tất cả điều này là miễn phí ...

http://pointclouds.org

1

Có nhiều phương pháp. Tôi chỉ có thể chỉ cho bạn đúng hướng. Ví dụ nhận dạng khuôn mặt thường cung cấp khả năng phát hiện con mắt. Vì vậy, thực sự bạn biết vị trí khuôn mặt và mắt. Tương tự hoặc có nghĩa là bạn cũng có thể phát hiện đôi môi. Bây giờ khi bạn có ít nhất ba điểm đối tượng (đối mặt với thời gian này), bạn có thể tính toán vị trí 3D của nó trong phòng bằng cách sử dụng triangulation. Điều này một phần của ví dụ tồn tại trong find_obj.cpp mà đến như là ví dụ với OpenCV. Chỉ ví dụ này sử dụng x điểm từ SURF và vẽ hình chữ nhật dựa trên thông tin này. Kiểm tra cũng bất cứ điều gì khác với CvFindHomography.

1

Kể từ OpenCV 2.4.2, đã có một tập tin tiêu đề cho nhận diện khuôn mặt và theo dõi: opencv2/contrib/detection_based_tracker.hpp

File header định nghĩa một lớp được gọi là DetectionBasedTracker. Cơ chế theo dõi nó định nghĩa sử dụng thác tầng trong nền để phát hiện các đối tượng. Việc theo dõi nhanh hơn nhiều so với việc triển khai OpenCV Haar (tuy nhiên, một số đã nhận thấy nó kém chính xác hơn). Cá nhân tôi đã tìm thấy nó hoạt động rất tốt trên thiết bị Android. Một số mẫu mã thực hiện nhận diện khuôn mặt và theo dõi được tìm thấy ở đây: http://bytesandlogics.wordpress.com/2012/08/23/detectionbasedtracker-opencv-implementation/

1

Bạn nên có một cái nhìn tại Active shapes modelsActive Appearance Models mà là dành cho công việc bạn đang mô tả. OpenCV cung cấp cho bạn phương pháp phát hiện 2D, trong khi các phương pháp tham chiếu (hiện nay rất phổ biến trong lĩnh vực này) theo dõi một tập hợp các điểm 3D được phân phối trên khuôn mặt và kết cấu để mô tả sự xuất hiện của nó.

Các trang Wikipedia sẽ cung cấp cho bạn một số liên kết để triển khai các phương pháp đã nói.

Nếu bạn muốn biết thông số 3D của đầu trong các tọa độ trên thế giới (ví dụ để phát hiện ánh nhìn), thì bạn nên google cho từ khóa "theo dõi đầu 3D" và "ước tính vị trí đầu".

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