?

新工科軟件新生項目課程教學設計與實踐

2023-11-13 05:56張萌潔朱相印何中海
實驗科學與技術 2023年4期
關鍵詞:矩陣圖像模型

楊 珊,易 黎,張萌潔,朱相印,何中海

(電子科技大學 信息與軟件工程學院,成都 610054)

基于項目的學習(PBL)是以學生為中心,引入基于項目的教學模式,對培養具有創新思維、分析和解決問題能力強的學生具有必然性和現實意義[1]。PBL-F 是針對新生開展的基于項目的學習課程。軟件學院的PBL-F 課程系列,是引導學生進入項目學習的重要實踐課程,通常安排在大一第二學期。以開發項目為出發點,要求學生在16 學時課堂時間及課后時間解決一個或多個項目問題。學習過程中教師是引導者,學生進行小組合作、自主探索,并積極使用多種信息資源,通過自主學習來構建自己的知識,增加真實的工程體驗[2]

本文通過“基于Python 的圖像分類項目實踐”課程案例的介紹,具體闡述本門新生項目實踐課程教學的方案設計、實踐方法,總結該方法的實現效果。

1 課程設計與任務

1.1 課程目標

本課程主要采用Python 語言完成項目,要求學生掌握基本的語法和數據類型、深度學習的模型概念、預訓練模型調用、數據集增強以及遷移訓練等概念,理解項目實踐的步驟,團隊任務分工合作的方法,多任務合作時間合理分配。其中基礎知識內容的大量學習時間將放在課后以及線上平臺完成。本課程的初衷在于以項目形式,引入學生學習人工智能的相關概念和基礎知識內容,難度較低,多以引導性的方式完成項目,旨在讓學生體會完整項目的成就感和人工智能神經網絡的趣味性,激發新生的專業興趣。

1.2 任務及團隊分工

本課程課堂學時共16 學時,前4 個學時為基本語法、深度學習及CNN 網絡基本知識概念掌握,后12 個學時為項目任務。任務分為3 個階段內容,如圖1 所示,首先學生需要在引導下先完成一個小狗種類圖像分類實踐[2](任務一),然后針對任務一中選出的預訓練模型[3],進行遷移訓練(任務二),以及使用增強數據集[4]進行遷移訓練[5](任務三)。

圖1 PBL-F 課程實踐任務要求分解

任務一主要需要學生利用深度學習框架PaddlePaddle 中PaddleHub 模塊[6]提供的多種CNN模型,完成對50 張小狗種類的分類,并對最終選擇的3 種模型進行準確度、效率等基本指標計算,以此掌握圖像分類基本過程。

任務二需要學習PaddleHub 中遷移學習finetune 使用方式,構建自己的中藥材數據集,包括訓練集、驗證集和測試集,并使用該訓練集對任務一選擇的某個預訓練模型進行遷移訓練,最終使用學生小組自己搜集的另外100 張中藥材圖片,評價模型結果。

任務三需要構建自己的圖片數據集增強庫?;诰€性代數的知識,編寫圖像增強庫,用于任務二圖片數據集增強。再利用增強后的數據集針對任務二選擇的預訓練模型重新進行遷移訓練,再通過100 張中藥材圖片評價和比較模型的訓練結果。其中,任務一作為基礎訓練內容需要所有同學都參與完成,任務二和任務三的內容需要同學分為3 人一組,合作完成不同功能模塊的內容。

1.3 實踐平臺

本課程項目提供百度AI Studio 在線學習和編程平臺,該平臺使用了基于notebook 的交互式編碼環境,主要功能為文件上傳、代碼編碼運行、markdown 文檔編寫、變量監控調試、性能監控、代碼導入、運行狀態保存,生成版本后提交教師評分等功能。同時編程環境可以根據需求選擇GPU 環境,配置為如下。

1)GPU: tesla V100

2)video mem: 16 GB

3)CPU: 2 cores

4)RAM: 16 GB

5)disk: 100 GB

該環境每天有8 h 的免費使用時間,便于學生學習實踐和代碼測試。

1.4 課程任務特點

本課程任務的設計和線上線下教學結合的方式主要為解決大一學生對于Python 語言不熟悉,圖像分類入門時間短以及實操環境難以搭建等困難,同時希望將數學知識和程序項目做有效的結合與實踐。因此本課程任務有以下4 個特點。

1)通過在AI Studio 平臺設計各種語法作業,邊學邊練,使得學生課后可以快速掌握Python語言。

2)通過3 個任務的詳細步驟和子任務設計,學生能夠快速掌握圖像分類方法,和基于預訓練模型進行遷移訓練的方法。

3)本課程遷移訓練任務部分的實操環境需要使用到深度學習框架和GPU,學生電腦難以達到要求。通過選擇基于AIstudio 平臺的開發環境,減少環境部署的壓力和時間。

