Microsoft Azure搜索

时间:2018-09-04 06:13:04

标签: azure-search

我有一个用例:

  1. 我想将图像存储在Microsoft Blob存储中,
  2. 通过输入“ ”之类的文字来搜索图像,然后所有包含水的图像都应出现在搜索结果中。

我点击了以下链接: https://github.com/Azure/LearnAI-Cognitive-Search/blob/master/05-Lab-2-Image-Skills.md

但是在这里,我知道只有ImageAnalysisSkillOcrSkill这两个预定义技能不能提供完整图像作为搜索结果。

请帮助...

1 个答案:

答案 0 :(得分:0)

通过编程,您可以使用图像分析认知技能自动从图像中提取标签。

有关此技能的更多信息,请参见https://docs.microsoft.com/en-us/azure/search/cognitive-search-skill-image-analysis

您的技能看起来像这样:

{  "@odata.type": "#Microsoft.Skills.Vision.ImageAnalysisSkill",
    "context": "/document/normalized_images/*",
    "visualFeatures": [
        "Tags",
        "Description"
    ],
    "defaultLanguageCode": "en",
    "inputs": [
        {
            "name": "image",
            "source": "/document/normalized_images/*"
        }
    ],
    "outputs": [
        {
            "name": "tags",
            "targetName": "myTags"
        },
        {
            "name": "description",
            "targetName": "myDescription"
        }
    ]
}

然后在索引中,确保创建一个Collection(Edm.String)类型的字段以包含标签列表。我们称之为 imageTags 字段。确保该字段是可搜索的。

在输出字段映射(索引器的属性)中,您将需要将标签列表映射到新创建的imageTags字段,如下所示:

   "outputFieldMappings": [
       {
           "sourceFieldName": "/document/normalized_images/*/myDescription/tags/*",
           "targetFieldName": "imageTags"
       }

这将确保在图像上找到的每个标签都插入到imageTags数组中。

如果您还不熟悉,请另外阅读本文档,该文档说明了如何提取normalized_images:https://docs.microsoft.com/en-us/azure/search/cognitive-search-concept-image-scenarios