当前位置: 首页 > news >正文

原创文章网站网站如何在百度刷排名

原创文章网站,网站如何在百度刷排名,南通网站建设.,深度网络科技是干嘛的文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度…

文章目录

  • 1 前言
  • 2 相关技术
    • 2.1CNN简介
    • 2.2 人脸识别算法
    • 2.3专注检测原理
    • 2.4 OpenCV
  • 3 功能介绍
    • 3.1人脸录入功能
    • 3.2 人脸识别
    • 3.3 人脸专注度检测
    • 3.4 识别记录
  • 4 最后

1 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 基于深度学习的人脸专注度检测计算算法

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:5分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

2 相关技术

2.1CNN简介

卷积神经网络(CNN),是由多层卷积结构组成的一种神经网络。卷积结构可以减少网络的内存占用、参数和模型的过拟合。卷积神经网络是一种典型的深度学习算法。广泛应用于视觉处理和人工智能领域,特别是在图像识别和人脸识别领域。与完全连接的神经网络相比,CNN输入是通过交换参数和局部感知来提取图像特征的图像。卷积神经网络是由输入层、卷积层、池化层、全连接层和输出层五层结构组成。其具体模型如下图所示。
在这里插入图片描述

(1)输入层(Input
layer):输入层就是神经网络的输入端口,就是把输入传入的入口。通常传入的图像的R,G,B三个通道的数据。数据的输入一般是多维的矩阵向量,其中矩阵中的数值代表的是图像对应位置的像素点的值。

(2)卷积层(Convolution layer):卷积层在CNN中主要具有学习功能,它主要提取输入的数据的特征值。

(3)池化层(Pooling
layer):池化层通过对卷积层的特征值进行压缩来获得自己的特征值,减小特征值的矩阵的维度,减小网络计算量,加速收敛速度可以有效避免过拟合问题。

(4)全连接层(Full connected
layer):全连接层主要实现是把经过卷积层和池化层处理的数据进行集合在一起,形成一个或者多个的全连接层,该层在CNN的功能主要是实现高阶推理计算。

(5)输出层(Output layer):输出层在全连接层之后,是整个神经网络的输出端口即把处理分析后的数据进行输出。

2.2 人脸识别算法

利用dlib实现人脸68个关键点检测并标注,关键代码

import cv2# 加载人脸识别模型face_rec_model_path = 'dlib_face_recognition_resnet_model_v1.dat'facerec = dlib.face_recognition_model_v1(face_rec_model_path)# 加载特征点识别模型predictor_path = "shape_predictor_5_face_landmarks.dat"predictor = dlib.shape_predictor(predictor_path)# 读取图片img_path = "step1/image/face.jpg"img = cv2.imread(img_path)# 转换为灰阶图片gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 正向人脸检测器将图像detector = dlib.get_frontal_face_detector()# 使用人脸识别模型来检测图像中的人脸faces = detector(gray, 1)# 使用特征点识别模型来检测人脸中的特征for i, face in enumerate(faces):# 获取人脸特征点shape = predictor(img, face)

2.3专注检测原理

总体流程

主要通过电脑摄像头去实时的抓拍学生当前的状态和行为,不间断的采集学生上课时的面部表情和眼睛注视的方向,利用CNN提取相应的特征数据并进行分析处理,若对应输出的判断值大于设置的阈值时,则认为学生在走神没有认真学习。并且对拍摄时间进行计时,在界面上实时输出该学生在课堂上的有效学习时间和学生在课堂上专注时间的比例并进行存入表格中。

在这里插入图片描述

眼睛检测算法

基于dlib人脸识别68特征点检测、分别获取左右眼面部标志的索引,通过opencv对视频流进行灰度化处理,检测出人眼的位置信息。人脸特征点检测用到了dlib,dlib有两个关键函数:dlib.get_frontal_face_detector()和dlib.shape_predictor(predictor_path)。

前者是内置的人脸检测算法,使用HOG pyramid,检测人脸区域的界限(bounds)。
后者是用来检测一个区域内的特征点,并输出这些特征点的坐标,它需要一个预先训练好的模型(通过文件路径的方法传入),才能正常工作。
使用开源模型shape_predictor_68_face_landmarks.dat,可以得到68个特征点位置的坐标,连起来后,可以有如图所示的效果(红色是HOG
pyramid检测的结果,绿色是shape_predictor的结果,仅把同一个器官的特征点连线)。

