学习
实践
活动
工具
TVP
写文章

Android FaceDetector实现人脸检测功能

关于人脸检测被折磨了半个月,前2周开需求会时需要要做一个“人脸认证上传功能,具体是打开前置摄像头,识别出用户的脸并且脸在一个指定的圆圈内然后自动保存这个状态的图像待用户是否确定上传”。 然后我还搜过其它的第三方库(虹软,face++,阿里云人脸检测)这几款都不是省油的灯一款需要兼容android5.0以上,其它2款都是收费版,至于阿里云更厉害了不支持离线检测。 后来才选择了google自带api,网上一搜发现google 的一个类android.hardware.Camera里面有已经帮你封装好的人脸检测的api有这方面了解的同学可以参考一下点击打开链接。 最后发现好像没有啥捷径可走了,只好老实实使用android.media.FaceDetector进行开发。 再看看FaceThread做的Bitmap转换,Bitmap旋转及对Bitmap是否有人脸的识别 ? ?

76920

人脸检测

.imread("C:/Users/xpp/Desktop/Lena.png")#读取图像 detector=MTCNN() face_list=detector.detect_faces(img)#人脸检测与对齐 (img,keypoints["mouth_right"],1,(0,0,255),2) cv2.imwrite("C:/Users/xpp/Desktop/result.png",img) 算法:人脸检测是将人脸区域检测人脸关键点检测放在了一起 P-Net:Proposal Net,实现人脸候选框提取 R-Net:Refine Net,在P-Net输出结果的基础上进一步去除错误的候选框 O-Net:Output Net,与R-Net类似,最终输出人脸

