58.基于容器的Azure人脸服务(复刻版)

参考自:https://docs.microsoft.com/en-us/azure/cognitive-services/Face/face-how-to-install-containers html

https://github.com/Azure/OCPOpenHack/tree/master/Cognitive_Service_Face_on_Container ios

Azure人脸API 服务是一项认知服务,其提供的算法可用于检测、识别和分析图像中的人脸。处理人脸信息的功能在许多不一样的软件方案中很重要,这些方案包括安全性、天然用户界面、图像内容分析和管理、移动应用和机器人。 git

目前Azure人脸API已经支持容器部署,意味着Azure人脸功能能够部署到用户自建机房或边缘设备中。本实验主要实践容器化Azure人脸的部署与使用。该实验将包括如下内容: github

  • 准备Docker环境
  • 建立人脸服务
  • 启动人脸容器
  • 测试人脸功能
  • 人脸信息持久化

准备Docker环境 算法

1 . 在https://docs.docker.com/docker-for-windows/install/ 安装Docker for Windows docker

clip_image001

等待安装完成 windows

clip_image002

安装完成后会要求注销从新登陆,登陆会提示 api

clip_image003

等待一会后自动安装本机Hyper-V功能并重启2次完成Hyper-V安装,而且已经自动建立了一个虚拟交换机以及一台虚拟机运行 浏览器

clip_image004

接着就能够打开桌面的Docker Desktop,在托盘处右键Docker Desktop图标在菜单里选择Settings  安全

clip_image005

2 . 确保本地磁盘能够被docker访问

clip_image006

建立人脸服务

1 . 登录Azure Portal,找到人脸服务

clip_image007

clip_image008

2 . 填入名称,订阅等后,点击建立。

clip_image009

关因而选择S0仍是F0区别以下:

clip_image010

目前国内版的认知服务已经有以下(截图于2019年5月23日):

image

针对于人脸识别的国内版收费以下:

image

其余的认知服务收费能够参见:https://www.azure.cn/zh-cn/pricing/details/cognitive-services/

3 . 在建立好的人脸服务Overview页面,找到API端点。

clip_image011

4 . 在建立好的人脸服务Keys页面,找到调用服务所须要的密钥。

image

API端点和密钥将在下一节被用到。

启动人脸容器

1 . 启动cmd命令行窗口,执行如下命令登录到人脸容器的私有镜像仓库。其中用户名和密码能够从Cognitive Services Vision Containers Request form申请得到

命令示例:

docker login containerpreview.azurecr.io -u <useraccount> -p <key>

image

2 . 执行如下命令将最新的人脸容器镜像拉取到本地

docker pull openhackreg.azurecr.io/openhack/face:latest

clip_image015

完成

image

3 . 执行如下命令启动人脸容器

命令示例:

docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 containerpreview.azurecr.io/microsoft/cognitive-services-face Eula=accept Billing=<API Endpoint> ApiKey=<API Key>

执行:

docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 openhackreg.azurecr.io/openhack/face Eula=accept Billing=https://eastasia.api.cognitive.microsoft.com/face/v1.0 ApiKey=6************23de

执行后显示申请开始,意味着开始提供服务了

image

测试人脸功能

1 . 在浏览器访问http://localhost:5000/swagger/index.html ,若是人脸API的说明能够正常显示,说明人脸服务已经正常运行。 

clip_image018

2 . 访问https://www.microsoft.com/zh-cn/p/intelligent-kiosk/9nblggh5qd84#activetab=pivot:overviewtab 安装Windows Store 应用Intellight Kiosk

clip_image019

安装完成并启动它

clip_image020

3 . 点击左下角按钮,按照下图进行设置(注意点击Click here for extra setup ... 按照提示完成设置)

复制红色框柱部分去执行

clip_image021

以管理员身份新开一个cmd粘贴执行

clip_image022

4 . 在Intelligent Kiosk内找到Face API Explorer并进行测试。该测试支持从摄像头或本地文件获取照片,返回年龄,人脸特征等。

clip_image023

选择获取图片的方式

clip_image001[4]

利用本身笔记本电脑的摄像头拍摄一张本身的照片测算下本身年龄或测试一张图片

clip_image025

人脸信息持久化

