使用https://github.com/Netflix/vmaf比较两组图像。
首先使用ffmpeg将图像转换为yuv422p,然后运行测试。注意分数差异。这可以用来判断图像是相似还是不同。对于这个样本,它们看起来都非常相似。
ffmpeg -i .\different-pose-1.jpg -s 1920x1080 -pix_fmt yuv422p different-pose-1.yuv
ffmpeg -i .\different-pose-2.jpg -s 1920x1080 -pix_fmt yuv422p different-pose-2.yuv
.\vmafossexec.exe yuv422p 1920 1080 different-pose-1.yuv different-pose-2.yuv vmaf_v0.6.1.pkl --ssim --ms-ssim --log-fmt json --log different.json
Start calculating VMAF score...
Exec FPS: 0.772885
VMAF score = 2.124272
SSIM score = 0.424488
MS-SSIM score = 0.415149
ffmpeg.exe -i .\same-pose-1.jpg -s 1920x1080 -pix_fmt yuv422p same-pose-1.yuv
ffmpeg.exe -i .\same-pose-2.jpg -s 1920x1080 -pix_fmt yuv422p same-pose-2.yuv
.\vmafossexec.exe yuv422p 1920 1080 same-pose-1.yuv same-pose-2.yuv vmaf_v0.6.1.pkl --ssim --ms-ssim --log-fmt json --log same.json
Start calculating VMAF score...
Exec FPS: 0.773098
VMAF score = 5.421821
SSIM score = 0.285583
MS-SSIM score = 0.400130
0
我最初在cstheory.stackexchange.com上问了这个问题,但建议将其移至stats.stackexchange.com 。
是否有一种现有的算法可以向我返回两个位图图像之间的相似性度量?所谓“相似”,是指人类会说这两个图像是从同一张照片中更改而来的。例如,该算法应说以下3张图像是相同的(原始图像,位置偏移图像,缩小图像)。
相同
我不需要检测扭曲或翻转的图像。我也不需要检测不同方向上的对象是否相同。
不同
我想使用此算法来防止网站上的垃圾邮件。我注意到垃圾邮件发送者过于懒惰,无法更改其垃圾邮件图像。不仅限于面孔。我已经知道那里已经有很多很棒的面部识别算法。垃圾邮件图片可以是从URL到足球场再到裸身的任何内容。