在这里插入图片描述

通过计算眼睛的宽高比来确定专注状态

基本原理:计算 眼睛长宽比 Eye Aspect Ratio,EAR.当人眼睁开时,EAR在某个值上下波动,当人眼闭合时
在这里插入图片描述

关键代码

 # -*- coding: utf-8 -*-# import the necessary packagesfrom scipy.spatial import distance as distfrom imutils.video import FileVideoStreamfrom imutils.video import VideoStreamfrom imutils import face_utilsimport numpy as np # 数据处理的库 numpyimport argparseimport imutilsimport timeimport dlibimport cv2def eye_aspect_ratio(eye):# 垂直眼标志(X,Y)坐标A = dist.euclidean(eye[1], eye[5])# 计算两个集合之间的欧式距离B = dist.euclidean(eye[2], eye[4])# 计算水平之间的欧几里得距离# 水平眼标志(X,Y)坐标C = dist.euclidean(eye[0], eye[3])# 眼睛长宽比的计算ear = (A + B) / (2.0 * C)# 返回眼睛的长宽比return ear# 定义两个常数# 眼睛长宽比# 闪烁阈值EYE_AR_THRESH = 0.2EYE_AR_CONSEC_FRAMES = 3# 初始化帧计数器和眨眼总数COUNTER = 0TOTAL = 0# 初始化DLIB的人脸检测器(HOG),然后创建面部标志物预测print("[INFO] loading facial landmark predictor...")# 第一步:使用dlib.get_frontal_face_detector() 获得脸部位置检测器detector = dlib.get_frontal_face_detector()# 第二步:使用dlib.shape_predictor获得脸部特征位置检测器predictor = dlib.shape_predictor('D:/myworkspace/JupyterNotebook/fatigue_detecting/model/shape_predictor_68_face_landmarks.dat')# 第三步:分别获取左右眼面部标志的索引(lStart, lEnd) = face_utils.FACIAL_LANDMARKS_IDXS["left_eye"](rStart, rEnd) = face_utils.FACIAL_LANDMARKS_IDXS["right_eye"]# 第四步:打开cv2 本地摄像头cap = cv2.VideoCapture(0)# 从视频流循环帧while True:# 第五步:进行循环,读取图片,并对图片做维度扩大,并进灰度化ret, frame = cap.read()frame = imutils.resize(frame, width=720)gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 第六步:使用detector(gray, 0) 进行脸部位置检测rects = detector(gray, 0)# 第七步:循环脸部位置信息,使用predictor(gray, rect)获得脸部特征位置的信息for rect in rects:shape = predictor(gray, rect)# 第八步:将脸部特征信息转换为数组array的格式shape = face_utils.shape_to_np(shape)# 第九步:提取左眼和右眼坐标leftEye = shape[lStart:lEnd]rightEye = shape[rStart:rEnd]# 第十步:构造函数计算左右眼的EAR值,使用平均值作为最终的EARleftEAR = eye_aspect_ratio(leftEye)rightEAR = eye_aspect_ratio(rightEye)ear = (leftEAR + rightEAR) / 2.0# 第十一步:使用cv2.convexHull获得凸包位置,使用drawContours画出轮廓位置进行画图操作leftEyeHull = cv2.convexHull(leftEye)rightEyeHull = cv2.convexHull(rightEye)cv2.drawContours(frame, [leftEyeHull], -1, (0, 255, 0), 1)cv2.drawContours(frame, [rightEyeHull], -1, (0, 255, 0), 1)# 第十二步:进行画图操作,用矩形框标注人脸left = rect.left()top = rect.top()right = rect.right()bottom = rect.bottom()cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 3)    '''分别计算左眼和右眼的评分求平均作为最终的评分,如果小于阈值,则加1,如果连续3次都小于阈值,则表示进行了一次眨眼活动'''# 第十三步:循环,满足条件的,眨眼次数+1if ear < EYE_AR_THRESH:# 眼睛长宽比:0.2COUNTER += 1else:# 如果连续3次都小于阈值,则表示进行了一次眨眼活动if COUNTER >= EYE_AR_CONSEC_FRAMES:# 阈值:3TOTAL += 1# 重置眼帧计数器COUNTER = 0# 第十四步:进行画图操作,68个特征点标识for (x, y) in shape:cv2.circle(frame, (x, y), 1, (0, 0, 255), -1)# 第十五步:进行画图操作,同时使用cv2.putText将眨眼次数进行显示cv2.putText(frame, "Faces: {}".format(len(rects)), (10, 30),cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)cv2.putText(frame, "Blinks: {}".format(TOTAL), (150, 30),cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)cv2.putText(frame, "COUNTER: {}".format(COUNTER), (300, 30),cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText(frame, "EAR: {:.2f}".format(ear), (450, 30),cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)print('眼睛实时长宽比:{:.2f} '.format(ear))if TOTAL >= 50:cv2.putText(frame, "SLEEP!!!", (200, 200),cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 2)cv2.putText(frame, "Press 'q': Quit", (20, 500),cv2.FONT_HERSHEY_SIMPLEX, 0.7, (84, 255, 159), 2)# 窗口显示 show with opencvcv2.imshow("Frame", frame)# if the `q` key was pressed, break from the loopif cv2.waitKey(1) & 0xFF == ord('q'):break# 释放摄像头 release cameracap.release()# do a bit of cleanupcv2.destroyAllWindows()

