Java版人脸跟踪三部曲之一:极速体验
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
关于《Java版人脸跟踪三部曲》系列
-《Java版人脸跟踪三部曲》系列是欣宸的又一原创,目标是通过理论加实战,与大家一同了解CamShift(连续自适应均值漂移)算法在Java领域的实际应用,整个系列由以下三篇文章组成:
- 极速体验:这是欣宸原创的一大特色,先动手,用最短时间和最小代价了解CamShift能做什么
- 开发设计:这是编码前的准备工作,包含:要做什么?需要那些知识点?逻辑和流程梳理
- 编码实战:在本篇咱们正式开始编码并运行验证,经历了前面的充分准备,真正开始编码的时候不但顺畅,您还会迸发有很多与欣宸不一样的想法,例如不仅检测人脸,还能带上年龄性别,却不用多次做深度学习推理,又或者,检测出多个人脸,但是只跟踪某人,甚至多人同时跟踪
- 另外,整个《Java版人脸跟踪三部曲》系列也是《JavaCV的摄像头实战》系列的一部分,分别是《JavaCV的摄像头实战》系列的的第十五、第十六、第十七篇
本篇概览
- 本文的目标是快速体验Java版人脸跟踪的功能,不涉及理论知识,不涉及编码,全是动手操作,由以下步骤组成:
- 准备本地环境
- 下载三个文件:java应用,动态链接库,人脸检测模型文件
- 运行java应用,验证效果
准备本地环境
- 准备一台可上网的windows系统的电脑,我这里是64位win10
- 一个USB摄像头,与电脑连接正常
- 安装JDK:1.8.0_291
- 作为参考,我用的电脑是Surface Pro4,前置摄像头正常
下载文件
- 一共要下载三个文件,前两个可以在CSDN下载(不需要积分),地址分别是:
- 打包成jar的java应用:https://download.csdn.net/download/boling_cavalry/76015782
- opencv在windows环境的动态链接库:https://download.csdn.net/download/boling_cavalry/75121158
还有一个是人脸检测的模型文件,在GitHub下载,地址是:https://raw.github.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_alt.xml
上述三个文件下载后,完整的存放路径分别是:
- java应用:C:\study\javacv\simple-grab-push-1.0-SNAPSHOT.jar
- 动态链接库:C:\study\javacv\lib\opencv_java453.dll
- 模型文件:C:\study\javacv\model\haarcascade_frontalface_alt.xml
运行java应用,验证效果
- 进入windows命令行,执行以下命令在(注意两个参数和前面下载的文件路径有关,请您根据自己情况调整):
java ^
-Djava.library.path=C:\study\javacv\lib ^
-Dmodel.file.path=C:\study\javacv\model\haarcascade_frontalface_alt.xml ^
-jar C:\study\javacv\simple-grab-push-1.0-SNAPSHOT.jar
- 此时,控制台会输出以下信息:
C:\Users\12167>java ^-Djava.library.path=C:\study\javacv\lib ^-Dmodel.file.path=C:\study\javacv\model\haarcascade_frontalface_alt.xml ^-jar C:\study\javacv\simple-grab-push-1.0-SNAPSHOT.jar
17:40:54.987 [main] INFO com.bolingcavalry.grabpush.camera.PreviewCameraWithCamShift - 模型文件本地路径:C:\study\javacv\model\haarcascade_frontalface_alt.xml
17:40:57.704 [main] INFO com.bolingcavalry.grabpush.extend.CamShiftDetectService - 开始加载模型文件
17:40:58.364 [main] INFO com.bolingcavalry.grabpush.extend.CamShiftDetectService - 模型文件加载完毕,初始化完成
17:40:58.364 [main] INFO com.bolingcavalry.grabpush.camera.AbstractCameraApplication - 初始化完成,耗时[2257]毫秒,帧率[30.0],图像宽度[1280],图像高度[720]
然后会弹出预览窗口,显示摄像头拍摄到的内容
现在,把那个为了盒饭跑来露脸的群众演员拉到镜头面前,预览窗口中,群众演员的脸部立即出现红框,如下图所示:

让群众演员在镜头前移动,可以看到红框会紧随面部移动(截图看不出效果,实际上视频是动态跟随的):

让群众演员在摄像头面前消失,红框也随之消失
让群众演员再次回到摄像头面前,红框再次出现并跟随:

