【摘 要】本研究通過人臉識別項目的實踐應(yīng)用,探索了在高中信息技術(shù)課程中培養(yǎng)計算思維的有效策略。項目聚焦于圖像采集、人臉編碼、實時人臉識別等核心模塊的探究,助力學(xué)生理解人臉識別的基本原理和應(yīng)用方法,有效發(fā)展計算思維,培育學(xué)科核心素養(yǎng)。
【關(guān)鍵詞】計算思維;人臉檢測;人臉識別;項目活動
【中圖分類號】G434" "【文獻(xiàn)標(biāo)志碼】A
【論文編號】1671-7384(2024)05-076-03
國務(wù)院印發(fā)的《新一代人工智能發(fā)展規(guī)劃》明確指出,人工智能已成為國際競爭的新焦點。《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)》(以下簡稱《課標(biāo)》)將計算思維納入信息技術(shù)學(xué)科的核心素養(yǎng),強(qiáng)調(diào)運用計算思維識別與分析問題,抽象、建模與設(shè)計系統(tǒng)性解決方案[1],并倡導(dǎo)基于項目的學(xué)習(xí)方式,要依據(jù)信息技術(shù)學(xué)科理論性、工具性和實踐性并重的特征,設(shè)計活動情境,引導(dǎo)學(xué)生在解決問題的過程中感受信息技術(shù)對人們?nèi)粘I畹挠绊懀岣呃眯畔⒓夹g(shù)解決問題的能力。《高中信息技術(shù)課程·必修1數(shù)據(jù)與計算》(華東師范大學(xué)出版社)第四單元“走進(jìn)人工智能”中的“體驗計算機(jī)視覺應(yīng)用”模塊,圍繞“人臉檢測”“人臉識別”等內(nèi)容,將計算思維滲透到人臉圖像智能處理的課程教學(xué)中,借助智能工具形成解決問題的方案,促使學(xué)生成為合格的數(shù)字公民。因此,在人臉識別項目中培養(yǎng)計算思維至關(guān)重要。
項目研究
1.人臉識別概述
自20世紀(jì)50年代以來,認(rèn)知科學(xué)家已經(jīng)開展了人臉識別方面的研究。到了20世紀(jì)60年代,這一技術(shù)已逐步進(jìn)入工程化應(yīng)用。早期的人臉識別技術(shù)主要依賴于人臉的幾何結(jié)構(gòu)特征,利用圓形、曲線等幾何形態(tài)來模擬面部關(guān)鍵特征,進(jìn)行特征分析、識別。隨著人工智能技術(shù)的發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)的方法已經(jīng)成為人臉識別領(lǐng)域的主流技術(shù),其利用深度學(xué)習(xí)和提取人臉的復(fù)雜特征,顯著提升了人臉識別的精確性。
人臉檢測是人臉識別過程中關(guān)鍵的預(yù)處理步驟,旨在從圖像或視頻流中準(zhǔn)確地定位人臉的位置,為后續(xù)的人臉識別奠定基礎(chǔ)。人臉識別作為計算機(jī)視覺領(lǐng)域的一個重要研究方向,是指基于人的臉部特征信息進(jìn)行身份識別的一種生物識別技術(shù),也稱為“面部識別”“人像識別”。人臉識別技術(shù)通常涉及幾個關(guān)鍵步驟:面部圖像的捕獲、面部圖像的檢測、面部特征的提取、特征數(shù)據(jù)的比對和身份驗證或識別。人臉識別技術(shù)被廣泛應(yīng)用于日常生活中,如智能手機(jī)解鎖、支付驗證和安全監(jiān)控等個性化服務(wù)。
2.計算思維的重要性
《課標(biāo)》明確了計算思維的概念,其是指個體運用計算機(jī)科學(xué)領(lǐng)域的思想方法,在形成問題解決方案的過程中產(chǎn)生的一系列思維活動[2],并強(qiáng)調(diào)引導(dǎo)學(xué)生在解決問題的過程中不斷分析思考、實踐求證、反饋調(diào)適,逐步發(fā)展計算思維。
計算思維作為信息技術(shù)學(xué)科的核心素養(yǎng)之一,是每個現(xiàn)代人都應(yīng)具備的基本技能,并非只屬于計算機(jī)科學(xué)家。具備計算思維的學(xué)生,在信息活動中能夠借助計算機(jī)可以處理的方式,界定問題、抽象特征、建立結(jié)構(gòu)模型、合理組織數(shù)據(jù);同時,通過判斷、分析與綜合來自各種資源的信息,運用合理的算法,形成解決問題的方案;進(jìn)而總結(jié)利用計算機(jī)解決問題的過程與方法,并將其遷移到與之相關(guān)的其他問題的解決過程之中[3]。因此,培養(yǎng)學(xué)生計算思維順應(yīng)人工智能時代的要求,符合國家教育改革的方向。
項目準(zhǔn)備
1.環(huán)境配置
人臉識別項目的實現(xiàn)依賴于特定的Python環(huán)境配置,本項目涉及幾個關(guān)鍵的庫:OpenCV、numpy和face_recognition。OpenCV是一個功能豐富的計算機(jī)視覺和機(jī)器學(xué)習(xí)庫,以其輕量級和高效的特點著稱,支持多種操作系統(tǒng),提供了廣泛的圖像處理和計算機(jī)視覺算法。numpy庫為本項目提供高性能的多維數(shù)組對象和廣泛的數(shù)學(xué)函數(shù)工具,是處理科學(xué)計算的基礎(chǔ)。face_recognition庫則依托于dlib庫實現(xiàn)人臉檢測和識別功能,簡化了使用深度學(xué)習(xí)進(jìn)行人臉識別的復(fù)雜過程。安裝這些必需的庫,可以通過使用“pip install + 庫名”命令來完成。值得注意的是,cmake庫必須在安裝dlib庫之前安裝,否則dlib庫的安裝腳本將無法正確配置編譯過程,可能導(dǎo)致安裝失敗。這些庫的結(jié)合,不僅提高了開發(fā)效率,還確保了應(yīng)用的性能和準(zhǔn)確性,為項目實施提供了強(qiáng)大的支持。
2.模塊設(shè)計
人臉識別項目的設(shè)計包括三個核心模塊:圖像采集、人臉編碼和實時人臉識別,構(gòu)成了一個完整的工作流程。圖像采集模塊通過攝像頭捕捉學(xué)生的實時畫面,為構(gòu)建真實的人臉庫提供數(shù)據(jù)源。人臉編碼模塊負(fù)責(zé)讀取人臉庫中的數(shù)據(jù),并利用深度學(xué)習(xí)技術(shù)對這些訓(xùn)練數(shù)據(jù)進(jìn)行編碼。實時人臉識別模塊則通過攝像頭連續(xù)獲取視頻流,并在捕獲的圖像中進(jìn)行人臉檢測與識別,將識別結(jié)果以姓名標(biāo)注顯示。
項目實施
《課標(biāo)》要求學(xué)生通過人工智能典型案例的剖析,了解智能信息處理的巨大進(jìn)步和應(yīng)用潛力,認(rèn)識人工智能在信息社會中的重要作用[4]。因此,人臉識別項目的實施以學(xué)生動手體驗為主,基于現(xiàn)有的開源庫,通過簡單代碼的填寫與修改,實現(xiàn)人臉識別的基本功能,培養(yǎng)計算思維。
1.體驗人臉檢測:抽象建模,提高圖像采集質(zhì)量
教師向?qū)W生演示如何使用OpenCV庫實現(xiàn)人臉檢測的程序。學(xué)生通過該演示,了解到程序的核心功能:通過CascadeClassifier()函數(shù)加載包含預(yù)訓(xùn)練模型參數(shù)的Haar特征分類器face.xml文件,以便后續(xù)有效的人臉檢測;從攝像頭捕獲連續(xù)的視頻流,將捕獲的彩色圖像轉(zhuǎn)化為灰度圖以便處理,并利用detectMultiScale()函數(shù)在灰度圖中檢測人臉;一旦檢測到人臉,就使用rectangle()函數(shù)在原彩色圖像上繪制矩形框,并通過imshow()函數(shù)顯示出來;最終,通過按下ESC鍵結(jié)束程序。
學(xué)生探索人臉檢測功能,思考如何高效地采集與存儲實時檢測到的人臉圖像,以構(gòu)建一個高質(zhì)量的訓(xùn)練數(shù)據(jù)集,為后續(xù)的人臉識別提供支持。為了簡化編程的復(fù)雜性,教師對存儲優(yōu)質(zhì)圖像這一功能進(jìn)行了抽象建模,并引導(dǎo)學(xué)生聚焦于該模塊在源代碼中的最佳位置。通過對A、B、C三個選項插入點的深入分析,學(xué)生評估了各位置的適宜性,更深入地理解了圖像采集模塊的功能。經(jīng)過不斷編程調(diào)試,學(xué)生學(xué)會了評估圖像質(zhì)量和數(shù)據(jù)預(yù)處理的方法,并探究出了提升圖像采集質(zhì)量的有效策略。在解決實際問題的過程中,逐步形成計算思維,加深對人工智能應(yīng)用的理解。
(1)優(yōu)化存儲圖像位置。學(xué)生把存儲圖像的代碼“cv.imwrite(f'./pic/p1_{i}.jpg',frame)”放置于檢測人臉后、繪制矩形前。這一優(yōu)化調(diào)整能確保存儲的圖像僅包含檢測到的人臉,且未被人臉矩形框標(biāo)記破壞,從而保證數(shù)據(jù)的原始性和適用性。若放置于繪制矩形后,則會保存帶有矩形標(biāo)記的圖像,不利于后續(xù)的人臉識別訓(xùn)練。而在人臉檢測之前保存圖像,則無法保證能夠檢測到人臉。因此,正確的插入點是在檢測圖像中存在人臉之后,且在圖像被進(jìn)一步處理之前,這樣可以最大程度地提升采集到的人臉數(shù)據(jù)質(zhì)量。
(2)調(diào)整圖像采集頻率。在圖像存儲后,學(xué)生使用cv.waitKey()函數(shù)設(shè)置一定的延時,以延長圖像采集的間隔。這一課堂動態(tài)生成的資源,有效降低了攝像頭捕捉畫面的速度,為學(xué)生提供充足的時間調(diào)整姿態(tài)和表情,從而能夠采集到不同角度、不同表情的人臉圖像,豐富人臉數(shù)據(jù)集的多樣性,為后續(xù)的人臉識別提供更優(yōu)質(zhì)的人臉庫圖像。
2.評估人臉識別:算法優(yōu)化,提升人臉識別效能
教師向?qū)W生演示如何使用OpenCV和face_recognition庫實現(xiàn)人臉識別的程序。學(xué)生通過該演示了解到程序的兩大關(guān)鍵模塊:人臉編碼、實時人臉識別。人臉編碼模塊的核心功能:通過load_image_file()和face_encodings()函數(shù),遍歷預(yù)存儲的人臉圖像,提取并記錄每張圖像的人臉編碼,將這些編碼集成到人臉庫中。實時人臉識別模塊的核心功能如下:通過攝像頭實時捕獲視頻流,并使用face_locations()函數(shù)定位人臉,face_encodings()函數(shù)提取人臉編碼;程序?qū)⑦@些編碼與人臉庫中的編碼進(jìn)行比對,以判斷當(dāng)前捕獲的人臉是否與庫中的某一人臉匹配;如果匹配成功,則計算最近鄰距離確定最佳匹配,將識別結(jié)果以姓名標(biāo)注顯示,如果未找到匹配項,則識別結(jié)果為“Unknow”;程序?qū)⒊掷m(xù)運行,直到按下ESC鍵退出。
學(xué)生探索人臉識別功能時,遇到了人臉識別率低和錯誤識別的現(xiàn)象,這些問題的解決暫時超過了他們現(xiàn)有的認(rèn)知水平。為助力學(xué)生理解算法優(yōu)化途徑,教師提供了兩個關(guān)鍵的數(shù)字化學(xué)習(xí)資源:“探秘人臉編碼原理”和“匹配閾值你知多少”微視頻。學(xué)生通過觀看微視頻,理解了人臉編碼的基本原理和匹配閾值的重要性。經(jīng)過不斷編程調(diào)試,學(xué)生成功地把理論知識應(yīng)用到了實踐中,實現(xiàn)了人臉識別算法的優(yōu)化,顯著提高了識別的準(zhǔn)確率。在解決實際問題的過程中,學(xué)生的計算思維得到了進(jìn)一步發(fā)展,對人工智能的應(yīng)用有了更深刻的理解。
(1)采用平均人臉編碼
學(xué)生結(jié)合“探秘人臉編碼原理”微視頻的內(nèi)容,使用np.mean()函數(shù)計算每個人所有的人臉編碼的平均值,并將其作為該人的代表性編碼,與實時捕獲的圖像編碼作比對,顯著提高了人臉識別率。因為平均編碼通過融合同一人在不同條件下(如不同光照、姿勢、表情)捕獲的圖像特征,有效減少了單一圖像編碼可能帶來的偏差,提高了匹配過程的泛化能力和穩(wěn)定性,減少了誤匹配的可能性,確保人臉識別的高效、精準(zhǔn)。
(2)合理調(diào)整匹配閾值
學(xué)生通過觀看“匹配閾值你知多少”微視頻,深入理解了人臉識別技術(shù)中tolerance參數(shù)的重要性及其對人臉識別準(zhǔn)確率的影響。tolerance作為人臉識別過程中的關(guān)鍵參數(shù),其值決定了兩個人臉編碼之間的匹配程度,閾值范圍通常設(shè)定在0到1之間。同時,學(xué)生了解到face_recognition庫默認(rèn)的tolerance閾值為0.6,但這并不意味著這個閾值適用于所有的應(yīng)用場景。因此,學(xué)生結(jié)合tolerance匹配閾值的敏感度特性,開展了一系列實驗活動,目的是尋找適合自己應(yīng)用場景的最佳tolerance閾值。在“嘗試→驗證→修正”的“試錯”過程中,學(xué)生不僅學(xué)會了如何調(diào)整閾值以適應(yīng)人臉識別的需求,還深入理解了閾值調(diào)整對匹配結(jié)果的直接影響。降低閾值會使匹配更加嚴(yán)格,但可能會錯過一些有效匹配;而增加閾值會增加匹配的可能性,但也可能引入錯誤匹配。通過不斷地判斷、分析和綜合信息資源,并運用合理的算法,學(xué)生最終形成了解決問題的有效方案,提升了人臉識別率,發(fā)展了計算思維。
總" 結(jié)
本研究項目圍繞圖像采集、人臉編碼和實時人臉識別模塊,深入探索了如何在高中信息技術(shù)學(xué)科中融入計算思維培養(yǎng),以培養(yǎng)學(xué)生作為數(shù)字時代公民的關(guān)鍵能力。通過項目研究、項目準(zhǔn)備、項目實施的各個階段,學(xué)生體驗了人臉識別技術(shù)的應(yīng)用場景,理解了人臉識別技術(shù)的基本原理,優(yōu)化了人臉識別技術(shù)的效能。項目通過調(diào)整圖像采集頻率、優(yōu)化圖像存儲位置的措施,確保了更優(yōu)質(zhì)的人臉數(shù)據(jù)集,為精確人臉識別提供了有力保障;實施平均人臉編碼和合理調(diào)整匹配閾值的方法,有效提高了識別算法的精確度和穩(wěn)定性。
計算思維在本項目實施過程中發(fā)揮了關(guān)鍵的作用。首先,通過任務(wù)分解,將復(fù)雜的人臉識別項目分解為若干個可以解決的小任務(wù),如圖像采集、人臉編碼、實時人臉識別,有助于學(xué)生理解整個項目的實施過程。其次,通過抽象建模,著眼于學(xué)生的最近發(fā)展區(qū),提煉出關(guān)鍵的操作步驟和算法,簡化了人臉識別算法的復(fù)雜性,使學(xué)生能夠理解人臉識別技術(shù)的基本原理和應(yīng)用方法。最后,通過編程調(diào)試,引導(dǎo)學(xué)生運用計算機(jī)科學(xué)領(lǐng)域的思想方法,親歷不斷嘗試、錯誤修正、性能調(diào)試,逐步優(yōu)化了人臉識別的核心算法,實現(xiàn)了項目性能的顯著提升。同時,學(xué)生也深刻理解了在技術(shù)應(yīng)用的過程中維護(hù)個人及他人隱私安全的重要性,樹立了信息社會責(zé)任意識。
綜上所述,本項目不僅促進(jìn)了學(xué)生計算思維的發(fā)展,也深化了學(xué)科核心素養(yǎng)的培育,為學(xué)生成為信息時代合格的數(shù)字公民奠定了堅實基礎(chǔ)。
參考文獻(xiàn)
[2] [4]中華人民共和國教育部.普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)[M]. 北京:人民教育出版社,2018.
張瑜. 培養(yǎng)學(xué)生計算思維:初中學(xué)校開展Scratch編程教學(xué)的實踐與研究[J]. 中國信息化,2022(10).