張賽昆,李德鑫,馬冬寶,崔健,湯曉華
(1.北京電子科技職業學院,北京 102600;2.武漢理工大學,湖北 武漢 430070;3.深圳市物新智能科技有限公司,廣東 深圳 518107)
近年來,隨著計算機技術和虛擬仿真技術的不斷發展,機器視覺技術作為計算機視覺領域的一個重要分支,越來越受到關注。機器視覺技術可以對圖像和視頻進行分析和處理,從圖像中獲取有用信息。隨著工業自動化程度的提高和智能制造的發展,機器視覺技術在工業領域的應用越來越廣泛。同時,機器視覺技術也在教育領域得到了廣泛應用,通過實驗教學和虛擬仿真技術,可以有效提高學生的實踐能力和創新能力。然而,傳統的機器視覺課程教學存在一些問題,如缺乏實踐操作和難以理解等,因此需要一種能夠提高教學效果的新型教學平臺。機器視覺虛擬仿真教學平臺可以有效地解決這些問題,將虛擬仿真技術與機器視覺技術相結合,使學生能夠在虛擬環境中進行實踐操作,更好地理解和掌握機器視覺技術。因此,開發一種機器視覺教學平臺是十分有意義的研究課題。
機器視覺教學平臺的研究目的是為了提高機器視覺算法的學習效率,使學習者可以更加快速地了解和掌握各種機器視覺算法,同時降低機器視覺算法學習的門檻。機器視覺教學平臺可以將機器視覺算法的實現過程可視化,使學習者能夠通過交互式界面輕松地學習和理解各種機器視覺算法的原理和實現方法。
機器視覺教學平臺的意義在于,它可以幫助學習者快速學習和掌握機器視覺算法,從而提高他們在機器視覺領域的研究和開發能力。此外,機器視覺教學平臺的開發還可以促進機器視覺技術的普及和推廣,從而推動機器視覺技術在各個領域的廣泛應用和發展。
本文提出的機器視覺虛擬仿真教學平臺主要由控制端和虛擬仿真端2 部分組成。其中,控制端采用WPF 和Prism 框架編寫,主要包括圖像處理算子,算子序列配置,圖像數據處理等模塊,可以通過采集虛擬仿真端的圖像并使用機器視覺算子對圖像進行機器視覺處理,將處理結果展示給學生,以達到教學效果。虛擬仿真端則采用Unity 搭建,包括虛擬相機、虛擬物件、虛擬光源等,可以實現三維場景的模擬并返回渲染的圖像數據給控制端。
教學平臺的整體架構圖如圖1 所示。

圖1 平臺整體架構

圖2 算子序列模塊

圖3 數據綁定顯示

圖4 圖像顯示模塊

