学习使用AI服务自动分析图像以查找关键字,标题和其他有用的元数据

本文介绍如何使用Microsoft Azure的认知服务,特别是计算机视觉API,自动分析和描述图像内容,提取关键字和元数据,帮助开发者构建智能应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是#25DaysOfServerless的一部分。 整个12月,Microsoft Cloud Advocates每天都会发布新的挑战。 查找有关Microsoft Azure如何启用无服务器功能的更多信息。

有想法或解决方案吗?


您是否要允许您的应用看到,听到,听,说甚至开始推理? 别担心! 您不需要拥有机器学习的学位。 如今,您可以选择不同的AI服务。 其中之一是Azure认知服务 ,可以作为API,SDK和服务使用。 它们帮助开发人员构建智能应用程序。 认知服务被分组。 每个组支持不同的广义预测功能。 Computer Vision是用于选择处理和分析图像的服务。

通过使用Computer Vision API,可以分析和描述图像,检测对象,识别文本等。 您可以将图像上传到服务,也可以传递图像URL。

在此博客文章中,我想通过解决#25DaysOfServerless挑战之一来演示Cognitive Services API的用法。

费利克斯(Felix)在德国慕尼黑很高兴能去传统的Weihnachtsmarkt假日市场! 他不断向他的朋友安娜发送短信,告知他正在做的所有有趣的事情:喝热的格鲁芬(Glühwein),溜冰,买礼物。 但是安娜找不到眼镜,也看不清图片中的东西!

对于今天的挑战,安娜需要一种服务,该服务可以给定图像,描述图像并提供有关其内容的一些关键字。

为了解决第15个挑战,我们需要:

  1. 随机查找图像或使用图像API通过关键字查找图像。
  2. 处理和分析给定的图像以给出给定图片的匹配描述。
  3. (可选)显示带有标题和关键字的图像。

作者的解决方案🔥

这个挑战可以看作是挑战7的延续。可以随意扩展自己的解决方案,也可以使用以Java编写的作者的解决方案

我们将使用认知服务并集成计算机视觉来计算图像的描述和标签。 因此,进入门户
并搜索“ 计算机视觉”

Screenshot of the Azure Portal, search for Computer Vision and choose it from Azure Marketplace

免费的Tier允许您每分钟执行20个呼叫或每月执行5000个呼叫。 这远远超出了我们应对挑战所需要的。

Price Tier Screenshot

您需要的只是Key1和您的API端点,您可以在门户网站的Quick start入门中找到它们。

Computer Vision Screenshot

在源代码中,我们所需要做的就是对生成的密钥进行身份验证,然后让API正常工作。 因此,请考虑对特定用例感兴趣的VisualFeatureTypes ,因为我们希望将其保持为VisualFeatureTypes kiss 。 对于这个挑战,我们只需要描述和标签,说明您可以在通过的图像上看到的内容。 要接收图像分析,请致电Computer Vision服务。


    // Get environment variables and authenticate with computer vision
    String CV_KEY = System . getenv ( "COMPUTER_VISION_SUBSCRIPTION_KEY" );
    String CV_API = System . getenv ( "COMPUTER_VISION_ENDPOINT" );

    ComputerVisionClient compVisClient = ComputerVisionManager . authenticate ( CV_KEY )
            . withEndpoint ( CV_API );

    // This list defines the features to be extracted from the image.
    List < VisualFeatureTypes > extractDescriptionAndTags = new ArrayList <>();
    extractDescriptionAndTags . add ( VisualFeatureTypes . DESCRIPTION );
    extractDescriptionAndTags . add ( VisualFeatureTypes . TAGS );

    // Call the Computer Vision service and tell it to analyze the loaded image.
    ImageAnalysis analysis = compVisClient . computerVision (). analyzeImage (). withUrl ( imageUrl )
            . withVisualFeatures ( extractDescriptionAndTags ). execute ();

提提您:我们将获得的不仅是标题和说明,还包括匹配的置信度值。 对于需要确实确定地知道随机图像是否显示(例如,圣诞树)的情况,这可能非常有用。
对于这一挑战,我们将仅在控制台中打印带有置信度值的结果,以满足开发人员的好奇心。

    // Display image captions and confidence values.
    System . out . println ( "\nCaptions: " );
    String captionString = "" ;
    for ( ImageCaption caption : analysis . description (). captions ()) {
        captionString = caption . text ();
        System . out . printf ( "\'%s\' with confidence %f\n" , caption . text (), caption . confidence ());
    }
    // Display image tags and confidence values.
    System . out . println ( "\nTags: " );
    StringBuilder keywords = new StringBuilder ();
    for ( ImageTag tag : analysis . tags ()) {
        keywords . append ( tag . name ());
        keywords . append ( " " );
        System . out . printf ( "\'%s\' with confidence %f\n" , tag . name (), tag . confidence ());
    }

最后,我们返回带有匹配标题和关键字的图像以完成挑战。 ✨

return request . createResponseBuilder ( HttpStatus . OK ). body ( String . format ( "Search for image with keywords:%s. You can see on this picture: %s. With the keywords %s. Got url: %s" , resultText , captionString , keywords , imageUrl )). build ();

结论

我们了解了什么是认知服务,并特别关注了图像的人工理解。
因此,我们看到了一个如何使用计算机视觉服务的示例。

  1. 注册您的服务以接收您的API密钥。
  2. 创建要提取的视觉特征类型的列表。
  3. 分析图像。 ‍👤

想要提交解决方案来应对这一挑战吗? 在本地构建解决方案,然后提交问题 。 如果您的解决方案不涉及代码,则可以录制一个简短的视频并将其作为问题说明中的链接提交。 确保告诉我们解决方案的挑战。 我们很高兴看到您的建造! 您有意见或问题吗? 将它们添加到下面的评论区域。


在庆祝无服务器25天的同时,在12月期间观察所有惊喜。 在我们关注挑战和解决方案的同时,请继续关注dev.to! 在Azure上注册一个免费帐户以准备应对挑战!

From: https://dev.to/azure/learn-to-automatically-analyze-your-images-using-ai-services-to-find-keywords-title-and-other-useful-metadata-3n6i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值