本身创建一个组,在这个组里创建分类,好比张三建一类把张三的照片放一块儿,李四建一类把李四的照片放一块儿,这叫分类打标签,认知服务会根据我创建的分类来学习就叫机器学习,最后我再随意找一张张三和李四的合影让认知服务识别,就会自动判别张三李四的年龄以及合影照片里谁是张三,谁是李四,并标记出来。

使用人脸API进行人脸分组以及识别时,人脸容器须要对人脸索引信息进行持久化,该持久化能力须要借助到Azure的存储服务和Cosmos Db服务。

1 . 建立存储帐号服务,确保帐户类型选择的是general purpose v2

clip_image026

存储帐户须要注意检查防火墙和虚拟网络是否设置全部网络访问,不然链接会失败

image

2 . 待存储帐号建立好后,在Access keys页面得到链接字符串

image

3 . 建立Cosmos DB服务,确保API类型选择的是Azure Cosmos DB for MongoDB API

clip_image028

须要注意Cosmos DB的防火墙和虚拟网络要容许全部网络的访问,不然链接会失败

image

4 . 待Cosmos帐号建立好后,在Connection String页面得到链接字符串

image

5 . 关掉正在运行的人脸容器服务,执行如下命令从新启动人脸容器

命令示例:

docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 containerpreview.azurecr.io/microsoft/cognitive-services-face Eula=accept Billing=<API Endpoint> ApiKey=<API Key> CloudAI:Storage:StorageScenario=Azure CloudAI:Storage:ConnectionStringOfCosmosMongo="<CosmosConnectionString>" CloudAI:Storage:ConnectionStringOfAzureStorage="<StorageConnectionString>"

执行:

docker run --rm -it -p 5000:5000 --memory 6g --cpus 2 openhackreg.azurecr.io/openhack/face Eula=accept Billing=https://eastasia.api.cognitive.microsoft.com/face/v1.0 ApiKey=61*******************Scenario=Azure CloudAI:Storage:ConnectionStringOfCosmosMongo=“mo**************@facedemo.documents.azure.com:10255/?ssl=true&replicaSet=globaldb" CloudAI:Storage:ConnectionStringOfAzureStorage="DefaultEndpointsProtocol=https;AccountName=facedemostorages;AccountKey=********************;EndpointSuffix=core.windows.net"

image

在setting里生成一个workspace Name

clip_image031

6 . 在Intelligent Kiosk的Face Identification Setup页面建立人脸组,并上传分类,好比一我的一个类别上传他本身的照片成为特征标签

image

完成后切换回以前的脸部API资源管理器,会提示你是否进行模型训练,点击Yes

image

此时人脸组索引信息已被持久化,重启人脸容器和Intelligent Kiosk,人脸组仍然能被再次显示。

再次测试能够识别年龄和谁是谁了,百分比表示和我以前创建的人物库中的类别类似度

image

总结

容器化的人脸服务无需把人脸图片直接上传到Azure,能够大大提升人脸服务的部署灵活性和访问速度。

除此以外还有其余人脸识别的Demo:

clip_image001[1]

表情匹配(PS:我用本身笔记本的摄像头拍的,给你们看我仍是模糊下本身丑陋的面孔吧)

1副本

实时面部效果:

clip_image003[1]

看起来更像那个名人?(PS:我用本身笔记本的摄像头拍的,给你们看我仍是模糊下本身丑陋的面孔吧)

2副本

百万级人脸搜索:(PS:我用本身笔记本的摄像头拍的,给你们看我仍是模糊下本身丑陋的面孔吧)

3副本

实时人群看法:(PS:我用本身笔记本的摄像头拍的,给你们看我仍是模糊下本身丑陋的面孔吧)

4副本

情感识别:

clip_image007[1]

视频索引分析:分析视频中出现过多少张人脸,而且出如今视频的几分几秒,男女数量统计以及面部表情等信息

clip_image001

还好比这个能够实时动态监测到人的性别,评估年龄和识别表情,并统计当前镜头人数的实时人群看法,动态抓捕人脸所在位置,面孔数等信息

ren

人脸识别只是微软AI能力的其中之一,还有语音识别,文字转语音,语音转文字等,更多人脸识别,物体识别等好AI功能期待您来挖掘和分享。

相关文章
相关标签/搜索