【问题标题】:Algorithm for clustering pictures based on date taken基于拍摄日期聚类图片的算法
【发布时间】:2010-10-11 17:01:23
【问题描述】:

任何人都知道根据照片拍摄日期将照片分组为事件的算法。显然我可以按日期分组,但我想要一些更复杂的东西,它(可能)能够根据特定时间跨度内的频率对跨越多天的图片进行分组。考虑以下分组:

  • 2009 年 1 月 2 日 15 张照片
  • 2009 年 1 月 3 日 20 张照片
  • 2009 年 1 月 4 日 13 张照片
  • 2009 年 1 月 5 日 19 张照片
  • 2009 年 1 月 15 日 5 张照片

这些可能会分为两组:

  1. 1/2/2009 -> 1/5/2009
  2. 2009 年 1 月 15 日

显然需要建立一些公差。

除了发明我自己的自上而下方法之外,是否有任何成熟的方法来做到这一点?

【问题讨论】:

  • 您最终找到了一个运行良好的解决方案吗?如果是这样,你能分享你的方法吗?我即将解决类似的问题。

标签: algorithm cluster-analysis grouping


【解决方案1】:

尝试检测间隙而不是集群。

【讨论】:

    【解决方案2】:

    要根据日期获得有用的图片聚类,您需要以下内容:

    1) 聚类的数量应该是可变的,而不是先验固定的聚类

    2) 每个簇的直径不应超过特定数量。

    最能满足这两个要求的聚类算法是QT (quality threshold) clustering algorithm。来自维基百科:

    QT(质量阈值)聚类 (Heyer, Kruglyak, Yooseph, 1999) 是一个 分区的替代方法 数据,为基因聚类而发明。它 需要更多的计算能力 k-means,但不需要 指定集群的数量 a 先验的,并且总是返回相同的 多次运行的结果。

    虽然它主要用于基因聚类,但我认为它非常适合您的需求。

    【讨论】:

    • 任何分层聚集技术都具有该属性。
    • 为什么你认为 QT 聚类更好?
    • 分层聚集技术将在每次迭代中天真地合并总是最接近的两个点/簇对。由于您没有考虑每个点的所有集群,因此最终可能会出现倾斜集群
    • w/QT 不会第一个簇总是是预定义的最大直径的大小吗?
    • 根据定义,第一个簇是在给定直径内具有最多点的簇。如果有足够的点,每个簇都将具有预定义的最大直径。
    【解决方案3】:

    您可以尝试根据要创建的集群的数量或大小(绝对或 %)动态计算容差。

    【讨论】:

      【解决方案4】:

      您几乎可以在此应用any standard clustering technique,这只是正确定义距离函数的问题。当您制作照片之间的距离矩阵时,您应该考虑位置之间的物理距离(如果有的话)和它们的创建时间戳之间的时间距离的组合。 Normalise 它们并将它们放在不同的维度上,您甚至可以采用常规的欧几里得距离。

      祝你好运。

      【讨论】:

        【解决方案5】:

        只需将连续几天(没有没有拍照的日子)拍摄的照片组合在一起。

        【讨论】:

          猜你喜欢
          • 2015-11-11
          • 1970-01-01
          • 2013-05-29
          • 2021-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多