4)本課程通過兩輪教學實施發現,學生對于數據集增強函數內部邏輯缺乏深刻的理解。因此設計任務三的數據增強內容,學生需要自主編寫矩陣乘法函數,完成圖像分類數據集增強的幾種基本操作,如翻轉、位移、旋轉等幾種易于使用矩陣乘法實現的圖片數據操作。該任務模塊設計將線性代數知識與實踐內容有機結合,讓學生對數學知識學以致用,同時深刻理解數據集增強的內涵。

2 課程實施步驟與方法

2.1 基礎理論知識教學

本課程學時共16 學時,前期4 個學時將用于課堂理論知識的講述,讓學生對于人工智能、深度學習、圖像分類等等名詞形成一定的知識概念,同時通過案例的講解,對任務本身的解析和組隊任務的分配,引入實踐任務平臺,開啟學生線上學習和實踐的入口。

2.2 圖像分類基礎練習任務實施

圖像分類基礎練習要求所有學生動手參與,這是入門圖像分類的基本訓練,也是后期遷移訓練和增強遷移訓練開展的基礎。該任務需要識別pet_images 中的50 張小狗圖片,并通過圖片名稱和識別結果做比較,評價所選的CNN 模型[7]的能力。

1)項目運行時間計算。

2)小狗圖片原始標簽提取,如圖片文件collie_03797.jpg 的真實類別是collie。

3)預訓練模型標簽提取。

該階段任務內容需要學生通過閱讀百度飛槳的文檔[8],掌握預訓練模型基本使用方法,得到小狗圖片預測結果,并將真實類別和預測結果一并存儲。最終得到的某一圖片文件識別結果如此處所示:{'Beagle_01141.jpg':['beagle','english foxhound',0]}

4)模型評價、結果比較和展示。

該階段任務需要對當前工作的預訓練模型的識別結果進行計算,得到模型的準確率、運行時間等各項指標,并通過統計圖示進行展示。如對ResNet、AlexNet、VGG、GoogleNet 和MobileNet[9]5 種預訓練模型的運行時間比較,和模型識別準確率的比較以及展示。

2.3 遷移訓練和圖像增強遷移訓練任務實施

遷移訓練和圖像增強遷移訓練需要學生組成3 人的團隊完成,每個學生可以根據難度和自己的能力選擇不同的任務。3 人分工和難度如下。

1)完成遷移訓練主體程序內容,仿造任務一構造中草藥數據集識別程序(難度:中級)。

2)搜集五種中草藥圖片每種100 張,閱讀遷移訓練數據集構造的文檔,編寫程序處理圖片和數據集生成代碼,構造為遷移訓練可以使用的數據集(難度:初級)。

3)學習數據集增強原理,閱讀示例代碼,不使用numpy 庫自己完成圖片的矩陣乘法運算,為每張中草藥圖片生成翻轉、位移、旋轉的增強圖片(難度:高級)。

2.3.1 遷移訓練任務

完成遷移訓練程序的同學,需要閱讀finetune 程序的代碼,完成部分缺失代碼的編寫,并調整fine-tune 參數,測試遷移訓練的結果。

fine-tune[10]是遷移學習中使用得最多的方式之一。其主要思想是通過對預訓練模型進行結構和參數的微調來實現模型遷移,從而達到模型適應新領域數據的目的。

基于PaddleHub 提供的fine-tune 流程,大約分為以下7 個步驟:

1)導入相關的包和加載遷移訓練模型;

2)準備數據集(分為PaddleHub 自帶數據集和自定義數據集);

3)生成遷移訓練的讀取器(data_reader),調用接口預處理數據集圖像;

4)進行遷移訓練運行時參數配置,包括是否使用GPU 訓練、優化策略和訓練次數等等;

5)組建訓練任務,需要去獲取module 的上下文環境,在輸出變量中找到特征圖提取層feature_map,然后在這層后面接入一個全連接層,生成訓練任務(task);

6)調用finetune_and_eval 接口,針對構建的訓練任務進行遷移訓練;

7)訓練完成后,使用task 的predict()函數即可測試當前模型對新圖片的分類能力。

2.3.2 自定義數據集任務

自定義數據集構造的任務,需要額外編寫腳本代碼,處理自己搜集的訓練圖片,將其構造為可用的命名格式,并且根據PaddleHub 中預訓練模型fine-tune 接口的要求,按照7:2:1 劃分訓練集、測試集和驗證集[11]的圖片,并編寫數據集構造和數據集讀取代碼,以及圖片的標簽文檔。

本次任務選擇中藥材圖片識別任務,后續課程開展可以規定任務類型和范圍,由學生自主選擇和設計類似的圖像識別任務,增大學生的課程參與度。

2.3.3 數據集增強矩陣計算任務

數據集增強任務需要完成以下5 種圖片數據增強[12]的任務:水平翻轉、垂直翻轉、位移、旋轉和縮放。深度學習對數據集的大小有較高的要求。在圖像分類任務中,圖像數據增強是經常采用的方法之一,可以減少過擬合的概率,在原始樣本較少的情況下,增加訓練樣本的多樣性。

