水印第四版 ~ 非人水印(添加人脸识别)

简介:

demo:https://github.com/dunitian/DNTLive/tree/master/Software/WaterMarkAPP/LoTWaterAPP

说起这个人脸识别,还真有点缘分。记得逆天以前在学生时代参加创新大赛的时候,题目就是人脸识别打卡 解决别人替人打卡的问题,想想看,要是用微软的faceapi那还不是很容易实现的?

好了,不扯淡了,上次概述了下水印情缘:http://www.cnblogs.com/dunitian/p/6232074.html

一张图概括:

额,这次先看下效果,然后普及一些开发过程中的知识点,然后介绍一下微软的FaceAPI

==》原来的功能依旧在,非人脸识别,请在消息框中选择

不要求人脸识别的就选否,每个月Api次数是有限的

先生成缩略图:(后期可以添加缩略比例的调节)

异步的方式开始干活了

好了之后会通知你(很多人用异步的方式不会捕获异常和完成后的通知,一会我稍微说一下)

看看人脸,免费版的精度这个地步已经很好了(19个脸就2张有点误差),要是你把他用来人脸打卡,完全可以允许的嘛,没识别出来再试一试就ok了

点开一张看看,其实还是挺明显的(网上的face api基本上都是对正脸识别比较好,侧脸就差很多,微软的这个算不错的了【之前微软不是有两款小游戏很火嘛,就是用的人脸识别】)

上面演示部分结束了,我们进入技术探讨环节(技术有什么不到位的或者还有什么更好方案的。还望同志们提点一下,小子勇于接受批评)

先说下,设置超时时间,异常处理

完成后的通知其实也很简单:

有人可能会说:Task.Factory.StartNew 和 Task.Run 一样不?Run就是第一种方式,只不过自动添加了一些默认参数

再说下Magick,之前说了水印的用法:http://www.cnblogs.com/dunitian/p/5895133.html

这次基本上用法全了,缩略图,裁剪,水印 

裁剪官方文档没有说,我是根据命令逆推的==》写了个demo:https://github.com/dunitian/TempCode/tree/master/2016-12-26/MagickTest

生成缩略图很简单:

 水印官方写的很详细:

-------------------------------------------------------------------------------------------------

一下不管这个了,说说人脸识别,之前不知道官方有sdk,自己封装了。一起看看吧,有利于理解官方sdk:

首先定义了一个人脸识别的专用异常类:(别问我为啥不直接用Exception,不知道百度下~)

下面进行场景还原,为什么这样封装,很多人不写方法,直接贴代码,看的容易晕

然后是Model,我这边没高兴封装脸部关键点,需求决定一切(我只要面部矩阵),如果是Face++就得自己算了

微软返回结果是这个:

那model自然就得这么封装了

注意处理一下每个字段的负数情况(后面计算是可能为负的)

下面就是核心代码:(我这边分了网页URL和本地图片路径,SDK好像统一用流的方式)

为什么我分两种情况,看这两张图就能理解:

根据要求进行封装:

看代码: 

 下面就是响应了

太多,我就不贴了,看对应代码:(微软的提示是英文的,我得简单封装下)

 调用就不用说了吧:await FaceHelper.GetFaceModelList(path) or FaceHelper.GetFaceModelList(path).Result

微软的api很简单,eg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private  static  async Task<IEnumerable<Face>> UploadAndDetectFaces( string  imageFilePath)
        {
            try
            {
                using  (Stream imageFileStream = File.OpenRead(imageFilePath))
                {
                    var  faceClient =  new  FaceServiceClient(FaceHelper.GetAPIKey());
                    return  await faceClient.DetectAsync(imageFileStream);
                }
            }
            catch  (FaceAPIException ex)
            {
                throw  ex;
            }
        }

  

 先这样吧,WPF不是很擅长,凑合着用吧~~


本文转自毒逆天博客园博客,原文链接:http://www.cnblogs.com/dunitian/p/6232188.html,如需转载请自行联系原作者


相关文章
|
5月前
|
弹性计算 Java PHP
新手用户注册阿里云账号、实名认证、购买云服务器图文教程参考
对于初次购买阿里云产品的用户来说,第一步要做的是注册账号并完成实名认证,然后才是购买阿里云服务器或者其他云产品,本文为大家以图文形式展示一下新手用户从注册阿里云账号、实名认证到购买云服务器完整详细教程,以供参考。
新手用户注册阿里云账号、实名认证、购买云服务器图文教程参考
|
4月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之uniapp框架如何使用阿里云金融级人脸识别
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
机器学习/深度学习 搜索推荐 计算机视觉
【阿里云OpenVI-人脸感知理解系列之人脸识别】基于Transformer的人脸识别新框架TransFace ICCV-2023论文深入解读
本文介绍 阿里云开放视觉智能团队 被计算机视觉顶级国际会议ICCV 2023接收的论文 &quot;TransFace: Calibrating Transformer Training for Face Recognition from a Data-Centric Perspective&quot;。TransFace旨在探索ViT在人脸识别任务上表现不佳的原因,并从data-centric的角度去提升ViT在人脸识别任务上的性能。
2057 341
|
5月前
对于阿里云OpenAPI的域名实名认证
【1月更文挑战第5天】【1月更文挑战第22篇】对于阿里云OpenAPI的域名实名认证
72 1
|
安全 数据安全/隐私保护
阿里云账号注册、实名认证、账号信息管理、密码找回及账号注销流程及常见问题
本文为大家详细介绍我们在注册阿里云账号,完成账号实名认证,管理账号信息,账号密码找回以及注销账号的详细流程及常见问题。
阿里云账号注册、实名认证、账号信息管理、密码找回及账号注销流程及常见问题
|
人工智能 计算机视觉
阿里云产品体系分为6大分类——人工智能——分为10种模块——人脸识别
阿里云产品体系分为6大分类——人工智能——分为10种模块——人脸识别自制脑图
115 1
|
弹性计算 Java PHP
新手用户注册阿里云账号、实名认证、购买云服务器详细教程(图文教程)
在我们购买阿里云服务器等云产品之前,首先要做的就是注册账号并完成实名认证,之后才能购买阿里云服务器等各种云产品,购买之前如果碰到有最新优惠券或代金券可以领取,在购买过程中还可以使用优惠券或者代金券抵扣订单金额,减少购买成本。下面为大家以图文形式展示一下新手用户注册阿里云账号、实名认证、购买云服务器详细教程。
2510 0
新手用户注册阿里云账号、实名认证、购买云服务器详细教程(图文教程)
|
存储 前端开发 Serverless
阿里云视觉智能平台提供了人脸识别和图像搜索的API接口
阿里云视觉智能平台提供了人脸识别和图像搜索的API接口
1601 0
《阿里云产品手册2022-2023 版》——实人认证
《阿里云产品手册2022-2023 版》——实人认证
下一篇
无影云桌面