体验京东云 Serverless+AI 人脸属性识别

本文介绍Serverless计算概念及其优势,如无需运维、弹性伸缩和按需付费。通过结合京东云Serverless与AI技术,实现人脸属性识别API接口,展示轻量化虚拟化的便捷性和高效性。

Alt
云原生计算基金会CNCF(Cloud Native Computing Foundation, CNCF)Serverless Whitepaper v1.0对无服务器计算作了如下定义:

Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.

“RightScale 2018 State of the Cloud Report” 中指出, Serverless 的年增长率达到了 75%,已经远超过 Container-as-a service 的 36%,位列第一,是增长速度最快的扩展云服务。

顺应当下容器技术、IoT、AI、5G、区块链等新技术的快速发展,技术上对去中心化、轻量虚拟化、细粒度计算等需求愈发强烈,在此趋势之上,Serverless 必将快速发展并得到应用。

对于开发者而言,Serverless 极大简化了编写代码和应用部署的整个过程,无需关心 DevOps,无需关心代码运行服务器及环境,更无需关心负载均衡,中间件和存储服务可以随时调用。

Q

Serverless 的优势有哪些?

A

  • 无需运维:用户不需要再关心服务器资源及复杂运行环境;
  • 弹性伸缩:根据请求并发量实时自动扩缩资源;
  • 按需付费:为实际消耗资源付费,无占用不收费,运行成本更低;

云上提供一整套serverless FaaS+BaaS服务,帮助用户快速构建应用与服务。

今天,我们会通过快速组合京东云 Serverless + AI,实现一个简单的 API 接口,进行人脸属性识别和简单数据分析。带领大家一起来感受一下Serverless的轻量虚拟化。

Alt
关键词

Serverless Service:函数服务+API 网关

人工智能产品:AI 人脸识别

Step1:创建函数

创建 runtime 为 python2.7 的函数,将依赖库 jdcloud_apim_sdk、ai_sdk(京东云AI)和入口文件 index.py 打包上传,index.py 代码如下:

#coding=utf-8

import json
import base64
import os

from jdcloud_apim_sdk.core.credential import Credential
from jdcloud_apim_sdk.core.config import Config
from jdcloud_apim_sdk.core.const import SCHEME_HTTPS, SCHEME_HTTP

from ai_sdk.apis.ai_face_detect_attr_request import *
from ai_sdk.client.ai_Face_Detect_Attr_client import *

'''
AI
'''

def handler(event,context):
    if not bool(event):
        result = {
            'statusCode': 200,
            'headers': {},
            'body': "",
        }

        return result

    # get request data
    print('AI Request')
    # get request data
    body = event['detail']['body']
    body = json.loads(body)

    if type(body) == unicode:
      body = json.loads(body)

    # request
    access_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    secret_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    credential = Credential(access_key, secret_key)
    config = Config('aiapi.jdcloud.com', scheme=SCHEME_HTTPS)
    client = AiFaceDetectAttrClient(credential, config)

    header = dict()
    parameters = {
            'return_landmark':0,
            'return_attr':1,
            'face_detect_num':0
            }
    data = body.get('data', "")
    imageBase64Data = 'imageBase64=' + data.decode("utf-8")
    s = imageBase64Data.encode('utf-8')

    ai_face_detect_attr_request = AiFaceDetectAttrRequest(parameters, s, header)
    AiFaceDetectAttr_response = client.send(ai_face_detect_attr_request)

    respBody = {'code': 0, 'data': AiFaceDetectAttr_response.json()}
    resp = json.dumps(respBody)
    result = {
        'statusCode': 200,
        'headers': {},
        'body': resp,
    }

    # statistics
    resp = AiFaceDetectAttr_response.json()
    if resp['result']['status'] == 0:
      attrs = json.loads(resp['result']['result'])
      if len(attrs['faces']) > 0:
        if attrs['faces'][0]['faceAttribute']['gender'] == 0:
          print("lookup ai attr success, this is a woman")
        else:
          print("lookup ai attr success, this is a man")

    return result

Step2:测试函数

将任意人脸图片 base64 以 json 格式放入测试事件的 body 中,即可进行在线测试,返回结果如下:

Alt

Step3:对接 API 网关

为上面的函数创建一个 API 网关触发器,将 API 发布至测试环境。https://www.jdcloud.com/cn/products/face-detect-and-analysis?utm_source=PMM_Wechat&utm_medium=ReadMore_179&utm_campaign=ReadMore&utm_term=NA

Alt

Step4:测试验证上线

接口验证无误后,即可与前端页面开发联调,测试完成后,可通过函数版本、别名功能管理线上函数迭代发布。

现在就点击小程序,看看 AI 眼中的你吧!

人脸魔镜照照照,打开微信扫码试用!

Alt

Alt

Serverless 联合京东云 AI,还可打包集成人体识别、语音技术、图像理解、OCR 文字识别等一系列 AI 场景,通过函数服务还可进一步进行数据的存储分析处理、灵活应用,点击“阅读”开始探索实践啦!

欢迎点击“京东云”了解更多精彩

Alt
Alt

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值