国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

淘客做網(wǎng)站百度關(guān)鍵詞優(yōu)化專(zhuān)家

淘客做網(wǎng)站,百度關(guān)鍵詞優(yōu)化專(zhuān)家,wordpress搜索結(jié)果,專(zhuān)業(yè)網(wǎng)站維護(hù)文章目錄 1 前言2 相關(guān)技術(shù)2.1CNN簡(jiǎn)介2.2 人臉識(shí)別算法2.3專(zhuān)注檢測(cè)原理2.4 OpenCV 3 功能介紹3.1人臉?shù)浫牍δ?.2 人臉識(shí)別3.3 人臉專(zhuān)注度檢測(cè)3.4 識(shí)別記錄 4 最后 1 前言 🔥 優(yōu)質(zhì)競(jìng)賽項(xiàng)目系列,今天要分享的是 🚩 基于深度學(xué)習(xí)的人臉專(zhuān)注度…

文章目錄

  • 1 前言
  • 2 相關(guān)技術(shù)
    • 2.1CNN簡(jiǎn)介
    • 2.2 人臉識(shí)別算法
    • 2.3專(zhuān)注檢測(cè)原理
    • 2.4 OpenCV
  • 3 功能介紹
    • 3.1人臉?shù)浫牍δ?/li>
    • 3.2 人臉識(shí)別
    • 3.3 人臉專(zhuān)注度檢測(cè)
    • 3.4 識(shí)別記錄
  • 4 最后

1 前言

🔥 優(yōu)質(zhì)競(jìng)賽項(xiàng)目系列,今天要分享的是

🚩 基于深度學(xué)習(xí)的人臉專(zhuān)注度檢測(cè)計(jì)算算法

該項(xiàng)目較為新穎,適合作為競(jìng)賽課題方向,學(xué)長(zhǎng)非常推薦!

🥇學(xué)長(zhǎng)這里給一個(gè)題目綜合評(píng)分(每項(xiàng)滿分5分)

  • 難度系數(shù):3分
  • 工作量:3分
  • 創(chuàng)新點(diǎn):5分

🧿 更多資料, 項(xiàng)目分享:

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

2 相關(guān)技術(shù)

2.1CNN簡(jiǎn)介

卷積神經(jīng)網(wǎng)絡(luò)(CNN),是由多層卷積結(jié)構(gòu)組成的一種神經(jīng)網(wǎng)絡(luò)。卷積結(jié)構(gòu)可以減少網(wǎng)絡(luò)的內(nèi)存占用、參數(shù)和模型的過(guò)擬合。卷積神經(jīng)網(wǎng)絡(luò)是一種典型的深度學(xué)習(xí)算法。廣泛應(yīng)用于視覺(jué)處理和人工智能領(lǐng)域,特別是在圖像識(shí)別和人臉識(shí)別領(lǐng)域。與完全連接的神經(jīng)網(wǎng)絡(luò)相比,CNN輸入是通過(guò)交換參數(shù)和局部感知來(lái)提取圖像特征的圖像。卷積神經(jīng)網(wǎng)絡(luò)是由輸入層、卷積層、池化層、全連接層和輸出層五層結(jié)構(gòu)組成。其具體模型如下圖所示。
在這里插入圖片描述

(1)輸入層(Input
layer):輸入層就是神經(jīng)網(wǎng)絡(luò)的輸入端口,就是把輸入傳入的入口。通常傳入的圖像的R,G,B三個(gè)通道的數(shù)據(jù)。數(shù)據(jù)的輸入一般是多維的矩陣向量,其中矩陣中的數(shù)值代表的是圖像對(duì)應(yīng)位置的像素點(diǎn)的值。

(2)卷積層(Convolution layer):卷積層在CNN中主要具有學(xué)習(xí)功能,它主要提取輸入的數(shù)據(jù)的特征值。

(3)池化層(Pooling
layer):池化層通過(guò)對(duì)卷積層的特征值進(jìn)行壓縮來(lái)獲得自己的特征值,減小特征值的矩陣的維度,減小網(wǎng)絡(luò)計(jì)算量,加速收斂速度可以有效避免過(guò)擬合問(wèn)題。

(4)全連接層(Full connected
layer):全連接層主要實(shí)現(xiàn)是把經(jīng)過(guò)卷積層和池化層處理的數(shù)據(jù)進(jìn)行集合在一起,形成一個(gè)或者多個(gè)的全連接層,該層在CNN的功能主要是實(shí)現(xiàn)高階推理計(jì)算。

(5)輸出層(Output layer):輸出層在全連接層之后,是整個(gè)神經(jīng)網(wǎng)絡(luò)的輸出端口即把處理分析后的數(shù)據(jù)進(jìn)行輸出。

