三分钟极速体验:Java版人脸检测
欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
本篇概览
检测照片中的人脸,用Java可以实现吗?
当然可以,今天咱们用最少的时间、最简单的操作来体验这个实用的功能,当您提交一张带有人脸的照片后,会看到下图效果,所有人脸都被识别到并被框选出来了:
- 本篇以体验为主,不涉及具体的开发,后面还会有文章介绍完整的开发过程(包括源码)
风险提前告知
为了简化操作,接下来会用到docker,对应的镜像体积巨大,达到了恐怖的4.69G,建议您为自己的docker做好加速配置,可以减少下载等待时间;
由于opencv体积庞大,再加上javacv的依赖库也不小,这才导致超大镜像的出现,还望您多多海涵,标题中的《三分钟极速体验》是要去掉镜像的等待时间的,您要是觉得欣宸的标题起得很无耻,我觉得您是对的...
环境信息
- 为了简化体验过程,接下来会用到docker,推荐的环境信息如下:
- 操作系统:Ubuntu 16.04.1 LTS 服务器版(MacBook Pro也可以,版本是11.2.3,macOS Big Sur)
- docker:20.10.2 Community
- 为了加快docker镜像的下载速度,建议您提前做好docker加速配置
- 文章标题号称三分钟极速体验,没时间说太多,准备好环境就火速动手啦
部署
- 新建名为images的目录,用于存储处理后的文件,我这里完整路径是/root/temp/202107/17/images
- 新建名为model的目录,用于存储稍后要下载的模型文件,我这里完整路径是/root/temp/202107/17/model
- 下载训练好的模型文件,我准备了两个下载地址,您任选一个即可,一个是csdn的(无需积分):
- https://download.csdn.net/download/boling_cavalry/20352221,另一个是
- https://raw.githubusercontent.com/zq2599/blog_download_files/master/files/haarcascade_frontalface_default.zip
上述文件下载下来是个压缩包,请先解压,再将文件haarcascade_frontalface_default.xml放入model目录(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
- 部署完成,开始体验
体验
- 浏览器访问http://localhost:18080,这里的localhost请改成docker宿主机IP(要关闭防火墙!),可以见到操作页面,如下图(欣宸的前端开发水平渣到令人发指,果然不是空穴来风):
找一张有人脸的图片(我在百度图片随机找的),点击上图的选取图片按钮进行上传,至于周围检测数量那里先保持默认值32不要动
点击提交按钮后,页面会显示检测结果,如下图,人脸被准确的框选出来了:
- 再试试多人的,如下图,居然一个人脸都没有检测到:
- 把周围检测数量的值调低些,改成4再试,如下图,这次成功了,八张人脸全部检测到:
至此,Java版人脸检测的体验已经完成,一分钟概览,一分钟部署,一分钟体验,咱们足够高效(下载超大镜像的时间不能算,不敢算...)
此刻您应该能感受到Java在人脸识别领域的魅力了,聪明的您当然会有很多疑问,例如:
- 用了啥框架?
- 写了啥代码?
- 运行环境好不好配置?只要jar依赖吗?还需要其他操作吗?
- 这些疑问在下面这两篇文章中完全揭秘,然后您也能轻易做出集成了人脸识别的SpringBoot应用了:
- 顺便剧透一下:设置运行环境很麻烦,所幸欣宸已解决此问题,并成功封装为基础镜像,咱们可以专注的开发应用,对运行环境再也无需处理了
你不孤单,欣宸原创一路相伴
欢迎关注公众号:程序员欣宸
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos
三分钟极速体验:Java版人脸检测的更多相关文章
- 三分钟:极速体验JAVA版目标检测(YOLO4)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java版人脸检测详解下篇:编码
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 分布式调用链跟踪工具Jaeger?两分钟极速体验
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java版 人脸识别SDK demo
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! 前言 由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll· ...
- Java版 人脸识别SDK dem
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓紧上车! 前言由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll······ ...
- Protocol Buffer序列化/反序列化---初体验(java版)
今天闲遐时学习了 Protocol Buffer 在网上看到了许多资料,其中不泛精品,想要详细了解的请看文章结尾的友情链接,我这里就做加深印象,快速入门的一个完整的demo,仅此而已. 学完你可以得到 ...
- Jaeger的客户端采样配置(Java版)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Jaeger开发入门(java版)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
随机推荐
- kubeadm方式搭建K8S集群
一.kubeadm介绍 二.安装要求 三.集群规划 四.环境初始化(在每个服务器节点操作) 1.关闭防火墙 2.关闭selinux 3.关闭swap 4.根据规划设置主机名 5.在Master添加ho ...
- shell脚本书写
#!/bin/bash #指定脚本默认使用的命令解释器 第1行 幻数 #!/usr/bin/python #!/bin/awk #!/bin/sed
- Django中使用MySQL数据库的连接配置
1. 安装pymysql pip install pymysql 2. 导入 # 在与 settings.py 同级目录下的 __init__.py 中引入模块和进行配置 import pymysql ...
- [考试总结]noip模拟40
最近真的是爆炸啊... 到现在还是有不少没改出来.... 所以先写一下 \(T1\) 的题解.... 送花 我们移动右端点,之后我们用线段树维护全局最大值. 之后还要记录上次的位置和上上次的位置. 之 ...
- openswan专栏序言
openswan专栏序言 "一杯茶,一包烟,一个bug解一天!!!". 2020年春季,正值新冠病毒在全球肆虐之际,美国的疫情已经相当的严峻,每天仍以3万速度狂奔.而国内的疫情 ...
- Hibernate持久层ORM框架
一.概念 hibernate交互数据库时,对象的属性转成sql,mybatis直接写sql,性能更高: 二.
- salesforce零基础学习(一百零七)Dynamic Action
说一下项目中常见的甲方的需求.背景如下:Order在SF端生成以后,在status为completed以后,需要点击按钮同步到SAP或者其他的MDM,客户希望的是,如果 order的状态为 compl ...
- Anaconda配置国内镜像源
1. 为conda配置(清华)镜像源 使用conda进行安装时,访问的是国外的网络,所以下载和安装包时会特别慢.我们需要更换到国内镜像源地址,这里我更换到国内的清华大学地址.(永久添加镜像) Wind ...
- CodeForce-811B Vladik and Complicated Book(水题)
http://codeforces.com/problemset/problem/811/B 题意: 给定一个长度为 N 不重复的数字序列,然后对其进行 M 次询问. 每次询问含L,R,X三个值,问如 ...
- 手机UI自动化之显示点触位置(触摸轨迹)
上期回顾:Airtest源码分析--Android屏幕截图方式 不管是用Appium还是Airtest,或是其他手机UI自动化工具,你是不是经常遇到这种情况,代码明明执行了click或swipe,怎么 ...