人脸识别是人工智能机器学习比较成熟的一个领域。人脸识别已经应用到了很多生产场景。比如生物认证,人脸考勤,人流监控等场景。对于很多中小功能由于技术门槛问题很难自己实现人脸识别的算法。Azure人脸API对人脸识别机器学习算法进行封装提供REST API跟SDK方便用户进行自定义开发。
Azure人脸API可以对图像中的人脸进行识别,返回面部的坐标、性别、年龄、情感、愤怒还是高兴、是否微笑,是否带眼镜等等非常有意思的信息。
Azure人脸API也是一个免费服务,每个月30000次事务的免费额度。
创建人脸服务
填写实例名,选择一个区域,同样选离你近的。
获取秘钥跟终结点
选中侧边菜单“秘钥于终结点”,获取信息,这2个信息后面再sdk调用中需要用到。
新建WPF应用
新建一个WPF应用实现以下功能:
-
选择图片后把原图显示出来
-
选中后马上进行识别
-
识别成功后把脸部用红框描述出来
-
当鼠标移动到红框内的时候显示详细脸部信息
安装SDK
使用nuget安装对于的sdk包:
-
Install-Package Microsoft.Azure.CognitiveServices.Vision.Face -Version 2.5.0-preview.2
实现界面
编辑MainWindow.xml放置图像显示区域、文件选中、描述显示区域
-
<Window x:Class="FaceWpf.MainWindow"
-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-
xmlns:local="clr-namespace:FaceWpf"
-
mc:Ignorable="d"
-
Title="MainWindow" Height="600" Width="800">
-
<Grid x:Name="BackPanel">
-
<Image x:Name="FacePhoto" Stretch="Uniform" Margin="0,0,0,50" MouseMove="FacePhoto_MouseMove" />
-
<DockPanel DockPanel.Dock="Bottom">
-
<Button x:Name="BrowseButton" Width="72" Height="80" VerticalAlignment="Bottom" HorizontalAlignment="Left"
-
Content="选择图片..."
-
Click="BrowseButton_Click" />
-
<StatusBar VerticalAlignment="Bottom">
-
<StatusBarItem>
-
<TextBlock Name="faceDescriptionStatusBar" Height="80" FontSize="20" Text="" Width="500" TextWrapping="Wrap"/>
-
</StatusBarItem>
-
</StatusBar>
-
</DockPanel>
-
</Grid>
-
</Window>
构造函数
在编辑MainWindow类的构造函数初始化FaceClient等数据
-
private IFaceClient _faceClient;
-
//检测到的人脸
-
private ILis