类似的图片搜索软件(如TinEye)
在我们的社区网站之一中,我们允许用户上传图像。这些图像由我们的版主批准或拒绝。
为了限制管理员所需的工作,我们希望将每张被拒绝的图片“记录”到某种数据库中,并在提交图像以供批准之前在此数据库中进行查找。如果类似的图片已被拒绝,则上传的图片将不会提交审批。
我们当然可以只记录图片的文件名、大小和 MD5 等内容以获取相似性,但我们肯定可以找到不同裁剪或调整大小的图像。
TinEye.com 提供了类似的功能。
您知道有哪些开源软件可以实现此功能吗?您还有其他想法吗?
谢谢!
In one of our community sites, we allow users to upload images. These images are approved or rejected by our moderators.
To limit the work needed by our administrators, we want to 'log' each picture that is rejected to some kind of database, and do a lookup in this database prior to submitting an image for approval. If a similar image already has been rejected, the uploaded image won't be submitted for approval.
We can of course just log stuff like filename, size and MD5 of the picture for similarity, but it would definitely we could find differently cropped or resized images.
TinEye.com provides a similar functionality.
Do you know any kind of open-source software capable of this? Do you have any other ideas?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要检测调整大小和有损压缩的图像,您可以将图像调整为某个标准大小(例如 40x40 像素),然后从新图像中减去已知图像,并将距离与阈值进行比较。
不幸的是,这不适用于旋转或裁剪。在这种情况下,您需要提取图像的尺度不变特征。
这种方法的另一个问题是,在简单的实现中,计算成本与已知图像列表的大小成线性关系,因此将新图像与所有旧图像进行比较可能很快就会变得过于昂贵。
To detect resized and lossily compressed images you could resize the image to some standard size (like 40x40px) and then subtract the known image from the new image and compare the distance to a threshold.
Unfortunately this doesn't work with rotation or cropping. In that case you'd need to extract scale invariant features of the image.
Another problem of this approach is that with a naive implementation the computational cost is linear in the size of the list of known images, so it might get too expensive quickly to compare the new image against all old images.
如果不能保证 100% 相似,您可以建立一个包含“相似图像”的列表。
可以通过考虑图像指纹来计算相似度(正如 Winner 所说,您可以将其缩放到标准大小并从中构建校验和)。还可以使用“平均”颜色和颜色“变化”。
基于此,您可以向管理员显示“相似图像”(可点击的拇指)列表,按“最有可能相似”的顺序排序。
您还可以查看 Image::Compare http://linux.softpedia.com/get/Programming/Widgets/Perl-Modules /Image-Compare-43727.shtml 和 jpegDiff http://www. marengo-ltd.com/open_source/index.php
You may build a list with "similar images" ever if they are not guaranteed 100% similarity.
The similarity could be calculated by taking into account the image fingerprint (as Winner said, you may scalet it to a standard size and build a checksum from that). Also the "average" color might be used, and color "variation".
Based on this you may display a list of "similar images" (clickable thumbs) to the admin sorded in the order of "most likely to be similar"
You may alsoo look at Image::Compare http://linux.softpedia.com/get/Programming/Widgets/Perl-Modules/Image-Compare-43727.shtml and jpegDiff http://www.marengo-ltd.com/open_source/index.php
我开发了一项类似于 TinEYE 的服务,用于私人图像收藏。它目前正处于 alpha 测试阶段,但对于我客户的 50.000 张图像效果非常好...您甚至可以识别电子论文中的打印图像:)
在 http://example.askbubo.com(仅搜索我客户的图片)
位于 http:// Askbubo.com/ 您可以阅读更多内容。也请随时通过 hajo (at) spratpix (dot) com 直接与我联系。
虽然我计划稍后对该服务收费,但我很乐意将其免费赠送给参与 alpha 测试并提供良好反馈的人们。
I developed a service akin to TinEYE for private image collections. It's currently in alpha testing but works great for my customers' 50.000 images ... You can even identify printed images in e-papers :)
Try it out on http://example.askbubo.com (only searches my customers' images)
On http://askbubo.com/ you can read more. Also feel free to contact me directly at hajo (at) spratpix (dot) com.
While i plan to charge for the service later on, i'll happily give it away for free to people who participated in the alpha test and gave good feedback.