最近在设计功能的过程中,涉及到了人脸比对等算法;于是上网查询了人脸算法的相关文章和第三方技术厂商,发现需要花钱买服务(这很正常毕竟研发需要耗费很大的成本),可惜我只用于学习,不太想花钱;后面和小伙伴一起get到了一个开源(apache 2.0开源协议)人脸算法服务,很nice; 现分享如下:

以下均在win10专业版下操作 !!!

       以下均在win10专业版下操作 !!!

       以下均在win10专业版下操作 !!!

第一步:你需要安装配置Docker操作如下;

控制面板 --- 程序 --- 启用或关闭Windows功能 --- 选择Hyper-v并确定和重启电脑。(原因:docker面向linux系统,所以需要Hyper-V 提供硬件虚拟化;详细了解请自行百度)

进入这个网址

https://www.docker.com/products/docker-desktop

下载这个安装包(这个过程可能会失败几次,多下载几次)

安装好是这样的(当然不可能这么顺利,期间会报错的;常见报错见:附件1

附件1:

问题1:

解决方法:点击链接下载、安装;重启docker应用;

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

问题2:设置中的配置可能需要改一下,如下

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}

------------第一步 结束----------------------------------------------------------------------------------------------------

第二步人脸算法服务;

进入这个链接:

https://gitee.com/mirrors/compreface

接下来,按照指引操作即可

点击API说明,进去,就是具体的接口了;使用postman+下面我发的前端页面,配合测试。

<!DOCTYPE html>
<html>
<head><script type="text/javascript">function video() {let video = document.getElementById("live");let canvas = document.getElementById("canvas");let canvas2 = document.getElementById("canvas2");let ctx = canvas.getContext('2d');let ctx2 = canvas2.getContext('2d');let apiKey = document.getElementById("apiKey").value;navigator.mediaDevices.getUserMedia({video: {width: 640, height: 480}}).then(function (stream) {video.srcObject = stream;document.addEventListener("next_frame", draw);const evt = new Event("next_frame", {"bubbles": true, "cancelable": false});document.dispatchEvent(evt);});function draw() {ctx.drawImage(video, 0, 0, 640, 480);canvas.toBlob(function (blob) {blob.name = "blob.jpeg"let fd = new FormData();fd.append('file', blob, "blob.jpeg");fetch('http://localhost:8000/api/v1/recognition/recognize',{method: "POST",headers: {"x-api-key": apiKey},body: fd}).then(r => r.json()).then(function (data) {const evt = new Event("next_frame", {"bubbles": true, "cancelable": false});document.dispatchEvent(evt);ctx2.clearRect(0, 0, 640, 480);ctx2.drawImage(video, 0, 0, 640, 480);if (!data.result) {return;}let box = data.result[0].box;let name = data.result[0].subjects[0].subject;ctx2.lineWidth = 3;ctx2.strokeStyle = 'green';ctx2.strokeRect(box.x_min, box.y_min, box.x_max - box.x_min, box.y_max - box.y_min);ctx2.font = '24px serif';ctx2.strokeText(name, box.x_min, box.y_min - 20);});}, 'image/jpeg', 0.95);}}</script><title>test</title>
</head>
<body>
<label for="apiKey">API key:</label><input id="apiKey" />
<button onclick="video()">video</button>
<video id="live" width="640" height="480" autoplay style="display:none;"></video>
<canvas width="640" id="canvas" height="480" style="display:none;"></canvas>
<canvas width="640" id="canvas2" height="480"></canvas>
</body>
</html>

------------第二步 结束----------------------------------------------------------------------------------------------------

我的思路是:单独部署这个人脸算法服务(单独服务器部署,不要和重要应用放在同一个服务器),然后应用调取使用;

欢迎批评指正...

