大数据分析技术

陈清华、田启明、施郁文等

目录

  • 课程简介
    • ● 课程简介
  • 环境准备
    • ● Anaconda环境安装与使用
    • ● Pycharm环境安装
    • ● 常用第三方包的安装与配置
  • 项目一 电影数据统计
    • ● 任务简介
    • ● 数据获取
    • ● 数据解析
    • ● 数据分析
    • ● 数据可视化
    • ● 课堂思政:新型冠状病毒疫情分析与可视化
    • ● 课堂思政:中国工匠精神
  • 项目二 电影数据分析(回归)
    • ● 任务简介
    • ● 使用一元线性回归分析电影票房数据
    • ● 使用多项式回归分析电影票房数据
    • ● 使用多元线性回归分析电影票房数据
    • ● 课堂实训:工资分析
  • 项目三 爬取房产租赁数据
    • ● 任务简介
    • ● 电影数据爬取
    • ● 房产租赁数据爬取
    • ● 房产租赁数据统计
    • ● 课后实训:二手房数据爬取
    • ● 课堂思政:疫情数据的爬取与可视化
  • 项目四 房屋租赁数据分析与可视化
    • ● 任务简介
    • ● 使用箱形图展现租赁价格分布特征
    • ● 使用散点图展现房屋面积与租赁价格的关系
    • ● 使用饼图展现不同行政区域的可租赁房源占比
    • ● 使用折线图可视化房间数与租赁价格的关系
    • ● 使用热力图展现地理位置的影响
    • ● 课后实训:二手房数据分析
    • ● 课堂思政:疫情数据分析与可视化
  • 项目五 身高与体重数据分析(分类器)
    • ● 使用身高、体重数据进行性别分类
      • ● 使用逻辑回归进行性别分类
      • ● 使用朴素贝叶斯进行性别分类
      • ● 使用决策树模型进行性别分类
      • ● 使用支持向量机进行性别分类
    • ● 使用支持向量机进行肥胖程度分类
    • ● 课后实训: 身高体重数据分析(分类器)
  • 项目六 鸢尾花分类
    • ● 任务简介
    • ● 使用K近邻对鸢尾花进行分类
    • ● 使用随机森林对鸢尾花进行分类
    • ● 使用神经网络对鸢尾花进行分类
  • 项目七 电影评分数据分析(聚类)
    • ● 任务简介
    • ● 使用BDSCAN确定质心个数
    • ● 使用K-Means对观影用户进行聚类
  • 项目八 人脸检测与人脸识别
    • ● 任务简介
    • ● 图像中的人脸检测
    • ● 视频中的人脸检测
    • ● 图像中的人脸识别
    • ● 视频中的人脸识别
    • ● 课后实训:眼睛与笑脸检测
    • ● 课堂思政:人工智能与弯道超车
  • 项目九 手写数字识别应用
    • ● 任务简介
    • ● 图像数据集准备
    • ● 使支持向量机识别手写数字
    • ● 使用神经网络识别手写数字
    • ● 课后实训:使用不同的机器学习方法识别数字手写体
  • 项目十  深度学习在行为识别中的应用
    • ● 任务简介
    • ● 使用卷积神经网络识别行为
    • ● 使用循环神经网络识别行为
    • ● 课后实训:电影评论数据分析
  • 项目十一 TensorFlow与神经网络
    • ● 任务简介
    • ● 使用单层神经网络预测花瓣宽度
    • ● 设计多层神经网络实现鸢尾花分类
    • ● 课后实训:卷积神经网络的实现与应用
  • 项目综合实训(17级学生案例)
    • ● 综合实训要求
    • ● 确定数据采集目标
    • ● 数据采集与预处理
    • ● 数据统计与分析
    • ● 数据分析与预测
    • ● 数据分类应用
    • ● 17级实训案例:二手车数据获取与市场分析
视频中的人脸检测

在图片中识别如上节所示,那么在动态的视频中识别人脸如何实现?通过调用机器的摄像头,实现实时人脸检测。

任务2.1:使用OpenCV实现视频中的人脸检测。

     以下是OpenCV中调用摄像头的代码示例,当点击ESC时,退出摄像程序。

 

#!/usr/bin/Python
 # -*- coding: utf-8 -*-

 

import cv2

 

# 初始化
 
cap = cv2.VideoCapture(0)
 
# 视频缩放放大小
 
scaling_factor = 0.5
 
#循环摄像,直至点击ESC
 
while True:
    
# 读取视频中的一帧(frame
    
ret, frame =  cap.read()
    
#图像大小绽放
    
frame =  cv2.resize(frame, None, fx=scaling_factor,  fy=scaling_factor,  
            
interpolation=cv2.INTER_AREA)
    
#显示图像
    
cv2.imshow('camera', frame)
    
# 获取键盘事件
    
c = cv2.waitKey(1)
    
if c == 27: #ESC
        
break
 
# 释放摄像头
 
cap.release()
 
# 关闭窗口
 
cv2.destroyAllWindows()

 

任务2.2:当需要保存图像,则点击的键盘是“s”。

参考代码如下:

 

import time

 

 

 

if c ==ord('s'):
     i = i +
1;
     cv2.
imwrite('img' + time.strftime('%m-%d-%S', time.localtime(time.time()))  + str(i) + '.jpg', frame)
 
elifc == 27: #ESC
    
break

 

点击三下“s”键后,保存的图像结果如图所示。

                             

任务2.3:实时获取视频并检测其中的人脸。

参考代码如下:

 

#!/usr/bin/Python
 # -*- coding: utf-8 -*-

 

import cv2
 
import numpyas np
 
# 加载人脸检测器
 
face_cascade = cv2.CascadeClassifier('cascade_files/haarcascade_frontalface_alt.xml')
 
# 检测分类器是否存在
 
if face_cascade.empty():
   
raise IOError('Unable to load  the face cascade classifier xml file')
 
# 初始化视频接口
 
cap = cv2.VideoCapture(0)
 
# 定义缩放比例尺
 
scaling_factor = 0.5
 
# 点击ESC退出
 
while True:
    
# 获取当前视频中的一帧图像
    
ret, frame =  cap.read()
     frame = cv2.resize(frame,
None, fx=scaling_factor,  fy=scaling_factor,  
            
interpolation=cv2.INTER_AREA)
    
#  转换成灰度图
    
gray = cv2.cvtColor(frame,  cv2.COLOR_BGR2GRAY)
    
#  运行人脸检测
    
face_rects = face_cascade.detectMultiScale(gray, 1.3, 5)
    
#  画出识别
    
for (x,y,w,h) in face_rects:
         cv2.rectangle(frame, (x,y),  (x+w,y+h), (
255,0,0), 2)
    
#  在视频中显示该图像
    
cv2.imshow('Face Detector-Camera', frame)
    
#  如何ESC被按下,退出程序
    
c = cv2.waitKey(1)
    
if c == 27:
        
break
 
cap.release()
 cv2.
destroyAllWindows()

 

实时人脸检测运行结果如图8.8所示。


(1)有人              (2)无人脸