2.2 人臉識(shí)別算法

利用dlib實(shí)現(xiàn)人臉68個(gè)關(guān)鍵點(diǎn)檢測(cè)并標(biāo)注,關(guān)鍵代碼

?

import cv2# 加載人臉識(shí)別模型face_rec_model_path = 'dlib_face_recognition_resnet_model_v1.dat'facerec = dlib.face_recognition_model_v1(face_rec_model_path)# 加載特征點(diǎn)識(shí)別模型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)# 轉(zhuǎn)換為灰階圖片gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 正向人臉檢測(cè)器將圖像detector = dlib.get_frontal_face_detector()# 使用人臉識(shí)別模型來(lái)檢測(cè)圖像中的人臉faces = detector(gray, 1)# 使用特征點(diǎn)識(shí)別模型來(lái)檢測(cè)人臉中的特征for i, face in enumerate(faces):# 獲取人臉特征點(diǎn)shape = predictor(img, face)

?

2.3專(zhuān)注檢測(cè)原理

總體流程

主要通過(guò)電腦攝像頭去實(shí)時(shí)的抓拍學(xué)生當(dāng)前的狀態(tài)和行為,不間斷的采集學(xué)生上課時(shí)的面部表情和眼睛注視的方向,利用CNN提取相應(yīng)的特征數(shù)據(jù)并進(jìn)行分析處理,若對(duì)應(yīng)輸出的判斷值大于設(shè)置的閾值時(shí),則認(rèn)為學(xué)生在走神沒(méi)有認(rèn)真學(xué)習(xí)。并且對(duì)拍攝時(shí)間進(jìn)行計(jì)時(shí),在界面上實(shí)時(shí)輸出該學(xué)生在課堂上的有效學(xué)習(xí)時(shí)間和學(xué)生在課堂上專(zhuān)注時(shí)間的比例并進(jìn)行存入表格中。

在這里插入圖片描述

眼睛檢測(cè)算法

基于dlib人臉識(shí)別68特征點(diǎn)檢測(cè)、分別獲取左右眼面部標(biāo)志的索引,通過(guò)opencv對(duì)視頻流進(jìn)行灰度化處理,檢測(cè)出人眼的位置信息。人臉特征點(diǎn)檢測(cè)用到了dlib,dlib有兩個(gè)關(guān)鍵函數(shù):dlib.get_frontal_face_detector()和dlib.shape_predictor(predictor_path)。

前者是內(nèi)置的人臉檢測(cè)算法,使用HOG pyramid,檢測(cè)人臉區(qū)域的界限(bounds)。
后者是用來(lái)檢測(cè)一個(gè)區(qū)域內(nèi)的特征點(diǎn),并輸出這些特征點(diǎn)的坐標(biāo),它需要一個(gè)預(yù)先訓(xùn)練好的模型(通過(guò)文件路徑的方法傳入),才能正常工作。
使用開(kāi)源模型shape_predictor_68_face_landmarks.dat,可以得到68個(gè)特征點(diǎn)位置的坐標(biāo),連起來(lái)后,可以有如圖所示的效果(紅色是HOG
pyramid檢測(cè)的結(jié)果,綠色是shape_predictor的結(jié)果,僅把同一個(gè)器官的特征點(diǎn)連線)。

在這里插入圖片描述

通過(guò)計(jì)算眼睛的寬高比來(lái)確定專(zhuān)注狀態(tài)

基本原理:計(jì)算 眼睛長(zhǎng)寬比 Eye Aspect Ratio,EAR.當(dāng)人眼睜開(kāi)時(shí),EAR在某個(gè)值上下波動(dòng),當(dāng)人眼閉合時(shí)
在這里插入圖片描述

關(guān)鍵代碼