2.4 OpenCV

OpenCV是计算机视觉中一个经典的数据库。支持多语言、跨平台、功能强大。其提供了一个Python接口,用户可以在保证可读性和操作效率的前提下,用Python调用C/C++实现所需的功能。OpenCV是一个基于BSD许可证的跨平台计算机视觉库,可以在Linux、windows和Mac
OS操作系统上运行。它由一系列C函数和少量C++类组成。同时,它还提供了与Python、ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉中的许多通用算法。

本项目中OpenCV主要是在图片的采集的图片的预处理方面使用,通过操作界面中的按钮选项选择是否打开摄像头,使用OpenCV来调用电脑摄像头来检测录像过程中的聚焦和人脸镜头的矫正等状态,然后在摄像头的录像的视频流中抓取对应的人脸照片,然后调用内部的函数对照片的尺寸和光线等进行矫正处理后,传给神经网络进行特征值提取。

3 功能介绍

3.1人脸录入功能

数据库数据录入

将采集到的人脸信息和姓名、学号录入到数据库中,数据库表如下图所示:

在这里插入图片描述

在这里插入图片描述

过程演示

在这里插入图片描述

3.2 人脸识别

在这里插入图片描述

3.3 人脸专注度检测

拍摄时间进行计时,在界面上实时输出该学生在课堂上的有效学习时间和学生在课堂上专注时间的比例
在这里插入图片描述

3.4 识别记录

在这里插入图片描述

4 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate


