1

我正在寻找存储 100 万张图像的指纹/图像,以便在上传时将拍摄图像与数据库中其他匹配项的相似程度的百分比。类似于 http://www.tineye.com/http://images.google.com/但针对我自己的个人网站。我不想使用他们的提交过程将图像提交给 tineye。

应该保存哪些信息?

我应该如何保存它?

有什么好的 PHP 库可以满足我的需求吗?

我想只保留 PHP,但我认为处理能力可能需要由应用程序外包,然后 PHP 可以处理输出。我正在运行 Debian Linux。

对于存储,我打算只将信息存储在 MySQL 中,但我认为考虑到 100 万张图像,它可能效率低下。

4

4 回答 4

1

我认为使用 GD、ImageMagic 并且使用一系列 API 会很好。由于只有您提出建议,因此 API 问题并不是最重要的;API 将用于更大的应用程序;

例子

Uploaded Image
Image information submits to Database and Image is deleted from Server and Stored in the CDN
Image information to database

Size
Dimensions
Timestamp
Uploader
Type of Image
Image Category
Image Tags
Image Description

然后,您可以 cron 处理任务来扫描图像以获取图像上的大部分颜色。图像的形状。大多数带有文字的图像。什么文字。然后,您可以使用这些 Id 作为数字来构建库和匹配标签。这将是模式。您可以扫描相同的图像和匹配模式..您可以更深入,但您也可能会反对 Google/IBM..

于 2012-12-17T16:36:18.580 回答
1

我决定采用这个 PHP 解决方案:

http://www.pureftpd.org/project/libpuzzle

尽管它有点过时并且不能很好地处理裁剪的图像,但它能够识别小的编辑、颜色变化和一些调整大小。它还附带了示例 PHP 代码(尽管有问题)

于 2012-12-19T22:19:51.243 回答
0

如果您正在寻找“感知哈希”,您还可以查看:

http://phash.org/

他们也提供了一个 php 扩展。

于 2013-11-27T17:41:38.217 回答
0

这种分析是通过使用复杂的算法来完成的,比如

http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

这个是受版权保护的,但有源代码的实现,可在网上获得。

于 2012-12-17T16:34:10.873 回答