社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

20行python代码实现人脸识别

数据分析小助手 • 5 年前 • 481 次点击  


OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python。


它使用机器学习算法在图像中搜索人的面部。对于人脸这么复杂的东西,并没有一个简单的检测能对是否存在人脸下结论,而需要成千上万的特征匹配。算法把人脸识别任务分解成数千个小任务,每个都不难处理。这些任务也被称为分类器。


对于类似于人脸的对象,你或许需要不少于 6000 个分类器,每一个都需要成功匹配(当然,有容错率),才能检测出人脸。但这有一个问题:对于人脸识别,算法从左上角开始计算一个个数据块,不停问“这是张脸吗”。每个数据块有超过 6000 个检测,加起来的计算量会达到数百万级别,计算机很可能会让你等得花儿都谢了。


OpenCV 使用 cascades 来避免这种情况。Cascade 是什么?最佳答案已经在字典里了:一条瀑布或者连续瀑布。


好比连续瀑布,OpenCV cascade 把人脸检测问题分解为好几步。对于每个数据块,它都进行一个粗略、快速的检测。若通过,会再进行一个更仔细的检测,以此不断类推。该算法有 30 到 50 个这样的阶段,或者说 cascade。


只有通过全部阶段,算法才会判断检测到人脸。这样做的好处是:大多数图形都会在头几步就产生否定反馈,算法因而不需要在它上面测试所有 6000 个特征,大大节省了时间。相对于“正常流程”耗费数个小时,这可以实时实现人脸检测。



软件环境:

python3+openCV



代码:

#encoding:utf-8
import cv2
filename = "/users/Downloads/20181102142518.png"

def detect(filename):
    # haarcascade_frontalface_default.xml存储在package安装的位置
face_cascade = cv2.CascadeClassifier("/usr/local/lib/python3.6/site-packages/cv2/data/haarcascade_frontalface_default.xml")
    img = cv2.imread(filename)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    #传递参数是scaleFactor和minNeighbors,分别表示人脸检测过程中每次迭代时图像的压缩率以及每个人脸矩形保留近邻数目的最小值
    #检测结果返回人脸矩形数组
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x, y, w, h) in faces:
        img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
    cv2.namedWindow("Human Face Result!")
    cv2.imshow("Human Face Result!", img)
    cv2.imwrite("images/Face.jpg", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

detect(filename)




识别后:



微信公众号:数据分析联盟


http://weixin.qq.com/r/V3XUzBbEm0vkrVKv9yBF (二维码自动识别)


数据分析宝典【手机淘宝口令】:


【数据分析侠 《人人都会数据分析》20万字电子书】https://m.tb.cn/h.3i7mJyz 点击链接,再选择浏览器咑閞;或復·制这段描述¥8iohbTKiaBs¥后到👉淘♂寳♀👈[来自超级会员的分享]


【七月算法 机器学习 深度学习 python数据分析 邹博】https://m.tb.cn/h.3iWDgFB 点击链接,再选择浏览器咑閞;或復·制这段描述¥S8iIbTKiQoX¥后到👉淘♂寳♀👈[来自超级会员的分享]


【机器学习实战Python全套代码包括训练数据集图片数据演示案例】https://m.tb.cn/h.3ik7Hmf 点击链接,再选择浏览器咑閞;或復·制这段描述¥dRgIbTKiBvJ¥后到👉淘♂寳♀👈[来自超级会员的分享]


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/RoNtlvqVNv
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/25964
 
481 次点击