mcpField
E
event-detection-temporal-intelligence-expert

event-detection-temporal-intelligence-expert

github.com/curiositech数据与数据库257168 次安装2 天前更新
代码仓库

关于 event-detection-temporal-intelligence-expert

面向照片集合分析的事件检测技能,帮助整理者依据时间、地理位置和视觉内容发现有意义的活动。它还涵盖事件重要性评分、可分享性预测及拼贴选图的时间多样性。

主要功能

  1. 01时空聚类检测照片事件
  2. 02结合 CLIP 视觉内容聚类
  3. 03事件重要性评分
  4. 04预测照片社交分享潜力
  5. 05按时间多样性筛选照片

适用场景

  1. 01从带时间和 GPS 的照片中识别活动
  2. 02区分旅行中的不同日期与地点
  3. 03为拼贴选择覆盖多个事件的照片
  4. 04发现婚礼、毕业等人生事件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill event-detection-temporal-intelligence-expert

安装后在 Claude Code 中输入/event-detection-temporal-intelligence-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
.claude-plugin/
plugin.json
references/
event-scoring-shareability.md
place-recognition-life-events.md
st-dbscan-implementation.md
temporal-diversity-pipeline.md

详细介绍

活动检测与时间智能专家

擅长通过时空聚类、重要性评分和智能照片筛选,从照片集中检测有意义的活动,以制作拼贴画。

何时使用此技能

✅ 适用于:

  • 根据照片时间戳和 GPS 坐标检测活动
  • 按时间、地点和视觉内容对照片进行聚类(ST-DBSCAN、DeepDBSCAN)
  • 评估活动的重要性(生日 > 通勤)
  • 预测照片在社交媒体上的分享潜力
  • 识别人生事件(毕业、婚礼、出生、搬家)
  • 优化时间多样性(避免所有照片都来自同一天)
  • 面向活动的拼贴画照片筛选

❌ 不适用于:

  • 单张照片的美学质量 → photo-composition-critic
  • 色彩搭配分析 → color-theory-palette-harmony-expert
  • 人脸聚类/识别 → photo-content-recognition-curation-expert
  • CLIP 嵌入生成 → clip-aware-embeddings
  • 提取单张照片的时间戳(基础 EXIF 解析)

快速决策树

Need to group photos into meaningful events?
├─ Have GPS + timestamps? ──────────────────── ST-DBSCAN
│   ├─ Also need visual similarity? ────────── DeepDBSCAN (add CLIP)
│   └─ Need hierarchical events? ───────────── Multi-level cascading
│
├─ No GPS, only timestamps? ────────────────── Temporal binning
│   └─ With visual content? ─────────────────── CLIP + temporal
│
└─ Photos have faces + want groups? ─────────── Face clustering first
    └─ Then event detection per person

核心概念

1. ST-DBSCAN:时空聚类

问题:标准聚类方法不适用于照片——不同日期在同一地点拍摄的照片不应被归为一组。

关键洞见:同一小时内相距 100 米 = 同一活动。3 天后相距 100 米 = 不同活动。

ST-DBSCAN 参数:

ε_spatial:   50m (indoor) → 500m (outdoor festival) → 5km (city tour)
ε_temporal:  1hr (short event) → 8hr (day trip) → 24hr (multi-day)
min_pts:     3 (small gathering) → 10 (large event)

算法:必须同时满足空间和时间约束:

Neighbor(p) = {q | distance(p,q) ≤ ε_spatial AND |time(p)-time(q)| ≤ ε_temporal}

→ 深入了解:references/st-dbscan-implementation.md

2. DeepDBSCAN:加入视觉内容

问题:同一时间、地点拍摄的照片可能是不同主题(仪式与空椅子)。

解决方案:将 CLIP 嵌入作为第三个维度加入:

Neighbor(p) = {q | spatial_ok AND temporal_ok AND cosine_sim(clip_p, clip_q) > threshold}

eps_visual:0.3(主题相似)→ 0.5(活动内容多样)

3. 分层活动检测

使用场景:「巴黎度假」包含「第 1 天:卢浮宫」「第 2 天:埃菲尔铁塔」

方法:使用逐步扩大的阈值串联 ST-DBSCAN:

  1. 高层(度假):eps_spatial=50km,eps_temporal=72hr
  2. 中层(日常):eps_spatial=5km,eps_temporal=12hr
  3. 低层(瞬间):eps_spatial=500m,eps_temporal=1hr

活动重要性评分

目标:生日派对 > 日常通勤照片

多因素模型(权重总和为 1.0):

因素权重说明
location_rarity0.20异域地点 > 家
people_presence0.15有人物的照片得分更高
photo_density0.15每小时照片越多 = 越值得纪念
content_rarity0.15通过 CLIP 检测地标、庆祝活动
visual_diversity0.10拍摄内容多样 = 特别活动
duration0.10活动持续时间越长,得分越高
engagement0.10已分享/编辑/收藏的照片
temporal_rarity0.05年度规律(生日、节假日)

→ 深入了解:references/event-scoring-shareability.md


分享潜力预测

目标:预测哪些照片会在社交媒体上分享。

