检测两个视频文件中的相似度

Raj*_*A C 1 java video similarity detection

我正在研究用Java检测2个视频之间的相似性.用户将建议两个视频,软件必须通过检查文件内容来检测它们是否相似.我读到可以比较2个视频的每个帧.任何人都可以分享可以用Java实现的任何合适的算法(或代码或方法)吗?

thk*_*ala 8

存在多种用于确定图像中的相似性的算法.在Google学术搜索中搜索image similarity algorithmvideo similarity algorithmGoogle学术搜索中会产生大量相关论文 - 在StackOverflow 上也有一些问题(例如这一个).

应注意几个重要方面:

  • 相似性没有通用的定义 - 您需要根据您的具体目的来定义它.例如,具有红色正方形的图像和具有蓝色正方形的图像可以被认为是相似的,因为两者都具有正方形,或者基于色差完全不同.

  • 相似性通常不以绝对术语定义,即作为存在与否的东西.大多数相似性算法产生相对指标,该指标必须与基线相关以产生有意义的结果.例如,如果您有一组图像描绘各种颜色的正方形,您可能会在绝对值上获得高相似度值,但这是由应该关注的颜色变化引起的微小差异.

免责声明:在使用通过搜索引擎找到的任何算法之前,您应该调查其法律地位.视频相似性是一个相当热门的研究领域,相当多的算法可能受到专利等的阻碍.将它们用于学术研究可能是可以接受的,但是你应该向律师询问任何其他事情......

编辑:

我不确定你需要什么,但我可以提供一些一般的提示:

  • 调查视频元数据(如长度和分辨率)是否有用.例如,将30秒剪辑的内容与3小时电影进行实际比较是否有意义?

  • 考虑一下,如果您可以在每个文件中相同时间戳的相应帧的随机样本上使用基于图像的相似性.在大多数情况下,详细检查每一帧可能会浪费时间和CPU周期.

  • 考虑使用分层相似性度量架构,在真正的CPU占用之前,使用更简单,更便宜的方法来清除明显的情况.例如,计算帧的平均颜色和其他简单度量可能要容易得多比轮廓检测或人脸识别.

那就是说,我不相信能在这里得到明确答案.您将不得不进行实验,看看哪种方法最适合您的实际用例......