(全)Docker安装+人脸比对算法服务(win10)相关推荐

  1. 史上最全docker安装方法!

    2017年2月8日,docker更新到1.13.1(更新日志),此后又分为了docker CE(社区版)和docker EE(商业版). 此处只分享docker CE安装方法,商业版多了容器资源监控和 ...

  2. docker安装部署dragonfly2镜像加速服务

    Dragonfly安装部署文档 ​ Dragonfly 作为龙蜥社区的镜像加速标准解决方案,是一款基于 P2P 的智能镜像和文件分发工具.它旨在提高大规模文件传输的效率和速率,最大限度地利用网络带宽. ...

  3. Win10中docker安装nuget服务器及使用

    目录 简介 具体实现 创建容器 上传包 如何使用 总结 推荐阅读 简介 如果你了解python,那么它类似pip.如果你了解nodejs,那么它类似npm.对于.net平台,nuget就是python ...

  4. Docker 安装 命令 数据卷 应用部署 网络优化 Dockerfile 服务编排Compose 私有仓库

    Docker 1. 初识docker 1.1 Docker是什么 了解Docker的前生LXC LXC与docker的关系 Docker 的特点 1.2 为什么使用Docker Docker的优势 缺 ...

  5. docker安装+配置镜像+命令操作+数据卷+网络管理+DockerFile+镜像服务+项目部署+[高级使用]

    文章目录 Docker基础 一.Docker介绍 1. 什么是虚拟化 2. 什么是Docker 3. 容器与虚拟机比较 4. Docker优势 5. Docker架构 [1]镜像服务(`Image`) ...

  6. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  7. consul命令行查看服务_Go语言微服务架构实战:第十三节 微服务管理--Docker安装及运行consul节点...

    微服务管理--Docker安装及运行consul节点 搭建集群 在真实的生产环境中,需要真实的部署consul集群.在一台机器上想要模拟多台集群部署的效果,有两种方案:一种是借助虚拟机,另一种是借助容 ...

  8. docker 使用tar安装mysql_使用docker安装mysql服务

    转载:https://www.cnblogs.com/notejava/p/7124189.html 使用docker官方镜像安装mysql服务 1 拉取mysql镜像,采用网易加速地址 docker ...

  9. Docker 安装和使用日常命令全覆盖

    Docker安装和使用 一. Centos7安装docker 1.1 Docker 要求 CentOS 系统的内核版本高于 3.10 uname –r 1.2 使用 root 权限登录 Centos一 ...

最新文章

  1. 取出json中的数据php,怎么从Json中取出数据放到一个新组中
  2. Spring+ActiveMQ配置
  3. 如何使用一个单片机的IO口控制两个LED?
  4. netstat -ano 查看机器端口占用情况
  5. 虚拟机上安装 Red Hat Enterprise Linux 7 64位
  6. python的生成器
  7. 计算机组成原理白朔飞,计算机组成原理(第四章复习).ppt
  8. [转载]Java数组扩容算法及Java对它的应用
  9. 更改Mysql5.7的默认编码为utf8解决database为latin1无法修改问题
  10. html 插入本地视频,win7系统中Word文档插入本地视频的方法【图文】
  11. 删除曾经使用过的USB设备记录
  12. 一篇讲完Java链表(单链表、循环链表和双向链表)
  13. winform打包应用程序-setup安装包
  14. win10java编辑器_5个最好的Windows 10的字幕编辑软件
  15. 茅侃侃自述离职Majoy经过:让我们从“失败”开始
  16. 火遍全网的「蚂蚁呀嘿」教程开源了!
  17. 电子邮件营销与MailChimp。它是适合你
  18. iOS开发工具-网络封包分析工具Charles
  19. 【复现】deblurGAN: 用GAN使模糊图片变清晰(ECCV2018)
  20. matlab 如何使用mex

热门文章

  1. 2015年第4本(英文第3本):Godfather教父
  2. ellipse函数用法
  3. 汇佳学校新推“未来艺术大师”项目 实现学术艺术双赢
  4. 编写一程序,将两个字符串连接起来,结果取代第一个字符串。(三种方法)
  5. 从知识工程到知识图谱全面回顾
  6. CRS-0804:PROC-26: Error while accessing the physical storage
  7. python基于flask_sockets实现WebSocket——叁
  8. POC原型开发:巡店
  9. Java配置文件学习
  10. 2020版本idea 左视图跟随主视图定位操作