高信号特征(2025 年研究):

  1. 笑脸(基础分 +0.3)
  2. 合影(3 人以上,+0.2)
  3. 著名地标(+0.25)
  4. 美食场景(+0.15)
  5. 适中的视觉复杂度(0.4–0.6 为最佳)
  6. 新近程度(在 30 天内逐渐衰减)

分享潜力阈值:>0.6 =「分享潜力高」

→ 深入了解:references/event-scoring-shareability.md


人生事件检测

使用多模态信号自动检测重大人生事件:

事件类型主要信号阈值
毕业学士帽/毕业袍、文凭、礼堂0.6
婚礼正装、花束、蛋糕、戒指0.7
出生新出现的婴儿人脸簇、医院环境0.8
搬家地点移动 50km 以上,持续时间 >30 天0.8
旅行里程碑首次到访新国家1.0

→ 深入了解:references/place-recognition-life-events.md


用于选择的时间多样性

问题:如果没有约束,拼贴中可能全是度假照片。

方法对比
方法最适合适用场景
时间分箱均匀覆盖时间范围需要按时间顺序分散选择
时间 MMR平衡质量与多样性平衡选择
基于事件表现事件每个事件都很重要
时间 MMR 公式
MMR(photo) = λ × quality + (1-λ) × min_temporal_distance_to_selected
  • λ=0.5:均衡
  • λ=0.7:优先考虑质量
  • λ=0.3:优先考虑多样性

→ 深入了解:references/temporal-diversity-pipeline.md


常见反模式

反模式:仅按时间聚类

表现形式:仅对时间戳使用 K-means 或基础 DBSCAN

clusters = KMeans(n_clusters=10).fit(timestamps)  # WRONG

错误原因:同一地点的多日行程会被拆分;同一天不同地点的事件会被合并。

推荐做法:使用同时具有空间和时间约束的 ST-DBSCAN。

反模式:固定的 Epsilon 值

表现形式:所有事件都使用相同的 eps_spatial=100m

错误原因:室内活动需要 50m,城市游览则需要 5km。

推荐做法:根据事件类型检测采用自适应阈值,或使用多尺度层次聚类。

反模式:忽略视觉内容

表现形式:仅使用 ST-DBSCAN 检测事件

错误原因:婚礼仪式和摆着空椅子的布置场景——时间和地点相同,重要性却截然不同。

推荐做法:使用基于 CLIP 嵌入的 DeepDBSCAN,进行感知内容的聚类。

反模式:对 GPS 使用欧几里得距离

表现形式:

distance = sqrt((lat2-lat1)**2 + (lon2-lon1)**2)  # WRONG

错误原因:度数 ≠ 米。纬度 1° = 111km,但经度 1° 对应的距离会随纬度变化。

推荐做法:使用半正矢公式计算大圆距离:

from geopy.distance import geodesic
distance_meters = geodesic((lat1, lon1), (lat2, lon2)).meters
反模式:不处理噪声

表现形式:强制将每张照片都归入某个聚类

错误原因:单独的通勤照片会污染事件聚类。

推荐做法:DBSCAN 会自动识别噪声(label=-1)。将噪声单独保留,不要强行归入最近的聚类。

反模式:分享价值评估不考虑事件背景

表现形式:仅根据照片特征预测分享价值

错误原因:婚礼上的一张普通照片,比周二午餐时的一张精彩照片更值得分享。

推荐做法:将事件重要性作为特征:

features['event_significance'] = photo.event.significance_score

快速入门:事件检测流水线

from event_detection import EventDetectionPipeline

pipeline = EventDetectionPipeline()

# Process photo corpus
results = pipeline.process_photo_corpus(photos)

# Access events
for event in results['events']:
    print(f"{event.label}: {len(event.photos)} photos, significance={event.significance_score:.2f}")

# Access life events
for life_event in results['life_events']:
    print(f"{life_event.type} detected on {life_event.timestamp}")

# Select for collage with diversity
collage_photos = pipeline.select_for_collage(results, target_count=100)

性能目标

操作目标
ST-DBSCAN(10K 张照片)< 2 秒
事件重要性评分< 100ms/事件
分享价值预测< 50ms/照片
地点识别(已缓存)< 10ms/照片
完整流水线(10K 张照片)< 5 秒

Python 依赖项

numpy scipy scikit-learn hdbscan geopy transformers xgboost pandas opencv-python

集成点

  • collage-layout-expert:传入事件聚类结果,以便进行感知多样性的布局
  • photo-content-recognition-curation-expert:在事件检测前获取人脸聚类结果
  • color-theory-palette-harmony-expert:用于事件内的视觉多样性
  • clip-aware-embeddings:为 DeepDBSCAN 生成嵌入

参考资料

  1. ST-DBSCAN:Birant & Kut(2007),《ST-DBSCAN:一种用于空间—时间数据聚类的算法》
  2. DeepDBSCAN:ISPRS 2021,《用于带地理标签照片的深度密度聚类》
  3. 分享价值:arXiv 2025,《根据情感和时间特征预测社交媒体互动》
  4. GeoNames/OpenStreetMap:用于地点识别的反向地理编码

版本:2.0.0 最后更新:2025 年 11 月

评论

支持 Markdown