Knative 实践:人脸图片识别

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 标准 Serverless 框架和人脸识别服务结合会产生怎样的火花?本文介绍如何通过 Knative 实现人脸识别服务,看看能否给你带来不一样的体验。

标准 Serverless 框架和人脸识别服务结合会产生怎样的火花?本文介绍如何通过 Knative 实现人脸识别服务,看看能否给你带来不一样的体验。

场景

通过 OSS 控制台上传照片,MnsOss 事件源接收图片上传的事件信息,发送到 Knatvie Eventing,通过Broker/Trigger事件处理模型之后,接着触发 Knative Serving 中的人脸识别服务进行分析。最后把分析之后的图片回传到 OSS。
image

准备

  • 安装 Knative Serving 和 Eventing, 参见部署Knative
  • 安装 Knative MnsOssSource 事件源服务
    容器服务控制台->Knative->组件管理,选择 MnsOss 安装

image

创建 OSS 事件通知

选择 Bucket, 点击事件通知页签
image

创建规则:
image

创建完成之后,会在MNS中生成相应的Topic:
image

获取公网Topic访问连接:
image

这里我们选择公网访问连接:https://xxxx.mns.cn-shanghai.aliyuncs.com/

创建 Mns Token

获取上面的公网 Topic 访问连接以及ak, sk信息。按照下面的格式进行base64进行编码处理,生成访问Token。

# echo '{ "url":"https://xxxx.mns.cn-shanghai.aliyuncs.com/", "accessKeyId":"xxx","accessKeySecret":"xx" }' | base64

设置 mnsoss-secret.yaml 内容。则需要设置 mns 如下:

apiVersion: v1
kind: Secret
metadata:
  name: mnsoss-secret
type: Opaque
data:
  mns: eyAidXJsIjoiaHR0cHM6Ly94eHh4Lm1ucy5jbi1zaGFuZ2hhaS5hbGl5dW5jcy5jb20vIiwgImFjY2Vzc0tleUlkIjoieHh4IiwiYWNjZXNzS2V5U2VjcmV0IjoieHgiIH0K

执行命令使其生效:

kubectl apply -f mnsoss-secret.yaml

创建 Service Account及角色绑定

设置 mnsoss-sa.yaml 内容。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: eventing-sources-mnsoss
subjects:
- kind: ServiceAccount
  name: mnsoss-sa
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: eventing-sources-mnsoss-controller

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: mnsoss-sa

执行命令使其生效:

kubectl apply -f mnsoss-sa.yaml

设置isto egress(若当前命名空间下启用了istio注入)

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: alimns-ext
spec:
  hosts:
  - "*.aliyuncs.com"
  ports:
  - number: 443
    name: https
    protocol: HTTPS

创建 Broker

kubectl label namespace default knative-eventing-injection=enabled

创建 MnsOss 事件源

为了接收 MnsOss 产生的事件, 需要创建 MnsOssSource 用于接收事件。mnsoss-source.yaml如下:

apiVersion: sources.eventing.knative.dev/v1alpha1
kind: MnsOssSource
metadata:
  labels:
    controller-tools.k8s.io: "1.0"
  name: mnsoss-face
spec:
  # Add fields here
  serviceAccountName: mnsoss-sa
  accessToken:
    secretKeyRef:
      name: mnsoss-secret
      key: mns
  sink:
    apiVersion: eventing.knative.dev/v1alpha1
    kind: Broker
    name: default
  topic: mns-en-topics-oss-face-image-2381221888dds9129

参数说明:

topic:表示 MNS 主题名称

执行 kubectl 命令:

kubectl  apply -f mnsoss-source.yaml

创建 Knative Service

为了验证 MnsOssSource 是否可以正常工作,可以这里使用人脸识别的的 Knative Service 示例。service.yaml如下:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: face-recognition
  namespace: default
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/face-recognition:v0.2.7
        command:
        - '/app/face-recognition'
        - --configpath=/app/config
        env:
        - name: ACCESSKEY_ID
          value: "xxx"
        - name: ACCESSKEY_SECRET
          value: "xxx"
        - name: UPLOAD_OSS_PATH
          value: "face-image/target"

env参数说明:

UPLOAD_OSS_PATH:表示目标图片的存放位置
ACCESSKEY_ID:用户ak信息
ACCESSKEY_SECRET:用户sk信息

执行以下命令创建 Service。

kubectl apply -f service.yaml

创建 Trigger

创建 Trigger, 订阅事件信息。trigger.yaml如下:

apiVersion: eventing.knative.dev/v1alpha1
kind: Trigger
metadata:
  name: face-trigger
  namespace: default
spec:
  subscriber:
    ref:
      apiVersion: serving.knative.dev/v1alpha1
      kind: Service
      name: face-recognition

执行 kubectl 命令:

kubectl apply -f trigger.yaml

验证

通过 OSS 上传人脸图片。会在目标图片的存放位置生成人脸识别结果图片。
识别前:
46985432075_56c3190d32_o

识别结果:
46985432075_56c3190d32_o

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
机器学习/深度学习 自然语言处理 开发工具
ModelScope--人像卡通化、人像美肤
利用ModelScope实现美拍人喜欢的人像处理卡通化、人像美肤
ModelScope--人像卡通化、人像美肤
|
达摩院 语音技术
使用ModelScope社区搭建一个录音情感识别小应用
本文介绍通过ModelScope来完成“语音情绪识别”这一应用,该应用使用两个模型: ● 语音转文本(ASR):paraformer模型 ● 文本情绪识别:达摩院StructBERT中文情感分类模型
1542 3
|
5月前
开通视觉智能平台的人脸人体服务
开通视觉智能平台的人脸人体服务
53 1
|
5月前
|
机器学习/深度学习 算法 开发工具
视觉智能平台的人脸识别功能主要是用于识别人脸
视觉智能平台的人脸识别功能主要是用于识别人脸
30 1
|
8月前
|
开发工具 计算机视觉 文字识别
接入阿里视觉智能平台免费体验—人脸人体识别ocr与二次元风格转化使用
接入阿里视觉智能平台免费体验—人脸人体识别ocr与二次元风格转化使用
21221 4
接入阿里视觉智能平台免费体验—人脸人体识别ocr与二次元风格转化使用
|
9月前
|
存储 前端开发 Serverless
阿里云视觉智能平台提供了人脸识别和图像搜索的API接口
阿里云视觉智能平台提供了人脸识别和图像搜索的API接口
1121 0
|
存储 机器学习/深度学习 人工智能
阿里视觉智能开放平台(灵杰AI开放服务)【评测】人脸活体检测、智能美肤、文字识别等功能很多等待你的开发
阿里视觉智能开放平台(灵杰AI开放服务)DetectLivingFace 人脸活体检测、智能美肤、文字识别等功能很多等待你的开发
阿里视觉智能开放平台(灵杰AI开放服务)【评测】人脸活体检测、智能美肤、文字识别等功能很多等待你的开发
|
存储 算法 数据处理
图像识别之图片处理基础内容
Python call()方法, Python 类中一个非常特殊的实例方法,即 call()。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。
241 0
图像识别之图片处理基础内容
|
人工智能 文字识别 算法
阿里云视觉智能开放平台——人脸活体检测算法重磅升级
人脸活体检测算法重磅升级,支持更多的应用场景,算法精准度更高,准确率高达99%。
531 1
阿里云视觉智能开放平台——人脸活体检测算法重磅升级
|
存储 人工智能 JSON
图像识别项目讲解及使用说明 | 学习笔记
快速学习图像识别项目讲解及使用说明
520 0
图像识别项目讲解及使用说明 | 学习笔记

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版