函数计算实战-云开发创建视觉AI应用

本场景演示了基于 Python 语言开发调用阿里云视觉智能开放能力的应用,展示了 「文字识别服务」与「图像增强服务」两个视觉智能 AI 应用。

体验目标

本场景实战使用函数计算服务实现文字识别和构图评分两个应用。您需要完成全部文档步骤指引在云开发平台成功部署应用。

背景信息

在这个人工智能已经普及的时代,各行各业都充斥着AI的身影。大部分人认为人工智能起点高,入门难,想要使用AI服务又无法独立完成编写,阿里云视觉平台是基于阿里巴巴视觉智能技术实践经验,面向视觉智能技术企业和开发商(含开发者),为其提供高易用、普惠的视觉API服务,帮助企业快速建立视觉智能技术的应用能力的综合性视觉AI能力平台。

开发者在云开发平台可以通过阿里云视觉平台提供的通用且标准化的接入方式,快速接入及使用阿里云视觉平台提供的包括人脸人体、文字识别、商品理解、内容安全、图像识别、图像生产、分割抠图、视觉搜索、目标检测、图像分析处理、视频理解、视频生产、视频分割13个类目多个API能力。

实验详情

开通前置服务

1.开通 阿里云视觉智能 viapi_ocr_public_cn/文字识别服务  https://common-buy.aliyun.com/?commodityCode=viapi_ocr_public_cn#/open

2.开通 阿里云视觉智能 viapi_imageenhan_public_cn/图像增强服务 https://common-buy.aliyun.com/?commodityCode=viapi_imageenhan_public_cn#/open

可以打开此链接查看:https://vision.aliyun.com/ 更多阿里云视觉智能开放能力。

说明:当前 阿里云视觉智能 viapi_ocr_public_cn/文字识别服务 和 阿里云视觉智能 viapi_imageenhan_public_cn/图像增强服务 都是免费产品,不会出现扣费情况。请务必参考第4节将应用下线。

登录云开发平台进行开发

1.通过以下链接 https://workbench.aliyun.com/login 登录 阿里云-云开发平台 ,使用您自己的阿里云账号登录。

2.点击 【创建新应用】,打开 【实验室】 标签,选中 【AIoT】,然后选择 【阿里云视觉智能服务(for Python)】 解决方案,创建出一个视觉智能应用,如下图所示:

3.点击应用卡片上的【环境管理】查看本场景需要开通的服务,如果还未开通本场景需要的服务,点击【立即开通】在控制台进行开通,全部开通后点击 【确定】 进行下一步骤。

    a.  点击应用【环境管理】查看需要开通的服务。

    b.  开通以下服务。

说明:以上服务都是有免费额度的,在体验时间内不会出现收费情况的,为了防止长时间运行超出免费额度,请在完成体验后 参考后续内容停止应用。

4.  在应用卡片的  【应用配置】 的 【日常环境】 填写您在阿里云的 AccessKeyId 和 AccessKeySecret 信息,

ACCESS_KEY=你的阿里云AccessKeyId ,SECRET_KEY=你的阿里云AccessKeySecret。

说明:云开发平台暂时提供一个临时测试的AK信息供大家体验,要开发自己的应用,请换成自己的阿里云AK信息。

5.点击 【开发部署】 按钮,进入IDE环境进行部署发布。

6.选中左侧的 tab栏,点击 【部署】 部署应用。

7.确认部署信息。

8.等待部署完成。部署项目需要一点时间,稍等待下即可,部署完成后会生成一个域名。

快速查看效果

1.使用之前部署完成的域名进行访问测试。

2.测试效果展示。

    a.  在页面内点击一张名片下的 识别该名片文本内容 查看文字识别效果:

文字识别会读取图片内的文字,展示效果如下。

b.  点击页面内的 查看该图片的构图评分 查看图片构图评价。

根据图片算法对图片构图进行评分。

停止应用

1.停止应用。

参考附件停止应用,将项目下线。

2.项目文件描述

该项目包含以下主要配置文件:

index.py          首页
list.py           调用阿里云视觉智能开放服务并返回结果
.workbench         路由配置文件

    a.  路由配置表 .workbench 文件介绍

{
  "fcRouteDefault" : [
    {"apiUri":"/",
     "fcHandler":"index.handler",
     "httpMethod":"GET"
    },
    {"apiUri":"/list/[listId]",
     "fcHandler":"list.handler",
     "httpMethod":"GET"
    }
  ]
}
apiUri            /                  访问URL https://域名/
fcHandler       index.handler      访问 / 路由都会进入到 index.py 的 handler 函数进行处理
httpMethod    ANY                  支持任意请求方法,如:GET / POST / DELETE 等
apiUri          /list/[listId]     访问URL https://域名/list/12345
fcHandler     list.handler         访问 /list 路由都会进入到 list.py 的 handler 函数进行处理
httpMethod    ANY                  支持任意请求方法,如:GET / POST / DELETE 等

    b.  Restful API

/list/[listId] 对应URL https://域名/list/123 或者 https://域名/list/456 ,在代码中用

request = json.loads(event)
listId = request['pathParameters']['listId']

可以获取到 123/456

    c.  参数渗透

任何 URL 都会完全透传请求参数,参数格式:?id=456&name=fc,在处理函数中可以通过

request.queryParameters.xxx

获取对应的请求参数,如:https://域名/list/200156?action=bizcard 请求到 应用根目录的 list.py,在 list.py 文件的 handler 函数中,是这样获取到 action 这个参数的:

request = json.loads(event)
request['queryParameters']['action'] 

可以获取到 bizcard。

posted @ 2020-07-31 10:38  Nidhogg14  阅读(252)  评论(0编辑  收藏  举报