我有一个数据库可以索引数千张图片。它们受到应用程序的限制,所以我会彻底改变图片。现在我想实现一个搜索,找到看起来像给定图片的图片。我可以使用时间戳,但图片中的细微差别或图片元数据会阻止找到正确的图像。
所以我需要一个命令行工具,可以找到看起来像给定图片的图片,如果这也匹配具有另一个灵魂但相同内容的图片,那将是最佳的。
最后,我将使用system
在ruby on rails应用程序中实现它,但如果我有匹配的工具,我不认为这是一个问题。
答案 0 :(得分:0)
也许你可以查看recommendify。来自github页面:
Recommendify是一个基于ruby / redis的推荐引擎 - The 建议可以逐步更新/处理,也可以多次更新/处理 主机。该工作者使用纯红宝石和本地C实现。
还有一个照片匹配here
的示例答案 1 :(得分:0)
我认为像Tin Eye这样的大多数图像相似性引擎都使用某种形式的locality sensitive hashing。我不确定是否有任何ruby库,但一个简单的算法是将图像压缩到16x16。通过将像素块平均为一个像素来实现此目的。然后你可以使用差值之和(或方差之和......)来获得任意两张图片之间的差值。
答案 2 :(得分:0)
我找到了适合我的解决方案。让我远离使用基于Web的内容的一件事是,这些图片包含有信心的数据,所以我需要一个本地工作的服务,而不需要任何外部服务连接。
我安装了isk-Daemon
一个服务,它附带了一个小型Web服务器以及一个SOAP和一个XML-RPC引擎来处理它。所以我还写了一个IskClient
类,它将图像添加到数据库并将它们连接到MySQL数据库中的图像,并运行查询以获得类似的图像。我可以从这个类中构建一个gem。