廖力紫 張馨月
在人工智能的學習中,“人臉識別”是一個重要的主題,但是人臉識別涉及一些復(fù)雜高深的專業(yè)術(shù)語和算法,中學生目前還沒有達到這方面的知識儲備。怎么辦呢?這實在是對教師的考驗,如果不顧一切地講算法,學生肯定云里霧里,聽不懂,但是如果完全跳過算法,直接給出程序,那么課堂就成了體驗課,沒有一定深度,沒有涉及知識核心,沒有展現(xiàn)學科精華。要想解決這一矛盾,關(guān)于“人臉識別”的教學必須做到既要讓學生體會學科核心思想,又不能讓那些專業(yè)算法成為攔路虎,阻擋學生學習的腳步。為了做到這一點,筆者經(jīng)過深入思考后,把知識進行了簡化分解和重構(gòu)。
● 設(shè)計思想
針對中學生的理解能力,筆者將“人臉識別”的內(nèi)容從三個維度進行解構(gòu)(如右圖)。橫向簡化分解成人臉檢測定位和人臉訓練識別這兩部分;縱向分成基于靜態(tài)圖片的識別和基于動態(tài)視頻的識別兩部分;第三維度設(shè)置知識卡片、拓展閱讀,對學習過程中不可避免的專業(yè)名詞和術(shù)語,以知識卡片和拓展閱讀的形式進行簡單介紹和補充說明,讓學生自行閱讀了解,避免干擾主體思維的形成。
根據(jù)上面的知識解構(gòu),第一部分首先從人臉檢測定位入手,學習基于靜態(tài)圖片的人臉定位和基于視頻攝像頭的人臉定位,這部分建議2~3課時。第二部分進行人臉訓練識別的學習,也是從圖片和視頻這兩方面分別進行,這部分建議2~3課時。
● 教學內(nèi)容
1.人臉檢測定位
學習人臉檢測定位先從圖片入手,讓學生首先了解核心的分類器技術(shù),再過渡到視頻,這樣在學習視頻處理時,加上幀的相關(guān)知識即可。
(1)基于圖片的人臉檢測
這部分的教學目標是了解原理和過程、讀懂程序,能在現(xiàn)有程序的基礎(chǔ)上進行簡單的修改變換和應(yīng)用;教學重點是人臉檢測的過程和詳細步驟,教學難點是分類器。
人臉檢測在生活中有很多地方會運用到,如為方便大家拍照,手機畫面會自動標注出人臉。在進行教學時,可以用這個例子,讓學生有直觀印象。
讓學生對人臉檢測的過程有一個整體的認識,這是教學的重點,人臉檢測先判斷是否存在人臉,如果存在人臉,則給出臉的位置、大小和各個主要面部器官的位置信息。人臉檢測程序的主要步驟為:引入OpenCV——讀入圖片,并預(yù)處理——人臉分類器——人臉標注顯示。
本節(jié)課的人臉檢測程序?qū)婕癘penCV庫,為了不影響學生主體思維的形成,將對OpenCV庫的介紹設(shè)置成“知識卡片”的形式,讓學生自行閱讀。圖片預(yù)處理成灰度圖,這個可以根據(jù)情況進行講解,也可讓學生自行閱讀。分類器是人臉檢測的核心,需要重點講解,本次程序要用到的是Haar分類器中的haarcascade_frontalface_default.xml。
在學生實踐了人臉檢測程序、理解了相關(guān)代碼后,可在練習環(huán)節(jié)讓學生修改人臉標注框的形狀,把方形框改成圓形框,或者修改標注框的顏色。如果這個任務(wù)完成良好,可以加入第二個練習,在檢測人臉的基礎(chǔ)上檢測眼睛。對學有余力的學生,還可以讓其在檢測人臉的基礎(chǔ)上檢測笑容。
(2)基于視頻的人臉檢測
學習了基于圖片的人臉檢測,再學習基于視頻的檢測就容易多了,只需要補充動態(tài)視頻的相關(guān)知識即可。這部分的教學目標是理解動態(tài)視頻的原理,能調(diào)用攝像頭讀取幀、檢測人臉;教學重難點是理解幀,將動態(tài)影像轉(zhuǎn)化成靜態(tài)圖像進行處理。
動態(tài)視覺效果是由多幅靜態(tài)圖片連續(xù)播放形成,每一幅靜態(tài)圖片就是“幀”。因此,視頻檢測的實質(zhì)是針對一系列的連續(xù)靜態(tài)圖片——幀所做的檢測,所以這節(jié)的重點是學習如何處理幀。
教師先講解如何調(diào)用攝像頭→讀取幀→關(guān)閉攝像頭,讓學生上機實踐,學會對攝像頭的控制和對幀的讀取;再結(jié)合基于圖片檢測的知識,對幀加入進行人臉檢測的代碼。根據(jù)前面的圖片檢測眼睛的練習,可以設(shè)置“基于視頻檢測眼睛”的拓展練習。為了提高學生的學習興趣,可以讓學生閱讀關(guān)于人臉識別技術(shù)發(fā)展的相關(guān)資料。
2.人臉訓練識別
在已經(jīng)檢測到人臉的基礎(chǔ)上讓機器“認識”人,核心是機器學習。機器要“學習”,離不開數(shù)據(jù),這體現(xiàn)了數(shù)據(jù)的重要性。
(1)基于圖片的人臉識別
這部分的教學目標是理解基于圖片的“人臉識別”原理,能對不同的人臉進行識別;教學重難點是理解機器學習,了解標簽的作用和置信度的含義。
機器學習是教學的重難點,機器學習的過程要分析清楚。機器學習需要數(shù)據(jù),輸入人臉圖片,對它進行訓練,它會學習關(guān)于人臉特征的內(nèi)容。在訓練完成后,當輸入一張人臉照片時,它會依據(jù)前面的學習判斷出這個人是否“認識”。一般來說,給機器訓練的數(shù)據(jù)越多,它的識別結(jié)果越準確,可以給學生提供介紹“人臉數(shù)據(jù)集”的相關(guān)資料。
本節(jié)課的人臉識別程序使用LBPH識別器,這個識別器由OpenCV擴展庫提供,需要安裝此擴展庫,對LBPH識別器的介紹可放在“知識卡片”中。
在實踐環(huán)節(jié),教師首先分析針對單人的訓練識別,明確人臉識別程序的主要步驟為:引入相關(guān)庫——輸入訓練圖片——設(shè)置圖片標簽——加入LBPH識別器——機器訓練——輸入預(yù)測圖片——機器識別預(yù)測——輸出預(yù)測結(jié)果。設(shè)置標簽屬于機器學習中的有監(jiān)督學習,此處可以根據(jù)學生的接受程度,適當加入有監(jiān)督學習和無監(jiān)督學習的介紹。
接著讓學生思考如何在單人識別的基礎(chǔ)上完成兩人的訓練識別。如果學生能夠完成多人的訓練識別,可以進行練習二:將程序中輸出的標簽和置信度修改成更容易讓普通人看懂的結(jié)果。順著這個思路,拓展練習可設(shè)置成:直接在圖片上標注識別出的人名。人臉識別屬于計算機視覺的范圍,拓展閱讀可以給學生提供計算機視覺的相關(guān)資料。
(2)基于視頻的人臉識別
這部分的教學目標是綜合運用前面的知識,完成一個比較完整的項目。如果學生基礎(chǔ)比較薄弱,可以把這部分簡化,作為體驗課。
● 教學反思
學生在運行基于圖片的人臉檢測程序時發(fā)現(xiàn),只有用正臉照片才能識別,側(cè)臉圖片無法識別。筆者順著這個問題引導(dǎo)學生觀察OpenCV庫的Haar分類器,有些學生發(fā)現(xiàn)了側(cè)臉分類器 haarcascade_frontalface_alt.xml,用這個分類器可以對側(cè)臉進行識別。為什么側(cè)臉分類器可以識別正臉分類器無法識別的人臉呢?筆者拋出這個問題,引發(fā)了學生的熱烈討論。另外,在一個班有一對雙胞胎,為了分辨雙胞胎,學生們反復(fù)調(diào)整置信度,或者換不同的識別器,整個課堂的教學氛圍非常積極活躍,完全超出了教學預(yù)設(shè)。
教學設(shè)計是有規(guī)律可尋的,但真實的課堂遠比預(yù)設(shè)的更精彩,這也是值得教師慶幸的事。