圖5 Unity 物體仿真
控制端使用WPF 以及Prism 框架實現,主要包括算子序列模塊,數據溝通模塊、圖像顯示模塊等。算子序列模塊允許用戶選擇算子并將其組合成一個算子序列,以實現對虛擬仿真端圖像的序列化機器視覺處理;數據溝通模塊是算子序列模塊的底層支撐,實現了算子之間的數據共享和數據流轉;圖像顯示模塊是控制端的重要組成部分之一,它主要負責對經過機器視覺處理后的圖像進行展示和可視化。
2.2.1WPF 和Prism 框架
WPF 是一種強大的圖形化用戶界面開發工具,它是由微軟推出的基于.NET Framework 的框架。WPF 提供了各種強大的工具和控件,使得開發者可以快速、高效地構建出具有良好可擴展性和可重用性的應用程序。
Prism 是一種基于WPF 的開發框架,它提供了一種優雅的方式來構建具有良好結構和可測試性的應用程序。Prism 基于MVVM 模式,使用依賴注入和事件聚合等技術,使得應用程序的不同模塊之間可以松耦合、高內聚地協作,從而實現更好的可維護性和可擴展性。
本文采用WPF 和Prism 框架,實現了控制端的開發,具有良好的用戶界面和代碼結構,便于維護和擴展。
2.2.2算子序列模塊
在虛擬仿真教學平臺的控制端中,算子序列模塊是十分重要的模塊。該模塊的主要功能是允許用戶選擇算子并將其組合成算子序列,以實現對圖像的自定義機器視覺處理。算子序列模塊的實現基于WPF 框架中的數據綁定機制。通過使用數據綁定,實現了算子序列的實時更新。
算子序列模塊還提供了運行功能。當用戶編輯完算子序列后,可以一鍵運行或者停止運行整個算子序列。在運行時,算子序列模塊會按照用戶定義的算子順序依次執行每一個算子,并將上一個算子的輸出作為下一個算子的輸入。通過這種方式,用戶可以更加直觀地理解算子之間的依賴關系和數據流動。
通過結合圖像顯示模塊,在序列運行時,用戶可以實時觀察到虛擬仿真端圖像的變化,進而更好地完成教學任務。
2.2.3數據溝通模塊
為了實現算子之間的數據共享和數據流轉,我們在控制端中實現了數據溝通模塊。數據溝通模塊引入了一個全局的數據倉庫,用于存儲算子序列中的數據,并且為各個算子之間提供數據傳遞的通道。當一個算子處理完數據之后,可以將處理結果保存到數據倉庫中,而其他算子可以從數據倉庫中讀取數據進行后續的處理,從而實現數據的共享和流轉。
為了更好地管理數據倉庫中的數據,我們還為部分數據類引入了一些數據管理和訪問的方法。通過這些技術的支持,我們可以方便地將數據倉庫中部分類型的數據綁定到部分算子控件中進行展示,或者在算子之間進行數據的傳遞和共享。同時,數據溝通模塊還提供了一些數據轉換和處理的功能,以保證數據在不同的算子之間傳遞時的正確性和有效性。
通過引入數據溝通模塊,我們實現了控制端中算子之間的高效數據共享和傳遞,為虛擬仿真教學平臺的機器視覺處理流程提供了良好的底層支撐。
2.2.4圖像顯示模塊
圖像顯示模塊是控制端中非常重要的一個模塊,它負責將經過機器視覺處理后的圖像進行展示和可視化。在教學平臺中,圖像顯示模塊可以將機器視覺算法處理后得到的圖像數據進行展示,并且支持用戶進行實時的交互。
圖像顯示模塊通過數據綁定和數據上下文等技術,將經過處理的圖像數據和控件進行綁定,實現圖像的實時顯示和更新。為了方便用戶使用,圖像顯示模塊還引入了一些交互式控件,用戶可以通過這些控件進行圖像的放大、縮小等操作,此外,當用戶在圖像上滑動鼠標時,圖像顯示模塊會根據鼠標位置計算出對應像素的RGB 值,并在界面上實時顯示出來,方便用戶對圖像進行更精細的觀察和分析。
綜上,圖像顯示模塊為虛擬仿真教學平臺中的機器視覺算法處理提供了良好的圖像展示和可視化支持。
Unity 是一種跨平臺的游戲引擎,也被廣泛應用于虛擬仿真領域。在本研究中,我們使用Unity 搭建虛擬仿真端,為控制端提供虛擬場景和圖像。
2.3.1使用Unity 搭建虛擬物件
我們使用Unity 中的模型編輯器來創建虛擬物件,包括教學實驗所需的各種儀器、器材和實驗場景。通過設置不同的材質、紋理、大小和形狀等參數,我們可以創建逼真的虛擬物件,使學生可以在虛擬環境下進行實踐操作和學習。
此外,我們還將搭建虛擬桌臺,用于展示虛擬物件。
2.3.2使用Unity 搭建虛擬光源
為了增加虛擬環境的真實感和逼真度,我們在Unity中添加虛擬光源。我們可以根據實驗需求,設置不同的光源類型、顏色、亮度和陰影等參數,使虛擬物件在不同的光照下呈現出不同的效果。
2.3.3生成虛擬場景圖像
我們使用Unity 中的渲染器來生成虛擬場景圖像。通過將虛擬場景中的物件、光源和相機等元素組合在一起,并設置不同的攝像機參數,我們可以生成逼真的虛擬場景圖像,并將其傳輸給控制端進行處理和分析。
通過使用Unity 搭建虛擬仿真端,我們可以為控制端提供生動、逼真的虛擬場景和圖像,從而提高虛擬仿真教學的交互性和實時性。
為了實現控制端和虛擬仿真端之間的數據傳輸,本文采用Socket 進行通訊。Socket 是一種網絡編程接口,可以實現2 個應用程序之間的數據傳輸。控制端與虛擬仿真端先建立本地TCP 連接,確認連接狀態后,控制端發送采圖指令,虛擬仿真端返回仿真的圖片。采用Socket通訊可以實現快速、穩定的數據傳輸,是整個平臺實現的關鍵技術。
控制端發送采圖指令,具體如下:控制端與虛擬端通過規范的指令進行數據的傳輸和溝通,指令的定義是通過指令類來完成的。在控制端中,我們使用JSON 庫將指令類對象轉換為string 字符串,并將其通過Socket連接發送到虛擬端。虛擬端接收到string 字符串后,通過JSON 庫將其轉換為JSON 類,進而進行指令要求的操作。通過這種方式,我們實現了控制端對虛擬端的指令控制,并能夠準確地傳輸和接收指令信息,保證了控制的準確性和可靠性。
控制端的視覺處理算子和工具算子共同組成了一個完整的視覺算法庫,其中視覺處理算子主要包括形態學、高斯模糊、中值濾波、閾值化、通道分離、顏色提取等常用的圖像處理算子,這些算子的實現主要基于OpenCVSharp 庫。此外,控制端還實現了一些工具算子,包括找線、找圓、形狀匹配、線夾角、線間距、XY 標定、N 點標定等算子,這些算子可以幫助用戶更方便地進行視覺算法的調試和優化。
算子的設計和實現主要分為前端控制界面和后臺算法處理部分。用戶可以在控制界面中根據實際需求對算子參數進行調整,例如,對形態學算子的內核大小、高斯模糊算子的卷積核大小、閾值化算子的閾值等進行設置,同時,用戶還可以通過設定ROI 來實現對圖像中目標的識別和測量等功能。而算子后臺的算法處理部分則會根據用戶設定的參數對圖像進行處理,并返回處理結果,以便用戶進行下一步的操作。
控制端算子的設計和實現為教學平臺的開發提供了強有力的支持。
本平臺的圖像處理算子在教學中有著廣泛的應用,可以幫助教師在課堂上更好地輔助學生理解教學內容。以下是算子的部分應用舉例。
(1)形態學:形態學是對圖像形狀進行處理的方法,常用于圖像分割、形狀匹配、輪廓提取等方面。在機器視覺教學中,形態學算子可用于物體檢測和識別,例如,可以用開運算去除噪聲,閉運算填充物體內部的空洞等。
(2)高斯模糊:高斯模糊是一種線性平滑濾波器,可以減少圖像噪聲和細節,平滑圖像。在機器視覺教學中,高斯模糊算子可以用于去除噪聲,使學生更好地觀察圖像特征。
(3)中值濾波:中值濾波是一種非線性濾波器,通過取鄰域像素的中值來消除噪聲。在機器視覺教學中,中值濾波算子可以用于去除椒鹽噪聲等,使學生更好地理解圖像濾波的作用。
本平臺的圖像處理算子在機器視覺教學中有著廣泛的應用,可以幫助學生更好地理解和掌握機器視覺的基本概念和算法。
在本章節,我們將在物體測量精度驗證和用戶友好度調查2 個方面,來評估機器視覺教學平臺的性能表現和使用體驗。
我們使用機器視覺教學平臺來測量不同大小和形狀的物體,以驗證其測量精度。具體步驟如下:
(1)使用“相機”算子采圖,獲得標定板圖像。
(2)在平臺上選擇“找圓”算子,在標定板上獲得圓的直徑長度。
(3)通過“XY 標定”算子獲得像素距離與實際距離之間的映射。
(4)使用“相機算子”,并應用先前生成的XY 標定數據,采圖,獲得待測量圖像。
對于不同的測量目標,我們采用了不同的算子進行距離測量。如下:
(1)對于直線長度值,我們在平臺上選擇“邊緣點”算子,在目標圖像上找到待測量的點。使用“點間距算子”,獲得兩點之間的實際距離并記錄測量結果。
(2)對于圓形目標,我們采用了“找圓”算子和“形狀匹配”算子,獲得測量結果。
我們對不同大小和形狀的物體進行了多次測量,并計算了測量結果的平均值。接下來,我們將測量結果與真實結果進行了比較,測量結果如表1 所示。