假設每個原始圖片的寬度是w,高度是h,圖片中的某個點位置是(x0,y0),變換后該圖片的點是(x1,y1)。

1)水平翻轉。水平翻轉可以轉換為找圖片中的點關于某個軸的對稱點。此時我們的對稱軸應該是w/2。因此翻轉后的橫坐標為x1=w-x0。而y不變,可以得知,y0=y1。由此,可以得到水平翻轉的矩陣式:

2)垂直翻轉。垂直翻轉帶來的是縱坐標的變換,翻轉后的縱坐標為y1=-y0+h。x不變。由此,可以得到水平翻轉的矩陣式:

3)位移。位移變換帶來的是縱坐標和橫坐標的變換,翻轉后的橫坐標x1=x0+Δx,縱坐標y1=y0+Δy,由此,可以得到位移變換的矩陣式:

4)旋轉。原始點依舊是(x0,y0),半徑設為R,變換后該圖片的點是(x1,y1),則x0=Rcosα,y0=Rsinα。

如圖2 所示,(x1,y1)是(x0,y0)以半徑R旋轉θ得到,所以x1可以表示為:

圖2 旋轉變換示意

同理,y1=y0cosθ-x0sinθ。由此可得旋轉的矩陣式為:

5)縮放??s放變換帶來的是縱坐標和橫坐標的變換,翻轉后的橫坐標x1=αx0,縱坐標y1=αy0,α為變換系數。因此,可以得到縮放變換的矩陣式為:

可以發現,每種變換的不同之處在于變換矩陣的不同。學生需要實現每種變換的變換矩陣,然后通過對圖片的每個點進行左乘變換矩陣操作即可實現上述5 種圖像增強。

實現效果以垂直變換為例,首先需要將待變換圖片處理為numpy 數組,代碼1 展示了水平翻轉的變換矩陣,代碼2 展示了基于每個圖像點的矩陣乘法實現。

代碼1 水平翻轉變換矩陣定義

代碼2 矩陣乘法

通過matrixMul(self.transform,point)對圖片的每個點進行循環處理,最后就可以得到變換后的新坐標位置,再將圖片數組根據新坐標位置重新轉換成圖片即可得到變換結果。水平翻轉變換結果如圖3 所示。

圖3 圖像結果

3 項目考核方法

項目考核分為平時成績和期末成績兩項分數,其中答辯、項目實踐、期末報告團隊三人分數一致?;ピu分數來自于學生對團隊成員的工作認可評價。具體評價方式如表1 所示。

表1 新生項目考核評價設計

通過細分考核項內容,從學生的基礎考核、項目完成情況、團隊合作程度、項目匯報情況、報告撰寫情況多個維度考核,體現項目的綜合性特點,更全面考核學生知識獲得程度。

4 結束語

4.1 教學實踐意義

PBL-F 圖像分類項目課程設計是大一學生初步接觸項目的重要銜接課程。本課程教學過程主要采用的是語法基礎學練結合與綜合實踐相結合的層次化實踐教學方式,為后續深入學習專業課程打下基礎。本課程的教學實踐具有以下4 個方面的意義。

1)側重培養學生的實踐能力,內容應既有理論性,也有工程實用性,旨在鍛煉學生的動手能力、實際工程能力、團隊協作能力和匯報能力。

2)實踐環節的fine-tune 任務是中藥材識別任務,后續可以改進為由學生自主選擇不同識別任務,如害蟲識別、食物識別等,激發學生完成課程的興趣,增加課程參與度。

3)學生通過本項目學習實踐預訓練模型相關基礎技術和應用。在當下生成式AI 大模型迅速發展的社會背景下,從預訓練模型的使用入門進行深度學習,具有學習的前瞻性意義。

4)本課程項目在實施過程中將任務模塊化分工,任何學生的任務都是必不可少的環節,強調學生團隊的合作和任務調度,增加團隊協作意識。

4.2 實踐效果評價

通過兩輪的教學實踐發現,學生的語法作業完成度99.3%,基礎的小狗分類實踐完成度為95.2%,fine-tune 任務完成度為92%,通過代碼和在線平臺運行結果發現抄襲現象較少,通過互評發現學生項目實際參與度達到97%。通過兩輪實踐報告發現,大部分學生基本掌握了相關領域基礎知識、工程項目設計方法、團隊分工方法等課程目標。上述數據證明本課程項目能夠提高學生實際動手能力和項目實踐能力,同時能在實踐中得到一定的成就感和實際效果反饋,提高專業學習興趣,增強專業信心。

猜你喜歡
矩陣圖像模型
改進的LapSRN遙感圖像超分辨重建
重要模型『一線三等角』
有趣的圖像詩
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
初等行變換與初等列變換并用求逆矩陣
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
矩陣
矩陣
矩陣
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合