崔長華 北京市通州區潞河中學
課程的指導思想是《普通高中信息技術課程標準(2017年版)》指出的“關注學生個性化、多樣化的學習和發展需求”“著力發展學生的核心素養”“通過解決實際問題體驗程序設計的基本流程,感受算法的效率,掌握程序調試與運行的方法”,以及基于項目的學習、“從做中學”即“從活動中學”。
本課選自人教版高一信息技術選修4“3.1 計算機視覺”模塊。筆者在相關教學內容的基礎上進行了重構和加工,開展“基于人臉識別技術的門禁系統設計”(共6課時)。前兩課時了解人臉檢測和人臉識別的相關技術,利用人臉關鍵點體驗人臉美顏效果。本課是項目的第3課時,主題是“解密活體檢測”,核心內容是“基于人臉關鍵點進行活體檢測”。通過對人工智能典型案例的剖析,引導學生發現問題,并嘗試用人工智能的方法解決問題,讓學生感受智能技術對生活和學習帶來的影響。
學生思維活躍,樂于動手實踐,在生活中體驗過不少人工智能產品,愿意探究技術背后的原理。經過一段時間的Python編程學習,學生能夠用編程解決簡單的問題,但是將問題抽象成數學模型的經驗略顯不足,并且對活體檢測的核心技術知之甚少。學生能夠利用人臉關鍵點檢測模型提取人臉的關鍵點信息,并體驗用關鍵點給人臉美顏;用程序設計方法解決現實問題有初步的經驗及一定的抽象能力,但將實際問題抽象成計算機解決問題的能力經驗不足。
重點:利用人臉關鍵點,建立眨眼、張嘴、點頭、搖頭的基礎數學模型。
難點:依據建立的數學模型,設計算法,使用選擇結構編寫程序,驗證實驗結果。
整體設計思路:以解決問題為導向,重點圍繞實驗方案設計、實驗探索、實驗結果驗證展開。采用探究式的教學策略,運用提問法、演示法、講授法、小組探究法。
帶攝像頭的多媒體網絡教室、OpenCv和Dlib庫、教學指南、任務單等。
1.項目回顧,引出主題
教師首先讓一名學生進行人臉識別程序測試(程序能準確識別出學生),接著用學生的照片進行程序測試(照片也能通過人臉識別程序)。學生發現程序還不完善,不能區分是不是真人,為了提高安全性,需要增加活體檢測功能。
設計意圖:主動出示問題抓住學生的注意力,強調活體檢測的重要性,明確本節課主題——配合式活體檢測。
2.頭腦風暴,聚焦方法
師:配合式活體檢測主要是四種動作(眨眼、張嘴、點頭、搖頭)的隨機檢測,人是如何識別各種動作的?(引導學生回想自己識別各種動作的過程)
學生小組討論,結合生活經驗,得出眨眼時黑眼球大小發生變化以及上下眼皮的距離發生變化、張嘴時上下嘴皮的距離發生變化、點頭時以脖子為軸心旋轉、搖頭時向右轉左臉朝前方、向左轉右臉朝前方等,這些都是目前主流的配合式活體檢測的一般方法。
師:(以眨眼為例再次拋出問題)如何讓計算機識別眨眼動作?
此時學生遷移舊知想到,可以利用前面學過的人臉關鍵點中的眼部數據,得到眼睛上關鍵點縱向距離,進而用眼睛距離變化判斷眨眼。
設計意圖:師生通過問題的不斷聚焦,將眨眼過程轉換成距離變化的過程(如圖1),形成計算機識別眨眼的思路。

圖1
3.教師演示,操作示范
教師進行演示,講授利用程序獲取關鍵點歐式距離以及顯示數據圖表的方法,帶領學生分析眼睛縱向的距離變化規律,并記錄實驗數據,如圖2所示。點頭和搖頭動作的規律,不容易發現,教師適時給予點撥(先選取合適的關鍵點,再將關鍵點連成線段,觀察線段或者圖形的變化規律,如圖3所示)。

圖2

