趙俊紅
(華南理工大學 自動化科學與工程學院,廣州 510641)
2017年,教育部復旦共識強調新工科建設需要加強研究和實踐[1],實驗教學是培養學生實踐能力的重要環節。在新工科建設背景下,實驗教學內容應包含更多的綜合性實驗,要在實驗教學過程中加深對理論知識的理解和掌握,切實提高實踐能力。
數字圖像處理是迅猛發展的新興學科,是自動化學科的重要應用領域,強調實踐性。數字圖像處理課程有相應配套的實驗課程,而現有實驗課程往往偏重于講解各種圖像處理工具包的使用方法,利用工具包進行驗證性實驗,缺少綜合性實驗,導致部分學生做完實驗后只記得工具包中的函數,而對具體理論并沒有加深理解,實踐能力提高有限,設計出既能深化理論知識又能提高實踐能力的綜合性實驗非常有必要[2-3]。
現有一些圖像處理軟件能對照片中的折痕、殘缺、斑點等瑕疵進行一定程度的自動修復,能達到較好效果,如Photoshop Elements 2020能將圖像中較大物體消除而不會出現明顯的視覺痕跡。可設計一個綜合性實驗來模擬Photoshop Elements 2020軟件,以實現數字圖像的修復功能,學生需綜合運用理論知識來進行實踐活動。
圖像修復技術在文物修繕、圖片美化等方面發揮著重要作用。現有修復算法很多,其中Criminisi的修復算法效果相對較好,于是選擇該算法進行實驗教學設計。
矩形圖像1為待修復圖像I,待修復區域為Ω,源區域為Φ(Φ=I-Ω),其待修復區域邊界定義為δΩ,Criminisi算法先計算δΩ上所有像素點的優先權P(p),優先權最大的點p所在區域塊選為待修復區域塊ψp。然后,在源區域Φ中選擇與待修復區域塊ψp中所有像素的誤差平方和(SSD,Sum of Squared Difference)最小的最佳匹配塊ψq,將對應像素填充到待修復區域塊ψp中并更新δΩ,循環往復至Ω為空。

圖1 圖像修復Criminisi算法
優先權公式為
P(p)=C(p)·D(p)
(1)
其中,C(p)為置信度項,D(p)為數據項,其定義分別為
(2)
|ψp|是ψp的面積,np是點p的單位法向量,α是歸一化因子,通常取α為255。對于C(q),有:

(3)
⊥表示垂直化操作,Ix和Iy表示p點在x,y方向的偏差分。?Ip⊥表示源圖像中p點所在的等位線方向。

(4)


