иерархическая кластеризация k-средних для векторов SIFT

Все

Я ищу применение того же подхода Дэвида Нистера и Хенрика Стевениуса в http://www.wisdom.weizmann.ac.il/~bagon/CVspring07/files/scalable.pdf

В этой статье они используют большое количество векторов SIFT (128-D) в качестве входных данных для иерархической кластеризации k-средних для построения иерархического дерева визуального словаря.

Кто-нибудь знает какую-нибудь хорошую библиотеку, которую я могу использовать для этой кластеризации?

Ps: количество входных дескрипторов SIFT велико (70 000 000), и я хочу, чтобы результатом было словарное дерево с 1 000 000 листовых узлов.

Спасибо большое. С уважением.


person zhenxingDCU    schedule 12.06.2012    source источник


Ответы (1)


Инструмент ClusterQuantiser в OpenIMAJ должен уметь это делать, если данные представлены в поддерживаемом формате. Если инструмент не может работать с вашими данными из коробки, вы можете написать драйвер для класса org.openimaj.ml.clustering.kmeans.HierarchicalByteKMeans (в версии svn trunk) или класса org.openimaj.ml.clustering.kmeans.HByteKMeans в версии 1.0.5. Обе версии класса поддерживают потоковую передачу данных с диска, поэтому вам не нужно хранить все функции в памяти!

Для полноты, vlfeat также имеет иерархическую реализацию k-средних, но я не уверен, насколько она масштабируется.

Исходя из практического опыта, вы также можете подумать о выборке объектов перед кластеризацией. Я не уверен, что вы получите много пользы от объединения их всех.

person Jon    schedule 25.06.2012
comment
Джон, Спасибо. Я наткнулся на OpenIMAJ неделю назад, когда выполнял случайный поиск в Google. Я изучу его и посмотрю, что он может предложить. - person zhenxingDCU; 28.08.2012