Nếu bạn có thể triển khai một SVM, bạn có thể định lượng các tính năng. :)
Thông thường các tính năng được lượng tử hóa bằng cách sử dụng phân cụm k-nghĩa. Đầu tiên, bạn quyết định "kích thước từ vựng" của bạn sẽ là gì (giả sử 200 "từ trực quan"), sau đó bạn chạy phân cụm k-nghĩa cho số cụm đó (200). Các mô tả SIFT là các vectơ gồm 128 phần tử, tức là các điểm trong không gian 128 chiều. Vì vậy, bạn có thể cố gắng phân cụm chúng, giống như bất kỳ điểm nào khác. Bạn trích xuất các mô tả SIFT từ một số lượng lớn hình ảnh, tương tự như những gì bạn muốn phân loại bằng cách sử dụng các tính năng. (Lý tưởng nhất phải là một tập hợp hình ảnh riêng biệt, nhưng trong thực tế, mọi người thường chỉ nhận được các tính năng từ bộ hình ảnh đào tạo của họ.) , tức là để gán từng mô tả cho một cụm. k-nghĩa sẽ cung cấp cho bạn 200 trung tâm cụm,
Sau đó, bạn lấy từng bộ mô tả SIFT trong hình ảnh của mình và quyết định nó thuộc về 200 cụm nào, bằng cách tìm trung tâm của cụm gần nhất với nó. Sau đó, bạn chỉ cần đếm có bao nhiêu tính năng từ mỗi cụm bạn có. Do đó, đối với bất kỳ hình ảnh nào có số lượng tính năng SIFT bất kỳ, bạn có biểu đồ 200 thùng. Đó là vector tính năng của bạn mà bạn cung cấp cho SVM. (Lưu ý, các tính năng hạn là quá tải).
Như tôi nhớ lại, có rất nhiều công việc được thực hiện liên quan đến việc những biểu đồ này nên được chuẩn hóa như thế nào. Tôi có thể sai, nhưng tôi dường như nhớ lại một bài báo tuyên bố rằng một vectơ đặc trưng nhị phân (tức là 1 nếu có ít nhất 1 tính năng từ cụm này và 0 khác) hoạt động tốt hơn biểu đồ. Bạn sẽ phải kiểm tra tài liệu để biết chi tiết, và các chi tiết rất quan trọng.
Chỉnh sửa: Hộp công cụ Hệ thống Tầm nhìn Máy tính cho MATLAB hiện cung cấp túi chức năng tính năng .