資源簡介 中小學教育資源及組卷應用平臺 廣東高等教育版信息技術八年級下冊第二單元第4課教學設計課題 第4課檢測圖像中的人臉 單元 第二單元 學科 信息技術 年級 八年級學習 目標 了解OpenCV庫的功能。 初步了解分類器的作用。 理解cv2.imread()、cv2.imshow()、cv2.rectangle()函數的功能與用法。 掌握用OpenCV庫檢測圖像中人臉的方法與步驟。重點 理解cv2.imread()、cv2.imshow()、cv2.rectangle()函數的功能與用法。難點 掌握用OpenCV庫檢測圖像中人臉的方法與步驟。教學過程教學環節 教師活動 學生活動 設計意圖導入新課 觀看圖形。隨著人工智能時代的到來,人臉識別技術得到了廣泛的應用,如火車站人臉識別進站、銀行刷臉取款、支付寶和微信等人臉識別支付等。 人臉檢測是人臉識別的重要基礎。如何從圖像中檢測出人臉呢? 如圖2-4-2所示,當用智能手機拍照時,怎樣確定手機已經檢測到人臉呢? 觀看、欣賞、思考 激發學生的學習興趣,了解日常生活中的人臉識別檢測 。講授新課 分析問題 本課的任務是編寫程序從圖片中找出所有人的臉,并對每一張臉用矩形框做出標記,如圖2-4-3所示:程序要解決的關鍵問題: 一是如何調用人臉分類器文件創建人臉檢測器以檢測圖像中的人臉; 二是如何獲得圖像中的人臉范圍的數據,并在圖像上用圖形繪制人臉范圍的標記。 要解決這兩個問題,在程序中需要利用到OpenCV庫。二、學習新知(一)OpenCV庫 OpenCV庫是一個跨平臺的計算機視覺庫,可以運行在Linux、Windows、Android、MacOS操作系統上。可以處理圖像識別、目標檢測、圖像分割和行人再識別等主流視覺任務。 OpenCV庫在Python3中使用的名稱是cv2。如下圖:(二)分類器 分類器的作用是根據已有類別的訓練數據,判斷一個新樣本是否同屬該類別。 例如,利用貓臉分類器文件‘haarcascade_fronttalcatface.xml’來檢測一張圖像是否有貓臉的程序如下:探究: 運行貓臉檢測程序cat_face.py,了解貓臉檢測的流程,體會各函數的作用,并將表2-4-1補充完整。三、設計算法 1、導入cv2庫 2、讀入人臉檢測圖像 3、創建人臉檢測器 4、對圖像進行灰度處理,進行人臉檢測 5、根據檢測到的人臉數據,用矩形框標注人臉 6、顯示標注人臉后的圖像 四、編寫程序 (一)讀入圖像 讀入圖像是人臉檢測的第一步,我們先用cv2的函數讀入一個圖像并顯示出來。實踐: 完善并運行程序human_face.py,讀入和顯示待檢測人臉的圖像,觀察運行結果。 檢測圖像中的人臉 在讀入圖像后,接下來需要創建人臉檢測器進行人臉檢測,并根據檢測到的人臉數據用矩形框標注人臉區域。探究: 在程序human_face.py的基礎上,添加創建人臉檢測器、檢測人臉區域和標注人臉區域的代碼,完成人臉檢測程序,然后用該程序檢測班級活動照片中的人臉。實踐與創作: 車牌自動識別系統隨處可見,該系統首先要做的是車牌檢測,請利用教材配套資源中的車輛圖像和車牌特征分類器文件,編寫一個車牌檢測程序,檢測結果按圖2-4-5所示用矩形框標出來實踐與評估在Python中導入OpenCV庫的命令是import cv2 2、cv2庫的__cv2.imread()函數可以讀入一個圖像,cv2.imshow()函數用來在指定窗口中顯示圖像 3、在本課人臉檢測程序中,關于語句faces=face.detectMultiScale(gray,1.2,4),下列說法錯誤的是(D) A、detectMultiScale()函數用來檢測人臉 B、檢測到的人臉數據存放在faces列表 C、參數1.2表示每次掃描后將圖像縮小20%,再進行下一次掃描 D、參數4表示最多檢測到的人臉個數為4 4、請完善下列程序,在圖’photo.jpg’中畫出線條寬度為5的紅色圓 進行探究,初步了解程序解決的關鍵問題。 了解OpenCV庫。 了解分類器的作用及類別。 操作、實踐 了解讀入圖像的的用法。 教師講解,學生聽講,了解檢測圖像中的人臉。 掌握標注人臉區域的用法。 自主探究,學生理解和掌握。 動手導入OpenCV庫。 聽講、了解。 學生聽老師講解,了解創建人臉檢測器。 課堂小結 學生回答 利用問題形式進行總結板書 一、分析問題 二、學習新知 (一)OpenCV庫 (二)分類器 三、設計算法 四、編寫程序 (一)讀入圖像 (二)檢測圖像中的人臉 21世紀教育網 www.21cnjy.com 精品試卷·第 2 頁 (共 2 頁) HYPERLINK "http://www.21cnjy.com/" 21世紀教育網(www.21cnjy.com)(共41張PPT) 第 4 課 檢測圖像中的人臉 ——OpenCV 庫的應用廣東高等教育出版 第八冊下 新知導入圖 2-4-1 支付寶人臉識別新知講解 隨著人工智能時代的到來,人臉識別技術得到了廣泛的應用,如火車站人臉識別進站、銀行刷臉取款、支付寶和微信等人臉識別支付等。 人臉檢測是人臉識別的重要基礎。如何從圖像中檢測出人臉呢?快門樂新知講解交流 如圖2-4-2所示,當用智能手機拍照時,怎樣確定手機已經檢測到人臉呢?新知講解圖 2-4-2 手機拍照的人臉檢測新知講解一、分析問題 本課的任務是編寫程序從圖片中找出所有人的臉,并對每一張臉用矩形框做出標記,如圖2-4-3所示:新知講解圖 2-4-3 圖像中的人臉檢測效果新知講解 程序要解決的關鍵問題:一是如何調用人臉分類器文件創建人臉檢測器以檢測圖像中的人臉;二是如何獲得圖像中的人臉范圍的數據,并在圖像上用圖形繪制人臉范圍的標記。 要解決這兩個問題,在程序中需要利用到OpenCV庫。新知講解二、學習新知 OpenCV庫是一個跨平臺的計算機視覺庫,可以運行在Linux、Windows、Android、MacOS操作系統上。可以處理圖像識別、目標檢測、圖像分割和行人再識別等主流視覺任務。 OpenCV庫在Python3中使用的名稱是cv2。(一)OpenCV庫新知講解 在DOS方式中安裝OpenCV庫的命令為: pip install opencv-python 在Python中導入OpenCV庫(cv2)的命令為: import cv2 新知講解 分類器的作用是根據已有類別的訓練數據,判斷一個新樣本是否同屬該類別。 例如,利用貓臉分類器文件‘haarcascade_fronttalcatface.xml’來檢測一張圖像是否有貓臉的程序如下:(二)分類器新知講解#car_face.pyimport cv2 #導入cv2庫#讀入待檢的圖像文件,存到img中img=cv2.imread(‘images/catl.jpg’)#創建名為face的貓臉檢測器face=cv2.CascadeClassifier(‘haarcascade_frontalcatface.xml’)#將img中的圖像轉為灰度圖像,存到gray中新知講解gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)faces=faces.detectMultiScale(gray,1.2,5) #檢測gray中所有的貓臉for (x,y,w,h) in face: #從列表face中讀取所有的貓臉數據#在每張貓臉上畫矩形框 cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),3)cv2.imshow(‘result’,img) #在result窗口中顯示已檢測的圖像cv2.waitKey(0) #按任意鍵退出cv2.destroyAllWindows() #關閉所有窗口新知講解 運行貓臉檢測程序cat_face.py,了解貓臉檢測的流程,體會各函數的作用,并將表2-4-1補充完整。探究新知講解函數 作用 cv2.imread() 讀入圖像 cv2.CascadeClassifier() 創建檢測器 cv2.cvtColor() 轉換圖片顏色 face.detectMultiScale() 檢測圖像中所有的“貓臉”,并記錄各張臉的左上角坐標及寬與高 cv2.rectangle() cv2.imshow() cv2.waitKey() 等待按下任意鍵 cv2.destroyAllWindows() 表 2-4-1 cv2庫的部分函數在指定窗口中顯示所有檢測到的圖像關閉所有窗口用矩形框標注檢測到的貓臉新知講解三、設計算法根據前面圖像中人臉檢測的任務分析,參考貓臉檢測的流程,實現圖像中人臉檢測的算法思路如下:新知講解1、導入cv2庫2、讀入人臉檢測圖像3、創建人臉檢測器4、對圖像進行灰度處理,進行人臉檢測5、根據檢測到的人臉數據,用矩形框標注人臉6、顯示標注人臉后的圖像新知講解四、編寫程序(一)讀入圖像讀入圖像是人臉檢測的第一步,我們先用cv2的函數讀入一個圖像并顯示出來。新知講解探究 完善并運行程序human_face.py,讀入和顯示待檢測人臉的圖像,觀察運行結果。新知講解# human_face.py import cv2 #導入cv2庫img=______________(‘images/face1.jpg’) #從文件夾face1.jpg中讀入圖像文件face1.jpg_____________(‘result’,img) #在result窗口顯示圖像cv2.waitKey(0) #按任意鍵退出cv2.destroyAllWindows() #關閉所有窗口cv2.imreadcv2.imshow新知講解(二)檢測圖像中的人臉在讀入圖像后,接下來需要創建人臉檢測器進行人臉檢測,并根據檢測到的人臉數據用矩形框標注人臉區域。新知講解1、創建人臉檢測器face=cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)用cv2.CascadeClassifier()函數創建一個名為face的人臉檢測器,代碼如下。其中,參數“haarcascade_frontalface_default.xml”是人臉檢測器文件新知講解2、檢測人臉區域(1)用cv2.cvtcolor()將img中的圖像轉換為灰度圖像,存放在gray中gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)其中,參數cv2.COLOR_BGR2GRAY表示將img中的圖像轉換為灰度圖像,檢測灰度圖像可以降低計算強度,加快檢測速度新知講解face=face.detectMultiScale(gray,1.1,3) (2)用face.detectMultiScale()函數檢測圖像中的人臉新知講解函數名detectMultiScale()前要加上前面定義的檢測器對象名稱“face”作為前綴。函數的第一個參數gray中存放的是前面以轉換的灰度圖像;第二個參數1.1表示待檢測圖像在多次掃描中,會逐步按1:1:1的比例縮小進行掃描;第三個參數3表示每一張人臉至少要檢測到3次才確定為人臉。檢測結果包含人臉區域左上角的坐標、人臉的寬度和高度,存放到face元組中。新知講解3、標注人臉區域for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),4)用for循環讀取face中的所有人臉數據,獲得每張人臉區域的左上角坐標(x,y)、寬w和高h,逐一用cv2.rectangle()函數的原圖像img上畫矩形。該函數的參數含義如圖2-4-4所示新知講解圖2-4-4 cv2.rectangle() 函數參數的含義新知講解實踐 在程序human_face.py的基礎上,添加創建人臉檢測器、檢測人臉區域和標注人臉區域的代碼,完成人臉檢測程序,然后用該程序檢測班級活動照片中的人臉。新知講解實踐與創作 車牌自動識別系統隨處可見,該系統首先要做的是車牌檢測,請利用教材配套資源中的車輛圖像和車牌特征分類器文件,編寫一個車牌檢測程序,檢測結果按圖2-4-5所示用矩形框標出來新知講解圖 2-4-5 車牌檢測 檢測與評估1、在Python中導入OpenCV庫的命令是_______________2、cv2庫的______________函數可以讀入一個圖像,_______________函數用來在指定窗口中顯示圖像拓展新知cv2.imread()import cv2cv2.imshow()3、在本課人臉檢測程序中,關于語句faces=face.detectMultiScale(gray,1.2,4),下列說法錯誤的是( ) A、detectMultiScale()函數用來檢測人臉 B、檢測到的人臉數據存放在faces列表中 C、參數1.2表示每次掃描后將圖像縮小20%,再進行下一次掃描 D、參數4表示最多檢測到的人臉個數為4拓展新知D4、請完善下列程序,在圖’photo.jpg’中畫出線條寬度為5的紅色圓拓展新知#image.pyimport cv2color=(0,0,255) #將紅色值存到color中img=cv2._________(‘photo.jpg’) #讀入圖像cv2.circle(______,(480,300),100,color,___) #畫一個半徑100的圓cv2.imshow(‘image’,img)cv2.waitKey(0)cv2.destroyAllWindows()拓展新知imreadimg5 5、完成表2-4-2的學習評估,并將評估等級填寫到“我的成長記錄袋”中。拓展新知拓展新知評估項目 掌握程度 我在本課學習中的最大收獲和不足 較好 一般 較差 了解OpenCV庫的功能 初步了解分類器的作用 理解cv2.imread()、cv2.imshow()、cv2.rectangle()函數的功能與用法 掌握用OpenCV庫檢測圖像中人臉的方法與步驟 會利用各種分類器文件編程檢測圖像中的目標 我的學習效果達到了______等級 表2-3-1 學習評估表課堂總結一、用函數cv2.CascadeClassifier()和人臉分類(‘haarcascade_frontalface_default.xml’)器創建人臉檢測器,存在face中二、檢測人臉區域(1)用cv2.cvtcolor()將img中的圖像轉換為灰度圖像,存放在gray中face=cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)課堂總結(2)用face.detectMultiScale()函數檢測圖像中的人臉三、標注人臉區域face=face.detectMultiScale(gray,1.1,3) for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),4)板書設計一、分析問題二、學習新知 (一)OpenCV庫 (二)分類器三、設計算法 四、編寫程序 (一)讀入圖像 (二)檢測圖像中的人臉謝謝21世紀教育網(www.21cnjy.com) 中小學教育資源網站 有大把高質量資料?一線教師?一線教研員?歡迎加入21世紀教育網教師合作團隊!!月薪過萬不是夢!!詳情請看:https://www.21cnjy.com/help/help_extract.php 展開更多...... 收起↑ 資源列表 第4課 檢測圖像中的人臉.doc 第4課 檢測圖像中的人臉.pptx 縮略圖、資源來源于二一教育資源庫