劉思宇,李嘉樂,趙家棟,李子晗
(東北大學計算機科學與工程學院國家級計算機實驗教學示范中心,遼寧沈陽 110819)
隨著互聯網、云計算、大數據等技術的飛速發展,人工智能技術在賦能工業體系,加速經濟發展等方面發揮著重要作用,相關領域人才缺口巨大。為此教育部于2019年遴選出35所高校開設首批人工智能本科專業[1]。
計算機視覺作為當今人工智能最火熱的研究方向之一且與工業界聯系緊密,是人工智能專業的必修課。計算機視覺課程難度較大,且當前的計算機視覺課程中,老師常常是對照書本進行理論與案例講解,這樣的教學方式缺乏互動性,學生也無法體會知識在實際場景中的應用從而導致學生上課積極性不高,教學效果不理想[2]。部分高校針對這一問題提出了安排課外實操環節,提高動手能力的課程教學改革措施,但并未給出詳細的實驗教學方案與實驗案例[3];實驗教學平臺是實驗教學中極其重要的一部分,而計算機視覺課程的實驗教學平臺難以搭建[4]。其原因在于深度學習環境對計算機硬件要求高,實驗環境搭建復雜,需要高性能服務器的支持,大部分學校的普通機房硬件設施難以滿足GPU并行運算要求,針對這一問題靳華中和葉志偉提出搭建基于云端架構的實驗教學平臺[5],但是搭建這樣一套實驗教學平臺需要投入大量的人力與財力,很多學校可能無法搭建并維護這樣一個實驗教學平臺;目前深度學習框架多種多樣,如Pytorch、Tensorflow 等,編程環境有Matlab、Python 等。這些深度學習框架與編程環境大多由國外公司開發,學生需要花費大量時間熟悉實驗環境,且由于相關的中文資源較少,學生遇到問題時也難以解決[6、7]。
通過實踐課程可以幫助學生更好地理解理論知識、發現問題并解決問題,從而更好地掌握該門課程。針對上述提到的問題,本文基于華為ModelArts 云平臺[6]、Mindspore 深度學習框架和華為Atlas 開發者組件給出一個可行的、易學習的系統性實驗教學方案。該實驗方案包含多個基于華為Mindspore框架實現的計算機視覺實驗案例,且其使用的實驗教學平臺為華為推出的ModelArts云平臺,大大降低了學校搭建實驗平臺的成本,同時也減少了教師與學生熟悉開發環境所需的時間。
華為ModelArts 云平臺是華為推出的一站式AI 開發平臺,其包含數據準備、算法開發、模型訓練和模型部署等AI開發全流程。ModelArts 云平臺具有易上手、高性能和靈活性高的特點,能幫助學生更好地完成計算機視覺案例的開發。華為ModelArts 云平臺提供多種預置的數據集和算法,借此初學者可以快速熟悉AI案例的開發全流程。此外ModelArts也支持多種深度學習框架和Notebook開發。
計算機視覺課程的教學目標是使學生掌握圖像的處理和計算機視覺的理論知識并具備一定的相關開發能力。實驗分為物體識別、圖像分割、風格遷移、行為識別、圖像分類五個方向,學生可以在實驗過程中加深對卷積神經網絡的理解,并在動手實踐中掌握圖像和視頻的處理方法;同時也鍛煉學生獨立開發完整項目和獨立解決問題的能力。實驗方案如表1所示。下面對其中的四個實驗進行簡單概述。

