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


    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

  • 相关阅读:
    CF1095F Make It Connected
    【ZJOI2016】旅行者
    [COCI 2009] OTOCI / 极地旅行社
    Sum in the tree
    MST Unification
    【集训队作业2018】Simple Tree
    [COCI2009]Dvapravca
    python 网络编程-02 多进程的交互案例
    python 日志模块logging
    python 网络编程-01基础
  • 原文地址:https://www.cnblogs.com/jdclouddeveloper/p/12060565.html
Copyright © 2020-2023  润新知