Python与机器学习--人脸检测与人脸识别

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人脸检测与人脸识别
知识回顾
Car 情报局
重点: • 机器学习、无监督学习、聚类 • DBSCAN • KMeans 难点: • 聚类方法的理解与参数选择 作业:实验报告
知识回顾:无监督学习
Car 情报局
无监督学习常常被用于数据挖掘,用于在大量无标签数据 中发现些什么。它的训练数据是无标签的,训练目标是能 对观察值进行分类或者区分等。
faces = faceCascade.detectMultiScale(predict_image, 1.1, 2, minSize=(100,100)) # 人脸识别
for (x, y, w, h) in faces: # 识别
predicted_index, conf = recognizer.predict(
predict_image[y:y+h, x:x+w])
上机时间:15min
Car 情报局
• 数据准备 • 人脸识别 • 结果标记 • 实验报告步骤part2: 1
项目二拓展:识别标记格式化
Car 情报局
cv2.rectangle(predict_image, (x, y), (x + w, y + h), (0, 0, 255), 2) cv2.rectangle(predict_image, (x, y + h - 35), (x + w, y + h), (0, 0, 255), 2) cv2.putText(predict_image, predicted_person,
(x + 6,y + h - 6),cv2.FONT_HERSHEY_DUPLEX, 1.5, (255,255,255), 2) cv2.imshow("result", predict_image) cv2.imwrite("result-" + predicted_person + '.jpg', predict_image)
一、人工智能
Car 情报局
1950s ~ 1970s 推理期
1980s ~ present
学习期 归纳学习 机器学习
1990s
神经网络 BP-ANN
2000s~
深度学习 强化学习 迁移学习
1970s ~ 1990s
知识期 专家系统
1980s
决策树 Proiog
1990s ~ 2000s 统计机器学习 SVM Kernel methods
➢ 基于模型的方法(model-based methods):统计的方案和神经网络的方案
知识回顾:使用BDSCAN聚类确定质心个数
边界点:若其领域内 点不超过MinPts个
Car 情报局
Eps MinPts=5
核心点:若其领域内 点超过MinPts个
from sklearn.cluster import DBSCAN y_pred = DBSCAN().fit_predict(data) plt.scatter(data[0],data[1], c=y_pred)
知识回顾:使用K-Meawenku.baidu.coms对观影用户进行聚类 Car 情报局
# 训练
num_clusters = 3 kmeans = KMeans(init='K-Means++’, n_clusters=num_clusters, n_init=10) kmeans.fit(data)
主要教学内容
人脸识别
➢ 层次方法(hierarchical methods)::BIRCH算法、CURE算法、CHAMELEON 算法
➢ 基于密度的方法(density-based methods)::DBSCAN算法、OPTICS算法、 DENCLUE算法
➢ 基于网格的方法(grid-based methods):STING算法、CLIQUE算法、WAVECLUSTER算法
项目二:人脸识别
Car 情报局
• 准备训练集与测试集,并 对训练集做好标记
• 撰写代码训练模型 • 使用测试集识别对象
1、 样本的创建(正样本和负样本) 2、 训练分类器(生成.xml) 3、 利用训练好的分类器进行目标检测
项目二:人脸识别
Car 情报局
项目二:人脸识别
Car 情报局
• 准备训练集与测试集,并对训练集做好标记 # 获取训练数据集
项目二拓展:视频中的人脸识别
1、训练模型加载 2、人脸检测 3、人脸预测(识别) 4、标记与输出 cap = cv2.VideoCapture(0) while True:
# Capture the current frame and resize it ret, frame = cap.read()
二、计算机视觉
Car 情报局
从图像或者多维数据中获取信息的人工智能 系统,是使计算机能像人那样通过视觉观察 和理解世界,具有自主适应环境的能力。
三、人脸识别
目标检测
场景理解
目标跟踪
计算机视觉 热点领域
立体视觉
目标识别
动作识别
Car 情报局
人脸检测(Face Detection)和人 脸识别(Face Recogonition)技 术是计算机视觉领域中最热门的应用。 2017年,《麻省理工科技评论》发 布全球十大突破性技术榜单,来自中 国的刷脸支付技术位列其中。
上机时间:15min
Car 情报局
• 图片读取 • 人脸检测 • 实验报告步骤part1:1
项目一拓展:人脸中的鼻子识别
Car 情报局
• 'cascade_files/haarcascade_mcs_nose.xml’ • noses = nose_cascade.detectMultiScale(roi_gray,1.3,5)
images, labels, le = get_images_and_labels(path_train) • 撰写代码训练模型
import cv2 # 人脸识别方法初始化
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(images, np.array(labels)) • 使用测试集识别对象 # 人脸检测
项目一:图像中的人脸检测
Car 情报局
import numpy as np import cv2 as cv face_cascade = cv.CascadeClassifier('cascade_files/haarcascade_frontalface_alt.x ml') img = cv.imread('people.jpg') gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
人工智能 计算机视觉 人脸检测 人脸识别
项目:人脸检测与人脸识别应用
图像读取 人脸检测与标记 人脸识别与标记 视频中的人脸检测与识别
Car 情报局
一、人工智能
Car 情报局
人工智能(Artificial Intelligence,AI):人工智能是人类设计并在计算机环境下实 现的模拟或再现某些人智能行为的技术,是研究使计算机来模拟人的某些思维过程和 智能行为(如学习、推理、思考、规划等)的学科,研究的一个主要目标是使机器能 够胜任一些通常需要人类智能才能完成的复杂工作。
无监督主要有三种: • 聚类 • 离散点检测 • 降维
知识回顾:聚类
Car 情报局
• 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程 “物以类聚,人以群分”
• 核心:提取特征 • 主要方法:
➢ 划分方法(partitioning methods):K-MEANS算法、K-MEDOIDS算法、 CLARANS算法
Car 情报局
Car 情报局
THANK YOU!
• 'cascade_files/haarcascade_mcs_nose.xml’ • noses = nose_cascade.detectMultiScale(roi_gray,1.3,5)
Car 情报局
项目一拓展:视频中的人脸检测
Car 情报局
# Initialize the video capture object cap = cv2.VideoCapture(0) while True: # Capture the current frame and resize it
Car 情报局
上机时间:15min
Car 情报局
• 数据准备 • 人脸识别 • 结果标记 • 实验报告步骤part2: 2-3
课堂小结
重点: • 人工智能 • 计算机视觉 • 人脸检测、人脸识别 • OpenCV包的使用 难点: • 视频中的人脸识别应用 思考: • dlib人脸识别的应用? 作业:实验报告
faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces:
cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv.imshow('img',img) cv.waitKey(0) cv.destroyAllWindows()
ret, frame = cap.read() frame = cv2.resize(frame, None, fx=scaling_factor, fy=scaling_factor, interpolation=cv2.INTER_AREA)
上机时间:15min
Car 情报局
• 图片读取 • 人脸检测 • 鼻子检测 • 实验报告步骤part1:2 • 选做步骤part1:3
四、人脸识别与人脸检测
Car 情报局
人脸识别则是在假设图像或者图像序列中有人脸的情况下,根据人脸的特征判 断人的身份等信息,即确定检测到的人脸是谁。
五、OpenCV开放的计算机视觉包
Car 情报局
项目一:图像中的人脸检测
Car 情报局
检测并定位图片中的人脸,返回高精度的人脸框坐标
主要步骤: • 1、程序从电脑文档中读取图片 • 2、加载已经训练好的人脸检测包 • 3、图片预处理理 • 4、检测人脸位置,并标记 • 5、显示标记,并保存
项目一拓展:人脸中的鼻子识别
for (x,y,w,h) in faces: cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] noses = nose_cascade.detectMultiScale(roi_gray,1.3,5) for (ex,ey,ew,eh) in noses: cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) break
相关文档
最新文档