将上传的图像与多个图像进行比较,针对效率而非准确性进行了优化 (python)
Comparing uploaded image with multiple ones, optimized for efficiency, not accuracy (python)
在 Django 应用程序中,用户上传各种照片并获得 upvoted/downvoted(有点像 9gag)。
我想进行一项基本检查,以防止用户重新提交最近已在网站上提交的图片。
我不需要密封的解决方案。我的问题与 other such 关于 SO 的问题的不同之处在于,这不仅仅是比较两张图片的情况,这是将上传的图片与最近上传的 200 张图片(我的任意剪切)进行比较的情况-离开)。性能占主导地位。
由于我已经对所有图像进行了缩略图处理 (40px x 40px),因此我将比较照片缩略图而不是完整照片。这将等同于比较下采样对象,因此它会更快并且更 模糊 (这很好)。
我的问题是:是否有一种合适的方法可以将图像直方图减少到唯一数字(例如,以 10 或 16 为底)?如果有,我可以将它们存储在数据库中,找到这些值之间的距离,并强制执行任意截止。一个说明性的例子会很好。在我看来,这听起来是处理我案件的最快方式。
或者,如果由于各种原因无法完成,这也是一个合法的答案。
您可能想要使用某种感知图像散列。我没试过,但看起来 https://pypi.python.org/pypi/ImageHash 可以解决问题。
在 Django 应用程序中,用户上传各种照片并获得 upvoted/downvoted(有点像 9gag)。
我想进行一项基本检查,以防止用户重新提交最近已在网站上提交的图片。
我不需要密封的解决方案。我的问题与 other such 关于 SO 的问题的不同之处在于,这不仅仅是比较两张图片的情况,这是将上传的图片与最近上传的 200 张图片(我的任意剪切)进行比较的情况-离开)。性能占主导地位。
由于我已经对所有图像进行了缩略图处理 (40px x 40px),因此我将比较照片缩略图而不是完整照片。这将等同于比较下采样对象,因此它会更快并且更 模糊 (这很好)。
我的问题是:是否有一种合适的方法可以将图像直方图减少到唯一数字(例如,以 10 或 16 为底)?如果有,我可以将它们存储在数据库中,找到这些值之间的距离,并强制执行任意截止。一个说明性的例子会很好。在我看来,这听起来是处理我案件的最快方式。
或者,如果由于各种原因无法完成,这也是一个合法的答案。
您可能想要使用某种感知图像散列。我没试过,但看起来 https://pypi.python.org/pypi/ImageHash 可以解决问题。