999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV和Python的課堂考勤系統的設計與實現

2019-07-16 03:14:59鄒錳
電腦知識與技術 2019年15期
關鍵詞:人臉識別

鄒錳

摘要:隨著計算機新技術的流行,人臉識別等新技術的應用范圍越來越寬廣。在學校招生規模的擴大的前提下,課堂上有效快速點名成了上課教師的新問題。該文采用OpenCV和Python構建人臉識別技術實現課堂快速考勤。

關鍵詞:OpenCV;Python;人臉識別;課堂考勤

中圖分類號:TP311 ? ? ? ?文獻標識碼:A

文章編號:1009-3044(2019)15-0066-02

1 問題的提出

近年來,我國學生人數呈現逐步上升的趨勢。特別是在經濟發達地區,由于外來務工人員人數非常多,很多地區的學校都招生爆滿,每個班人數都在50人以上。對于任課老師來說,點名考勤成了不小的挑戰。特別對于中職學校來說,實訓課很多學生不一定按照指定的位置就座,因此點名時經常出現“張冠李戴”的情況。另一方面,在實訓課上,教師需要操作計算機進行實操演示,這個過程中,有些學生不認真聽講,趴在桌面上睡覺。怎樣快速準確統計出上課時不認真的學生,值得我們研究。

2 系統的構成

基于OpenCV和Python的課堂考勤系統其核心是利用基于OpenCV和Python實現人臉識別,通過對人臉的檢測、識別及統計實現課堂考勤。使用到的硬件設備主要是高清攝像頭加上一臺計算機作為服務器。軟件上我們采用OpenCV和Python來實現。系統的主要功能如下圖1:

3 相關技術知識

OpenCV:

OpenCV是一個免費開源的跨平臺計算機視覺庫,可以運行多個操作系統上。它的應用領域非常廣泛,在人機互動、圖像分割、物體識別、動作識別、人臉識別、運動跟蹤、運動分析、機器人等多個最新技術領域都有應用[1]。

Python:

Python是一種計算機程序設計語言。Python程序簡單易懂功能強大,許多功能不必從零編寫,直接使用現成的即可。許多大型網站就是用Python開發的,例如YouTube、豆瓣。Google、Yahoo ,美國航空航天局等都大量地使用Python[2]。

開發環境的搭建:

Python也可在多種平臺開發運行,本文以WINDOWS系統作為開發平臺。本文以Anaconda套件作為開發環境,它包括幾百種常用的科學與數據分析套件。并內置Spyder及Jupyter Notebook編輯器。

首先到anaconda 官方網站下載對應win平臺下的安裝包:

https://www.anaconda.com/download/ 安裝完anaconda,就相當于安裝了Python、IPython、集成開發環境Spyder、一些包等等。

然后安裝opencv,確定好Python版本,電腦64位或者32位。下載對應版本的文件。下載網址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 。

安裝后特別注意pip安裝opencv_python-3.2.0-cp36-cp36m-win_amd64.whl以后,文件目錄下沒有 opencv/sources/data/haarcascades目錄,找不到分類器的.xml。這時需要查看下你的opencv和Python版本。(本文為Python3.6+opencv 3.4),然后下載opencv win x64/x86對應版本,安裝解壓到硬盤上你指定的位置。解壓你就會發現分類器的位置。這樣我們就搭配好了OpenCV和Python的開發環境。

4 系統主要功能的實現

4.1 人臉的識別

課堂考勤系統開啟后,第一步要使用攝像頭對學生上課的圖像進行采集,這里根據系統不同功能又分為靜態圖片和視頻的圖片抓取。圖像采集后可以通過一些算法對圖像進行優化,如降噪、平滑、直方圖均衡化處理等以增強人臉特征。然后對采集的圖像進行人臉檢測和識別。人臉識別的算法非常復雜,國內比較專業的有科大訊飛、阿里云和百度等提供的人臉識別算法。本文利用 OpenCV 提供的函數和分類器進行人臉檢測相對來說比較簡單易實現。在OpenCV中主要使用了兩種特征(即兩種方法)進行人臉檢測,Haar特征和LBP特征。使用已經訓練好的XML格式的分類器進行人臉檢測[3]。人臉檢測完畢后再標識出面部位置為后面的臉部圖形抓取做好準備。最后對圖像中面部區域抓取并保存。如圖2。