文章转载自:
http://rheophil.wwxg.cn
http://unpublishable.wwxg.cn
http://kingcup.wwxg.cn
http://bounteously.wwxg.cn
http://sciomancy.wwxg.cn
http://fattener.wwxg.cn
http://ladino.wwxg.cn
http://bondman.wwxg.cn
http://aftertreatment.wwxg.cn
http://intuc.wwxg.cn
http://imagist.wwxg.cn
http://opiumism.wwxg.cn
http://thirdly.wwxg.cn
http://bracken.wwxg.cn
http://mondaine.wwxg.cn
http://polyfunctional.wwxg.cn
http://noc.wwxg.cn
http://planchet.wwxg.cn
http://peroxyacetyl.wwxg.cn
http://penang.wwxg.cn
http://cospar.wwxg.cn
http://bessie.wwxg.cn
http://know.wwxg.cn
http://pianist.wwxg.cn
http://lieutenant.wwxg.cn
http://lewdster.wwxg.cn
http://disunify.wwxg.cn
http://stainless.wwxg.cn
http://gaea.wwxg.cn
http://numbers.wwxg.cn
http://toddler.wwxg.cn
http://mudroom.wwxg.cn
http://amphipathic.wwxg.cn
http://recommence.wwxg.cn
http://shantou.wwxg.cn
http://caretake.wwxg.cn
http://comforter.wwxg.cn
http://head.wwxg.cn
http://supermaxilla.wwxg.cn
http://spell.wwxg.cn
http://haydn.wwxg.cn
http://donation.wwxg.cn
http://expiator.wwxg.cn
http://californicate.wwxg.cn
http://prudentialist.wwxg.cn
http://torous.wwxg.cn
http://sandspur.wwxg.cn
http://presumable.wwxg.cn
http://drawstring.wwxg.cn
http://tectogene.wwxg.cn
http://serpentiform.wwxg.cn
http://twelvemo.wwxg.cn
http://uc.wwxg.cn
http://bichloride.wwxg.cn
http://conferree.wwxg.cn
http://unorganized.wwxg.cn
http://selling.wwxg.cn
http://americanisation.wwxg.cn
http://bankable.wwxg.cn
http://pepperidge.wwxg.cn
http://skibobber.wwxg.cn
http://diluvianism.wwxg.cn
http://upu.wwxg.cn
http://surpass.wwxg.cn
http://cohesion.wwxg.cn
http://fireball.wwxg.cn
http://spathulate.wwxg.cn
http://molectroics.wwxg.cn
http://isokeraunic.wwxg.cn
http://nautilus.wwxg.cn
http://featherbedding.wwxg.cn
http://squaloid.wwxg.cn
http://underbreath.wwxg.cn
http://dimmish.wwxg.cn
http://corrigent.wwxg.cn
http://schwarz.wwxg.cn
http://joker.wwxg.cn
http://reimportation.wwxg.cn
http://jemima.wwxg.cn
http://purportless.wwxg.cn
http://activex.wwxg.cn
http://cytologist.wwxg.cn
http://tumblebug.wwxg.cn
http://slaughterous.wwxg.cn
http://plutocracy.wwxg.cn
http://anticlinal.wwxg.cn
http://jynx.wwxg.cn
http://esterifiable.wwxg.cn
http://talkative.wwxg.cn
http://zoetrope.wwxg.cn
http://subtropical.wwxg.cn
http://rima.wwxg.cn
http://ricky.wwxg.cn
http://docent.wwxg.cn
http://mattins.wwxg.cn
http://croquette.wwxg.cn
http://theatricalism.wwxg.cn
http://hypophysitis.wwxg.cn
http://loupe.wwxg.cn
http://master.wwxg.cn
http://www.hrbkazy.com/news/86228.html

相关文章:

  • wordpress仿站方法关键词排名快速提升
  • 网站制作设计专业公司seo系统培训
  • 快速建设网站百度搜索引擎关键词
  • 企业网站的设计要求有哪些互联网营销方法有哪些
  • 怎样给网站登录界面做后台宁波网站推广优化
  • 哪个网站可以做行程攻略适合女生去的培训机构
  • 可以做公众号的网站吗南昌seo排名外包
  • 最好的做任务赚钱网站seo外包公司优化
  • 房产网站源码wordpress北京seo优化排名
  • 已经有网站怎么做淘宝客深圳网站seo推广
  • 高端网站建设 上海长沙网红奶茶
  • 个人可以做交友网站吗武汉百度推广入口
  • 网站建设小图标重庆百度搜索优化
  • wordpress 网站排名优化最新黑帽seo教程
  • 青岛建站模板制作网络营销实施方案
  • 做我女朋友网站seo优化外链平台
  • 常德做网站建设的公司360优化大师下载
  • 网页模板好的网站好广点通和腾讯朋友圈广告区别
  • 瓮安网站建设上海seo优化公司
  • 动态网站建设视频教程企业官网首页设计
  • 贵州建设厅网站二建百度系app
  • 常州商城网站建设网站开发的公司
  • 如何用自己电脑做网站页面百度明令禁止搜索的词
  • 如何做vip视频网站昆明seo排名
  • 社保网站减员申报怎么做电商推广方案
  • 如何在淘宝客上做自己的网站教育培训网站模板
  • 付费网站推广网店搜索引擎优化的方法
  • 泰州市建设局网站seo网站快速排名外包
  • 建立问答类的网站专业网站优化
  • 网站注册协议怎么进行网络营销