丁 進(jìn),施 秧,孫勇智
(浙江科技大學(xué)自動(dòng)化與電氣工程學(xué)院 浙江 杭州 310023)
當(dāng)前我國(guó)經(jīng)濟(jì)處于從高速增長(zhǎng)向高質(zhì)量發(fā)展轉(zhuǎn)變的重要階段,以人工智能為代表的新一代信息技術(shù)將成為我國(guó)“十四五”期間推動(dòng)經(jīng)濟(jì)高質(zhì)量發(fā)展、建設(shè)創(chuàng)新型國(guó)家,實(shí)現(xiàn)新型工業(yè)化、信息化、城鎮(zhèn)化和農(nóng)業(yè)現(xiàn)代化的重要技術(shù)保障和核心驅(qū)動(dòng)力之一。機(jī)器人作為新興技術(shù)的重要載體和現(xiàn)代產(chǎn)業(yè)的關(guān)鍵裝備,引領(lǐng)產(chǎn)業(yè)數(shù)字化發(fā)展、智能化升級(jí),不斷孕育新產(chǎn)業(yè)新模式新業(yè)態(tài)。
“數(shù)字圖像處理”課程是人工智能、機(jī)器人、自動(dòng)化等新工科專(zhuān)業(yè)人才培養(yǎng)方案中的核心課程,為其他一些主干課程,比如移動(dòng)機(jī)器人導(dǎo)航、無(wú)人駕駛基礎(chǔ)、智能汽車(chē)制作等的順利開(kāi)展奠定了技術(shù)基礎(chǔ)[1-2]。數(shù)字圖像處理課程主要講授數(shù)字圖像基礎(chǔ),包括圖像的定義、表示和采樣、圖像的灰度級(jí)和顏色空間、圖像的統(tǒng)計(jì)特性和圖像的評(píng)價(jià)指標(biāo);圖像增強(qiáng),包括圖像灰度變換、圖像空間濾波、圖像頻域?yàn)V波;圖像變換,包括幾何變換、灰度變換、彩色變換;圖像復(fù)原,包括圖像去噪、圖像反模糊、維納濾波;圖像壓縮,包括壓縮依據(jù)、無(wú)損壓縮方法、有損壓縮方法;圖像分割,包括閾值分割、區(qū)域分割、邊緣分割;圖像特征提取,包括紋理分析、形狀分析、顏色分析;機(jī)器視覺(jué),包括目標(biāo)識(shí)別、圖像匹配、三維重建等。然而,在當(dāng)前的課程教學(xué)中,理論教學(xué)占了大部分學(xué)時(shí),實(shí)踐教學(xué)學(xué)時(shí)少,僅有實(shí)驗(yàn)部分面向?qū)嵺`教學(xué),無(wú)法全面徹底地培養(yǎng)學(xué)生的動(dòng)手實(shí)踐能力,使之在實(shí)際工程項(xiàng)目中能夠通過(guò)編寫(xiě)代碼解決圖像處理與分析的相關(guān)問(wèn)題[3-4]。因此,“數(shù)字圖像處理”課程的實(shí)踐教學(xué)亟待改革。而如何為學(xué)生搭建合適的實(shí)踐教學(xué)體系,為其建立平滑的學(xué)習(xí)曲線是關(guān)鍵。
本文組織如下:在第二部分,首先簡(jiǎn)要介紹了OpenCV開(kāi)源圖像算法庫(kù),其次重點(diǎn)闡述了“課堂—作業(yè)—實(shí)驗(yàn)—大作業(yè)”四層階梯式實(shí)踐教學(xué)體系。在第三部分,對(duì)基于OpenCV的“數(shù)字圖像處理”課程階梯式實(shí)踐教學(xué)體系進(jìn)行了總結(jié)。
OpenCV 是Open Source Computer Vision Library 的縮寫(xiě),是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺(jué)庫(kù),提供圖像處理、圖像分析和機(jī)器視覺(jué)的各種功能和算法[5]。它由C 和C++編寫(xiě),同時(shí)也支持Python 和Java 等其他編程語(yǔ)言。OpenCV 提供的功能非常豐富,包括圖像處理、圖像分析和機(jī)器視覺(jué)。圖像處理是計(jì)算機(jī)視覺(jué)的基礎(chǔ),OpenCV 提供了各種圖像處理算法,包括圖像濾波、圖像分割、圖像變換、圖像特征提取等。圖像分析是指從圖像中提取信息,OpenCV 提供了各種圖像分析算法,包括圖像識(shí)別、圖像分類(lèi)、圖像跟蹤等。機(jī)器視覺(jué)是指利用計(jì)算機(jī)來(lái)模擬人的視覺(jué)功能,Open-CV 提供了各種機(jī)器視覺(jué)算法,包括物體檢測(cè)、目標(biāo)跟蹤、運(yùn)動(dòng)分析等。OpenCV 是開(kāi)源的,可以用于商業(yè)和研究領(lǐng)域,具有跨平臺(tái)特性,支持多種操作系統(tǒng)和硬件平臺(tái)。Open-CV 的算法經(jīng)過(guò)優(yōu)化,可以實(shí)現(xiàn)實(shí)時(shí)處理。OpenCV 已經(jīng)被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)研究、圖像處理和編輯、機(jī)器視覺(jué)和自動(dòng)化、醫(yī)學(xué)圖像處理以及視頻分析和監(jiān)控等領(lǐng)域。
“數(shù)字圖像處理”課程選用岡薩雷斯、伍茲著的《數(shù)字圖像處理》教材,阮秋琦、阮宇智譯,第4 版,電子工業(yè)出版社出版。該書(shū)比較適合作為講授數(shù)字圖像處理內(nèi)容的入門(mén)教材,它從圖像處理的起源發(fā)展講起,依次講授圖像處理基礎(chǔ)、空間域圖像增強(qiáng)方法、頻率域圖像增強(qiáng)方法、圖像復(fù)原基本方法、彩色圖像處理、形態(tài)學(xué)基本操作、圖像壓縮基本概念、圖像分割基本方法、特征描述和物體識(shí)別基礎(chǔ)知識(shí)。這些章節(jié)的知識(shí)點(diǎn)包含了大量的圖像處理方法和技巧,如果僅靠課堂講授和少量實(shí)驗(yàn)學(xué)時(shí),難以培養(yǎng)學(xué)生的動(dòng)手實(shí)踐能力,使得他們?cè)趯?shí)際工程項(xiàng)目中能夠靈活運(yùn)用并編寫(xiě)代碼解決相關(guān)圖像處理與分析的問(wèn)題。
本文提出了“課堂―作業(yè)―實(shí)驗(yàn)―大作業(yè)”四層階梯式實(shí)踐教學(xué)體系,目的是為學(xué)生建立“算法函數(shù)講解―單個(gè)算法簡(jiǎn)單應(yīng)用―多個(gè)算法融合應(yīng)用―工程問(wèn)題綜合運(yùn)用”的平滑學(xué)習(xí)曲線,由淺入深、由點(diǎn)及面地訓(xùn)練他們?cè)趯?shí)際工程項(xiàng)目中編寫(xiě)圖像算法的能力。
在“課堂”這一層次中,教師不僅要講授每個(gè)圖像處理方法的原理和必要的數(shù)學(xué)推導(dǎo),更要結(jié)合OpenCV 給學(xué)生介紹該方法的編程實(shí)現(xiàn)、對(duì)應(yīng)的OpenCV 函數(shù)、函數(shù)的參數(shù)等具體實(shí)現(xiàn)細(xì)節(jié)。比如圖像處理基礎(chǔ)中的連通域概念,教師介紹完它的理論知識(shí)后,緊接著介紹OpenCV 中與之對(duì)應(yīng)的函數(shù)connectedComponents 和connectedComponentsWithSt ats,以及這兩個(gè)函數(shù)的每個(gè)參數(shù)(比如image、label、connectivity等)的意義,可以結(jié)合OpenCV的講解頁(yè)面進(jìn)行介紹。這兩個(gè)函數(shù)講解完之后,為了讓學(xué)生有更加直觀的體會(huì),教師可以在機(jī)器上面運(yùn)行這兩個(gè)函數(shù),并試驗(yàn)不同的參數(shù)輸入,讓學(xué)生觀察運(yùn)行結(jié)果和中間變量變化情況。在講解空間域?yàn)V波時(shí),教師首先介紹空間域?yàn)V波的種類(lèi),其次介紹OpenCV的相關(guān)函數(shù)及其參數(shù),比如平滑函數(shù)Gaussian-Blur(參數(shù)sigmaX,gigmaY,ksize 等)和銳化函數(shù)Sobel(參數(shù)dx,dy,ksize,scale 等)。講解完函數(shù)細(xì)節(jié)后,教師運(yùn)行演示例子給學(xué)生們以感性的認(rèn)識(shí)。
在“作業(yè)”這一層次中,由于學(xué)生在課堂上已經(jīng)對(duì)圖像處理方法的理論和OpenCV 函數(shù)有了深入的認(rèn)識(shí),接下來(lái)通過(guò)課后作業(yè)令其通過(guò)編程進(jìn)一步加深對(duì)這些知識(shí)點(diǎn)的理解與實(shí)踐。每章的課后作業(yè)可以有多個(gè),每個(gè)作業(yè)都是對(duì)本章的單個(gè)圖像處理方法的編程練習(xí)。比如,在第二章數(shù)字圖像基礎(chǔ)中,可以作為作業(yè)的知識(shí)點(diǎn)包括讀取一幅圖片的寬和高、對(duì)一幅圖片進(jìn)行采樣、標(biāo)記出一幅圖像的連通區(qū)域等。在頻率域圖像增強(qiáng)一章中,可以設(shè)置兩幅圖像的譜圖和相角交叉重構(gòu)的作業(yè)來(lái)加深學(xué)生對(duì)譜圖和相角在重構(gòu)中的角色的理解。
在“實(shí)驗(yàn)”這一層次中,由于學(xué)生已經(jīng)在作業(yè)中對(duì)單個(gè)圖像處理知識(shí)點(diǎn)有了動(dòng)手實(shí)踐的經(jīng)歷,教師將各章的知識(shí)點(diǎn)整合一下,設(shè)計(jì)實(shí)驗(yàn)題目,對(duì)學(xué)生綜合利用圖像處理知識(shí)點(diǎn)的能力進(jìn)行訓(xùn)練。比如,在空間域圖像增強(qiáng)一章,可以將圖像去噪、銳化、灰度值變換綜合起來(lái)考查。筆者為空間域圖像增強(qiáng)一章布置的實(shí)驗(yàn)題目為:通過(guò)空間域圖像處理方法去除噪聲并突出病灶。在形態(tài)學(xué)圖像處理一章,可以將膨脹、腐蝕、開(kāi)運(yùn)算、閉運(yùn)算等形態(tài)學(xué)操作綜合起來(lái)進(jìn)行出題。筆者為形態(tài)學(xué)圖像處理一章設(shè)計(jì)的實(shí)驗(yàn)題目為:為指紋圖像去噪并將斷裂的部分連接起來(lái)。
在“大作業(yè)”這一層次中,由于學(xué)生已經(jīng)對(duì)每章的知識(shí)點(diǎn)進(jìn)行了綜合編程練習(xí),教師可以嘗試使用實(shí)際項(xiàng)目中的圖像處理問(wèn)題進(jìn)一步訓(xùn)練其靈活運(yùn)用圖像算法的能力。工程項(xiàng)目問(wèn)題往往綜合了多個(gè)章節(jié)的圖像處理知識(shí)點(diǎn),在大作業(yè)環(huán)節(jié)布置面向?qū)嶋H工程項(xiàng)目的問(wèn)題,既能激發(fā)學(xué)生的學(xué)習(xí)興趣,又可以更深入地訓(xùn)練學(xué)生的動(dòng)手實(shí)踐能力。比如,對(duì)高速鐵路接觸網(wǎng)系統(tǒng)中關(guān)鍵部件——絕緣子位置的準(zhǔn)確識(shí)別有助于學(xué)生對(duì)其分割,進(jìn)而判斷其有無(wú)缺陷。在該大作業(yè)中,首先需要對(duì)絕緣子圖像進(jìn)行預(yù)處理,進(jìn)行去噪、對(duì)比度拉伸等操作,其次進(jìn)行邊緣檢測(cè)和閾值分割,提取出圖像中物體的邊緣,可能包括絕緣子、桿柱、腕臂等。根據(jù)絕緣子輪廓特征,采用Hough 變換的方法,檢測(cè)絕緣子邊緣進(jìn)而實(shí)現(xiàn)定位??梢钥吹?,在該大作業(yè)中,用到了空間域圖像增強(qiáng)章節(jié)的直方圖均衡化和平滑濾波,數(shù)字圖像基礎(chǔ)章節(jié)的連通區(qū)域檢測(cè),形態(tài)學(xué)圖像處理章節(jié)的開(kāi)運(yùn)算和閉運(yùn)算,以及圖像分割章節(jié)的Canny 邊緣檢測(cè)算法、Hough 變換和Otsu 二值化算法。
可以看出,“課堂―作業(yè)―實(shí)驗(yàn)―大作業(yè)”四層階梯式實(shí)踐教學(xué)體系能夠由淺入深、由點(diǎn)及面地培養(yǎng)學(xué)生的圖像處理編程實(shí)踐能力。課堂環(huán)節(jié)講授圖像處理知識(shí)點(diǎn)以及對(duì)應(yīng)的OpenCV單個(gè)函數(shù),作業(yè)環(huán)節(jié)使用MS Visual Studio練習(xí)OpenCV函數(shù),實(shí)驗(yàn)環(huán)節(jié)對(duì)各章的知識(shí)點(diǎn)進(jìn)行了Open-CV 綜合編程,大作業(yè)環(huán)節(jié)使用實(shí)際工程例子對(duì)學(xué)生靈活運(yùn)用圖像處理知識(shí)進(jìn)行訓(xùn)練。調(diào)查問(wèn)卷顯示大多數(shù)學(xué)生認(rèn)可這種階梯式實(shí)踐教學(xué)體系,表示在該體系訓(xùn)練下,自己動(dòng)手編寫(xiě)圖像算法的能力和分析問(wèn)題的能力得到了很大的提高。
數(shù)字圖像處理技術(shù)在人工智能和機(jī)器人領(lǐng)域有著重要的應(yīng)用。在人臉識(shí)別中,數(shù)字圖像處理技術(shù)可以用于提取人臉特征,并將其與數(shù)據(jù)庫(kù)中的已知人臉進(jìn)行匹配,從而實(shí)現(xiàn)人臉識(shí)別。在目標(biāo)跟蹤中,數(shù)字圖像處理技術(shù)可以用于提取目標(biāo)的特征,并將其與數(shù)據(jù)庫(kù)中的已知目標(biāo)進(jìn)行匹配,從而實(shí)現(xiàn)目標(biāo)跟蹤。在圖像分割中,數(shù)字圖像處理技術(shù)可以用于將圖像分割成不同的區(qū)域,以便于提取圖像中的感興趣區(qū)域。在機(jī)器人導(dǎo)航中,數(shù)字圖像處理技術(shù)可以幫助機(jī)器人識(shí)別周?chē)沫h(huán)境,實(shí)時(shí)建圖并規(guī)劃行進(jìn)路線。然而,在當(dāng)前的課程教學(xué)中,理論學(xué)時(shí)占了絕大部分,實(shí)踐學(xué)時(shí)偏少,僅有少數(shù)幾次實(shí)驗(yàn)被用來(lái)培養(yǎng)學(xué)生的動(dòng)手實(shí)踐能力,因此,設(shè)計(jì)一種全新的、能夠充分全面地培養(yǎng)學(xué)生動(dòng)手能力的課程實(shí)踐教學(xué)體系至關(guān)重要。本文提出一種點(diǎn)面結(jié)合、深入淺出的階梯式實(shí)踐教學(xué)體系。該體系包括“課堂―作業(yè)―實(shí)驗(yàn)―大作業(yè)”四個(gè)層次,對(duì)應(yīng)于“算法函數(shù)講解―單個(gè)算法簡(jiǎn)單應(yīng)用―多個(gè)算法融合應(yīng)用―工程問(wèn)題綜合運(yùn)用”四個(gè)內(nèi)容,可以為學(xué)生建立起平滑的學(xué)習(xí)曲線。學(xué)生的作業(yè)、實(shí)驗(yàn)、大作業(yè)完成情況顯示,大多數(shù)學(xué)生的任務(wù)完成質(zhì)量超過(guò)預(yù)期。課程結(jié)課后的問(wèn)卷調(diào)查顯示,大多數(shù)學(xué)生認(rèn)可這種全新的實(shí)踐教學(xué)體系,認(rèn)為該體系能夠有效地培養(yǎng)其動(dòng)手能力。