至此,体验结束,《Java版人脸跟踪三部曲》的第一部就完成了,简简单单三个文件一行命令就完成人脸跟踪的效果,此刻的您一定充满各种疑惑:
- 为什么叫跟踪,这是什么原理?
- 如果把每一帧都做人脸检测,然后绘制矩形,也能实现同样效果,这两者有区别吗?
- 追踪的逻辑是什么,一开始目标如何确定,追踪过程中,如果目标消失在镜头面前,程序如何处理,过一会儿再出现,程序会如何处理?
- 这些就留待三部曲的第二篇讲清楚吧,算是正式编码前的设计工作,欣宸原创,不会辜负您的期待
欢迎关注博客园:程序员欣宸
Java版人脸跟踪三部曲之一:极速体验的更多相关文章
- 三分钟极速体验:Java版人脸检测
欢迎访问我的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 ...
- Java版 人脸识别SDK demo
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! 前言 由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll· ...
- Java版 人脸识别SDK dem
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓紧上车! 前言由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll······ ...
- 三分钟:极速体验JAVA版目标检测(YOLO4)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 分布式调用链跟踪工具Jaeger?两分钟极速体验
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Docker下的Spring Cloud三部曲之一:极速体验
版权声明:欢迎转载,请注明出处,谢谢. http://blog.csdn.net/boling_cavalry/article/details/79177930 目录(?)[+] 从本章开始, ...
- 微信公众平台Java版极速SDK
JEEWX-API 是第一个微信公众平台Java版极速SDK,基于 jeewx-api 开发可以立即拥有简单易用的API,让开发更加轻松自如,节省更多时间 http://www.jeewx.com/
- Docker下kafka学习三部曲之一:极速体验kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,从本章开始我们先极速体验,再实战docker下搭建kafka环境,最后开发一个java web应用来体验kafka服务. 我们一起用最快的速度体验ka ...
随机推荐
- ChatGPT,我彻彻底底沦陷了!
当谈到人工智能技术的时候,我们会经常听到GPT这个术语.它代表"Generative Pre-trained Transformer",是一种机器学习模型,采用了神经网络来模拟人类 ...
- 从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(一)
一.创建ASP.NET Core Web API项目(若项目已创建,则可跳过本节内容) 1.双击打开VS2022. 2.单击"创建新项目",如下图. 3.选择"ASP.N ...
- 【Dotnet 工具箱】跨平台图表库 LiveCharts2
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! LiveCharts2 LiveCharts2 是一个简单.灵活.交互式以及功能强大的跨平台图表库. ...
- 开源后台管理系统解决方案 boot-admin 简介
介绍 boot-admin 是一款采用前后端分离架构模式的后台管理框架.系统提炼自实际项目,兼具RuoYi-Vue前端分离版和Ruoyi-Cloud微服务版功能与技术特点. boot-admin 既有 ...
- 【LeetCode动态规划#08】完全背包问题实战与分析(零钱兑换II)
零钱兑换II 力扣题目链接(opens new window) 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 示例 1: 输入: amoun ...
- Python全栈开发工程师 day57 jQuery
二.jQuery样式操作标签样式操作<!DOCTYPE html><html lang="en"><head> <meta charset ...
- Linux修改远程命令端口
Linux修改远程命令端口 执行以下命令,修改sshd服务的配置文件 vi /etc/ssh/sshd_config 找到port,默认是注释了的 22 打开注释,将22改成想要的端口号 重启服务 s ...
- 【Docker】镜像制作和管理
一.Docker镜像说明 二.基于容器通过 docker commit 手动制作镜像 1.基于容器手动制作镜像步骤 1.下载官方系统镜像 2.基于官方基础镜像启动容器,并进入容器 3.在容器中进行配置 ...
- SQL Server 2005递归查询
WHIT XXX(列1,列2....) AS ( SELECT 列1,列2... FROM 表WHERE ID=xxxxxx UNION ALL SELECT 列1,列2.... FROM 表 WHE ...
- 揭秘Karmada百倍集群规模多云基础设施体系
摘要:本文结合Karmada社区对大规模场景的思考,揭示Karmada稳定支持100个大规模集群.管理超过50万个节点和200万个Pod背后的原理 本文分享自华为云社区<Karmada百倍集群规 ...