欢送拜访我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等;
本篇概览
- 检测照片中的人脸,用Java能够实现吗?
- 当然能够,明天咱们用起码的工夫、最简略的操作来体验这个实用的性能,当您提交一张带有人脸的照片后,会看到下图成果,所有人脸都被辨认到并被框选进去了:
- 本篇以体验为主,不波及具体的开发,前面还会有文章介绍残缺的开发过程(包含源码)
危险提前告知
- 为了简化操作,接下来会用到docker,对应的镜像体积微小,达到了恐怖的<font color="red">4.69G</font>,建议您为本人的docker做好减速配置,能够缩小下载等待时间;
- 因为opencv体积宏大,再加上javacv的依赖库也不小,这才导致超大镜像的呈现,还望您多多海涵,题目中的《三分钟极速体验》是要去掉镜像的等待时间的,您要是感觉欣宸的题目起得很无耻,我感觉您是对的...
环境信息
- 为了简化体验过程,接下来会用到docker,举荐的环境信息如下:
- 操作系统:Ubuntu 16.04.1 LTS 服务器版(MacBook Pro也能够,版本是11.2.3,macOS Big Sur)
- docker:20.10.2 Community
- 为了放慢docker镜像的下载速度,建议您提前做好docker减速配置
- 文章题目号称三分钟极速体验,没工夫说太多,筹备好环境就火速入手啦
部署
- 新建名为<font color="red">images</font>的目录,用于存储解决后的文件,我这里残缺门路是<font color="blue">/root/temp/202107/17/images</font>
- 新建名为<font color="red">model</font>的目录,用于存储稍后要下载的模型文件,我这里残缺门路是<font color="blue">/root/temp/202107/17/model</font>
- 下载训练好的模型文件,我筹备了两个下载地址,您任选一个即可,一个是csdn的(无需积分):
- https://download.csdn.net/dow...,另一个是
- https://raw.githubusercontent...
- 上述文件下载下来是个压缩包,请先解压,再将文件<font color="blue">haarcascade_frontalface_default.xml</font>放入<font color="red">model</font>目录(model里放的必须是解压后的文件)
- 执行以下命令,会先下载docker镜像文件再创立容器:
docker run \--rm \-p 18080:8080 \-v /root/temp/202107/17/images:/app/images \-v /root/temp/202107/17/model:/app/model \bolingcavalry/facedetect:0.0.1
- 部署实现,开始体验
体验
- 浏览器拜访<font color="red">http://localhost:18080</font>,这里的localhost请改成docker宿主机IP(要敞开防火墙!),能够见到操作页面,如下图(欣宸的前端开发程度渣到令人发指,果然不是空穴来风):
- 找一张有人脸的图片(我在百度图片随机找的),点击上图的<font color="red">选取图片</font>按钮进行上传,至于<font color="blue">四周检测数量</font>那里先放弃默认值32不要动
- 点击<font color="blue">提交</font>按钮后,页面会显示检测后果,如下图,人脸被精确的框选进去了:
- 再试试多人的,如下图,竟然一个人脸都没有检测到:
- 把<font color="blue">四周检测数量</font>的值调低些,改成<font color="red">4</font>再试,如下图,这次胜利了,八张人脸全副检测到:
- 至此,Java版人脸检测的体验曾经实现,一分钟概览,一分钟部署,一分钟体验,咱们足够高效(下载超大镜像的工夫不能算,不敢算...)
- 此刻您应该能感触到Java在人脸识别畛域的魅力了,聪慧的您当然会有很多疑难,例如:
- 用了啥框架?
- 写了啥代码?
- 运行环境好不好配置?只有jar依赖吗?还须要其余操作吗?
- 这些疑难在上面这两篇文章中齐全揭秘,而后您也能轻易做出集成了人脸识别的SpringBoot利用了:
- Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)
- Java版人脸检测详解下篇:编码
- 顺便剧透一下:设置运行环境很麻烦,所幸欣宸已解决此问题,并胜利封装为根底镜像,咱们能够专一的开发利用,对运行环境再也无需解决了
你不孤独,欣宸原创一路相伴
- Java系列
- Spring系列
- Docker系列
- kubernetes系列
- 数据库+中间件系列
- DevOps系列
欢送关注公众号:程序员欣宸
微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游Java世界...
https://github.com/zq2599/blog_demos