移动应用开发网站TP框架网站的中英文切换怎么做

张小明 2025/12/28 20:10:45
移动应用开发网站,TP框架网站的中英文切换怎么做,wordpress 编辑页脚,中山网站建设网站1 前言 今天学长向大家介绍一个机器视觉的毕设项目#xff0c;基于机器视觉网络课堂专注检测系统 项目运行效果#xff1a; 毕业设计 机器视觉网络课堂专注检测系统 #x1f9ff; 项目分享:见文末! 2 相关技术 2.1CNN简介 卷积神经网络(CNN)#xff0c;是由多层卷积结…1 前言今天学长向大家介绍一个机器视觉的毕设项目基于机器视觉网络课堂专注检测系统项目运行效果毕业设计 机器视觉网络课堂专注检测系统 项目分享:见文末!2 相关技术2.1CNN简介卷积神经网络(CNN)是由多层卷积结构组成的一种神经网络。卷积结构可以减少网络的内存占用、参数和模型的过拟合。卷积神经网络是一种典型的深度学习算法。广泛应用于视觉处理和人工智能领域特别是在图像识别和人脸识别领域。与完全连接的神经网络相比CNN输入是通过交换参数和局部感知来提取图像特征的图像。卷积神经网络是由输入层、卷积层、池化层、全连接层和输出层五层结构组成。其具体模型如下图所示。(1)输入层(Input layer)输入层就是神经网络的输入端口就是把输入传入的入口。通常传入的图像的RGB三个通道的数据。数据的输入一般是多维的矩阵向量其中矩阵中的数值代表的是图像对应位置的像素点的值。(2)卷积层(Convolution layer)卷积层在CNN中主要具有学习功能它主要提取输入的数据的特征值。(3)池化层(Pooling layer)池化层通过对卷积层的特征值进行压缩来获得自己的特征值减小特征值的矩阵的维度减小网络计算量加速收敛速度可以有效避免过拟合问题。(4)全连接层(Full connected layer)全连接层主要实现是把经过卷积层和池化层处理的数据进行集合在一起形成一个或者多个的全连接层该层在CNN的功能主要是实现高阶推理计算。(5)输出层(Output layer)输出层在全连接层之后是整个神经网络的输出端口即把处理分析后的数据进行输出。2.2 人脸识别算法利用dlib实现人脸68个关键点检测并标注关键代码importcv2# 加载人脸识别模型face_rec_model_pathdlib_face_recognition_resnet_model_v1.datfacerecdlib.face_recognition_model_v1(face_rec_model_path)# 加载特征点识别模型predictor_pathshape_predictor_5_face_landmarks.datpredictordlib.shape_predictor(predictor_path)# 读取图片img_pathstep1/image/face.jpgimgcv2.imread(img_path)# 转换为灰阶图片graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 正向人脸检测器将图像detectordlib.get_frontal_face_detector()# 使用人脸识别模型来检测图像中的人脸facesdetector(gray,1)# 使用特征点识别模型来检测人脸中的特征fori,faceinenumerate(faces):# 获取人脸特征点shapepredictor(img,face)2.3专注检测原理总体流程主要通过电脑摄像头去实时的抓拍学生当前的状态和行为不间断的采集学生上课时的面部表情和眼睛注视的方向利用CNN提取相应的特征数据并进行分析处理若对应输出的判断值大于设置的阈值时则认为学生在走神没有认真学习。并且对拍摄时间进行计时在界面上实时输出该学生在课堂上的有效学习时间和学生在课堂上专注时间的比例并进行存入表格中。眼睛检测算法基于dlib人脸识别68特征点检测、分别获取左右眼面部标志的索引通过opencv对视频流进行灰度化处理检测出人眼的位置信息。人脸特征点检测用到了dlibdlib有两个关键函数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 RatioEAR.当人眼睁开时EAR在某个值上下波动当人眼闭合时EAR迅速下降理论上会接近于零当时人脸检测模型还没有这么精确。所以我们认为当EAR低于某个阈值时眼睛处于闭合状态。为检测眨眼次数需要设置同一次眨眼的连续帧数。眨眼速度比较快一般1~3帧就完成了眨眼动作。两个阈值都要根据实际情况设置。关键代码# -*- coding: utf-8 -*-# import the necessary packagesfromscipy.spatialimportdistanceasdistfromimutils.videoimportFileVideoStreamfromimutils.videoimportVideoStreamfromimutilsimportface_utilsimportnumpyasnp# 数据处理的库 numpyimportargparseimportimutilsimporttimeimportdlibimportcv2defeye_aspect_ratio(eye):# 垂直眼标志XY坐标Adist.euclidean(eye[1],eye[5])# 计算两个集合之间的欧式距离Bdist.euclidean(eye[2],eye[4])# 计算水平之间的欧几里得距离# 水平眼标志XY坐标Cdist.euclidean(eye[0],eye[3])# 眼睛长宽比的计算ear(AB)/(2.0*C)# 返回眼睛的长宽比returnear# 定义两个常数# 眼睛长宽比# 闪烁阈值EYE_AR_THRESH0.2EYE_AR_CONSEC_FRAMES3# 初始化帧计数器和眨眼总数COUNTER0TOTAL0# 初始化DLIB的人脸检测器HOG然后创建面部标志物预测print([INFO] loading facial landmark predictor...)# 第一步使用dlib.get_frontal_face_detector() 获得脸部位置检测器detectordlib.get_frontal_face_detector()# 第二步使用dlib.shape_predictor获得脸部特征位置检测器predictordlib.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 本地摄像头capcv2.VideoCapture(0)# 从视频流循环帧whileTrue:# 第五步进行循环读取图片并对图片做维度扩大并进灰度化ret,framecap.read()frameimutils.resize(frame,width720)graycv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)# 第六步使用detector(gray, 0) 进行脸部位置检测rectsdetector(gray,0)# 第七步循环脸部位置信息使用predictor(gray, rect)获得脸部特征位置的信息forrectinrects:shapepredictor(gray,rect)# 第八步将脸部特征信息转换为数组array的格式shapeface_utils.shape_to_np(shape)# 第九步提取左眼和右眼坐标leftEyeshape[lStart:lEnd]rightEyeshape[rStart:rEnd]# 第十步构造函数计算左右眼的EAR值使用平均值作为最终的EARleftEAReye_aspect_ratio(leftEye)rightEAReye_aspect_ratio(rightEye)ear(leftEARrightEAR)/2.0# 第十一步使用cv2.convexHull获得凸包位置使用drawContours画出轮廓位置进行画图操作leftEyeHullcv2.convexHull(leftEye)rightEyeHullcv2.convexHull(rightEye)cv2.drawContours(frame,[leftEyeHull],-1,(0,255,0),1)cv2.drawContours(frame,[rightEyeHull],-1,(0,255,0),1)# 第十二步进行画图操作用矩形框标注人脸leftrect.left()toprect.top()rightrect.right()bottomrect.bottom()cv2.rectangle(frame,(left,top),(right,bottom),(0,255,0),3) 分别计算左眼和右眼的评分求平均作为最终的评分如果小于阈值则加1如果连续3次都小于阈值则表示进行了一次眨眼活动 # 第十三步循环满足条件的眨眼次数1ifearEYE_AR_THRESH:# 眼睛长宽比0.2COUNTER1else:# 如果连续3次都小于阈值则表示进行了一次眨眼活动ifCOUNTEREYE_AR_CONSEC_FRAMES:# 阈值3TOTAL1# 重置眼帧计数器COUNTER0# 第十四步进行画图操作68个特征点标识for(x,y)inshape: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))ifTOTAL50: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 loopifcv2.waitKey(1)0xFFord(q):break# 释放摄像头 release cameracap.release()# do a bit of cleanupcv2.destroyAllWindows()2.4 OpenCVOpenCV是计算机视觉中一个经典的数据库。支持多语言、跨平台、功能强大。其提供了一个Python接口用户可以在保证可读性和操作效率的前提下用Python调用C/C实现所需的功能。OpenCV是一个基于BSD许可证的跨平台计算机视觉库可以在Linux、windows和Mac OS操作系统上运行。它由一系列C函数和少量C类组成。同时它还提供了与Python、ruby、MATLAB等语言的接口实现了图像处理和计算机视觉中的许多通用算法。本项目中OpenCV主要是在图片的采集的图片的预处理方面使用通过操作界面中的按钮选项选择是否打开摄像头使用OpenCV来调用电脑摄像头来检测录像过程中的聚焦和人脸镜头的矫正等状态然后在摄像头的录像的视频流中抓取对应的人脸照片然后调用内部的函数对照片的尺寸和光线等进行矫正处理后传给神经网络进行特征值提取。3 实现效果项目运行效果毕业设计 机器视觉网络课堂专注检测系统 项目分享:见文末!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站用户账号ip查询舜元建设集团官方网站