8430
  • 广告
    关闭

    人脸识别限时特惠,10万次资源包仅需9.9元!!

    基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Camera1中的人脸检测

    检查功能是否支持 在开启人脸检测功能之前,必须检查一下该摄像头是否支持人脸检测,通过接口: // 如果返回0,则表示不支持 Parameters#getMaxNumDetectedFaces() 开启 /停止人脸检测 开启和停止人脸检测都是直接调用Camera对象提供的接口即可,使用起来是非常简单的,需要注意的是两个接口需要在预览期间调用,即启动预览后才能开启人脸检测,停止预览前关闭人脸检测 ? 因为在调用autoFocus方法的时候,Camera会停止发送人脸检测的回调,当对焦完成或者调用cancelAutoFocus之后,人脸识别的回调才会继续。 拍照期间会停止预览,所以也不会有人脸的回调,在拍照结束,调用startPreview后,还必须再调用一次开启人脸检测的方法来重新进行人脸检测 人脸识别回调 通过向Camera注册FaceDetectionListener ,可以获取到检测人脸结果 ?

    94120

    全套 | 人脸检测 & 人脸关键点检测 & 人脸卡通化

    人脸检测历险记 可能跟我一样,人脸检测是很多人学习图像处理的第一个自驱动型的任务,OpenCV刚上手没几天可能就想先跑一跑人脸检测,然后一个坑接着一个坑的往里跳。 上面用的是深度学习模型的人脸检测,但是在此之前还是稍微回顾下OpenCV自带的人脸检测器。 OpenCV自带的人脸检测 OpenCV自带了基于级联分类器的人脸检测模型,只能检测正脸,在前深度学习时代,效果已经是很好的了。 基于深度学习的人脸检测 想要深入学习的小伙伴可以尝试自己训练一个人脸检测模型练手,这里直接在Github上找一个能跑的模型CenterFace。 人脸卡通化 仅仅是人脸检测,显得略微有些没意思,所以在人脸检测的基础上,加点其他的更有意思的东西,比如上次刚玩过的卡通化。

    96550

    人脸检测——笑脸检测

    前边已经详细介绍过人脸检测,其实检测类都可以归属于同一类,毕竟换汤不换药! 无论是人脸检测还是笑脸检测,又或者是opencv3以后版本加入的猫脸检测都是一个原理,用的是detectMultiScale函数,其具体使用参考公众号历史文章中的人脸检测(一)——基于单文档的应用台程序即可 ~ 笑脸检测用的还是那个函数(还是熟悉的味道!) 这里主要分两步来说: 1.加载人脸检测器进行人脸检测 2 加载笑脸检测器进行笑脸检测 其具体程序如下,可以实现对图片的检测,也可以调用摄像头对采集到的实时图像进行检测,需要完整项目的后台回复关键词 “笑脸检测”即可~ 关键部分程序如下: ?

    1.4K70

    人脸检测——准备非人脸

    简单粗暴,不多说,直接代码吧: import os import random from PIL import Image from PIL import Im...

    37270

    人脸检测——AFLW准备人脸

    不多说了,直接代码吧: 生成AFLW_ann.txt的代码,其中包含图像名称 和 图像中人脸的位置(x,y,w,h); ** AFLW中含有aflw.aqlite文件。 f: f.writelines("%s\n" % line for line in list_annotation) AFLW图片都整理到flickr文件下(含0,1,2三个文件),生成人脸的程序 (并且对人脸进行了左右镜像): import os from PIL import Image from PIL import ImageFile # ImageFile.LOAD_TRUNCATED_IMAGES

    823100

    一行代码Android上实现人脸检测、关键点检测、口罩检测

    上实现人脸检测、关键点检测、口罩检测 一行代码实现人脸检测人脸关键点检测和戴口罩检测。 ,人脸关键点检测和戴口罩检测,并将编译好的动态库和静态库部署在Android应用上,在Android设备上实现人脸检测人脸关键点检测和戴口罩检测,所以本应不会使用到C++开发,可以只使用笔者提供的JNI 源码地址:https://github.com/yeyupiaoling/FaceKeyPointsMask Android开发 assets目录是存放各个模型的文件,pyramidbox.nb模式是人脸检测 facekeypoints.nb这个是人脸关键点检测检测人脸之后,通过这个模型检测人脸关键点。maskclassifier.nb这个模型是口罩分类模型,检测人脸之后,用这个识别是否戴口罩。 上实现人脸检测、关键点检测、口罩检测就大功告成了。

    47620

    Android CameraX NDK OpenCV(二)-- 实现Dnn人脸检测

    Dnn实时地进行人脸检测。 Dnn的人脸检测在《实践|OpenCV4.2使用DNN进行人脸检测二(视频篇)》文章中已经实现过,不过那个是在Windows平台下的,检测的方式基本就是按那个来的,这次是我们把其的部分代码移植了过来。 GIF动图 视频效果 划重点 从上面的效果很仔细的话可以看到,我们检测人脸到画上红色矩形框时偶尔会有延时的情况,这个在《Android JetPack组件CameraX使用及修改显示图像》中说过,我们在摄像机预览中上层加入了 还要注意的一点是加载的人脸检测的模型文件,因为要在NDK中加载并初始化,所以在程序中我们要考虑怎么拷模型文件先复制到Android设备本地,然后调用JNI的方法去加载模型文件。 代码部分 ? 这次改造了一下代码,把所有JNI的调用都放入一个类中,加入了initFaceDetector的初始化人脸检测和facedetector的人脸检测

    1K40

    Dlib 库 - 人脸检测人脸关键点检测

    人脸检测 Face Detector 人脸检测,是检测出图片中包含的正面人脸. 1.1. 基于 CNN 的人脸检测 采用预训练的 CNN 模型进行图片中的人脸检测. 基于 CNN 模型比基于 HOG 特征模型的人脸检测准确度更高. 人脸关键点检测 Face Landmark Detection 人脸关键点检测,首先需要检测出图片中的人脸,并估计人脸的关键点姿态(pose). CNN 人脸框及人脸关键点检测 #! ,及人脸关键点检测,并显示结果.

    9.1K41

    人脸检测:FaceBoxes

    本文链接:https://blog.csdn.net/chaipp0607/article/details/100538930 简介 FaceBoxes是一个足够轻量的人脸检测器,由中国科学院自动化研究所和中国科学院大学的研究者提出 ,旨在实现CPU下的实时人脸检测,FaceBoxes论文是《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》。 FaceBoxes原理 设计理念 FaceBoxes针对模型的效率和检测的效果做了很多设计,效率方面希望检测器足够快,检测效果方面希望有更高的召回率,尤其是针对小脸的情况,基于此: 一个下采样足够快的backbone 对于一个目标检测人脸检测模型来说,计算量高的很大一部分原因是输入图像尺寸大,图像分类任务中224是一个常用尺寸,而这个尺寸去做检测是几乎不可能的。 输出2因为RPN在做是不是目标的预测,而人脸检测中目标只有人脸一类,所以FaceBoxes的2是在预测是不是人脸。剩下的4边界框的四个值了。

    76260

    HAAR人脸检测

    import cv2 img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像 #步骤1:获取XML文件,加载人脸检测器 faceCascade=cv2 gray=cv2.cvtColor(img,cv.COLOR_BGR2GRAY)#将彩色图片转换为灰度图片 #步骤2:实现人脸检测 faces=faceCascade.detectMultiScale (gray,scaleFactor=1.03,minNeighbors=3,minSize=(3,3))#人脸检测 #步骤3:打印检测到的人脸 print(faces) print("发现{0}个人脸" .format(len(faces))) #步骤4:在原图中标记检测到的人脸 for (x, y, w, h) in faces: #步骤5:绘制圆环,标记人脸 cv2.circle(img,( waitKey() cv2.destroyAllWindows() [[192 163 168 168]] 发现1个人脸 算法:HEAR人脸检测是构造能够区分包含人脸实例和不包含人脸实例的分类器。

    14210

    OpenCV:人脸检测

    本次就来了解一下,如何通过OpenCV对人脸进行检测。 其中OpenCV有C++和Python两种,这里当然选用Python啦。 环境什么的,就靠大伙自己去百度了。 / 01 / 图片检测 先来看一下图片检测,原图如下。 ? 是谁我就不说了。律师函,不存在的。 训练数据是现成的,利用现成的数据,通过训练进而来检测人脸。 代码如下。 img = cv2.imread(filename) # 转灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 进行人脸检测 / 02 / 视频检测 视频用的抖音的上的视频。 这里只截取检测效果比较好的视频段作为例子。 毕竟训练数据的质量摆在那里,有的时候会出现一些错误。 如想提高检测的精度,便需要一个高质量的人脸数据库。 success and cv2.waitKey(1) == -1: # 读取数据 ret, img = cameraCapture.read() # 进行人脸检测

    36020

    人脸检测——fcn

    在上一篇的基础上修改即可:人脸检测——滑动窗口篇(训练和实现) !!! = (img-m)/std''' return img def min_face(img, F, window_size, stride): # img:输入图像,F:最小人脸大小 F = 24 # 构建金字塔的比例 ff = 0.8 # 概率多大时判定为人脸? _24-161800') # saver_cal_48.restore(sess, 'model/model_cal_48-10000') # 需要检测的最小人脸 detection", image) cv2.waitKey(10000) cv2.destroyAllWindows() sess.close() 检测结果

    33880

    人脸检测:SSH

    本文链接:https://blog.csdn.net/chaipp0607/article/details/100578202 简介 SSH是一个用于人脸检测的one-stage检测器,提出于2017 年8月,在当时取得了state-of-art的效果,论文是《SSH: Single Stage Headless Face Detector》,SSH本身的方法上没有太多新意,更多的是在把通用目标检测的方法往人脸检测上应用 在每一路分支上最后都有一个Detection Module(它是多种卷积的组合,后面会详细说明),最后在Detection Module输出的特征图上,参考RPN的方法滑动输出两路分支,分别负责是不是人脸的置信度 这种跨层的信息融合在通用目标检测网络中很常见,比如YOLOv2里面那个奇怪的reorg操作,在SSH之后的文章中,也有很多使用了这种思想,比如YOLOv3和FPN。 Anchor设置 由于SSH用于人脸检测,它的Anchor选取和RPN有所区别,它将人脸默认为正方形,所以Anchor只有一种比例,1:1。

    48820

    OpenCV人脸检测 人脸打码

    12020

    Android动态人脸检测的示例代码(脸数可调)

    人脸检测 这里的人脸检测并非人脸识别,但是却可以识别出是否有人,当有人时候,你可以将帧图进行人脸识别(这里推荐Face++的sdk),当然我写的demo中没有加入人脸识别,有兴趣的朋友可以追加。 face++ android自带的人脸检测 这里我们用到了人脸检测类为 FaceDetector.这个类提供了强大的人脸检测功能,可以方便我们进行人脸的侦测,因此我们使用他来进行动态的人脸检测,实现原理 ,其实也挺简单,主要是通过Carmen的回调PreviewCallback 在其中对帧图进行操作,并通过FaceDetector来检测该帧图中是否有人脸。 holder.setFormat(PixelFormat.TRANSPARENT); this.setZOrderOnTop(true); 第二步 就是我们对人脸进行检测了,当然前提是我们要获得帧图 face,返回检测后的人脸数 faceNumber = detector.findFaces(bitmap2, faces); mTV.setText("facnumber----" + faceNumber

    39731

    Android NDK OpenCV级联方式实时进行人脸检测

    前言 前面的文章《Android通过OpenCV和TesserartOCR实时进行识别》我们已经搭好一个利用NDK方式实时处理摄像头数据的程序了,今天我们就在看看OpenCV中通过级联方式实时进行人脸检测 代码演示 为了减少前面环境搭建,我们直接用《Android通过OpenCV和TesserartOCR实时进行识别》项目,在这个基础上直接实现我们的人脸检测。 facedetector.h 头文件中写入加载训练文件(loadcascade)和人脸检测(detectorface)两个方法。 ? 人脸检测方法 转为灰度图 直方图均衡化 多尺度检测detectMultiScale 在源图上绘制检测的矩形 ? /灰度图 cvtColor(src, gray, COLOR_BGRA2GRAY); //直方图均衡化 equalizeHist(gray, gray); //多尺度人脸检测

    92840

    人脸专集3 | 人脸关键点检测

    今天继续上期的《人脸关键点检测》,精彩的现在才真正的开始,后文会陆续讲解现在流行的技术,有兴趣的我们一起来学习! ? ? Deep learning based methods ? ? 对于人脸关键点检测和跟踪,有从传统方法向基于深度学习的方法转变的趋势。 Vision and Pattern Recognition, pp. 3452–3459 (2013)),深层Boltzmann模型,一个概率深度模型,被用来捕捉由于姿态和表情而引起的面部形状变化,用于人脸里程碑的检测和跟踪 近年来,卷积神经网络模型成为人脸关键点检测,主要是深度学习模型,并且大多采用全局直接回归或级联回归框架。这些方法大致可分为纯学习法和混合学习法。 URL http://arxiv.org/abs/1603.01249)提出了一个类似的多任务CNN框架,以联合执行人脸检测、地标定位、姿态估计和性别识别。

    92530

    人脸识别初探之人脸检测(一)

    还记的这篇OpenCV即时上手可学习可商用的项目 接下来准备把其中的代码公开,欢迎一起交流学习 人脸识别是个说小不小的工程,在完成这个项目之前,先把人脸检测熟悉一下。 人脸检测用到的函数如下: void detectMultiScale( InputArray image, CV_OUT std::vector<Rect ; namedWindow("display"); imshow("display", img); /*********************************** 1.加载人脸检测器 ******************************/ // 建立级联分类器 CascadeClassifier cascade; // 加载训练好的 人脸检测器(.xml) ='k') ; destroyWindow("display"); destroyWindow("face_detect"); return 0; } 效果如图: 打开相机进行人脸检测

    11530

    扫码关注腾讯云开发者

    领取腾讯云代金券