黎小琴
摘 要:針對(duì)高等院校機(jī)器視覺和數(shù)字圖像處理等課程的特點(diǎn),探討了如何應(yīng)用Halcon軟件改進(jìn)實(shí)驗(yàn)教學(xué)方式和教學(xué)手段,并結(jié)合實(shí)例說明Halcon在機(jī)器視覺圖像處理等教學(xué)中的應(yīng)用。教學(xué)實(shí)踐表明,在機(jī)器視覺等課程的實(shí)驗(yàn)教學(xué)階段引入Halcon軟件,更有利于加強(qiáng)學(xué)生對(duì)技術(shù)的深入理解,提高學(xué)生的創(chuàng)新和實(shí)踐能力,收到了良好的實(shí)驗(yàn)教學(xué)效果。
關(guān)鍵詞:Halcon 軟件 機(jī)器視覺 數(shù)字圖像處理 實(shí)驗(yàn)教學(xué)
中圖分類號(hào):TP39 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)10(c)-0172-02
圖像處理、圖像分析、機(jī)器視覺和計(jì)算機(jī)視覺是彼此緊密關(guān)聯(lián)的學(xué)科,其特點(diǎn)均具有很強(qiáng)的理論性和實(shí)踐性。如果在教學(xué)中不重視實(shí)踐教學(xué)或?qū)嵺`教學(xué)手段不力,都不利于學(xué)生創(chuàng)新能力和動(dòng)手能力的培養(yǎng)。高校教師應(yīng)重視理論教學(xué)的同時(shí),更要重視實(shí)踐教學(xué),關(guān)鍵是要找到強(qiáng)有力的教學(xué)方式和教學(xué)手段,找到恰當(dāng)?shù)膱D像處理軟件。Matlab科學(xué)計(jì)算軟件具有豐富的圖像處理工具箱[1-2],目前被廣泛1應(yīng)用于圖像處理的教學(xué)中。但是,機(jī)器視覺課程具有很強(qiáng)的理論和實(shí)踐性,一些功能齊全的機(jī)器視覺軟件,如Halcon和Open CV等軟件的出現(xiàn),為提高這些課程的實(shí)踐教學(xué)效果提供了新的手段。本文將探討如何應(yīng)用Halcon軟件改進(jìn)實(shí)驗(yàn)教學(xué)方式和手段,并結(jié)合實(shí)例說明Halcon在機(jī)器視覺等課程教學(xué)中的應(yīng)用。
1 機(jī)器視覺硬件系統(tǒng)概述
機(jī)器視覺系統(tǒng)[3]是基于機(jī)器視覺技術(shù)為機(jī)器或自動(dòng)化生產(chǎn)線建立的一套視覺系統(tǒng),圖1為實(shí)驗(yàn)用機(jī)器視覺系統(tǒng),包含攝像機(jī)、照明光源、鏡頭、圖像采集卡和計(jì)算機(jī)組成。
2 Halcon概述
Halcon 軟件是德國MVtec公司開發(fā)的一套完善的標(biāo)準(zhǔn)的機(jī)器視覺算法包[4],是得到廣泛應(yīng)用的機(jī)器視覺集成開發(fā)環(huán)境,提供了1100多種具備突出性能控制器的庫,如圖像的運(yùn)算、圖像的幾何與數(shù)學(xué)變換、濾波、色彩分析、Blob分析、形態(tài)學(xué)計(jì)算分析、3D校正等。Halcon軟件保障與硬件無關(guān),支持大多數(shù)圖像采集卡及帶有Directshow和IEEE 1394驅(qū)動(dòng)的采集設(shè)備。
Halcon軟件包含一個(gè)功能強(qiáng)大的交互式軟件接口HDevelop,提供一個(gè)通用的瀏覽界面,訪問不同的圖像采集設(shè)備,支持Windows、Linux和Solaris運(yùn)行環(huán)境,為用戶搭建了快速有效的圖像處理程序開發(fā)平臺(tái)。它甚至可以從圖像采集設(shè)備中實(shí)時(shí)捕捉圖像。HDevelop擁有很多數(shù)據(jù)和圖像檢查的圖形工具。它的圖形用戶界面支持多種顯子語言。HDevelop具備語法檢查,語法凸現(xiàn),函數(shù)參數(shù)的合適取值,后續(xù)操作和替代算子建議,程序調(diào)試,完整的在線幫助等功能。Halcon軟件還可以導(dǎo)出以C++、C#、C、Visual Basic或者VB.NET程序,以嵌入到其他程序中。
3 實(shí)驗(yàn)教學(xué)應(yīng)用實(shí)例
在機(jī)器視覺等課程的理論教學(xué)中,我們的教學(xué)目的是讓學(xué)生掌握相關(guān)的理論知識(shí),在機(jī)器視覺等課程的實(shí)驗(yàn)教學(xué)階段,我們更要培養(yǎng)學(xué)生的算法編程能力和實(shí)踐應(yīng)用能力。利用Halcon軟件的高度交互式編程環(huán)境HDevelop,能編譯和測(cè)試視覺處理算法,可以方便查看處理結(jié)果。再者,Halcon軟件自帶許多圖像處理與機(jī)器視覺的相關(guān)案例,涵蓋了圖像處理與機(jī)器視覺基礎(chǔ)知識(shí)的大部分內(nèi)容[4]。我們?cè)诮淌趯W(xué)生理論知識(shí)的同時(shí),結(jié)合案例的講解,使學(xué)生在掌握理論的同時(shí)熟悉實(shí)踐過程,進(jìn)而培養(yǎng)學(xué)生的編程實(shí)現(xiàn)能力。因此選擇Halcon軟件作為教學(xué)軟件,成為培養(yǎng)學(xué)生圖像處理和視覺處理算法編程能力和實(shí)踐能力的又一重要手段。由于篇幅限制,這里僅以利用Blob分析算法實(shí)現(xiàn)車牌識(shí)別的實(shí)例來說明 Halcon軟件在機(jī)器視覺與數(shù)字圖像處理等課程教學(xué)中的應(yīng)用。
Blob分析算法實(shí)現(xiàn)車牌定位識(shí)別程序如下:
read_image(Image,'lisence')
fill_interlace(Image,ImageFilled,'odd')
threshold(ImageFilled,Region,0,90)
connection(Region,ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions,'width','and',30,70)
select_shape (SelectedRegions,Letters, 'height','and',60,110)
sort_region(Letters,SortRegions,'upper_left','true','column')
read_ocr_class_mlp('Industrial_0-9A-Z.omc',OCRHandle)
do_ocr_multi_class_mlp(SortRegions,ImageFilled,OCRHandle,Class,Confidence)
area_center(SortRegions,Area,Row, Column)
disp_message(3600,['The result is:'], 'window',200,150,'yellow','false')
for Index:=0 to 6 by 1
disp_message(3600,Class[Index], 'window',200,300+20*Index,'yellow', 'false')endfor
上面程序中,利用read_image算子讀入要識(shí)別的車牌圖像,命名為Image,如圖2所示;通過fill_interlace算子修改在采集圖像過程中造成的兩個(gè)半幅圖像拼接的問題。接著,用threshold算子對(duì)圖像進(jìn)行閾值分割處理,分割出含有車牌的圖像區(qū)域,灰度閾值范圍為0~90;接著用connection算子將選擇出來的區(qū)域進(jìn)行相聯(lián),形成相連區(qū)域ConnectedRegions,如圖3所示。處理后的圖像除了車牌區(qū)域使我們的感興趣區(qū)域外,其他的都為干擾區(qū)域,于是用算子select_shape通過限定width和height將車牌區(qū)域選擇出來,如圖4所示。車牌區(qū)域共有7個(gè),從左至右排序后,利用現(xiàn)有Industrial_0~9A~Z字符庫對(duì)車牌7個(gè)部分進(jìn)行識(shí)別,用到算子do_ocr_multi_class_mlp。識(shí)別之后,利用for循環(huán)將結(jié)果用淺黃色字體顯示在窗口中,實(shí)驗(yàn)結(jié)果如圖5所示。
從上面的車牌識(shí)別實(shí)例可以看出,HDevelop交互編程環(huán)境中的函數(shù)概念清楚,用法明了,應(yīng)用簡(jiǎn)單。由于每一個(gè)HDevelop算子的各個(gè)參數(shù)都可以在編程過程中及時(shí)調(diào)整和編輯,這樣我們?cè)趯?shí)驗(yàn)過程中對(duì)程序進(jìn)行單步調(diào)試,講解重要算子的選擇、調(diào)試和參數(shù)編輯,讓同學(xué)們看到算法運(yùn)行的每一個(gè)步驟,這樣同學(xué)們就能很快掌握相關(guān)知識(shí)點(diǎn)。Halcon具備可實(shí)時(shí)查看圖像屬性的交互對(duì)話框,來查看程序中的參數(shù)設(shè)置,灰度直方圖,特征值柱狀圖,放大鏡和特征檢測(cè)等。隨著學(xué)生對(duì)HDevelop編寫算法的掌握,后續(xù)的教學(xué)部分可以從HDevelop導(dǎo)出算法代碼并集成到應(yīng)用程序中,例如生成用戶界面等,這樣同學(xué)們就可以開發(fā)機(jī)器視覺程序,添加用戶界面,集成調(diào)試生成可執(zhí)行的應(yīng)用程序。
4 結(jié)語
結(jié)合機(jī)器視覺和圖像處理實(shí)驗(yàn)教學(xué)的特點(diǎn)和難點(diǎn),我們采用Halcon軟件進(jìn)行機(jī)器視覺和圖像處理輔助教學(xué),將Halcon引入到機(jī)器視覺教學(xué)中,通過對(duì)典型案例的講解和程序一步步的調(diào)試以及編程過程的演示,對(duì)學(xué)生進(jìn)一步理解理論知識(shí)有很大的幫助,可以激發(fā)學(xué)生自己動(dòng)手編寫有特定需求的圖像處理算法程序,提高學(xué)生的編程實(shí)踐能力,取得良好的教學(xué)效果。由于Halcon易學(xué)易用,能很好的激發(fā)學(xué)生的學(xué)習(xí)興趣,我們可以通過課程設(shè)計(jì)來鼓勵(lì)學(xué)生利用Halcon編寫自己的機(jī)器視覺算法程序,我們還可以通過畢業(yè)設(shè)計(jì)來讓學(xué)生編寫和開發(fā)自己的機(jī)器視覺應(yīng)用程序,從而激發(fā)學(xué)生的學(xué)習(xí)和科研熱情,提高解決實(shí)際問題的能力。
參考文獻(xiàn)
[1] 張鈺.MATLAB軟件在信號(hào)與系統(tǒng)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].高校實(shí)驗(yàn)室工作研究,2011(1):50-51.
[2] 張廣軍.機(jī)器視覺[M].北京:科學(xué)出版社,2005.
[3] 金貝.基于Halcon的機(jī)器視覺教學(xué)實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[D].北京:北京交通大學(xué),2012.
[4] 李樹濤,黎福海,林翚.Halcon軟件在機(jī)器視覺課程實(shí)驗(yàn)中的應(yīng)用[J].高校實(shí)驗(yàn)室工作研究,2012(3):61-63.endprint