Monday, July 13, 2009

TRECVID 2007 - Concept Detection Task

Tôi tóm tắt lại những state-of-the-art techniques cho task High Level Feature Extraction (HLFE) của TRECVID.
1. Concept Detection Task
HLF còn được gọi là các concept. Gọi concept bởi vì nó mang ngữ nghĩa. HLFE năm nay đòi hỏi các nhóm phải build 36 concept detectors để detect xem một shot có sự hiện diện của concept đã cho hay không. Có thể kể ra một số concepts như: Airplane, Snow, Car, Truck, Sports, etc.
Lấy ví dụ ta cần build một Airplane Concept Detector. Nghĩa là với một input image, detector này có khả năng detect được trong ảnh đó có airplane hay không? Hãy nhìn vào hình AirplaneConcept.jpg ta có thể hình dung sự phức tạp của bài toán đến mức nào. Airplane xuất hiện ở nhiều dạng khác nhau (về kích thước, hướng, vị trí, occlusion, etc), chính là nguyên nhân làm cho các thuật toán tốt nhất hiện nay chỉ cho kết quả rất thấp dưới 5% (nghĩa là trong 100 kết quả trả về, chưa có đến 5 kết quả đúng).
2. State of the Art Techniques
Một general framework for building concept detectors có thể tóm tắt như sau:
Step 1: Extract các features từ input frame images.
Step 2: Build classifiers dựa trên các features này.
Step 3: Fuse output scores của các classifiers ở trên để cho kết quả cuối cùng.
Một baseline system của Columbia University có thể xem ở hình CUBaseline.jpg.
Về mặt feature, cho đến nay, các loại feature chính sau được dùng:
- Color: color moment, auto-correlogram, color histogram,
- Edge: edge orientation histogram
- Texture: Gabor texture
- Motion
- SIFT, SURF features using keypoints detectors.
Các feature được extract trên toàn bộ image (global) hoặc extract ở các local regions (ví dụ chia image thành 5x5 grid và extract features ở từng region chia bởi grid).
Về mặt classifier, chủ yếu vẫn là dùng SVM trained với RBF kernel.
Về mặt fusion, thì khá nhiều thuật toán bao gồm SVM, average fusion, probabilistic model.
Có một số ý chính rút ra:
- Cho đến nay, các features dùng cho task này khá đơn giản. Các robust features được nghiên cứu bên CVPR ít được dùng đến. Năm 2006, nhóm UCB của Prof. J. Malik chỉ dùng một loại feature gọi là Geometric Blur mà có thể đạt được kết quả khá tốt và gây được sự chú ý của mọi người.
- Với kết quả được công bố năm 2006, CUBaseline system chỉ dùng simple visual feature và simple training technique là có thể đạt được MAP là 0.119 so với 0.192 là kết quả tốt nhất (kết hợp đủ các loại feature, kể cả text).
- Bởi vì chỉ dùng simple feature, cho nên các kết quả tốt chủ yếu đạt được nhờ ở bước fusion.
3. Kế hoạch
Tôi đã lên kế hoạch sơ lược thực hiện TRECVID cho group NII như sau:
3.1. Hypothesis
Hypothesis có thể diễn giải nôm na là những giả thuyết mà chúng ta cho là có thể mang lại kết quả tốt cho HLFE task. Để sau đó khi test với TRECVID testset, chúng ta sẽ biết hypothesis của mình có đúng không. Nếu đúng và kết quả hơn những nhóm khác, chúng ta có thể publish papers.
Hypothesis của nhóm tôi cho HLFE task năm nay là việc đưa vào sử dụng các robust features từ CVPR. Cụ thể là sẽ nghiên cứu cách sử dụng SIFT features và kết hợp với các features khác sao cho đạt được kết quả cao. Ý tưởng dùng các loại features này cũng đã được manh nha ở các nhóm khác ở trong các năm trước nhưng vẫn chưa có nhóm nào cho kết quả thuyết phục. Đó chính là lí do để chúng tôi bỏ công sức giải quyết.
Một ý khác là với việc xây dựng các concept detectors như một blackbox, input là frame image, output là 0/1 - concept/non-concept, về mặt học thuật người ta không thể nào biết được component nào trong cái blackbox đó là có ý nghĩa quyết định nhất. Lấy ví dụ như Tsinghua năm ngoái gộp hết tất cả các loại feature vào system của họ và họ đạt kết quả tốt nhất, nhưng chúng ta sẽ ko biết loại feature nào thì tốt cho concept này mà ko tốt cho concept kia, loại feature nào cho kết quả trung bình tốt nhất so với các loại feature khác, etc. Chính vì vậy mà chúng tôi cũng rất muốn nghiên cứu về khía cạnh này.
3.2. Shared Framework
Đây là một task lớn, một người không thể làm xuể do đó cần phải thiết kế và phân công công việc sao cho mọi người trong lab có thể đóng góp vào (lab tôi hiện giờ có 3 postdocs, 2 PhD students, ngoài ra còn có sự cộng tác của Viện Toán làm về machine learning nữa). Đây cũng là một thách thức đối với tôi vì trước giờ mọi thứ tôi đều làm một mình (những anh em khác cũng vậy). Rất may là với kinh nghiệm của năm ngoái, tôi cũng đã hình dung ra một framework trong đó mọi người có thể share and contribute. Với framework này, tôi cũng hi vọng có sự hợp tác của các anh em trong nhóm CVPR (ví dụ Duẩn có thể share HoG feature, Dũ có thể share ridge features).
Thiết kế của framework này có thể tóm tắt như sau:
- Phân rã hệ thống thành các hệ thống con tương đối độc lập nhau. Các hệ thống con sẽ tương tác với nhau thông qua các transparent interfaces.
- Các hệ thống con có thể plug-in and plug-out mà không ảnh hưởng đến toàn bộ hệ thống.
Cụ thể:
- Một concept detector sẽ được thiết kế thành các component sau:
+ Feature extractor: Input là một image, Output là feature vector. Ví dụ nếu chúng ta dùng color histogram RGB 16 bins/channel. Input là image, Output sẽ là 16x3 features.
+ Classifier: Input là tập features extracted from images trong training set, output là scores. Ví dụ, nếu chúng ta dùng feature ở bước trên, chúng ta có thể build một classifier mà có thể cho biết input image có chứa Airplane hay không. Tất nhiên là cái classifier này năng lực sẽ giới hạn vì nó chỉ có dựa vào color histogram mà thôi.
+ Fusion: Input là các scores của các classifiers ở trên, output là final scores. Ví dụ, nếu chúng ta dùng 10 loại features để build 10 classifiers, khi đó với một input image, chúng ta có được 10 scores tương ứng với 10 loại features trên. Fusion nôm na giống như voting vậy, sẽ cho biết loại feature nào có weight lớn hơn khi combined để cho kết quả cuối cùng.
Với framework này, mọi người có thể đóng góp bằng cách như sau:
3.2.1. Feature Extraction:
Nếu bạn có ý tưởng về feature gì mới, hoặc bạn muốn kiểm tra xem loại feature mà bạn nắm khá kĩ (ví dụ HoG) có kết quả như thế nào, chỉ cần bạn cài đặt một hàm mà input là image, output là feature. Sau đó bằng cách plug-in vào framework hiện có, bạn sẽ nhận được performance.
Trước mắt, chúng tôi sẽ implement lại hầu hết các loại features đã được dùng cho CBIR (xem trong file đính kèm), đồng thời muốn dùng các robust features khác như HoG (hi vọng Duẩn sẽ giúp), SIFT, SURF, etc.
3.3.2. Classifier Learning and Fusion
Cho đến giờ, SVM vẫn được dùng thông dụng nhất cho việc learn classifier. Tuy nhiên, cũng có nhiều vấn đề vẫn còn chỗ để tìm hiểu, ví dụ làm thế nào để handle imbalanced dataset (postive samples chỉ khoảng 5% so với negative samples), cách dùng kernel, etc.
Bằng cách dùng framework, hi vọng chúng ta có thể hiểu performance của các features, các learning methods, etc cho concept detection task. Hi vọng một khi trưởng thành (matured), chúng ta sẽ có kết quả khả quan ở TRECVID trong năm nay cũng như các năm tới.
Lê Đình Duy

Xem đầy đủ bài viết tại http://ledduy.blogspot.com/2009/07/trecvid-2007-concept-detection-task.html

No comments:

Post a Comment

Popular Posts