2. 第二課

../_images/2_19.png

2.1. 簡介

歡迎參加Micro:bit 智能小車課程!在本課程中,我們將探索Micro:bit並學習如何在編程中如何控制Micro:bit智能小車。

2.2. 教學目標

讓學生清楚掌握Micro:bit 智能小車的AI鏡頭原理及其功用,並了解如何透過設計編程令AI鏡頭幫助智能小車實現更多功能。

2.3. HuskyLens人臉識別功能

2.3.1. 人臉識別是什麽?

下面簡單介紹一下人臉識別的四個步驟。

人臉探測:探測人臉位置並按幀選擇。

人臉對齊:通過定位特徵從不同角度辨識別人的臉。

人臉編碼:提取人臉信息並使其易於計算機理解。

人臉匹配:將人臉信息與現有數據庫進行匹配,得到相似度分數和給出匹配結果。

2.3.2. 人臉識別的應用

存取權系統:通過人臉識別,進入監獄、看守所、社區、學校和住宅等保護區的身份認可。

攝像監控系統:可用於監控公共場所的人群,如銀行、機場、體育場、商場和超市。

互聯網應用:利用人臉識別輔助網上支付,防止其他人盜用信用卡和保障社會

2.3.3. Husky lens 的人臉識別

而HuskyLens的人臉識別功能可以分爲人臉探測、學習及識別三個部分。

2.3.3.1. 人臉探測:

把鏡頭對準人臉,屏幕上會自動出現白色框框出檢測到的所有人臉,並分別顯示“人臉”字樣。另一面的RGB藍燈開關分別代表屏幕中心十字是否對住人臉。

../_images/2_21.png ../_images/2_31.png ../_images/2_41.png

2.3.3.2. 人臉學習:

將HuskyLens屏幕中央的“+”字對準需人臉,單擊“學習按鍵”進行學習。如果識別到同一張臉,屏幕上會出現非白色框並顯示”人臉:ID1“,說明已經可以進行人臉識別了。(如果屏幕中央沒有“+”號,說明HuskyLens在該功能下已經學習過該物件)

../_images/2_51.png

由於人臉是立體的,HuskyLens單靠一個角度的影像無法認出一張人臉的所有角度。因此需要長按學習按鈕,一次過從多個方向學習一張人臉,或同一個人的多張相片。在學習過程中,另一面RGB燈為黃色。

../_images/2_61.png

2.3.3.3. 人臉識別:

HuskyLens學習過的人臉信息會自動保存起來。當檢測到學習過的人臉時,HuskyLens會將該人臉用不同顔色框框起來並標識“人臉:ID ”。此時RGB指示燈為綠色。

../_images/2_71.png

要清除已學習的人臉,在停止學習後短按“學習按鍵”,屏幕提示“再按一次遺忘!”。再次短按“學習按鍵”,即可刪除之前學習的東西。而要學習多張不同人臉,請參考第一課學習多個目標物件部分。

2.4. 練習1

先熟識一下HuskyLens的人臉識別功能,并學會更改物件名稱。

在學習人臉後,HuskyLens仍然只能以ID1、ID2的方式分辨人臉。與分辨物件種類不同,我們難以記住各種不同的人臉,更何況是和數字ID的組合,因此我們需要給它們不同的名字。

在學習不同人臉後,設計程序,試給不同人臉一個人名。

提示:

  • 在HuskyLens >> 更多 内有以ID更改名稱的積木

../_images/2_81.png

  • 沒有名字的點子的話,可以嘗試以下名字:Peter, Sam, Mary

  • 由於HuskyLens更改物件需時,一次性更改多個物件名稱有可能失敗

  • 所以使用“重複無限次”

效果:

../_images/2_9.jpg

2.5. 還原改變後的物件名稱

在使用HuskyLens積木將物件名稱改變後,會發現即使把學習數據遺忘後,新的ID1、2、3物件名稱仍然維持在改變後的狀態。然而,Makecode的HuskyLens擴展包并沒有把所有名稱直接一次過還原的積木。因此有兩個解決方法。

第一個是使用功能按鈕選擇初始化,但此行動會把所有系統設定設回原廠設定,因此需要把其他更改過的設定重新調較好。

第二個方法是再一次使用更改名稱積木,但是把名稱設爲“” (空字串),物件名稱就會還原成“人臉”。因此,只要按照練習1的做法把所有更改過的名稱還原就好。

2.6. 練習2

設計程序,把所有人名還原至預設名稱“人臉”。

提示:

  • 建立變數”ID“以儲存每一個人臉ID

  • 使用迴圈 >> 重複 判斷 … 執行 積木將人臉名稱逐個改變

../_images/2_111.png

2.7. 練習3

設計程序,令HuskyLens在探測到不同人臉時執行不同動作。

ID 車子動作 指示燈
1 前進 1
2 向右水平移動 2
3 向左水平移動 3
4 後退 4
無或其他 停下 X

提示:

  • 假設HuskyLens一次只看到一張人臉

  • 由於鏡頭的角度無法實時調較,因此將不同照片輪流放在車子前,或手持車子並將鏡頭對住人臉效果較好。

  • 控制車子馬達的積木在Stemhub:bit擴展包:https://github.com/stemhub/pxt-Stemhubbit

../_images/2_121.png

2.8. 練習4

結合超聲波傳感器和HuskyLens,設計程序:

車子只在HuskyLens探測到人臉以及超聲波探測不到物件時才前進(防止車子撞上人臉 / 照片)並顯示ID,否則停下並顯示圖示。

../_images/2_131.png

2.9. 答案

2.9.1. 練習1

即使是改變物件名稱也切記要先初始化。

../_images/2_141.png ../_images/2_151.png

2.9.2. 練習2

../_images/2_171.png

2.9.3. 練習3

../_images/2_181.png

2.9.4. 練習4

../_images/2_191.png ../_images/2_20.png