java 人脸识别jar包_Java做人脸识别就是这么简单,看看猪厂是怎么做的

考拉一次性能压测需求,需要准备大量的带有人脸的图片,找了nos的人提供了一批图片的URL链接,但是里面不一定包含人脸,而且没有规律可循,那么怎么办,总不能人工一张张筛选吧,累死不说,效率太低,根本无法满足项目需求。 以上为背景

这个时候从网上查找人脸识别的相关知识,基本上都是基于OpenCV来实现的,但是实现的语言就比较多了,像Python、Java等,本人对Java相对更熟悉一点,选择了Java。

9bc05431d03f9ffff89ba8a4b3bd9061.png

环境搭建

1.首先下载核心库 OpenCV2.4.6,下载的时候,选择windows版的。然后安装

附 下载地址:https://opencv.org/releases.html ,自行下载需要的版本,不过246版本比较老,现在官网上面不提供此版本下载,

给大家一个 网盘地址 https://pan.baidu.com/s/1dFnlxjN 密码: 1wcs

2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencvbuildjava

注意:opencv-246.jar是需要在opencv的java类库,但是,真正的实现是opencv_java246.dll(X86和X64之分,关键看你的计算机是多少位的)

3.eclipse安装、Java安装、建工程就不讲了,自行百度

d9137236425260d6bac3efa49790b346.png

4.引入jar包和本地库

c8d3c8c890416de0aa55e0750a44a9fe.png

环境搭建结束

识别一张图片

1.编写DetectFaceDemo.java,代码如下:

  1. package com.netease.openCV246;
  2. import org.opencv.core.Core;
  3. import org.opencv.core.Mat;
  4. import org.opencv.core.MatOfRect;
  5. import org.opencv.core.Point;
  6. import org.opencv.core.Rect;
  7. import org.opencv.core.Scalar;
  8. import org.opencv.highgui.Highgui;
  9. import org.opencv.objdetect.CascadeClassifier;
  10. //
  11. // Detects faces in an image, draws boxes around them, and writes the results
  12. // to "faceDetection.png".
  13. //
  14. public class DetectFaceDemo {
  15. public void run() {
  16. System.out.println("Running DetectFaceDemo");
  17. System.out.println(getClass().getResource("lbpcascade_frontalface.rar.xml").getPath());
  18. // Create a face detector from the cascade file in the resources
  19. // directory.
  20. //CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
  21. //Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
  22. //注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
  23. /*
  24. * Detected 0 faces Writing faceDetection.png libpng warning: Image
  25. * width is zero in IHDR libpng warning: Image height is zero in IHDR
  26. * libpng error: Invalid IHDR data
  27. */
  28. //因此,我们将第一个字符去掉
  29. String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
  30. CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
  31. Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
  32. // Detect faces in the image.
  33. // MatOfRect is a special container class for Rect.
  34. MatOfRect faceDetections = new MatOfRect();
  35. faceDetector.detectMultiScale(image, faceDetections);
  36. System.out.println(String.format("Detected %s faces
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值