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變換和平均近鄰法的人臉識別
主站蜘蛛池模板: 美女毛片在线| 在线中文字幕网| 国产激爽大片高清在线观看| 日韩欧美中文在线| 亚洲欧洲国产成人综合不卡| 成人午夜亚洲影视在线观看| 国产精品女熟高潮视频| 欧美特黄一免在线观看| 国产精品亚欧美一区二区| 中文字幕无线码一区| 久久精品中文无码资源站| 中文成人无码国产亚洲| 女人18毛片水真多国产| 午夜在线不卡| 亚洲成a人片在线观看88| 国产成人精品优优av| 爽爽影院十八禁在线观看| 无码免费的亚洲视频| 亚洲日本一本dvd高清| 日本午夜精品一本在线观看 | 女人毛片a级大学毛片免费| 成人综合在线观看| 精品国产一区二区三区在线观看 | 超碰精品无码一区二区| 999福利激情视频| 久久亚洲高清国产| 夜夜拍夜夜爽| 欧美日韩免费| 久久精品一品道久久精品| 久久久久久久97| 亚洲欧洲自拍拍偷午夜色| 亚洲天堂视频网站| 91久久偷偷做嫩草影院精品| 国产二级毛片| 99re免费视频| 国产白浆在线| 国产亚卅精品无码| 亚洲另类国产欧美一区二区| jijzzizz老师出水喷水喷出| 精久久久久无码区中文字幕| 免费国产不卡午夜福在线观看| 91在线高清视频| 四虎精品免费久久| 亚洲成人高清在线观看| 原味小视频在线www国产| 一级在线毛片| 国产精品成人AⅤ在线一二三四| 色婷婷久久| 秋霞国产在线| 色一情一乱一伦一区二区三区小说| 国产国拍精品视频免费看 | 尤物精品国产福利网站| 无码精品国产dvd在线观看9久| 欧美性精品| 这里只有精品在线播放| 在线无码av一区二区三区| 国产91导航| 亚洲国产成人无码AV在线影院L| 亚洲色图欧美在线| 亚洲AⅤ永久无码精品毛片| 久996视频精品免费观看| 再看日本中文字幕在线观看| 日本午夜网站| 国产成a人片在线播放| 亚洲系列中文字幕一区二区| 一本无码在线观看| 色AV色 综合网站| 亚洲高清免费在线观看| 人妻精品久久无码区| 亚洲欧美日韩天堂| 国产欧美日韩在线一区| 免费xxxxx在线观看网站| 久久亚洲AⅤ无码精品午夜麻豆| 亚洲视频色图| 国产欧美日韩精品综合在线| 久久精品人人做人人爽97| 国产人免费人成免费视频| 国产资源免费观看| 欧美性色综合网| 亚洲男人天堂2020| 亚洲成人免费在线| 国产精品浪潮Av|