一个简单的人脸检测Demo

编程入门 行业动态 更新时间:2024-10-17 09:43:12

一个简单<a href=https://www.elefans.com/category/jswz/34/1769694.html style=的人脸检测Demo"/>

一个简单的人脸检测Demo

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

说一下环境:

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

然后复制到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
具体参照   
我从网上下载了cv2  ()  这里面包含了分类器模型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会把两个不兼容的包打包???

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

升级版 能批量识别

 

 

 

更多推荐

一个简单的人脸检测Demo

本文发布于:2024-03-10 21:01:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1729022.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:的人   简单   Demo

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!