15

是否有用于反向搜索的 API?如果不是,我如何从 android 应用程序发出反向图像搜索请求?

4

6 回答 6

15

我已经实现了“通过 HTTP 使用 Google 图片搜索反向搜索 JSON REST API”。

使用甚至在服务器上运行 javascript 的“httpunit”框架实际上非常简单。这是执行 Google 图片搜索请求所必需的

https://images.google.com/searchbyimage?image_url=

它工作得很好。我们已将其集成到一个应用程序中

  • 只是简单地拍了一张照片,
  • 缩小它,
  • 上传到公共服务器,
  • 使用这个网址
  • 调用 REST API + 获取 JSON 响应(见下文)
  • 显示文本和类似图像

服务器

  • 使用 Internet-accessible-URL 访问 Google 图片服务器(通过 HTTP)
  • 运行https://images.google.com/searchbyimage?image_url=image编码的 url
  • 获得响应,在服务器上运行来自 Google 的 javascript
  • 搜索特定的 html 标记、类或 ID
  • 创建 JSON 响应

您从 Google 获得

  • “标签/标题”,
  • 包含所有元数据的相似图像(文本片段、html 片段、原始 URL、缩略图 URL、大小、尺寸……)

使用这些信息,您可以轻松地显示检测到的标签、类似的在线图像及其文本。

但是:不幸的是谷歌的机器检测非常好,找到了我的REST-API并关闭了它。

所以现在 - 谷歌没有为此宣布一个 API,即使它包含在现有的谷歌应用程序中 - 非常非常难过

于 2015-03-22T15:08:54.987 回答
8

您可能会发现以下项目很有用。它本质上是一个刮板服务器,您将图像的 url 发送到(例如使用 curl),它返回一个包含各种有用花絮的 json 数组。

http://mrisa.mage.me.uk/

于 2014-03-25T02:23:09.530 回答
4

反向图像搜索 api 已弃用: https ://developers.google.com/image-search/?hl=it

新的搜索 api 可以进行图像搜索查询

https://developers.google.com/custom-search/v1/overview?hl=it

于 2012-10-21T12:14:12.620 回答
3

你可以试试这个名为Camfind 的反向图像搜索 API

下面是来自 Camfind API 的图像请求输入和图像响应输出的示例

图片请求

替代文字

图像响应

{
   "name": "crystal geyser bottle",
   "status": "completed"
}
于 2013-10-18T00:35:24.030 回答
2

Google 有一个很棒的 AP​​I,称为Google Vision API - 网络检测。它比自定义搜索更好。使用批处理请求反向搜索图像的示例 Kotlin 代码

val feat = Feature.newBuilder().setType(Type.WEB_DETECTION).build()!!
val settings = ImageAnnotatorSettings.newBuilder().setCredentialsProvider(provider.get()).build()
val req = images.stream()
            .map { Image.newBuilder().setSource(ImageSource.newBuilder().setImageUri(it)).build() }
            .map { AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(it).build() }
            .toList()
val res = ImageAnnotatorClient.create(settings)
            .use { c -> req.chunked(GOOGLE_BATCH_LIMIT).map { c.batchAnnotateImages(it).responsesList }.flatten() }
            .map { it.webDetection.fullMatchingImagesCount }

于 2019-03-20T15:35:50.097 回答
0

不幸的是,谷歌不提供反向图像搜索 API。我发现提供的唯一服务是 TinEye(请参阅https://api.tineye.com)。我听说他们的数据库中没有那么多图像,但它似乎适用于大多数用途。但它不是免费的,而且实际上它对于 API 来说很昂贵。目前,他们对每次搜索收取 0.04 美元。

于 2016-09-15T22:49:58.417 回答