圖3
各小組從眨眼、張嘴、搖頭、點頭四個常見活體檢測的動作中選擇其一開始探究實驗,選擇眨眼和張嘴實驗的小組按照教師的操作示范進行實驗操作,找到眼部和嘴部的數據變化規律。在教師的點撥和引導下,學生反復實驗后找到點頭、搖頭的規律。
設計意圖:教師示范的目的是讓學生能夠迅速上手實驗,直奔實驗主題。教師適時點撥和細化探究任務,可避免部分基礎薄弱的學生因為探究目的不明確而難以下手。
4.小組探究,建立模型
有些學生發現實驗結果靠近攝像頭時距離值增大,遠離攝像頭時距離值減小,教師適時鼓勵學生思考解決辦法。
學生發現可以利用比值關系來解決距離發生近大遠小的問題。在師生的共同研討下得出用嘴部縱橫距離比值的數學模型來預測嘴部動作,建模公式如圖4所示。教師請發現規律的小組進行課堂展示,如圖5所示。

圖4

圖5
設計意圖:利用圖形直觀地呈現出動作的變化規律,降低學習難度,使抽象的動作更加直觀,使思維過程可視,達成教學目標。教師適時對不完善的模型和思路進行點撥。
5.應用模型,編程驗證
學生利用模型進行實驗,并記錄各種動作的實驗數據。教師帶領學生分析數據,設計算法。以嘴部實驗為例,當嘴部比例大于均值時,嘴處于張開狀態,小于均值時,嘴處于閉合狀態(如下頁圖6),在發現數據的規律后,師生共同梳理各組的初步算法,以均值為閾值,利用閾值法編程驗證動作的狀態(如下頁圖7)。

圖6

圖7
設計意圖:教師引導學生將所學數學知識融入到計算機解決問題的過程中,并適時捕捉課堂中生成的問題,及時給予解釋和加以引導,推進課堂進程,促進學生的深度學習。
6.展示交流,拓展延伸
在學生編程驗證后,請學生分享作品,將三種動作狀態都識別出來。教師在總結環節幫助學生理清知識結構,構建完善的知識體系:人工智能典型案例需歷經采集數據、特征提取、建立模型、訓練模型、評估模型、應用模型等過程。教師鼓勵學生進行應用遷移,學生想到了眨眼檢測可以遷移到監測疲勞駕駛、表情識別等領域。
設計意圖:通過模型方案的不斷迭代,找到更符合實際需求的動作檢測模型。在作品分享交流環節,給學生提供交流展示的平臺,小組間相互取長補短,找到最優的解決問題的思路和方法。在提升環節鼓勵學生進行應用遷移,這不僅能拓寬學生的視野和思維,還可提高學生解決問題的能力。
本課選取貼近學生生活的人工智能主題,使學生深入體會到在面對復雜問題時,如何化繁為簡,拆解任務。整個教學過程以發展思維為核心,以“問題猜想—實驗提煉—抽象模型—編程驗證”為主線,使學生在輕松愉快的學習氛圍中學習,實現教學目標,提升學生的計算思維。
點 評
本節課是以項目制作的形式開展的一節課,教學內容選自“人工智能模塊”,執教教師對其進行了設計和重構,從教材中的表情識別過渡到解密活體檢測,包含了對數學建模的設計,這是教材中沒有涉及的,也是高中階段學生學習的一個難點。本節課具有如下特點:
1.落實學科核心素養
本節課關注利用信息技術學科特有的方法分析問題和解決問題,從一開始就引導學生思考怎么區分點頭和搖頭這幾個動作,引入計算機來識別,讓學生關注數據在其中起到的作用,重點研究通過數據的關系進行相應的建模,進而解決問題,其中也讓學生理解人和計算機解決問題的異同。整個學習過程,關注問題解決方法的引導,發展了學生的計算思維。
2.實驗教學法,促進高效課堂
本節課采用實驗教學的方式,通過問題猜想、實驗提煉、抽象模型,最后編程驗證,讓學生經歷項目的每一個環節,學生的思維也在活動中不斷深入,從課堂表現看,學生的參與度非常高,而且學生想到的解決方法并不唯一。四種活體檢測動作在本節課都有落實,不同的小組來實驗不同的內容,互相學習、相互啟發,這是一種非常有效的授課方式。
3.借助信息化工具,突破教學難點
教師考慮用相應的方法和手段來突破本節課的難點——數據建模。怎么讓學生發現規律?怎么去建構模型?這都是比較難的,教師通過圖形直觀呈現動作變化規律,發現數據之間的關系,讓學生把動作抽象成數據,再找到數據的規律,這使模型的構建更加自如,也相應降低了學生的學習難度,這種設計非常巧妙,最終達成解密活體檢測的主題。