ITPub博客

首页 > 人工智能 > 人工智能 > 体验京东云 Serverless+AI 人脸属性识别 京东云技术新知

体验京东云 Serverless+AI 人脸属性识别 京东云技术新知

原创 人工智能 作者:京东云技术新知 时间:2019-12-18 16:44:12 0 删除 编辑

云原生计算基金会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的轻量虚拟化。


关键词

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 中,即可进行在线测试,返回结果如下:

Step3:对接 API 网关

Step4:测试验证上线

接口验证无误后,即可与前端页面开发联调,测试完成后,可通过函数版本、别名功能管理线上函数迭代发布。
现在就点击小程序,看看 AI 眼中的你吧!
人脸魔镜照照照 ,打开微信扫码试用!


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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69912185/viewspace-2669301/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
京东科技开发者(Developer of JD Technology)是京东科技集团旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。平台将发布京东产品技术信息、行业技术内容、技术活动及大赛等资讯。拥抱技术,与开发者携手预见未来!

注册时间:2019-03-06

  • 博文量
    509
  • 访问量
    339356