表1 測量結果
結果顯示,本平臺的測量平均誤差為0.1cm,較為接近真實值。
為了驗證軟件的用戶友好度,我們進行了一項用戶調查。在調查中,我們邀請了30 名機器視覺教學領域的學生使用我們的軟件,并填寫了一份問卷調查。
問卷調查主要包括以下2 個方面:
(1)軟件界面是否簡潔易懂,操作是否便捷。
(2)使用軟件進行機器視覺算法處理的效果和速度是否滿意。
針對第一方面的問題,90%以上的受訪者認為軟件界面簡潔易懂,操作便捷。學生表示,在軟件使用過程中,能夠很快地找到需要使用的功能,并且軟件的界面設計非常直觀,方便學習和使用。
針對第二方面的問題,85%以上的受訪者對軟件的處理效果和速度表示滿意。學生認為軟件中的機器視覺算法處理能夠滿足他們的需求。
調查結果表明:本軟件在用戶友好度方面表現良好,能夠滿足學生學習的需求,并且學生對軟件的使用體驗表示滿意。
機器視覺虛擬仿真教學平臺在計算機視覺領域的教學應用中具有如下的優勢:
(1)安全性高:由于使用虛擬仿真技術,學生可以在安全的環境下進行實驗和演示,避免了物理實驗可能出現的安全問題。
(2)可重復性好:在實驗中,由于使用的是虛擬仿真技術,實驗過程可以隨時重復,可以讓學生更好地掌握實驗流程和技巧。
(3)靈活性強:虛擬仿真教學平臺可以隨時更新和升級,讓學生隨時了解最新的計算機視覺技術,保持教學內容的時效性。
(4)互動性好:機器視覺虛擬仿真教學平臺可以提供一個互動性很強的教學環境,學生可以在控制端和虛擬仿真端之間進行多次交互,從而更好地掌握計算機視覺技術。
然而,本平臺也存在一些局限性:
(1)仿真結果可能不準確:由于虛擬仿真的結果是通過計算機模擬實現的,實驗結果可能會受到虛擬仿真環境中的因素影響,可能與實際結果存在一定的誤差。
(2)學生需要一定的計算機基礎:由于本平臺涉及計算機視覺技術和虛擬仿真技術,學生需要具備一定的計算機基礎才能更好地理解和掌握。
(3)需要高性能計算機支持:虛擬仿真需要消耗大量的計算資源,所以需要一臺高性能計算機才能滿足平臺的運行需求。
綜上所述,虛擬仿真教學平臺在教學中具有明顯的優勢,但同時也存在一些局限性。為了更好地發揮虛擬仿真教學平臺的作用,需要在平臺建設和教學過程中不斷完善和改進。
虛擬仿真教學平臺在教學中具有廣闊的應用前景。未來,我們可以通過不斷完善和改進平臺,提高虛擬仿真技術的準確性和穩定性,增強學生對計算機視覺技術的理解和掌握。我們也可以通過增加教學內容和實驗項目,使得學生可以更全面地了解計算機視覺的應用場景和發展趨勢。同時,我們還可以通過虛擬仿真教學平臺的在線化和智能化,提高教學效果和學生參與度,為計算機視覺的發展和應用培養更多的人才。