Con người nhận dạng hình ảnh thông qua bộ mô tả HOG và bộ phân loại SVM hoạt động kém


8

Tôi đang sử dụng một bộ mô tả HOG, kết hợp với bộ phân loại SVM, để nhận ra con người trong ảnh. Tôi đang sử dụng trình bao bọc Python cho OpenCV. Tôi đã sử dụng hướng dẫn tuyệt vời tại pymagesearch , giải thích thuật toán này làm gì và cung cấp gợi ý về cách đặt tham số của phương thức DetMultiScale .

Cụ thể là tôi làm

# initialize the HOG descriptor
hog = cv2.HOGDescriptor()

# Set the support vector machine to be pre-trained for people detection
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

# Detect people in the image
(rects, weights) = hog.detectMultiScale(image,
                                        winStride=(4, 4),
                                        padding=(8, 8),
                                        scale=1.05)

Các tham số được chọn theo một tinh chỉnh về cả độ chính xác và hiệu suất, theo các giải thích trong chính hướng dẫn.

Vấn đề của tôi là phương pháp này, có vẻ như là phương pháp tốt nhất hiện nay để nhận ra con người trong một bức tranh theo tài liệu ( bài báo gốc là năm 2005) dường như hoạt động khá kém trên các hình ảnh của tôi. Tôi có hình ảnh chứa quần áo, cả với người mẫu và không có nó và tôi đang thử phương pháp này để nhận ra những người có mô hình. Trên một tập hợp con gồm 300 hình ảnh mà tôi đã quét theo cách thủ công để gắn thẻ chúng có chứa mô hình hay không, phương pháp không thành công 30% lần.

Đây là một số hình ảnh làm ví dụ.

Tại đây, nó phát hiện ra một người mất tích:

Ở đây nó không có được con người đầy đủ:

Ở đây nó không nhận ra nó:

Tôi hiểu rằng máy dò hoạt động cho con người chính trực. Họ cũng nên có đầy đủ hình? Hình ảnh của tôi bao gồm một nửa hình, con số không có đầu hoặc không có chân.

Trước đó, tôi đã thử một trình phân loại tầng dựa trên tính năng Haar để nhận diện khuôn mặt trong một hình ảnh và độ chính xác trên cùng một bộ hình ảnh là 90%, vì vậy tôi đã cố gắng cải thiện điều này. Ngoài ra, tôi quan tâm đến việc hiểu tại sao mọi thứ không hoạt động ở đây.

Câu trả lời:


5

Bạn đang sử dụng tập huấn luyện mà opencv đang cung cấp cho bạn mà nó không tương ứng với loại hình ảnh bạn đang sử dụng. Dữ liệu bạn đang sử dụng đến từ getDefaultPeopleDetectorvà loại hình ảnh mà trình phát hiện mặc định sử dụng là hình ảnh của nhiều người, không phải mẫu nữ từ thương mại điện tử thời trang.

Nếu bạn muốn phân biệt giữa các mô hình và hàng may mặc, bạn có thể thử đào tạo phân loại của riêng bạn với HOG hoặc các tính năng khác.

Một con đường khác bạn có thể đi là phát hiện xem có khuôn mặt hay không. Bạn có thể sử dụng thác haar cho điều đó.


Vâng, tôi đã nhận được điều này. Trong thực tế, thác haar thực hiện tốt hơn. Nhưng tôi vẫn muốn biết chính xác lý do tại sao các mô tả lợn thất bại thảm hại trên hình ảnh của tôi, có phải vì con người không hoàn toàn được bao gồm trong hình ảnh?
martina

1
Lý do là một trong những tôi đã cho bạn. Trình phân loại mặc định bạn đang sử dụng sẽ lấy những hình ảnh không giống với những gì bạn đang sử dụng
hoaphumanoid
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.