Linux系统用户、组与文件系统管理全解析 1. 用户组管理 用户组是用户所属的集合,每个组都有名称和唯一的标识号(ID)。定义组后,用户可以属于一个或多个组。所有现有组的信息都记录在 /etc/group 文件中,例如定义名为 wheel 组的行如下: wheel:x:10:root,kdulaney/…

张小明 2025/12/28 20:10:10 网站建设

网站安全检测报告电子商务推广

LobeChat能否用于编写Shell脚本?Linux运维助手 在现代 Linux 运维工作中,一个常见的场景是:你刚接手一台旧服务器,日志磁盘即将写满,急需写一个自动清理和归档的脚本。但 Bash 的语法细节、tar 参数组合、错误处理逻辑…

张小明 2025/12/28 20:09:35 网站建设

建材网站素材公司做个网页要多少钱

NS模拟器一站式管理工具:ns-emu-tools 快速上手指南 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 还在为NS模拟器安装配置的复杂步骤而烦恼?ns-emu-tools是一款专…

张小明 2025/12/28 20:08:25 网站建设

巨蟹座适合网站建设吗网站手机自动跳转

社交媒体与网络营销的深度融合:策略、挑战与机遇 社交媒体信号对搜索排名的影响 社交媒体优化旨在提升内容在社交媒体网络上的表现。以YouTube为例,精心制作视频、撰写描述以及完善用户个人资料,都有助于提高内容的可发现性和用户参与度。此外,社交媒体还会通过影响搜索引…

张小明 2025/12/28 20:07:15 网站建设

霸州网站优化石家庄公司网站设计

BiliBiliToolPro批量取关功能完整指南:快速清理B站关注列表的终极方案 【免费下载链接】BiliBiliToolPro B 站(bilibili)自动任务工具,支持docker、青龙、k8s等多种部署方式。敏感肌也能用。 项目地址: https://gitcode.com/Git…

张小明 2025/12/28 20:06:40 网站建设