王飛
“初探人臉識別系統”是“校園人臉識別系統開發”的第一課時,其要解決的根本問題是站在宏觀的角度,找到設計人臉識別項目中的共性問題:原理與技術難點實現,進行集中突破與解決。從而保證學生在后面的課程中可以合理進行項目的分析與技術落實,切實地使人工智能相關知識與技術落地。
一個完整的人臉識別系統要求計算機能夠進行人臉定位、特征分析、匹配人臉等關鍵的三步,從而保證計算機對一張人臉圖像能夠看得到、看得懂、認得出。圍繞這一線索,本課從基本原理入手,最終完成身份識別。在初中階段,學生學習人工智能主要從技術體驗、原理理解、圖形化編程實踐幾個方面入手,依次進行學習理解;技術體驗層面,從計算機認識他們開始出發,去體驗人工智能技術的神奇,同時開源的代碼和匹配過程的可視化,讓他們感到神秘的人工智能技術背后的技術支持;原理部分相對枯燥,同時內容晦澀難懂。教學中嘗試使用人工智能服務平臺,并和編程解決思想過程相結合,規避復雜的特征模型提取、特征對比等數學問題;編程平臺采用基于Scratch 3.0的圖形化編程環境Scratch GUI提供的機器學習模型,利用積木模塊訓練人臉模型,并進行判定。
本課講授對象為北京師范大學附屬中學初二實驗班的學生,他們具有較強的邏輯思維和學習能力。通過一些輔助材料,如學案、微課或微視頻能夠很快掌握新知,并提出有建設性的觀點或完成個性化的作品。
在日常經驗中,他們具有人臉識別技術相關的產品或應用的使用和體驗經歷,如需要利用人臉識別技術解鎖手機,人臉簽到系統等。但是對技術的認知停留在使用層面,對執行的具體過程和背后蘊含的原理缺乏足夠的認識與理解。
在知識掌握層面,學生們已經初步掌握了Simba編程平臺的使用方法,能夠利用圖形化編程平臺編寫簡單程序。如能夠利用圖形化指令獲取人的部分臉部特征進行判定,以此作為基礎制作一些簡單應用。這些優勢可以有助于完成對于開源工具Scratch 3.0的遷移。但對于相對復雜的技術實現,如利用人臉識別技術識別人的身份信息,無論從原理認知還是編程實現上都存在著較大的困惑與障礙。因此將本節課的落腳點放在幫助學生突破原理難點,實現關鍵技術上,為后面的項目設計打下基礎。
由于是和學生第一次見面,學生的課上活動情況不明,可能會出現不踴躍回答問題、不集中精力上課的情況,因此需要教師在課堂上多加引導。
本節課旨在讓學生了解人臉識別技術在實際生活中的應用與價值,理解人臉識別系統的工作過程和基本原理,能夠使用開源編程工具模擬人臉識別系統的工作過程,理解開發人臉識別項目的關鍵問題和相應的解決手段。
依據《普通高中技術課程標準(實驗)》選擇性必修模塊要求:“利用開源人工智能應用框架,搭建簡單的人工智能應用模塊,并能根據實際需要配置適當的環境、參數及自然交互方式。”本項目重點關注人臉識別系統的設計,能夠使用Scratch3.0 GUI搭建模塊,同時能夠使用通訊模塊輔助Python代碼完成與人工智能服務平臺的通訊,完成相對復雜的交互過程。
依據《普通高中技術課程標準(實驗)》模塊1“數據與計算”要求,本課以圖形化開源工具為依托,能夠結合人臉識別項目實現基本的程序過程;能夠掌握系統運行過程中的數據傳遞過程,合理設計數據結構和運算方法;通過圖形化編程和開源代碼提供的接口完成數據處理。
教學方式采用講授法、討論法、探究法等。用到的資源和設備有問卷星、課件、自制程序(慧眼識人、屬性判定)、Scratch3.0 GUI、Python 3.6。
游戲活動,引入新知。設計進行兩次人機互動。第一次,通過慧眼識人游戲,讓計算機識別出測試對象的身份,并叫出學生的姓名。第二次,增加難度,請測試學生戴上墨鏡或口罩,再次進行交互,判斷結果;并圍繞相關問題進行討論。
活動中提出問題和預設的回答有:(1)程序運用了哪些人工智能相關技術?(人臉識別,語音識別)(2)機器能夠識別我們身份運用的核心技術是什么?(人臉識別)(3)簡單分析機器是如何識別我們身份的?(人臉庫,人臉匹配,判定……)
計算機分析人臉識別身份,并做出響應是人臉識別技術發展的重要方向。對身份的判定過程是打造刷臉系統的關鍵環節。本環節設計意圖是激發學生興趣,從實際體驗到聯系生活,引入本節課主題。
過程分析,提出問題。本環節主要圍繞計算機識別人身份的過程,從程序運行過程的角度進行討論,繪制程序運行的流程圖。并通過流程圖分析哪些問題是我們可以解決的內容,哪些問題是目前無法解決的。
活動中提出問題和預設的回答有:(1)計算機識別人身份的步驟是什么?(圖像采集→特征對比→判定→不同語句)(2)哪些內容是我們可以通過編程實現的?(圖形采集、分支結構)(3)哪些問題我們目前無法實現?(特征對比)
為了完成解決特征對比識別身份的問題,我們首先要弄懂人臉識別的原理,再找到相應的編程方法。本環節設計意圖是從技術解決角度出發,以程序運行過程為線索,引出需要解決的核心問題。
講授計算機識別人臉的原理與方法。本環節涉及的活動是通過觀看視頻,了解人臉識別的整個過程;在此基礎上,通過討論計算機如何區分兩張人臉,理解人臉對比的過程;在此基礎上,討論如何在多行人臉庫中找到匹配的對象,從而理解人臉識別整個技術的應用過程。
人臉對比的過程是定位、檢測和對比技術實現的過程,而人臉匹配的過程是需要創建信息庫和匹配特征信息的。本環節設計意圖是利用視頻突破原理難點,利用案例分析人臉識別中的兩個關鍵問題。
人臉識別的技術原理體驗。本環節涉及的活動是給出一張授課教師照片,學生描述教師的面部特征,并將結果填寫在問卷星上,進行統計分析;將照片上傳至人工智能服務平臺,體會機器在識別面部屬性時的異同;利用程序體驗機器是如何得出相關結論的;分析人工智能服務平臺在編程中的作用。
活動中提出問題和預設的回答有:(1)如何將屬性進行分類(兩類,可以準確描述,主觀經驗判斷)(2)人們之間判定的差異來自什么?(認知、主觀經驗、情感等)(3)機器是如何得出結論的?(特征數據+算法+分類模型)(4)人機之間的判定差異主要來自哪里?(依靠數據,無主觀經驗和感情色彩)(5)人工智能服務平臺的作用?(支持作用)
本環節的設計意圖是利用問卷星的數據體驗人的主觀認知;觀察人工智能服務平臺,體驗機器識別人的技術操作;了解平臺對應用開發的支持作用,同時使學生理解我們的技術只是冰山一角。
編程實現身份識別。通過Scratch GUI的機器學習平臺實現人臉身份的識別。小組為一個單位,利用模型訓練的方法使計算機能夠區分小組成員,并完成結果的輸出。輸出結果可以通過多種方式,如語音、文字等。
活動過程中學生可能會遇到各種編程問題、創建人臉模型庫問題和如何生成判定結果等問題,這些問題也會在各小組的討論和全班學生的交流中得到解答。本環節的設計意圖是在分析原理的基礎上,了解作為應用端的用戶,在設計時的程序設計思想,體驗開源平臺在技術解決層面的方法。
本節課有原理線,從身份識別到特征對比,再到特征模型提取和模型信息匹配;也有技術線,從設計人臉庫到匹配人臉,再到返回結果應用。通過學習本節課的內容,學生對計算機識別人身份的整個過程與原理有了初步的了解。借助人工智能服務平臺與開源的圖形化工具,學生可以將生活中的場景進行復現。當然,程序還有許多不盡如人意的地方,還需要進一步討論與分析。
評價方式。本節課中,教師以提問、體驗過程、任務完成等方式進行評價。評價以過程性評價為主,聚焦學生的思維發展過程。同時這是人臉識別項目的起始課,在整個項目完成后,會對學生的作品進行最終的評價。
對于學生回答問題,教師更多關注學生的思考過程,引導他們發現問題、分析問題和解決問題的能力,關注計算思維在求解實際問題中的培養。在任務后期,教師要對學生的作品和在整個活動中的表現進行全面客觀地評價。
評價量規。實際意義和創意,10分。實際意義維度占5分,對應的量規有:依托學校實際情景,具有應用價值(4分~5分);模仿生活中的情景,有一定現實意義(1分~3分)。項目創意維度占5分,對應的量規有:項目設計具有創意,有實用性(4分~5分);項目設計有一定拓展功能和推廣性(1分~3分)。
設計思路,20分。流程設計維度占10分,對應的量規有:流程圖清晰,技術線明確,過程清晰(8分~10分);有流程描述和技術解決方案,內容需完善(4分~7分);缺少流程設計,方案設計有待提高(0分~3分)。分工實施維度占10分,對應的量規有:小組成員有明確的分工,任務量合理(8分~10分);小組成員有分工,內容和任務量還需優化(4分~7分);小組成員分工任務不明確,任務量不合理(0分~3分)。
程序實現,40分。基本代碼維度占30分,對應的量規有:代碼結構清晰,功能完整實現(20分~30分);基本功能完成,未完成部分有思考(15分~20分);未完成基本功能的設計(5分~15分)。拓展應用維度占10分,對應的量規有:引入Python模塊或平臺參數解決問題(6分~10分);使用了其他組件,并進行思考與嘗試(1分~5分)。
文本展示,10分。文本設計維度占5分,對應的量規有:文件界面簡潔美觀,結構清晰(4分~5分);文本經過排版,在美觀和合理性上尚需提高(1分~3分)。課件展示維度占5分,對應的量規有:課件美觀要點突出(4分~5分);課件和文字進行了布局,內容完整(1分~3分)。
成果表達,20分。文字表達維度占10分,對應的量規有:項目內容描述完整、嚴謹、思路清晰(6分~10分);項目內容描述完整,語言文字還需推敲(2分~5分);內容描述不清,內容缺少邏輯和完整性(0分~1分)。語言表達維度占10分,對應的量規有:表達完整,流程、思路清晰、有感染力(6分~10分);內容完整,描述準確(2分~5分);語言表達存在問題,思維邏輯相混亂(0分~1分)。
教學內容上,教師也嘗試對原理進一步挖掘。從技術實現角度對人臉識別的過程進行分析與討論。在授課過程中,嘗試最大化地降低教育裝備成本,并努力利用Python代碼實現原理的可視化。
本課教學中,因為內容難度相對較大,所以教師講解過多。此外,原理的呈現方式和平臺選用的方面還有待進一步提高,從原理的理解到程序實現的過程中還需搭建更加通暢的橋梁。
作者單位:北京教育科學研究院