快速搭建 Serverless 人脸识别离线服务

简介

首先介绍下在本文出现的几个比较重要的概念:git

函数计算(Function Compute):函数计算是一个事件驱动的服务,经过函数计算,用户无需管理服务器等运行状况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考
函数工做流(Function Flow):函数工做流是一个用来协调多个分布式任务执行的全托管云服务。用户能够用顺序,分支,并行等方式来编排分布式任务,FnF 会按照设定好的步骤可靠地协调任务执行,跟踪每一个任务的状态转换,并在必要时执行用户定义的重试逻辑,以确保工做流顺利完成。函数工做流更多信息 参考

本文将重点介绍如何快速地经过函数计算与函数工做流部署一个定时离线批量处理图片文件并标注出人脸的服务。github

开通服务服务器

  1. 免费开通函数计算,按量付费,函数计算有很大的免费额度。
  2. 免费开通函数工做流,按量付费,目前该产品在公测阶段,能够无偿使用。
  3. 免费开通对象存储,按量付费。

解决方案less

流程以下:分布式

  1. 设定定时触发器,定时触发函数计算中的函数。
  2. 函数被触发后,调用一次函数工做流中的流程。
  3. 函数工做流中的流程被执行:函数

    1. 调用函数计算中的函数,列举出 OSS Bucket 根路径下的图片文件列表。
    2. 对于步骤1中列出的文件列表,对每一个文件:工具

      • 调用函数计算中的函数处理,进行人脸识别并标注。将标注后的文件存入 OSS,最后将处理过的文件进行转移。
    3. 判断当前 OSS 根路径下是否有更多的文件阿里云

      • 如是,继续步骤1
      • 如否,结束流程

快速开始

  1. Clone 工程到本地url

    • git clone git@github.com:ChanDaoH/serverless-face-recognition.git
  2. 替换项目目录下 template.yml 文件中的 YOUR_BUCKET_NAME 为在杭州区域的 OSS Bucket (能够不是杭州区域的,须要同步修改 OSS_ENDPOINT)

  1. 一键部署函数计算和函数工做流资源至云端spa

    • 安装最新版本的 Fun
    • 在项目根目录下执行 fun deploy

效果验证

一、在 OSS Bucket 的根目录下放置图片

二、等待一分钟后,定时触发器触发函数执行函数工做流。

三、工做流执行完成后,查看 OSS Bucket

  • 标注出人脸的图像放置在 face-detection 目录下

  • 处理过的录像放置在 processed 目录下

总结

经过 函数计算 + 函数工做流,搭建了一个定时批量处理图片进行人脸识别的服务。该服务由于使用了函数工做流的流程,将任务分为了多个步骤,只须要确保每一个步骤的函数可以在函数计算限制时间(10分钟)内完成便可。
经过 Fun 工具,一键部署 函数计算 + 函数工做流,免去去多平台进行操做的步骤。

相关参考

  1. 函数计算
  2. 函数工做流
  3. Aliyun Serverless VSCode 插件
  4. Fun

参考示例

  1. serverless-face-recognition
  2. oss-batch-process

本文做者:泽尘

原文连接

本文为阿里云内容,未经容许不得转载。

相关文章
相关标签/搜索