一个简单的人脸检测Demo

放假回来,闲着翻了下电脑看见一个人脸识别的Demo   照着做了下,遇到了一些小麻烦,好在做出来了,挺有意思。

说一下环境:

安装好了Tensorflow   Pycharm  等环境,在网上看到了这份代码

https://blog.csdn.net/weixin_39329548/article/details/81541888

然后复制到Pycharm中,虚拟环境我设置为 

Inherit global site-packages继承了全局的虚拟环境,这样不用每个包都安装一遍了,缺哪个包再单独安装

下面是源代码

 

import cv2
pathofeye='/home/apollo/pan/cv2/data/haarcascades/haarcascade_eye.xml'
pathoffront='/home/apollo/pan/cv2/data/haarcascades/haarcascade_frontalface_default.xml'

'''
这里注意一定要用全路径   否则报错  error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale
具体参照   https://blog.csdn.net/qq_20156437/article/details/80702022
我从网上下载了cv2  (https://github.com/opencv/opencv)  这里面包含了分类器模型haarcascade_eye.xml等 我保存的位置是
/home/apollo/pan/cv2/data/haarcascades/ 一定要能寻找到分类器模型

'''


faceCascade = cv2.CascadeClassifier(pathoffront)

image = cv2.imread(r"time.jpg")  #读取图片   这里可以加一个判断,否则没有读取到图片还会引起其他莫名其妙的错误

size = image.shape
h, w = size[0], size[1]  #获取图片的大小   后续我根据这个比例缩放


print (h,w)   #打印大小


gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.2,
minNeighbors=5, minSize=(30, 30),)
for (x, y, width, height) in faces:
    cv2.rectangle(image, (x, y), (x + width, y + height), (0, 255, 0), 2)
    im2 = cv2.resize(image, (int(w*0.55), int(h*0.55)), interpolation=cv2.INTER_CUBIC)  
 # int(w*0.55), int(h*0.55)是按照55%的比例缩放,注意这个参数只接受整数,这里需要转换一下
    cv2.imshow("Face", im2)

cv2.waitKey(0)  #注意  这里的等待要放在for循环外面  否则识别会有卡顿 这句为了防止图片一闪而过

 

 

识别结果(找了一张小姐姐多的图片试验)

 

时间长不学习,突然学点东西感觉挺充实的

 

 

今天(24,Feb )更新一下:由于我昨天弄了一个项目,那个库给我更新了全局的numpy  ,然后我又懒直接从全局创建了一个一个项目,然后复制进去代码,结果尴尬了…… 一直显示这个错误python-opencv:ImportError: numpy.core.multiarray failed to import, 装逼失败对于我来说无法忍受。弄了一下午,Python 都折腾了一遍3.7  3.6  最后郁闷的出去吃串(吐槽一下,作为一个守旧的人真的讨厌软件,库频繁更新,有的程序员刷尼玛存在感,更新的越来越垃圾有意思么?各种不兼容!我的理念是软件系统什么的稳定最好,有一种什么软件,系统都要最新的我比较讨厌)  

回归原题,我今天找了很久原因,大部分都归结于与numpy这个万恶之源的版本兼容问题,于是我把opencv-python 和numpy卸载,然后在pip install opencv-python 然后这个软件给我附赠了numpy版本1.16 

我新建了一个Pycharm 然后照样继承全局环境Inherit-global  运行结果问题照旧,于是我孤注一掷,开始折腾numpy版本,先安装到1.9  出现的问题是module compiled against API version 0xa but this version of numpy is 0x9   然后我又安装1.12.0这次终于成功。有看到久违的小姐姐们,好开心

总结下经验就是,版本未必新就好,未必旧就好,合适兼容是王道。这也是python设计虚拟环境的原因吧(虽然我没太弄懂环境间的关系),不过python各种包版本兼容问题确实很坑爹,又没法调试,只能求助,碰运气摸索。我在Pycharm更改了numpy版本,并未影响pip中版本。numpy真是万恶之源,但是我搞不懂为什么opencv-python会把两个不兼容的包打包???

以后自己写程序最好把关键的包版本号附上  方便其他人用的时候调整版本

升级版 能批量识别

https://blog.csdn.net/weixin_39296257/article/details/88391572

 

 

 

微信人脸检测demo是一种基于人工智能技术的软件应用,它能够通过微信平台对用户上传的图片进行人脸识别和检测。 该demo主要包含以下几个方面的功能:人脸检测人脸识别和人脸特征提取。 首先,人脸检测是该demo的基本功能之一。当用户上传一张图片时,该demo利用先进的人脸检测算法,能够准确地判断出图片中是否存在人脸,并标记出人脸的位置和轮廓。这个功能可以方便用户快速找到图片中的人脸部分,对人脸进行进一步的操作。 其次,人脸识别是该demo的另一个重要功能。通过训练和匹配算法,该demo能够判断出人脸图片中的具体身份,即对上传的人脸图片进行匹配,从已有的人脸数据库中找到对应的人脸信息。这个功能对于个人用户来说,可以方便地管理和查找自己的人脸信息,对于企业用户来说,可以用于人员的身份认证和出入管理等方面。 最后,人脸特征提取是该demo的另一个重要功能。通过分析人脸图像中的特征点、轮廓等特征,该demo能够提取出人脸的一些重要特征信息,如年龄、性别、表情等。这个功能可以为用户提供更多的人脸相关信息,同时也可以用于情感分析、人群统计等方面。 总而言之,微信人脸检测demo在微信平台上提供了一种便捷、准确的人脸识别和检测服务,不仅方便了个人用户的人脸管理,还能为企业用户提供更多的人脸相关信息,对于促进人脸识别技术的发展和应用有着重要的意义。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值