我正在使用BOW对象检测,并且正在编码阶段工作。我已经看到一些在编码阶段使用kd-tree的实现,但大多数写作都表明kmeans集群是一条可行的路。两者有什么区别?kd-tree是kmeans聚类的替代方案吗?
回答
kd-tree
AFAIK用于标记阶段,当聚类到大量的组,数百甚至数千个时,它的速度要快得多,然后简单地采用到每个组的所有距离的argmin的幼稚方法,k-指http://en.wikipedia.org/wiki/K-means_clustering
是实际的聚类算法,它的速度快但并不总是很精确,一些实现返回的组,而其他组和训练数据集的标签,这是我ussually结合使用http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.cKDTree.html与http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.vq.kmeans2.html
在对象检测中,使用k-means来量化描述符。可以使用kd树来搜索具有或不具有量化的描述符。每种方法都有其优点和缺点。具体来说,当描述符维数超过20时,kd-tree并不比蛮力搜索好得多。
我使用SIFT描述符, 128个维度,所以我想在我的编码阶段,我应该只用k-means来量化? – mugetsu
我已经取得了很好的表现,使用分层k-均值聚类与词汇树和每个级别的蛮力搜索。如果我需要进一步提高性能,我会考虑使用局部敏感哈希或kd-tree结合通过PCA降维。 –
通过PCA减少维度+1 –
- 1. DataGrid是UWP的替代方案吗?
- 2. XslTransform类的替代方案
- 3. 聚类基线比较,KMeans
- 4. 是否有替代方案
- 5. Swift中有NSInvocation的替代方案吗?
- 6. iOS中有JobScheduler的替代方案吗?
- 7. B方法是传统编程语言的替代方案吗?
- 8. AFOpenFlow框架有替代方案吗?
- 9. MongoDB类似SQLite的替代方案?
- 10. ZeroMQ + Protobuf的替代方案(是ZeroMQ死于Java的吗?)
- 11. Castle Project的单轨是ASP.NET MVC3的可行替代方案吗?
- 12. 计算Kmeans聚类的误差
- 13. Kmeans聚类识别R中的知识
- 14. opencv kmeans聚类的输入矩阵
- 15. 平分文档聚类的KMeans
- 16. playN替代方案
- 17. Example.com替代方案
- 18. TFS替代方案
- 19. WSO2替代方案
- 20. Nginx:more_clear_headers替代方案
- 21. AppDomain.AppendPrivatePath替代方案?
- 22. Javascript。替代方案
- 23. android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED替代方案
- 24. MediaMetadataRetriever替代方案?
- 25. HTMLElementVariable.animate(...)替代方案?
- 26. 替代方案deleteOnExit
- 27. VSTO替代方案
- 28. pg_class.relhastriggers是“ALTER TABLE ... DISABLE TRIGGER USER”的安全替代方案吗?
- 29. MongoDB是关系数据库+ lucene的有效替代方案吗?
- 30. JRuby是Rails开发中MRI的可行替代方案吗?
所以,为了澄清一下,你将使用kmeans来量化图像描述符。那么你会从这些描述符中创建一个kdtree,以便可以在对象识别中搜索最近的邻居? – mugetsu
@mugetsu'那么你可以从这些描述符中完成一个kdtree',我已经做了一些基准测试,当kdtree与大量组合工作时,kdtree会将我的所有优化都抛出水面......我建议你简单地运行一些测试:) –
所以通过使用kdtree,你会跳过直方图和SVM吗?我很困惑这是如何工作的。 http://stackoverflow.com/questions/11091972/implementing-bags-of-words-object-recognition-using-vlfeat – mugetsu