2021-09-17 python软件设计 练习2
2021/9/17 22:04:55
本文主要是介绍2021-09-17 python软件设计 练习2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
引言
Python之父Guido
他的个人页面:Guido's Personal Home Page
本次课开始学习利用OpenCV、Dlib、Face-Recognition进行人脸识别
三步:定位,对齐,识别
1.使用OpenCV定位多个人脸
import cv2 import os import matplotlib.pyplot as plt os.chdir('D:\python\Lib\site-packages\cv2') #改变当前工作目录到指定的路径(分类器文件夹位置) def detect(filename): face_cascade = cv2.CascadeClassifier('D:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml') img = cv2.imread(filename) #图片放在和.py一个文件夹里,即cv2文件夹 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将BGR图片转换为灰度图像再用已有的分类器模型识别人脸 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) plt.imshow(img) plt.axis('off') plt.show() detect('face.jpg')
①关于os.getcwd()和os.chdir()
os.getcwd() 获得当前的路径
需要说明的是,当前目录并不是指脚本所在的目录,而是所运行脚本的目录。
>>>import os
>>>print os.getcwd()
D:\Program Files\Python27
这里的目录即是python的安装目录。若把上面的两行语句保存为getcwd.py,保存于E:\python\盘,运行后显示是E:\python
os.chdir() 修改当前工作目录到指定的路径
os.chdir( path )
path – 要切换到的新路径
②生成结果
2.使用Face-recognition提高精确度
face_recognition依赖于dlib,dlib依赖于openCV
安装包下载链接: https://pypi.org/project
Built using dlib’s state-of-the-art face recognition built with deep learning. The model has an accuracy of 99.38% on the Labeled Faces in the Wild benchmark.
Labeled Faces in the Wild
import face_recognition image=face_recognition.load_image_file("photo.jpg") face_locations=face_recognition.face_locations(image) face_num2=len(face_locations) print(face_num2)#The number of faces org=cv2.imread("photo.jpg") for i in range(0,face_num2): top=face_locations[i][0] right=face_locations[i][1] bottom=face_locations[i][2] left=face_locations[i][3] start=(left,top) end=(right,bottom) color=(255,0,0) thickness=5 img=cv2.rectangle(org,start,end,color,thickness) # opencv 里面画矩形的函数 plt.imshow(img) plt.axis('off') plt.show()
生成结果
3.使用深度学习更加精确的CNN(卷积神经网络)
人脸检测模型默认使用HOG算法,也可以使用CNN。
hog在cpu上的准确性较低,但速度更快。cnn是一个更精确的深度学习模型。
import face_recognition import cv2 import matplotlib.pyplot as plt image = face_recognition.load_image_file("photo.jpg") face_locations_useCNN = face_recognition.face_locations(image,model='cnn') face_num1=len(face_locations_useCNN) print(face_num1) # The number of faces org = cv2.imread("photo.jpg") for i in range(0,face_num1): top = face_locations_useCNN[i][0] right = face_locations_useCNN[i][1] bottom = face_locations_useCNN[i][2] left = face_locations_useCNN[i][3] start = (left, top) end = (right, bottom) color = (0,255,255) thickness = 2 img=cv2.rectangle(org, start, end, color, thickness) plt.imshow(img) plt.axis('off') plt.show()
①理解HOG和CNN
HOG是目前计算机视觉、模式识别领域很常用的一种描述图像局部纹理的特征。在一副图像中,局部目标的表象和形状能够被梯度或边缘的方向密度分布很好地描述。
CNN(卷积神经网络)是所有深度学习课程、书籍必教的模型,CNN在影像识别方面的为例特别强大,许多影像识别的模型也都是以CNN的架构为基础去做延伸。
②生成结果
这篇关于2021-09-17 python软件设计 练习2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型