在OpenCV中,使用類“CascadeClassifier”進行人臉檢測, ?PYTHON中創建CascadeClassifier對象

在Python腳本中創建名為face_cascade_name的識別對象:face_cascade_name = "e:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml

OpenCV中人臉檢測使用的是 detectMultiScale函數。它可以檢測出圖片中所有的人臉,并將人臉用vector保存每個人臉的坐標、大小(用矩形表示),函數由分類器對象調用:

FACES=face_cascade_name.detectMultiScale(IMAGE,scaleFactor=1.1,minNeighbors=5,minSize=(5,5),flags=cv2.CASCADE_SCALE_IMAGE)

detectMultiScale方法可識別圖片中的多個面部,返回值是一個列表,列表元素是由面部區域左上角的X,Y坐標,W,H坐標,面部寬度,面部高度組成的元組。通過下列代碼可獲取每一張面部區域的數據:(圖3)

for (x,y,w,h) in ?faces;

對識別的人臉用矩形框住顯示,靜態圖片采集識別主要是作為初始化數據時使用,或者用于靜態點名。全班剛上課時,擺好拍攝姿勢,教師用系統采集靜態圖片給系統進行人臉識別從而后臺統計人臉數目實現點名效果。靜態點名的好處是系統能夠最佳識別全班的人臉。但是動態視頻的圖像抓取同樣非常重要,系統啟動后自動按照系統設置的頻率抓取課堂圖像并在后臺自動進行人臉識別和統計識別出的數據,按照一定的算法統計出沒有認真上課(趴下睡覺)的人數,并通過人臉比對推算出不認真上課(趴下睡覺)的同學名字和不在上課狀態的大約時間。

4.2 人臉的比對

課堂考勤中學生經常出現的問題一般有不按固定位置就坐;遲到;早退;上課睡覺;找人頂替上課等一系列的問題。為解決這些問題需要系統后臺對識別出來的人臉比對。人臉的比對就是要將人臉識別出信息與數據庫中的已經標識出具體信息的人臉數據進行比對,從而真正識別出這張(這些)人臉是屬于誰。對人臉的比對基本原理是通過對比兩張圖片的差異度來判斷兩張圖片是否為同一人的面部。對比圖片差異度的算法有很多種,本文應用“顏色直方圖”算法來實現對人臉圖像的識別。下面代碼為在Python中比較兩張圖片的差異:

from PIL import Image

from functools import reduce

import ?math, operator

pic01 = Image.open("img01.jpg") ?#打開img01文件

pic02 = Image.open("img02.jpg") ?#打開img02文件

h1 = pic01.histogram() ?#取img01文件的直方圖信息

h2 = pic02.histogram() ?#取img02圖片的直方圖信息

diff = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2, h1, h2)))/len(h1)) #計算兩個圖形差異度

使用顏色直方圖算法需要導入pillow、 functools 、match及operator包,最終的計算結果 放入diff變量中,保存的是一個浮點數,其值代表兩張圖片的差異度,數值越大,表示圖片差異度越大,若兩張圖片完全相同,則diff值為0.0

系統開啟后,任課教師可以“手動”讓學生擺好姿勢以照片形式采集靜態圖片,同時系統一直以實時視頻為基礎按固定的頻率抓取圖像。在后臺與數據庫中人臉進行比對,經過與不同的實時圖像比對,經過算法分析,給出考勤中遲到,缺席等具體學生名單。當然為了減輕服務器的負擔,這個實時抓取比對的頻率可以設置為一節課3-4次。并且系統實時人臉比對功能默認情況下是上課后3分鐘至5分鐘后實時對比3-4次,下課前3分鐘再實時對比一次。這種主要針對一般按正常座位上課的班級。對特殊情況,教師可以在上課中間開啟實時對比功能設置對比時間和抓取頻率,查詢出沒按位置就座或頂替上課的學生名單。

5 存在的問題