表1 計算機視覺課程實驗方案
(1)基于AlexNet實現CIFAR-10圖片分類
此案例是實驗的第一個案例,旨在讓學生能夠快速了解計算機視覺案例開發的完整流程。本實驗要求學生本案例基于ModelArts 云平臺中預置的AlexNet 算法和CIFAR-10 數據集,并完成識別分類任務。學生可通過圖形化界面的方式創建訓練任務、選擇數據集和算法,最終完成訓練并部署上線,從而熟悉計算機視覺案例開發的完整流程。
(2)基于PSPNet街景圖像語義分割
圖像語義分割應用于包括自動駕駛汽車、人機交互、虛擬現實等場景中,近年來隨著深度學習的普及,在許多語義分割問題上深層卷積神經網絡來在精度上超過了傳統方法。在本實驗中,學生可以從ModelArts 云平臺下載街景圖像語義分割數據集,創建訓練作業,使用Mindspore框架搭建PSPNet并完成訓練。通過實驗可以加深學生對深度神經網絡的理解,并鍛煉學生的開發能力。
(3)基于C3D網絡實現視頻動作識別
計算機視覺所要處理的對象不僅僅是以圖片形式出現,還有視頻形式。本實驗就是要鍛煉學生對視頻數據的處理能力。UCF-101 數據集包含Youtube 視頻中的101 種不同的動作類別。學生需要借助華為云平臺中預置的UCF-101數據集,搭建C3D網絡結構,對視頻數據集中的視頻的動作進行識別并給出動作的類別。了解該模型有助于學生理解視頻中蘊含的時序特征信息,理清視頻信息與圖片處理思路的區別,培養全面的計算機視覺能力。
(4)基于DCGAN的人臉圖像生成
生成對抗網絡由一個生成網絡與一個判別網絡組成,并通過讓兩個神經網絡相互博弈的方式進行學習。DCGAN是深層卷積網絡與GAN 的結合,其基本原理與GAN 相同,只是將生成網絡和判別網絡用兩個卷積網絡替代。本案例借助于ModelArts 云平臺中預置的Celeb-A Face數據集和DCGAN 算法實現人臉圖像的生成,學生可以通過該實驗了解圖像生成任務的以及對應的解決方案。
由于篇幅有限,此處以基于AlexNet實現CIFAR-10 圖片分類實驗為例介紹實驗的具體設計。
(1) 掌握借助深度學習框架進行計算機視覺案例開發;
(2)理解AlexNet 網絡中各層的作用,和各參數改變對結果的影響;
(3)熟悉計算機視覺案例開發的完整流程;
(4)熟悉利用ModelArts平臺的開發流程。
AlexNet 網絡的網絡架構包含5個卷積層、2個局部歸一化層、3 個池化層和3 個全連接層[8]。AlexNet 網絡中有幾種創新的方法使其準確率能高于其他神經網絡:
(1)使用ReLU 非線性激活函數。該激活函數相較常用的tanh()激活函數,在梯度下降時下降得更快從而大大縮短了訓練時間。
(2)使用局部歸一化層。該方法對局部神經元創建競爭機制,使得競爭能力更強的神經元輸出值更大,并抑制反饋較小的神經元,從而增強了模型的泛化能力。
(3)使用Dropout 的方法減少網絡模型的過擬合現象。Dropout方法可以讓神經元有一定概率輸出為0,通過該方法不僅可以減少網絡的過擬合現象,也可以減少訓練成本。
(4)AlexNet 網絡還使用了最大池化層、多GPU加速訓練方法和數據增強的方法,這個方法可以幫助AlexNet 網絡達到更高的準確率,此處不做更詳細的介紹。
(1)課前準備階段,學生首先需要預習AlexNet 的網絡結構,然后從官網下載數據集CIFAR-10 并查看數據集內容。本實驗使用的是開源數據集CIFAR-10,CIFAR-10 數據集由10個類的60000 個32x32 彩色圖像組成,每個類有6000 個圖像。有50000個訓練圖像和10000個測試圖像。學生可以使用matplotlib嘗試讀取并顯示圖片內容和標簽。
(2)課上階段,首先由教師解答學生在課前學習AlexNet 網絡時產生的疑惑,并演示Model Arts平臺的使用方法,包括代碼上傳、數據集上傳以及網絡訓練等。講解完畢后,教師可以向學生下發需要填補關鍵步驟的代碼。學生補全空缺代碼后,可以選擇借助Model Arts平臺進行訓練與結果查看或將結果下載至本地查看。學生需要補全的空缺代碼包含數據處理、網絡結構的搭建和參數更新等部分。通過這樣的方式,學生可以加深在理論課程中所學習到的知識。圖1為實驗結果展示。

圖1 AlexNet網絡實現圖片分類實驗
(3)課后作業階段,學生需要修改代碼中設置的超參,并探究其對結果的影響。學生可以通過對比修改不同參數后的結果,理解不同的參數的作用,并盡量調優使得結果準確率更高。
(4)實驗驗收階段,學生需要提交記錄實驗過程和最優結果的實驗報告以及完成超參數調優后的代碼。教師可根據實驗完成度、結果準確率等因素綜合打分。
本課程可以彌補計算機視覺教學實驗領域的空缺,讓學生可以在由易到難的實驗過程中多角度、漸進式、由淺入深地掌握計算機視覺領域的基礎工程方法。計算機視覺是一門實踐性很強的科學,只有真正動手實踐、熟悉開發流程才能將理論知識融會貫通,指導工程的開發。因此,今后的計算機視覺的實驗教學領域仍需要廣大師生創新改進,不斷迭代完善,為人工智能人才培養提供更好的平臺和方案。