|
|
楼主 |
发表于 2025-6-13 22:41:49
|
显示全部楼层
2.检测重复视频
通过比较视频帧向量的相似度,检测重复的视频片段。以下是代码示例:
```python
query_file_pattern = 'path/to/query/video/files/*.mp4'
# 定义检测管道
dc = (
towhee.glob['query_url'](query_file_pattern).stream()
.video_decode.ffmpeg['query_url', 'frames'](sample_type='time_step_sample', args={'time_step': 1})
.get_image['frames', 'images']()
.flatten('images')
.drop_empty()
.image_embedding.isc['images', 'embeddings']()
.select['query_url', 'embeddings']()
.ann_search.milvus['embeddings', 'results'](collection='video_deduplication', limit=64, output_fields=['path'], metric_type='IP')
.split_res['results', ('retrieved_urls','scores')]()
.group_by('query_url')
.video_copy_detection.select_video[('retrieved_urls','scores'), 'ref_url'](top_k=5, reduce_function='sum', reverse=True)
.from_leveldb['ref_url', 'retrieved_embedding']('url_vec.db', True)
.merge_ndarray['embeddings', 'video_embedding']()
.flatten('retrieved_embedding', 'ref_url')
.video_copy_detection.temporal_network[('video_embedding', 'retrieved_embedding'), ('predict_segments', 'segment_scores')]()
.select['query_url', 'ref_url', 'predict_segments', 'segment_scores']()
.show(limit=50)
)
```
总结
Towhee 提供了强大的数据处理能力,能够高效地提取视频帧的嵌入向量,并结合 Milvus 实现视频查重功能。通过上述步骤,可以快速搭建一个细粒度的视频查重系统,适用于视频搬运检测、侵权检测等场景。 |
|