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