IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 第二节课:人脸识别 -> 正文阅读

[人工智能]第二节课:人脸识别

步骤:定位、对齐、识别

1.使用openCV定位多个人脸

先确认路径,不正确用os.chdir()修改;

须找到cv2在电脑中的安装路径

import cv2
import os
import matplotlib.pyplot as plt#别名,缩短字符串

os.chdir(r'D:\a learn sth\大三上\Python程序设计\人脸识别')

def detect(filename):
    face_cascade=cv2.CascadeClassifier(r'D:\anacondainstallfolder\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
#我在python的东西安装包在D:\anacondainstallfolder\Lib\site-packages下

    img=cv2.imread(filename)#读取,查一下
    gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#将彩色的转换为灰度图片

    faces=face_cascade.detectMultiScale(gray,1.3,5)
    
    for(x,y,w,h)in faces:
        img=cv2.rectangle(img,(x,y),(x+w,y+w),(255,0,0),2)#用cv2函数画矩形;定义线的颜色(红,绿,蓝)
    plt.imshow(img)
    plt.axis('off')
    plt.show()
    
detect('yu.jpg')

2.人脸对齐

先安装 dlib,再装face_recognition(依赖于dlib);

?gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)改成灰度图;

import cv2
import dlib
import matplotlib.pyplot as plt

path="yu2.jpg"
img=cv2.imread(path)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#改成灰度图

人脸分类器detector;

detector=dlib.get_frontal_face_detector()#人脸分类器

选用人脸检测器(5/68点),需要找到所在电脑中的路径

#68点人脸检测器
predictor=dlib.shape_predictor(r"D:\anacondainstallfolder\Lib\site-packages\face_recognition_models\models\shape_predictor_5_face_landmarks.dat")
#5点
#predictor=dlib.shape_predictor(r"D:\anacondainstallfolder\Lib\site-packages\face_recognition_models\models\shape_predictor_68_face_landmarks.dat")

dets=detector(gray,1)
for face in dets:
    shape=predictor(img,face)#寻找人脸的5\68个标记点;遍历所有点,打印出其坐标,并圈出来
    for pt in shape.parts():
        pt_pos=(pt.x,pt.y)
        img=cv2.circle(img,pt_pos,6,(255,0,0),1)#(255,0,0)是点的颜色
        
    plt.imshow(img)
    plt.axis('off')
    plt.show()

3.人脸识别

known_image;unknown_image;

import cv2
import face_recognition
import matplotlib.pyplot as plt

known_image=cv2.imread('1.jpg')
known_image=face_recognition.load_image_file('1.jpg')

unknown_image=cv2.imread('2.jpg')
unknown_image=face_recognition.load_image_file('2.jpg')

known_encoding;unknown_encoding

known_encoding=face_recognition.face_encodings(known_image)[0]
unknown_encoding=face_recognition.face_encodings(unknown_image)[0]
results=face_recognition.compare_faces([known_encoding],
                                     unknown_encoding,
                                     tolerance=0.4)
if results[0]==True:
    print("匹配成功,该未知图片与已有图片人脸可匹配!")
else:
    print("匹配失败!")
    
#print(known_encoding)
#print(unknown_encoding)
plt.imshow(known_image)
plt.axis('off')
plt.show()

plt.imshow(unknown_image)
plt.axis('off')
plt.show()

相关知识

报错1:eclipse中使用Opencv报错 error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

解决方法:是路径错误,注意:输出的图片中不要用带有中文的路径名和文件名

【查看文档】pydoc可查看所安装内容的文档

【安装】不能直接下载dlib就先下载对应版本的whl(我Python3.8),再直接pip下载dlib和face_recognition即可

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:34:02  更:2021-09-24 10:36:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:56:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码