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