本系統雖然通過OpenCV和Python構建人臉識別技術能夠實現課堂快速考勤。但也有不少問題值得后面去改進。首先是高清攝像頭的問題,一般的學校教室沒有配置這個設備,只有一些作為高考考場的教室有這些設備。教師上課需要自帶高清攝像頭顯然不現實。然后是拍攝角度問題以及光照外部環境極大的影響到人臉的檢測,特別是人臉比對采用顏色直方圖方法,環境影響非常大。學生上課不認真除了睡覺還有一些情況如開小差,閉眼睡覺等,這些可以參考開車疲勞檢測的算法進行開發。同樣,怎樣有效地減少外部環境影響,有效快速地進行人臉檢測和比對,都值得我們后面去研究。

參考文獻:

[1] 武勃.黃暢.基于連續 Adaboost 算法的多視角人臉檢測[J].計算機研究與發展,2005,42(9):1612-1621.

【通聯編輯:唐一東】

猜你喜歡
人臉識別
人臉識別 等
作文中學版(2022年1期)2022-04-14 08:00:34
揭開人臉識別的神秘面紗
學生天地(2020年31期)2020-06-01 02:32:06
基于(2D)2PCA-LBP 的人臉識別方法的研究
電子制作(2017年17期)2017-12-18 06:40:55
人臉識別在高校安全防范中的應用
電子制作(2017年1期)2017-05-17 03:54:46
基于類獨立核稀疏表示的魯棒人臉識別
計算機工程(2015年8期)2015-07-03 12:19:07
基于K-L變換和平均近鄰法的人臉識別
主站蜘蛛池模板: 日本午夜影院| 免费人成网站在线高清| 日本人妻丰满熟妇区| 性喷潮久久久久久久久| 亚洲 欧美 日韩综合一区| 国产综合精品日本亚洲777| 免费观看无遮挡www的小视频| 日韩av资源在线| 国产女人在线观看| 亚洲天堂视频在线播放| 免费一级毛片完整版在线看| 国产91丝袜在线观看| 色噜噜狠狠狠综合曰曰曰| 欧美日本在线一区二区三区| 免费在线看黄网址| 中文纯内无码H| 久久一级电影| 亚洲欧美不卡| 亚洲综合片| 亚洲性色永久网址| 国产福利观看| 九九九久久国产精品| 热久久综合这里只有精品电影| 亚洲精品久综合蜜| 伊人激情综合| 国内精品一区二区在线观看| 精品国产污污免费网站| 久久国产亚洲欧美日韩精品| 亚洲福利视频一区二区| 美女高潮全身流白浆福利区| 色婷婷综合激情视频免费看| 91福利国产成人精品导航| 国产一区自拍视频| 三级视频中文字幕| 日韩毛片在线视频| 欧美日本视频在线观看| 久久精品娱乐亚洲领先| 日韩欧美国产三级| 19国产精品麻豆免费观看| 熟女视频91| 国产成人乱码一区二区三区在线| 人妻丝袜无码视频| 欧美日韩精品一区二区视频| 亚洲一级毛片在线观播放| 青青青亚洲精品国产| 无码精油按摩潮喷在线播放 | 日本一本正道综合久久dvd| 一级成人欧美一区在线观看 | 亚洲国产精品无码AV| 青青草原国产免费av观看| 99热这里只有免费国产精品 | 91无码人妻精品一区二区蜜桃| 亚洲视频无码| 国产95在线 | 在线观看亚洲国产| 国产乱论视频| 国产色偷丝袜婷婷无码麻豆制服| 中文字幕久久亚洲一区| 在线免费不卡视频| 欧美啪啪一区| 国产浮力第一页永久地址| 久一在线视频| 在线无码av一区二区三区| 亚洲欧美另类专区| 久久久噜噜噜久久中文字幕色伊伊| 欧美成人综合视频| 亚洲欧美不卡| 伊在人亚洲香蕉精品播放| 国产人成午夜免费看| 日韩毛片免费观看| 欧美综合成人| 波多野结衣一二三| 9999在线视频| 亚洲国产中文欧美在线人成大黄瓜| 国产精品区网红主播在线观看| 久久无码av三级| 免费a级毛片18以上观看精品| 久久性视频| 久久中文电影| 精品无码国产自产野外拍在线| 鲁鲁鲁爽爽爽在线视频观看| 日韩小视频在线观看|