5

dự án: Nhận diện khuôn mặtnhận diện khuôn mặt và cắt xén

Mô tả: Tôi muốn phát hiện và cắt một khuôn mặt trong ảnh. Hình ảnh được chụp qua webcam và chỉ một khuôn mặt trên mỗi hình ảnh. Tôi đã sử dụng trình dò ​​tìm khuôn mặt OpenCV, nhưng tôi không hài lòng với việc cắt xén. Vì vậy, tôi bắt đầu sử dụng trình dò ​​tìm khuôn mặt STASM (http://www.milbo.users.sonic.net/stasm/) để cắt hình ảnh.STASM sử dụng trình dò ​​tìm khuôn mặt OpenCV để tìm khuôn mặt trong một hình ảnh và STASM định vị các mốc trong khuôn mặt. Trong điều kiện ánh sáng yếu, hình ảnh bị cắt từ STASM không tốt vì nó không chính xác phát hiện khuôn mặt một mình.

1) Tôi muốn biết bất kỳ thuật toán nào tốt hơn để phát hiện khuôn mặt. Mục đích chính của tôi là cắt mặt từ một hình ảnh.

2) hiện tại tôi đang sử dụng STASM để cắt xén. Trong điều kiện ánh sáng yếu hoặc khi ở một hình ảnh, nếu toàn bộ hoặc khuôn mặt hoàn chỉnh (trán để cằm) không bị bắt, cắt STASM không đáng tin cậy (Đầu ra sẽ chỉ là mắt hoặc môi). Và trong ứng dụng của tôi, nếu không có đầu ra thích hợp từ các co thắt hoặc nếu khuôn mặt không cắt prpoerly thì tôi nên từ chối các hình ảnh. Làm thế nào để làm điều đó? Vì vậy, tôi đang lập kế hoạch để xác nhận khuôn mặt trong một hình ảnh bằng cách tìm thấy đôi mắt. Nếu tôi đúng trong cách tiếp cận của tôi, làm thế nào để phát hiện mắt từ hình ảnh bị cắt?

+0

mục tiêu của bạn là gì sau khi cắt mặt? Để tạo bộ đào tạo? Hoặc để nhận dạng khuôn mặt? –

+0

Sau khi cắt, tôi sử dụng nó để tạo ra một bộ huấn luyện tốt để nhận dạng khuôn mặt. Cảm ơn bạn đã trả lời ... – 2vision2

Trả lời

1

Cố gắng sử dụng thiết bị dò tìm mắt từ OpenCV. Và điều chỉnh hộp mặt dựa trên vị trí mắt.

3

Tôi đang có kết quả khá tốt trong một trong các dự án của mình bằng cách phát hiện mắt ở mặt với bộ phân loại xếp chồng lồng nhau, vì nó không có trong ví dụ được phân phối. Nhưng sau đó tôi sử dụng một mẹo bổ sung: tôi từ chối tham số minNeighbors của nestedCascade.detectMultiScale() thành 0.

Điều đó có nghĩa là bạn nhận được nhiều kết quả. Một mắt được công nhận có thể lần. Sau đó, tôi kiểm tra kết quả thu thập ở bên trái và phần bên phải của khuôn mặt. Các điểm thu thập là vị trí mắt thực tế.

Sau đó, tôi xoay Hình ảnh ban đầu. Rotation-center là trung tâm của khuôn mặt mà tôi tìm thấy và góc quay là thiên thần giữa đôi mắt được phát hiện. Sau đó, tôi thực hiện dò tìm khuôn mặt khác trên hình ảnh được xoay và đảm bảo rằng tôi sử dụng hệ số quy mô rất thấp trong các tham số của nestedCascade.detectMultiScale() cho điều đó.

Kết quả là trong hầu hết các trường hợp, hình ảnh khuôn mặt được chuẩn hóa hoàn hảo. Tất nhiên sự thành công vẫn phụ thuộc vào điều kiện sét của bạn thực sự tồi tệ đến mức nào.

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