付慧 陳志泊
摘要:針對目前軟件工程專業(yè)工程碩士與工學(xué)碩士在培養(yǎng)方案上有很大區(qū)別,但培養(yǎng)課程卻大量重復(fù)的問題,以數(shù)字圖像處理課程為例,結(jié)合工程碩士的培養(yǎng)目標(biāo),提出需要培養(yǎng)其應(yīng)用型研究能力和應(yīng)用型技能的觀點(diǎn),并給出具體實(shí)現(xiàn)方法。
關(guān)鍵詞:數(shù)字圖像處理;工程碩士;應(yīng)用型研究;應(yīng)用型技能;軟件工程
軟件工程專業(yè)工程碩士研究生與傳統(tǒng)的學(xué)術(shù)型研究生有所不同,前者主要面向企業(yè)人才需求和應(yīng)用軟件開發(fā)需求進(jìn)行培養(yǎng),因此在課程內(nèi)容選取、授課方法設(shè)計和實(shí)驗環(huán)節(jié)設(shè)計上都需要進(jìn)行思考和調(diào)整,這也是北京林業(yè)大學(xué)在申請到軟件工程專業(yè)的工程碩士學(xué)科后重點(diǎn)研究的問題。
數(shù)字圖像處理課程屬于圖形圖像應(yīng)用領(lǐng)域的重要基礎(chǔ)理論課,長久以來課程內(nèi)容主要介紹基本的圖像處理算法以及少部分圖像分割和圖像識別,對于圖像處理在實(shí)際生活中所涉及的很多前沿科研領(lǐng)域介紹較少,因此很多研究生無法將課堂講授的理論知識與其后續(xù)從事的研究課題有效地關(guān)聯(lián)起來,感到課堂中講授的很多內(nèi)容看起來毫無用處,從而喪失了學(xué)習(xí)的積極性。
很多教師認(rèn)為把圖像處理中的算法研究透徹、把基礎(chǔ)打好對研究生非常重要,但是這忽視了研究生是有著極強(qiáng)的科研探索精神和豐富想象力的年輕一代。如果將一些在生活中涉及圖像處理的問題交給他們進(jìn)行探索,將會激起他們濃厚的學(xué)習(xí)精神和創(chuàng)造力,這種沒有標(biāo)準(zhǔn)答案的應(yīng)用題目可以進(jìn)一步鍛煉他們的思考能力。
為此,在課程的教學(xué)方法和實(shí)驗內(nèi)容設(shè)計上,我們重點(diǎn)培養(yǎng)學(xué)生以下兩方面能力。
(1)應(yīng)用型研究能力,包括發(fā)現(xiàn)問題、分析問題和解決問題的能力;
(2)應(yīng)用型技術(shù)能力,包括編程設(shè)計能力和項目合作能力。
下面筆者分別從教學(xué)大綱、教學(xué)方法設(shè)計和實(shí)驗內(nèi)容設(shè)計3個方面進(jìn)行介紹。
1.數(shù)字圖像處理課程教學(xué)大綱
我們在設(shè)定教學(xué)大綱時,重點(diǎn)參考了多本數(shù)字圖像處理方面的經(jīng)典教材,如楊枝靈和岡薩雷斯編寫的教材。結(jié)合之前的教學(xué)經(jīng)驗,同時注意與本科生課程相區(qū)別,制訂了兩個原則:加強(qiáng)中高級圖像處理算法的介紹;增加利用圖像處理算法的應(yīng)用案例的介紹。中高級圖像處理算法主要指圖像分割算法、圖像特征提取方法和運(yùn)動檢測方法。同時我們還在課堂上給出一些應(yīng)用案例,進(jìn)一步幫助學(xué)生將理論知識與實(shí)踐相結(jié)合。
數(shù)字圖像處理課程目前作為北京林業(yè)大學(xué)研究生的專業(yè)必修課,總學(xué)時為32,其中課堂講授24學(xué)時,實(shí)驗8學(xué)時。相對于其他學(xué)校,這門課程的總學(xué)時和實(shí)驗學(xué)時數(shù)不多,我們設(shè)計的教學(xué)內(nèi)容如表1所示。
2.數(shù)字圖像處理教學(xué)方法設(shè)計
針對培養(yǎng)學(xué)生應(yīng)用型研究能力的目標(biāo),我們在教學(xué)方法設(shè)計上本著激發(fā)學(xué)生的學(xué)習(xí)興趣,開闊學(xué)生眼界,給學(xué)生提供更自由的思考空間的原則,通過下面兩個措施來實(shí)現(xiàn)我們的目標(biāo)。
2.1精心選擇案例
選擇的案例要貼近實(shí)際生活,并與課堂上講授的方法緊密銜接。例如,在講解圖像增強(qiáng)和復(fù)原這兩章之后,我們引入在實(shí)際生活中常見的“圖像去霧”問題,通過如下方法,培養(yǎng)學(xué)生研究能力。
(1)要求學(xué)生先嘗試用學(xué)過的算法來解決這個問題,并在課堂進(jìn)行算法討論,給出算法結(jié)果。
(2)要求學(xué)生針對具體問題,查閱文獻(xiàn)資料,了解別人的解決方法。通過查閱國內(nèi)外的文獻(xiàn)資料,同學(xué)們知道了如何根據(jù)關(guān)鍵詞查詢科研論文,了解哪些電子數(shù)據(jù)庫中有與專業(yè)相關(guān)資料,知道了文獻(xiàn)的級別有SCI、EI、核心期刊、一般期刊等。
(3)學(xué)生將查到的算法進(jìn)行分類和總結(jié),撰寫文獻(xiàn)綜述。
(4)每位學(xué)生都需要編程實(shí)現(xiàn)“圖像去霧”算法,這個算法是結(jié)合自己的思考、實(shí)踐以及查閱文獻(xiàn)的結(jié)果。
通過自己動手,同學(xué)們發(fā)現(xiàn)如果圖像的清晰度不好,有噪聲,或者沒有歸一化,結(jié)果就完全不同。通過自己動手驗證,同學(xué)們會發(fā)現(xiàn)圖像處理領(lǐng)域的一個最為重要的特點(diǎn)——任何算法主要都是針對一類圖像或是針對一類問題而設(shè)計的,因此在算法的適應(yīng)性上需要有所考慮。
2.2全面介紹圖像處理的各個應(yīng)用領(lǐng)域
老師在課堂上介紹幾個圖像處理涉及的較為重要的應(yīng)用方向(如視頻監(jiān)控、圖像檢索、人臉識別、運(yùn)動檢測、車牌檢測等)后,將同學(xué)們進(jìn)行分組,每組負(fù)責(zé)查找一個應(yīng)用方向的相關(guān)資料,討論和匯報自學(xué)的結(jié)果。匯報內(nèi)容主要包括:①應(yīng)用方向的介紹;②涉及的主要問題;③目前的解決方法及應(yīng)用成果。
通過查找文獻(xiàn),同學(xué)們不僅對課上學(xué)習(xí)過的經(jīng)典算法有進(jìn)一步了解,同時還接觸到很多新算法。通過聽取各組匯報,同學(xué)們在較短的時間里,了解了圖像處理涉及的多個主要的應(yīng)用領(lǐng)域。針對每個應(yīng)用研究領(lǐng)域,老師引導(dǎo)學(xué)生分析該領(lǐng)域的難點(diǎn)和重點(diǎn),提出問題,再讓學(xué)生思考解決方案,沒有標(biāo)準(zhǔn)答案,只希望能夠鍛煉學(xué)生的思考能力。以“人臉識別”為例,有很多經(jīng)典的或較新穎的算法,老師會結(jié)合應(yīng)用領(lǐng)域?qū)ζ渲谐S玫幕虮容^重要的算法,如PCA方法和Adaboost算法,進(jìn)行詳細(xì)講解,使學(xué)生全面了解圖像處理算法的應(yīng)用領(lǐng)域。
3.數(shù)字圖像處理實(shí)驗內(nèi)容設(shè)計
針對培養(yǎng)學(xué)生的應(yīng)用技術(shù)能力的目標(biāo),同時考慮到本課程實(shí)驗學(xué)時數(shù)較少,我們設(shè)計了兩個實(shí)驗——基礎(chǔ)性實(shí)驗和綜合性實(shí)驗。
3.1基礎(chǔ)性實(shí)驗
目前很多經(jīng)典的圖像處理算法是用vC++程序?qū)崿F(xiàn)的,我們要求大家學(xué)會讀程序,能夠看懂已有的算法實(shí)現(xiàn)程序,并在此基礎(chǔ)上能開發(fā)新的功能。
實(shí)驗一:實(shí)現(xiàn)對多種圖像格式的支持(2學(xué)時)
實(shí)驗內(nèi)容:采用VC++編碼實(shí)現(xiàn),基于CDib類,添加支持打開,并保存多種圖像格式的功能。包括JPEG和GIF。
實(shí)驗要求:利用學(xué)習(xí)的圖像壓縮的知識,利用現(xiàn)有的編碼解碼庫實(shí)現(xiàn)對IPEG和GIF圖像的打開和保存。
實(shí)驗?zāi)康模毫私舛喾N圖像格式,編寫針對多種圖像格式的讀寫程序,能夠進(jìn)一步理解針對圖像的編程的特點(diǎn),同時也進(jìn)一步了解開發(fā)圖像應(yīng)用程序的適應(yīng)性問題。
老師在課程初期會向大家介紹圖像處理的一個公開庫——CDib類。該類很好地封裝了圖像的數(shù)據(jù)結(jié)構(gòu),涉及很多圖像的基本操作。我們知道現(xiàn)實(shí)生活中的圖像常常都是壓縮格式的,如BMP、JPEG、PNG、GIF等。因此在講完圖像的壓縮格式后,對照講過的BMP圖像結(jié)構(gòu),老師要求學(xué)生為CDib類添加能夠支持多種圖像格式的功能。以GIF圖像為例,它不同于如JPEG、PNG等格式,GIF采用的是LZW壓縮算法,使用的是無損壓縮技術(shù)。GIF圖像的特點(diǎn)是可以一次壓縮多幅圖像,圖像顏色表控制為256色,使用漸顯方式。
3.2綜合性實(shí)驗
針對綜合性實(shí)驗,我們會擬定多個題目讓學(xué)生選擇,如樹葉提取、花朵提取、車牌識別等。
實(shí)驗二:數(shù)字號碼圖像的識別(6學(xué)時)
實(shí)驗內(nèi)容:采用VC++編碼實(shí)現(xiàn),基于CDib類,針對數(shù)字號碼圖像,識別出數(shù)字,給出文本顯示結(jié)果。
實(shí)驗要求:將該題目進(jìn)行分解,劃分任務(wù);組內(nèi)每個同學(xué)負(fù)責(zé)一部分任務(wù)的編程工作;每個人針對自己負(fù)責(zé)的工作至少提供兩種實(shí)現(xiàn)方法,并放入整個項目流程中驗證這兩種方法的有效性;最后總結(jié)出兩種方法的異同以及適應(yīng)的范圍。
實(shí)驗?zāi)康模嚎疾閷W(xué)生對數(shù)字圖像處理應(yīng)用中每個步驟的掌握程度和項目合作溝通能力。
上述實(shí)驗涉及以下幾個步驟。
①圖像的預(yù)處理;
②圖像的分割;
③圖像的特征提??;
④圖像的分類。
組中每個學(xué)生負(fù)責(zé)一個步驟,所有步驟都需要盡心設(shè)計,這樣整體的效果才可能最好。同時大家需要協(xié)商各自負(fù)責(zé)模塊的人口和出口的數(shù)據(jù)結(jié)構(gòu),保證數(shù)據(jù)能夠在模塊之間順利流轉(zhuǎn)。這種協(xié)商和分工合作的能力是軟件工程專業(yè)最需要的技術(shù)能力之一。
以“數(shù)字號碼圖像識別”為例,該題目可以分割成4個步驟:預(yù)處理、數(shù)字圖像切分、數(shù)字圖像特征提取和數(shù)字識別。在每個步驟中都有分別需要注意的問題,如在預(yù)處理階段,需要對圖像進(jìn)行去噪聲,增強(qiáng)對比度,甚至需要進(jìn)行膨脹和腐蝕將圖像中斷裂的數(shù)字部分連通起來;在數(shù)字圖像切分階段需要制定適應(yīng)性廣泛的切分策略來應(yīng)對各種情況,如數(shù)字排列可以呈現(xiàn)任意的傾斜角度,或數(shù)字字符相連等;在數(shù)字圖像特征提取階段,我們可以考察每個數(shù)字圖像的自相關(guān)系數(shù)特征,或者每個數(shù)字圖像的頻譜特征,也可以考察數(shù)字圖像的幾何拓?fù)涮卣鳎鐚?shù)字圖像分成2個洞的(8),1個洞的(4,6,9,0),沒有洞的(1,2,3,5,7),針對每個類別再提取新的幾何特征;在數(shù)字圖像識別階段,可以采用神經(jīng)網(wǎng)絡(luò)的分類器,或者利用制定的一些分類策略來分類,或者采用主成份分析(PCA)的方法來識別。
4.結(jié)語
兩年多的教學(xué)實(shí)踐表明,新的教學(xué)大綱、授課方法和實(shí)驗內(nèi)容有利于激發(fā)學(xué)生的興趣,使他們帶著問題去學(xué)習(xí),從而加深了對圖像處理應(yīng)用領(lǐng)域的了解,鍛煉了編寫程序和協(xié)作開發(fā)的能力。下一步我們將設(shè)計更多合理有效的案例和綜合性實(shí)驗,力圖通過這門課激發(fā)學(xué)生的創(chuàng)造力。
參考文獻(xiàn):
[1]楊枝靈,王開,Visual C++數(shù)字圖像獲取、處理及實(shí)踐應(yīng)用[M],北京:人民郵電出版社,2002:31-73,338-409.
[2]岡薩雷斯,數(shù)字圖像處理[M],2版,阮秋琦,譯,北京:電子工業(yè)出版社,2003:460-560.
(編輯:彭遠(yuǎn)紅)