圖2 圖像修復效果示意
本實驗是綜合設計型實驗,通過實驗教學能加深對理論知識的理解,能有效提高學生的文獻檢索能力、動手實踐能力和自主學習能力。
學生已經可以利用現有的圖像處理工具包進行一些簡單的驗證性實驗,基本無科技文獻專業數據庫檢索經驗,無圖像處理綜合設計型實驗經驗,這些都使得進行綜合性實驗具有必要性。
學生具有基本的數字圖像處理理論知識,已經學習C++語言和MATLAB語言,部分學生自學了PYTHON語言。圖像修復實驗中所需要的基本理論知識已在理論課程中學習過,但和課本知識相比,實操難度增大,高于一般的驗證性實驗,具有一定的障礙性[5],可通過查閱資料、加深理解和深化算法來完成[6-7],以保證綜合性實驗的可行性。
步驟1:激發并保持學生的學習興趣[8-9]。興趣是最好的老師,學生對有興趣的事情能保持較好的專注力,能進行自主學習[10]。首先,教師通過Photoshop Elements 2020直觀演示自動修復圖像效果。其次,演示其他修復應用軟件并與Photoshop Elements 2020進行對比,通過不斷調整需修復的折痕、殘缺、斑點的面積大小來直觀觀察不同軟件的自動修復能力,可觀察到Photoshop Elements 2020對大面積的修復能力要優于其他軟件。最后,引導出能進行大面積修復的基于樣本的Criminisi算法。
步驟2:訓練文獻檢索能力。文獻檢索能力關系到本實驗能否正確完成,因為實驗中要理解Criminisi算法的原理并實現,還需閱讀大量的文獻來完成算法改進。而學生幾乎沒有專業的數據庫搜索經驗,所以需首先訓練文獻檢索能力。
課前,利用微課向學生簡單介紹中國知網、IEEE庫、web of Science、OSA美國光學會、ACM期刊和會議庫、EI-village2等,布置一個符合學生現有知識水平的文獻檢索任務,如圖像分割方法綜述,學生通過該任務能迅速掌握相關數據庫的使用和檢索項的提煉。
步驟3:訓練科技文獻閱讀能力。通過數據庫找到合適的科技文獻后,需要閱讀科技文獻找到自己需要的內容。學生幾乎沒有科技期刊文獻閱讀經驗,需利用微課講解如何閱讀科技文獻。以一篇圖像分割的科技文獻為例,通過講解讓學生掌握科技文獻的基本結構,學會如何快速閱讀科技文獻并獲取相關知識,還要學會如何對文獻進行精讀和泛讀。
步驟4:閱讀并實現圖像修復原型算法。A.Criminisi的論文Region Filling and Object Removal by Exemplar-based Image Inpainting發表在IEEE transactions on image processing上,篇幅較長,共13頁,大部分學生由于第一次接觸英文長文文獻難免有畏難情緒,此時可采取小組學習法來完成課外閱讀任務,4~5人組成讀書小組進行探討,形成讀書筆記。正確理解該算法才能正確編程,為了保證理解認識未出現偏差或錯誤,課堂教學上,各小組要展示讀書筆記,教師參與討論,確保每個學生都能正確理解原型算法。經過兩年教學,證明該方法行之有效,學生通過課后閱讀、課堂展示和探討能夠較好地掌握該算法原理。至此,就完成了實驗預習,有效避免了學生照抄實驗指導書和預習報告流于形式的情況。
實現算法過程中會涉及理論課中已學過的圖像輸入輸出、彩色模型轉換、梯度運算等操作,在深刻理解相關理論的同時提高了學生的編程能力和實踐能力。此環節是在課后完成。
步驟5:鼓勵學生對原型算法進行改進。理解和實現原型算法后,為了培養學生的創新能力,鼓勵學生對原算法進行改進。鑒于學生現有知識水平,教師指導學生可在以下四方面進行改進:①改進原算法中的優先權計算公式。②樣本塊大小的改進。③相似性度量的改進。④樣本塊搜索策略的改進。
對①而言,可引導學生分析原型算法中的P(p)=C(p)·D(p)。由于置信度和數據項之間是相乘關系,會使得如C(P)太小,即使數據項D(p)有較大值也會迅速拉低P(p)接近零,這就使得不同D(p)之間的差異被削弱,使得修復點p的選擇隨機性增強,因此要改進優先權計算公式。對②而言較為簡單,學生可對修復的時間代價進行比較來選擇合適的樣本塊大小。對③而言,原算法采用的是待修復塊和樣本塊之間的SSD來作為刻畫二者之間相似性的特征量,但此特征量對圖像旋轉、亮度變化的魯棒性較差。理論課程由于課時緊張的原因,對特征量的選取只做了一般性了解。但圖像特征量的設計是圖像識別中非常重要的環節,要鼓勵學生多做探究。教學顯示,學生能通過查閱資料得到更優的特征量。對④而言,難度最大,原型算法中樣本塊的搜索是全局遍歷的,為了縮短搜索時間,需采用一些優化的搜索算法。而這部分內容在理論課程中沒有講授,學生需要自主學習相關的優化搜索算法。教學結果顯示,小部分學有余力的學生能夠完成。改進中的①②③要求所有學生必須完成,④可以選做。
在此步驟中,教師起指導作用,指引實驗進行的方向,具體的改進方案、實施方法都需要學生自行完成。學生是在教師主導下進行自主學習,能夠培養學生的創新能力和實踐能力。教師指導部分在課堂完成,學生實現部分在課后完成。
步驟6:撰寫實驗報告。完成上述實踐步驟后,學生需按照科技論文格式撰寫實驗報告,提高科研素養。此步驟在課后完成。
步驟7:考核方式。采用小組答辯的方式,教師和其他組別人員進行提問,此種方式能有效避免抄襲或同組組員的依賴思想,能夠較真實反映出學生的知識水平。原型算法改進部分允許學生失敗,應重點考查算法的改進思路[11-12]。
兩年的教學實踐表明,學生能夠通過課前微課教學掌握科技文獻的檢索方法和閱讀方法,能夠理解并實現圖像修復原型算法,能在課后通過查閱資料、討論來完成對算法的改進分析。評教結果顯示,學生對此種實驗教學過程的認可度較高。
該綜合性實驗教學以切實提高學生的實踐能力為設計原則,面向具備相關知識的高年級本科生開設。教學內容和步驟與理論課程緊密聯系,又有一定拔高,能培養學生的文獻檢索能力、理論聯系實踐的能力和自主學習能力。