張文志, 楊 森, 柳廣春, 杜夢(mèng)豪
(1.河南理工大學(xué) 測(cè)繪與國(guó)土信息工程學(xué)院,河南 焦作 454150;2.遼寧科技學(xué)院 資源與土木工程學(xué)院,遼寧 本溪 117004)
隨著科學(xué)技術(shù)的進(jìn)步,涌現(xiàn)出物聯(lián)網(wǎng)、云計(jì)算等新一代的信息技術(shù),為建設(shè)智慧城市、智慧社區(qū)、智慧教室等提供有力的技術(shù)支持[1]?;ヂ?lián)網(wǎng)+時(shí)代的到來,為高校教育管理,智慧教室建設(shè),教育資源分配帶來了新的機(jī)遇和挑戰(zhàn)。課堂教學(xué)是師生相互交流、學(xué)生接受系統(tǒng)教育的重要環(huán)節(jié)[2]。智能考勤方式,對(duì)學(xué)生更好獲取專業(yè)知識(shí),推進(jìn)智慧教室建設(shè)有著重要影響。蘇婕,等[3]設(shè)計(jì)并實(shí)現(xiàn)了一種基于近距離通信(NFC, near field communication)智能考勤管理系統(tǒng),使得考勤管理更為高效、準(zhǔn)確。嚴(yán)士超,等[4]提出了一種基于泛在網(wǎng)技術(shù)的實(shí)驗(yàn)室智能門禁考勤管理系統(tǒng)的建設(shè)方案。萬旭成[5]利用數(shù)據(jù)庫的遠(yuǎn)程通信與管理技術(shù),結(jié)合感應(yīng)式刷卡系統(tǒng)實(shí)現(xiàn)校園考勤管理智能控制一體化。田麗,等[6]提出一種基于IPv6的人臉識(shí)別考勤管理系統(tǒng),該系統(tǒng)綜合運(yùn)用物聯(lián)網(wǎng)、人臉識(shí)別、IPv6、數(shù)據(jù)分析和Web服務(wù)等技術(shù),升級(jí)了一個(gè)分層的軟件體系架構(gòu)。方書雅,等[7]提出了一種基于學(xué)生人體檢測(cè)的無感知課堂考勤方法。目前,以人臉識(shí)別技術(shù)為代表的生物識(shí)別技術(shù)與考勤相結(jié)合,使考勤方式變得更加多樣。為解決傳統(tǒng)人工考勤易出現(xiàn)的課堂代答到、代課等現(xiàn)象,文章對(duì)基于LBPH人臉識(shí)別的課堂考勤方法進(jìn)行研究。采用手機(jī)相機(jī)拍攝學(xué)生課堂圖像,通過Python-OpenCV進(jìn)行圖像處理,利用LBPH人臉識(shí)別算法進(jìn)行人臉識(shí)別,得到出勤學(xué)生基本信息。依據(jù)Hough變換和Canny邊緣檢測(cè),劃分教室座位區(qū)間,以此繪制座位格網(wǎng),使學(xué)生與課堂座位相匹配,確定學(xué)生所處座位行列號(hào),生成課堂考勤日志。通過實(shí)例分析,該方法能夠解決人工考勤帶來的諸多問題,提高課堂考勤效率,為智能化考勤提供新的方法。
人臉識(shí)別是將需要識(shí)別的人臉與人臉庫中的存儲(chǔ)信息相對(duì)應(yīng),達(dá)到識(shí)別效果。OpenCV有三種人臉識(shí)別方法,它們分別是基于Eigenfaces、Fisherfaces和Local Binary Pattern Histogram(LBPH)[8]。文章采用LBPH人臉識(shí)別方法,通過提取局部特征進(jìn)行判斷,與Eigenfaces和Fisherfaces兩種方法相比,LBPH方法明顯提高人臉識(shí)別率。
(1)LBPH特征提取
原始LBPH是定義在像素的鄰域內(nèi),以鄰域中心像素為閾值,將相鄰8個(gè)像素的灰度值與其進(jìn)行比較。若周圍像素值大于中心像素值,則該像素點(diǎn)的位置被標(biāo)記為1,否則被標(biāo)記為0。最終可得該鄰域內(nèi)中心像素點(diǎn)的LBPH值,并用此值反映該區(qū)域的紋理信息,如圖1,LBPH計(jì)算原理如式(1)。
圖1 LBPH原理圖
(1)
式中:(xc,yc)代表3×3鄰域的中心元素;ic代表它的像素值;ip代表鄰域內(nèi)其他像素的值;s為符號(hào)函數(shù),該符號(hào)函數(shù)見式(2)。
(2)
(2)改進(jìn)LBPH
基本LBPH算子具有局限性,覆蓋范圍較小,無法滿足更多尺寸和頻率紋理。通過改進(jìn)后的LBPH算子,能夠使半徑為R的圓形鄰域內(nèi),有任意多個(gè)像素點(diǎn),如圖2所示。
圖2 圓形LBPH算子
采用雙線性插值法,可獲得采樣點(diǎn)的像素值,如公式(3)所示。
(3)
(3)LBPH特征匹配
對(duì)于人臉圖像,可將其分為若干個(gè)子區(qū),在這些子區(qū)區(qū)域內(nèi)可根據(jù)LBPH值統(tǒng)計(jì)其直方圖,并依據(jù)直方圖判別其特征。
(1)圖像預(yù)處理
導(dǎo)入拍攝的課堂圖像,對(duì)圖像進(jìn)行尺寸修改,調(diào)整合適圖片大小用來人臉識(shí)別。由于受光照、成像設(shè)備等因素影響,圖像存在隨機(jī)噪聲和模糊干擾,需對(duì)課堂學(xué)生圖像進(jìn)行去噪。文章采用中值濾波去噪,可有效去除數(shù)字化視頻噪聲,特別是彩色圖像噪聲。同時(shí)對(duì)圖像進(jìn)行灰度化處理,去除彩色信息,有利于人臉識(shí)別進(jìn)行。
(2)人臉檢測(cè)
通過Haar特征進(jìn)行人臉檢測(cè),Haar特征能夠用來實(shí)時(shí)人臉跟蹤,每一Haar特征都描述相鄰圖像區(qū)域的對(duì)比模式[9]。對(duì)于圖像中的邊、頂點(diǎn)和細(xì)線,其都能生成具有判別性的特征,實(shí)現(xiàn)人臉檢測(cè)。
(3)訓(xùn)練數(shù)據(jù)
訓(xùn)練過程,利用人臉識(shí)別的train函數(shù)進(jìn)行。標(biāo)簽數(shù)組,識(shí)別該人臉的ID名稱。根據(jù)ID名稱,確定被識(shí)別人姓名。在該過程中,每人劃分相同數(shù)量的數(shù)據(jù)集進(jìn)行訓(xùn)練,建立人臉樣本和ID名稱兩個(gè)列表。遍歷列表中的圖像,將圖像轉(zhuǎn)換為數(shù)組并獲取每張圖像ID,最后獲取循環(huán)對(duì)象。
(4)基于LBPH人臉識(shí)別
LBPH人臉識(shí)別方法,可采用置信度評(píng)分來衡量所識(shí)別人臉與真實(shí)人臉之間的差距[10]。用數(shù)值大小表示,0表示完全匹配,說明所識(shí)別人臉與原模型之間無差距,置信度評(píng)分越高則表明二者間差距越大。
Hough變換直線檢測(cè)是將原始圖像坐標(biāo)系下的一個(gè)點(diǎn),對(duì)應(yīng)參數(shù)坐標(biāo)系一條直線,同樣參數(shù)坐標(biāo)系下一條直線也對(duì)應(yīng)原始坐標(biāo)系下一點(diǎn)。在實(shí)際應(yīng)用中,可采用參數(shù)方程表示,圖像平面上的點(diǎn)則對(duì)應(yīng)到參數(shù)ρ-θ平面上一條曲線,如式(4)所示。
ρ=xcosθ+ysinθ
(4)
Hough變換圓檢測(cè)原理:用(a,b,r)表示原始圖像坐標(biāo)系下,一個(gè)圓心為(a,b)、半徑為r的圓。經(jīng)過一點(diǎn)可作無數(shù)個(gè)圓,定義某點(diǎn)的坐標(biāo)為(xi,yi),該點(diǎn)所用的參數(shù)為(ai,bi,ri),那么經(jīng)過該點(diǎn)的圓方程如式(5)所示。
(5)
式中:ai、bi為圓心坐標(biāo);ri為圓半徑。
Hough變換圓檢測(cè),是對(duì)上述的(a,b,r)進(jìn)行求解。若r確定,點(diǎn)(x,y)又為已知條件,根據(jù)(x-a)2+(y-b)2=r2,則(a,b)的運(yùn)動(dòng)軌跡在幾何上變?yōu)橐?x,y)為圓心,r為半徑的圓;若r不確定,(a,b,r)的運(yùn)動(dòng)軌跡則變?yōu)橐?x,y)為頂點(diǎn)的圓錐。
(1)高斯濾波降噪
設(shè)一像素點(diǎn)位置為(m,n),其灰度值為f(m,n)。用一個(gè)高斯矩陣乘以每個(gè)像素點(diǎn)及其鄰域,取其帶權(quán)重的平均值作為最后的灰度值。
(2)計(jì)算梯度值和梯度方向
平滑后圖像在水平和垂直方向分別使用Sobel核進(jìn)行濾波,以獲得水平方向梯度值gx(m,n)和垂直方向梯度值gy(m,n)。
(3)過濾非最大值
在高斯濾波過程中,邊緣可能被放大。使用統(tǒng)一規(guī)則過濾非邊緣點(diǎn),使邊緣寬度盡量為1。
(4)上下閥值檢測(cè)邊緣
設(shè)置兩個(gè)閥值,分別為最大閥值和最小閥值。其中大于最大閥值被檢測(cè)為邊緣,低于最小閥值被檢測(cè)為非邊緣。對(duì)于中間的像素點(diǎn),若與已確定邊緣的像素點(diǎn)鄰接,則判定為邊緣;否則為非邊緣。
對(duì)拍攝的課堂圖像進(jìn)行預(yù)處理,掩膜去除背景。將處理后圖像進(jìn)行Canny邊緣檢測(cè),標(biāo)定教室座位區(qū)域,刪除教室窗戶等不相干區(qū)域。通過Hough變換直線檢測(cè),選取合適直線,進(jìn)行座位劃分。在劃分座位區(qū)間過程中,以課堂圖像中走廊開始,向左依次為第一列、第二列、第三列等,該過程部分Python代碼如下所示:
for i in circles[0, :]:
if i[0] > 300 and i[0] < 370 and i[1] > 270 and i[1] < 300:
print(′座位:第一行 第一列′)
elif i[0] > 220 and i[0] < 300 and i[1] > 270 and i[1] <300:
print(′座位:第一行 第二列′)
elif i[0] > 128 and i[0] < 220 and i[1] > 270 and i[1] <300:
print(′座位:第一行 第三列′)
elif i[0] > 94 and i[0] <128 and i[1] > 270 and i[1] < 300:
print(′座位:第一行 第四列′)
elif i[0] > 30 and i[0] < 94 and i[1] > 270 and i[1] < 300:
print(′座位:第一行 第五列′)
else:
None
導(dǎo)入人臉檢測(cè)圖,該圖中成功檢測(cè)到的人臉,均已用圓形標(biāo)記。再根據(jù)Hough變換圓檢測(cè),可求得參數(shù),即圓的圓心坐標(biāo)和半徑。通過對(duì)人臉檢測(cè)圖進(jìn)行處理,得出圖像坐標(biāo)系下,人臉圓個(gè)數(shù)即出勤學(xué)生人數(shù),以及各個(gè)人臉圓的圓心坐標(biāo)和半徑。對(duì)所選取的學(xué)生對(duì)象,建立學(xué)生信息列表,包括學(xué)號(hào)、姓名、性別等。通過繪制的座位格網(wǎng)圖,將考勤學(xué)生人臉識(shí)別結(jié)果,與對(duì)應(yīng)的人臉圓所處座位格網(wǎng)相匹配。依據(jù)識(shí)別學(xué)生的標(biāo)簽ID,確定該識(shí)別學(xué)生所處座位行列號(hào),實(shí)現(xiàn)考勤學(xué)生座位匹配。
基于LBPH的智能考勤方法,設(shè)計(jì)開發(fā)了課堂考勤系統(tǒng),實(shí)現(xiàn)了課堂圖像導(dǎo)入、人臉檢測(cè)、訓(xùn)練數(shù)據(jù)、人臉識(shí)別、劃分座位格網(wǎng)以及生成課堂考勤日志的功能,具體技術(shù)流程如圖3所示。
圖3 技術(shù)流程圖
(1)課堂圖像導(dǎo)入
選取學(xué)院教室為實(shí)驗(yàn)區(qū)域,將手機(jī)固定在教室講臺(tái)合適位置,保持高度、焦距大小不變,面向?qū)W生正面拍攝課堂圖像并導(dǎo)入,如圖4。
圖4 課堂圖像 圖5 人臉檢測(cè)
(2)人臉檢測(cè)
對(duì)導(dǎo)入的課堂圖像進(jìn)行預(yù)處理工作,包括圖像尺寸修改、灰度化處理、去噪等操作。使用OpenCV中的Haar級(jí)聯(lián)數(shù)據(jù),加載OpenCV人臉檢測(cè)器,對(duì)預(yù)處理后圖像進(jìn)行人臉檢測(cè),并對(duì)圖像上檢測(cè)到的人臉,繪制人臉圓,如圖5所示。
(3)訓(xùn)練數(shù)據(jù)
選取多名不同專業(yè)學(xué)生為樣本,建立圖像數(shù)據(jù)庫,如圖6所示。調(diào)用OpenCV里face模塊中的LBPH方法,可得出所需訓(xùn)練數(shù)據(jù)文件,并保存到指定路徑。
圖6 圖像數(shù)據(jù)庫
(4)人臉識(shí)別
使用OpenCV加載訓(xùn)練數(shù)據(jù)文件,將圖5中檢測(cè)到的人臉圖像單獨(dú)裁剪并保存,對(duì)裁剪的人臉圖像進(jìn)行LBPH人臉識(shí)別,輸出考勤學(xué)生識(shí)別結(jié)果,如圖7。
圖7 人臉識(shí)別
(5)劃分座位格網(wǎng)
在圖像坐標(biāo)系下,圖像左上角為零點(diǎn),X軸為圖像矩形上方水平線,Y軸為圖像矩形左邊垂直線,如圖8所示。根據(jù)Hough變換直線檢測(cè)原理,檢測(cè)座位直線,挑選合適直線,用于劃分教室座位區(qū)間,并繪制座位格網(wǎng)圖,如圖9所示。
圖8 圖像坐標(biāo)系 圖9 座位格網(wǎng)圖
(6)生成課堂考勤日志
結(jié)合學(xué)生信息列表,得到識(shí)別學(xué)生的個(gè)人信息,并生成考勤日志,完成課堂考勤工作。系統(tǒng)識(shí)別到的為出勤學(xué)生,未識(shí)別則為缺勤學(xué)生,成果統(tǒng)計(jì)如圖10所示。
圖10 考勤日志
(1)基于LBPH人臉識(shí)別算法,實(shí)現(xiàn)了教室學(xué)生人臉檢測(cè)、學(xué)生人臉識(shí)別等。根據(jù)Hough變換和Canny邊緣檢測(cè),劃分教室座位區(qū)間,繪制座位格網(wǎng),并結(jié)合人臉識(shí)別結(jié)果,確定學(xué)生座位位置。
(2)基于LBPH的智能考勤方法,采用Python語言開發(fā)了課堂考勤系統(tǒng),該系統(tǒng)具有學(xué)生人臉識(shí)別、考勤日志生成等功能,較好地完成課堂考勤工作。與傳統(tǒng)人工考勤相比,該方法提高了課堂考勤效率,節(jié)省出更多教學(xué)時(shí)間,有效解決代答到、代課等問題。