?

 # -*- 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 # 數(shù)據(jù)處理的庫(kù) numpyimport argparseimport imutilsimport timeimport dlibimport cv2def eye_aspect_ratio(eye):# 垂直眼標(biāo)志(X,Y)坐標(biāo)A = dist.euclidean(eye[1], eye[5])# 計(jì)算兩個(gè)集合之間的歐式距離B = dist.euclidean(eye[2], eye[4])# 計(jì)算水平之間的歐幾里得距離# 水平眼標(biāo)志(X,Y)坐標(biāo)C = dist.euclidean(eye[0], eye[3])# 眼睛長(zhǎng)寬比的計(jì)算ear = (A + B) / (2.0 * C)# 返回眼睛的長(zhǎng)寬比return ear# 定義兩個(gè)常數(shù)# 眼睛長(zhǎng)寬比# 閃爍閾值EYE_AR_THRESH = 0.2EYE_AR_CONSEC_FRAMES = 3# 初始化幀計(jì)數(shù)器和眨眼總數(shù)COUNTER = 0TOTAL = 0# 初始化DLIB的人臉檢測(cè)器(HOG),然后創(chuàng)建面部標(biāo)志物預(yù)測(cè)print("[INFO] loading facial landmark predictor...")# 第一步:使用dlib.get_frontal_face_detector() 獲得臉部位置檢測(cè)器detector = dlib.get_frontal_face_detector()# 第二步:使用dlib.shape_predictor獲得臉部特征位置檢測(cè)器predictor = dlib.shape_predictor('D:/myworkspace/JupyterNotebook/fatigue_detecting/model/shape_predictor_68_face_landmarks.dat')# 第三步:分別獲取左右眼面部標(biāo)志的索引(lStart, lEnd) = face_utils.FACIAL_LANDMARKS_IDXS["left_eye"](rStart, rEnd) = face_utils.FACIAL_LANDMARKS_IDXS["right_eye"]# 第四步:打開(kāi)cv2 本地?cái)z像頭cap = cv2.VideoCapture(0)# 從視頻流循環(huán)幀while True:# 第五步:進(jìn)行循環(huán),讀取圖片,并對(duì)圖片做維度擴(kuò)大,并進(jìn)灰度化ret, frame = cap.read()frame = imutils.resize(frame, width=720)gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 第六步:使用detector(gray, 0) 進(jìn)行臉部位置檢測(cè)rects = detector(gray, 0)# 第七步:循環(huán)臉部位置信息,使用predictor(gray, rect)獲得臉部特征位置的信息for rect in rects:shape = predictor(gray, rect)# 第八步:將臉部特征信息轉(zhuǎn)換為數(shù)組array的格式shape = face_utils.shape_to_np(shape)# 第九步:提取左眼和右眼坐標(biāo)leftEye = shape[lStart:lEnd]rightEye = shape[rStart:rEnd]# 第十步:構(gòu)造函數(shù)計(jì)算左右眼的EAR值,使用平均值作為最終的EARleftEAR = eye_aspect_ratio(leftEye)rightEAR = eye_aspect_ratio(rightEye)ear = (leftEAR + rightEAR) / 2.0# 第十一步:使用cv2.convexHull獲得凸包位置,使用drawContours畫(huà)出輪廓位置進(jìn)行畫(huà)圖操作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)# 第十二步:進(jìn)行畫(huà)圖操作,用矩形框標(biāo)注人臉left = rect.left()top = rect.top()right = rect.right()bottom = rect.bottom()cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 3)    '''分別計(jì)算左眼和右眼的評(píng)分求平均作為最終的評(píng)分,如果小于閾值,則加1,如果連續(xù)3次都小于閾值,則表示進(jìn)行了一次眨眼活動(dòng)'''# 第十三步:循環(huán),滿足條件的,眨眼次數(shù)+1if ear < EYE_AR_THRESH:# 眼睛長(zhǎng)寬比:0.2COUNTER += 1else:# 如果連續(xù)3次都小于閾值,則表示進(jìn)行了一次眨眼活動(dòng)if COUNTER >= EYE_AR_CONSEC_FRAMES:# 閾值:3TOTAL += 1# 重置眼幀計(jì)數(shù)器COUNTER = 0# 第十四步:進(jìn)行畫(huà)圖操作,68個(gè)特征點(diǎn)標(biāo)識(shí)for (x, y) in shape:cv2.circle(frame, (x, y), 1, (0, 0, 255), -1)# 第十五步:進(jìn)行畫(huà)圖操作,同時(shí)使用cv2.putText將眨眼次數(shù)進(jìn)行顯示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('眼睛實(shí)時(shí)長(zhǎng)寬比:{:.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是計(jì)算機(jī)視覺(jué)中一個(gè)經(jīng)典的數(shù)據(jù)庫(kù)。支持多語(yǔ)言、跨平臺(tái)、功能強(qiáng)大。其提供了一個(gè)Python接口,用戶可以在保證可讀性和操作效率的前提下,用Python調(diào)用C/C++實(shí)現(xiàn)所需的功能。OpenCV是一個(gè)基于BSD許可證的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以在Linux、windows和Mac
OS操作系統(tǒng)上運(yùn)行。它由一系列C函數(shù)和少量C++類(lèi)組成。同時(shí),它還提供了與Python、ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)中的許多通用算法。

本項(xiàng)目中OpenCV主要是在圖片的采集的圖片的預(yù)處理方面使用,通過(guò)操作界面中的按鈕選項(xiàng)選擇是否打開(kāi)攝像頭,使用OpenCV來(lái)調(diào)用電腦攝像頭來(lái)檢測(cè)錄像過(guò)程中的聚焦和人臉鏡頭的矯正等狀態(tài),然后在攝像頭的錄像的視頻流中抓取對(duì)應(yīng)的人臉照片,然后調(diào)用內(nèi)部的函數(shù)對(duì)照片的尺寸和光線等進(jìn)行矯正處理后,傳給神經(jīng)網(wǎng)絡(luò)進(jìn)行特征值提取。

3 功能介紹

3.1人臉?shù)浫牍δ?/h3>

數(shù)據(jù)庫(kù)數(shù)據(jù)錄入

將采集到的人臉信息和姓名、學(xué)號(hào)錄入到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)表如下圖所示:

在這里插入圖片描述

在這里插入圖片描述

過(guò)程演示

在這里插入圖片描述

3.2 人臉識(shí)別

在這里插入圖片描述

3.3 人臉專(zhuān)注度檢測(cè)

拍攝時(shí)間進(jìn)行計(jì)時(shí),在界面上實(shí)時(shí)輸出該學(xué)生在課堂上的有效學(xué)習(xí)時(shí)間和學(xué)生在課堂上專(zhuān)注時(shí)間的比例
在這里插入圖片描述

3.4 識(shí)別記錄

在這里插入圖片描述

4 最后

🧿 更多資料, 項(xiàng)目分享:

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

http://aloenet.com.cn/news/37597.html

相關(guān)文章:

  • 找哪個(gè)網(wǎng)站做摩配百度投訴電話人工服務(wù)總部
  • 羅湖建設(shè)網(wǎng)站志鴻優(yōu)化設(shè)計(jì)答案網(wǎng)
  • wordpress圖片展示主題yousucai寧波網(wǎng)站推廣優(yōu)化外包
  • 做網(wǎng)站工商局要不要備案呢色盲測(cè)試圖 考駕照
  • cname解析對(duì)網(wǎng)站影響seo課程心得體會(huì)
  • 商務(wù)網(wǎng)站制作語(yǔ)言基礎(chǔ)seo平臺(tái)怎么樣
  • 烏蘭察布做網(wǎng)站的公司百度推廣是怎么做的
  • 求幾個(gè)夸克沒(méi)封的a站2023惠州seo排名外包
  • 設(shè)計(jì)網(wǎng)站頁(yè)面好處百度瀏覽器下載
  • 自己有服務(wù)器和域名怎么做網(wǎng)站谷歌seo培訓(xùn)
  • 網(wǎng)站建設(shè)建設(shè)多少錢(qián)湖南網(wǎng)站營(yíng)銷(xiāo)seo多少費(fèi)用
  • tq網(wǎng)站漂浮代碼小紅書(shū)seo是什么
  • 哪些網(wǎng)站百度不收錄網(wǎng)絡(luò)營(yíng)銷(xiāo)的主要手段和策略
  • 梅州建站公司網(wǎng)站推廣和網(wǎng)站優(yōu)化
  • 那幾個(gè)網(wǎng)站可以做h5企業(yè)品牌推廣方案
  • 為什么網(wǎng)站打不開(kāi)首頁(yè)深圳博惠seo
  • 去哪里學(xué)做網(wǎng)站app網(wǎng)站建設(shè)的意義和作用
  • 修改wordpress主題字體大小seo網(wǎng)站推廣是什么意思
  • 濱州做網(wǎng)站的公司廣告門(mén)
  • 新開(kāi)傳奇網(wǎng)站曾勁松線下推廣方式都有哪些
  • 網(wǎng)站開(kāi)發(fā) 零基礎(chǔ)營(yíng)銷(xiāo)號(hào)
  • 凡科網(wǎng)站是什么做的十大免費(fèi)引流平臺(tái)
  • 南京專(zhuān)業(yè)做網(wǎng)站的公司重慶二級(jí)站seo整站優(yōu)化排名
  • 去哪里找空間做網(wǎng)站搜索引擎營(yíng)銷(xiāo)的分類(lèi)
  • 餐飲門(mén)戶網(wǎng)站 方案怎么做百度競(jìng)價(jià)開(kāi)戶費(fèi)用
  • 石家莊做網(wǎng)站建設(shè)公司外鏈查詢(xún)
  • 尋找移動(dòng)網(wǎng)站建設(shè)開(kāi)魯網(wǎng)站seo不用下載
  • 小程序有什么用武漢seo管理
  • 做項(xiàng)目掙錢(qián)的網(wǎng)站seo快速排名軟件品牌
  • wordpress 熱門(mén)用戶網(wǎng)頁(yè)優(yōu)化包括什么