機(jī)器視覺(jué)軟件能夠做什么
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
在構(gòu)建機(jī)器視覺(jué)系統(tǒng)時(shí),開(kāi)發(fā)人員可以選擇眾多知名公司的商用軟件包。然而,在選擇這類軟件時(shí),重要的是理解這些軟件提供的功能、支持的硬件以及如何輕松地配置這樣的軟件,以解決特定的機(jī)器視覺(jué)任務(wù)。 在過(guò)去,軟件的選擇受到限制,許多公司只提供執(zhí)行相對(duì)簡(jiǎn)單的圖像處理操作的可調(diào)用庫(kù)。這些包括諸如圖像減法之類的點(diǎn)處理操作,諸如圖像濾波的鄰域操作,以及諸如傅立葉分析的全局操作。 盡管有用,開(kāi)發(fā)人員面臨的任務(wù)是理解這些功能,以及如何為機(jī)器視覺(jué)任務(wù)(如零件測(cè)量)提供解決方案。通常,需要構(gòu)建軟件框架來(lái)支持這些庫(kù),這使得開(kāi)發(fā)這樣的程序費(fèi)力和耗時(shí)。 雖然這些庫(kù)仍然可以從許多開(kāi)放資源獲取,但是視覺(jué)軟件制造商已經(jīng)意識(shí)到:系統(tǒng)集成商需要更快速地開(kāi)發(fā)應(yīng)用程序,來(lái)解決特定的機(jī)器視覺(jué)問(wèn)題,而無(wú)需了解圖像處理代碼的復(fù)雜性。因此,目前許多供應(yīng)商在其軟件包中提供更高級(jí)別的工具,可以在交互式環(huán)境中提供更高級(jí)別的功能,如圖像測(cè)量、特征提取、顏色分析、2D條形碼識(shí)別和圖像壓縮等。 這些高級(jí)工具的例子包括加拿大Matrox Imaging公司的Matrox Imaging Library(MIL)、比利時(shí)Euresys公司的Open eVision、德國(guó)MVTec Software公司的HALCON、美國(guó)Cognex公司的VisionPro、美國(guó)國(guó)家儀器(NI)公司的Vision Builder、德國(guó)Stemmer Imaging公司的Common Vision Blox(CVB)和德國(guó)NeuroCheck公司的NeuroCheck。這類工具允許很多常用的機(jī)器視覺(jué)功能被配置而不需要大量的編程。通過(guò)這種方式,開(kāi)發(fā)人員能夠從低級(jí)代碼開(kāi)發(fā)任務(wù)中脫身出來(lái),進(jìn)而能更輕松地構(gòu)建機(jī)器視覺(jué)應(yīng)用程序。 為了進(jìn)一步簡(jiǎn)化此任務(wù),許多軟件包具有圖形界面,允許在集成開(kāi)發(fā)環(huán)境(IDE)中組合高級(jí)圖像處理功能。例如,Matrox的Design Assistant是一種IDE,在該開(kāi)發(fā)環(huán)境下,用戶可以通過(guò)構(gòu)建流程圖而不是編寫傳統(tǒng)程序代碼來(lái)創(chuàng)建視覺(jué)應(yīng)用程序。除了構(gòu)建流程圖,用戶還可以在IDE中直接為應(yīng)用程序設(shè)計(jì)圖形操作界面。同樣,NI公司的Vision Builder AI,允許開(kāi)發(fā)人員在交互式菜單驅(qū)動(dòng)的開(kāi)發(fā)環(huán)境中使用諸如模式匹配、條形碼讀取和圖像分類等功能來(lái)配置、評(píng)價(jià)檢測(cè)和部署視覺(jué)系統(tǒng)(見(jiàn)圖1)。 圖1:NI公司的Vision Builder AI,允許開(kāi)發(fā)人員在交互式菜單驅(qū)動(dòng)開(kāi)發(fā)環(huán)境中使用諸如模式匹配、條形碼讀取和圖像分類等功能,來(lái)配置、評(píng)價(jià)檢測(cè)和部署視覺(jué)系統(tǒng)。 在許多情況下,供應(yīng)商將使用他們的軟件為最終用戶提供開(kāi)發(fā)的軟件,來(lái)解決諸如光學(xué)字符識(shí)別(OCR)等特定任務(wù)。例如為了閱讀和驗(yàn)證由多個(gè)PCB組成的大型面板上的條形碼標(biāo)簽,美國(guó)Microscan公司已經(jīng)使用其Visionscape軟件,確保面板上的每塊單獨(dú)電路板可以在整個(gè)生產(chǎn)過(guò)程中進(jìn)行追蹤。 一些公司甚至已經(jīng)擴(kuò)展了這種圖形流程圖界面概念,允許開(kāi)發(fā)人員訪問(wèn)現(xiàn)場(chǎng)可編程門陣列(FPGA)的基礎(chǔ)功能。例如,德國(guó)Silicon Software公司的VisualApplets是一種軟件編程環(huán)境,其允許開(kāi)發(fā)人員使用數(shù)據(jù)流模型執(zhí)行FPGA編程。在公司的最新VisualApplets版本中,提供了分段、分類和壓縮功能,以及快速傅立葉變換(FFT)運(yùn)算,可以更有效地實(shí)現(xiàn)復(fù)雜的帶通濾波器(見(jiàn)圖2)。 圖2:為了使開(kāi)發(fā)人員能訪問(wèn)FPGA的基本功能,Silicon Software公司的VisualApplet是一種軟件編程環(huán)境,允許開(kāi)發(fā)人員使用數(shù)據(jù)流模型執(zhí)行FPGA編程。 如同SiliconSoftware公司一樣,NI的LabVIEW FPGA模塊可以在不使用低級(jí)語(yǔ)言(如VHDL)的情況下,執(zhí)行FPGA的高效率算法,如圖像濾波、Bayer解碼和色彩空間轉(zhuǎn)換。通過(guò)這樣做,許多計(jì)算密集型圖像處理功能可以轉(zhuǎn)移到FPGA,從而加速機(jī)器視覺(jué)應(yīng)用。 對(duì)于那些希望開(kāi)發(fā)使用各種開(kāi)源和商用軟件的機(jī)器視覺(jué)系統(tǒng)用戶,目前的開(kāi)發(fā)環(huán)境可以讓許多不同公司的圖像處理算法進(jìn)行圖形化組合。這樣的環(huán)境允許開(kāi)發(fā)人員將開(kāi)源算法和商用軟件包整合在一起,以集成到單一的環(huán)境中。這可以根據(jù)最有效的算法對(duì)機(jī)器視覺(jué)軟件進(jìn)行專門定制。 例如,新西蘭ControlVision公司的機(jī)器視覺(jué)框架VisionServer 7.2,允許在圖形化IDE中一起使用開(kāi)源圖像處理庫(kù)和商用軟件包,如Cognex公司的VisionPro Software。愛(ài)爾蘭CG Controls公司的VS-100P框架也支持VisionPro,其使用Microsoft的.NET 4框架和Windows Presentation Foundation(WPF),使開(kāi)發(fā)人員能夠部署基于單相機(jī)或多相機(jī)的視覺(jué)系統(tǒng)。 雖然大多數(shù)商用的機(jī)器視覺(jué)軟件運(yùn)行在Windows和Linux等操作系統(tǒng)下,但是仍需開(kāi)發(fā)可在特定時(shí)間段內(nèi)執(zhí)行任務(wù)的機(jī)器視覺(jué)系統(tǒng),即支持實(shí)時(shí)操作系統(tǒng)(RTOS)。隨后,這些RTOS允許開(kāi)發(fā)人員確定捕獲和處理圖像以及在系統(tǒng)內(nèi)執(zhí)行I/O所需要的時(shí)間,同時(shí)利用Windows的強(qiáng)大功能來(lái)開(kāi)發(fā)圖形用戶界面(GUI)。 現(xiàn)在,有許多公司為機(jī)器視覺(jué)軟件包提供RTOS支持。例如,MIL現(xiàn)在可以在美國(guó)IntervalZero公司的RTX64 RTOS下運(yùn)行,這是美國(guó)Kingstar公司在開(kāi)發(fā)用于工業(yè)運(yùn)動(dòng)控制和機(jī)器視覺(jué)應(yīng)用的基于PC的軟件過(guò)程中所應(yīng)用的。基于EtherCAT標(biāo)準(zhǔn),機(jī)器視覺(jué)任務(wù)采用MIL,在IntervalZero的RTX64 RTOS中運(yùn)行。在運(yùn)行中,RTX64與Windows一起運(yùn)行在其自身的專用CPU核心上,以提供確定性的環(huán)境。使用這種架構(gòu),開(kāi)發(fā)人員將基于MIL的應(yīng)用程序分割為在RTX64和Windows上運(yùn)行(見(jiàn)圖3)。 圖3:Matrox's Imaging Library(MIL)現(xiàn)在可以在IntervalZero的RTX64 RTOS環(huán)境下運(yùn)行,這是Kingstar在開(kāi)發(fā)用于工業(yè)運(yùn)動(dòng)控制和機(jī)器視覺(jué)應(yīng)用的基于PC的軟件中所應(yīng)用的。RTX64的開(kāi)發(fā)在C/C ++中執(zhí)行,使用Visual Studio和Windows API的子集。RTX64下的MIL支持使用GigE Vision以及所支持的Matrox圖像采集卡進(jìn)行圖像捕獲。 也可以提供其他機(jī)器視覺(jué)軟件包的第三方RTOS支持。例如,運(yùn)行MVTec公司的HALCON機(jī)器視覺(jué)包,可以使用德國(guó)Kithara公司的RealTime RTOS Suite完成。與其他RTOS類似,RealTime RTOS Suite在RTOS的內(nèi)核中使用單獨(dú)的調(diào)度程序,來(lái)決定在任何特定時(shí)間執(zhí)行哪個(gè)圖像處理任務(wù)。如同IntervalZero一樣,該內(nèi)核與Windows一起運(yùn)行。 加拿大OptelVision公司最近展示了如何使用自己的運(yùn)行于美國(guó)TenAsys公司的INtime專有算法,開(kāi)發(fā)出一種藥片檢測(cè)機(jī)。TenAsys公司銷售和營(yíng)銷副總裁Kim Hartman介紹說(shuō),INtime可以控制系統(tǒng)中對(duì)響應(yīng)時(shí)間要求嚴(yán)格的I/O設(shè)備,同時(shí)允許Windows控制非實(shí)時(shí)I/O。 高性能圖像處理也是嵌入式視覺(jué)領(lǐng)域關(guān)注的焦點(diǎn)。最近,丹麥Q(jìng)technology公司首席固件工程師Ricardo Ribalda博士,展示了他的公司是如何創(chuàng)建了一種應(yīng)用程序,使用美國(guó)AMD公司的處理器和美國(guó)Mentor Graphics公司的軟件工具,對(duì)紙幣進(jìn)行高速掃描和驗(yàn)證。 今天,執(zhí)行測(cè)量功能、模式匹配、OCR、色彩分析和形態(tài)操作所需的工具,都已經(jīng)比較常用。這樣的工具允許開(kāi)發(fā)人員配置多種類型的機(jī)器視覺(jué)系統(tǒng),來(lái)分類部件是否可接受或必須被拒絕。然而,在某些情況下,如果對(duì)象的特征是可變的,那么這些工具的用途就大打折扣了。在水果和蔬菜分選應(yīng)用中,特定產(chǎn)品是好還是壞,可以依賴于許多不同的因素。 要確定這類產(chǎn)品是否可以接受,則依賴于呈現(xiàn)具有許多圖像的系統(tǒng),提取特定的特征并進(jìn)行分類。許多不同的分類器可用于執(zhí)行包括神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(SVM)、高斯混合模型(GMM)和k-最近鄰(k-NN)的任務(wù)。例如,使用其HALCON軟件包,MVTec開(kāi)發(fā)人員可以訪問(wèn)所有這些分類器。 許多公司在商業(yè)產(chǎn)品中已經(jīng)使用了這種“深度學(xué)習(xí)”技術(shù)。為了根據(jù)可接受或不可接受的缺陷對(duì)產(chǎn)品進(jìn)行分類或分離,瑞士ViDi Systems公司的ViDi green軟件允許開(kāi)發(fā)人員將圖像分配和標(biāo)記為不同的類別,之后未經(jīng)培訓(xùn)的圖像可以被分類。在瓶子的分選應(yīng)用示范中,意大利Datalogic公司最近展示了在“測(cè)試瓶子首先呈現(xiàn)給系統(tǒng)、以及圖像中的關(guān)鍵點(diǎn)自動(dòng)提取”后,如何能夠使用k-d樹分類器來(lái)識(shí)別和分類瓶子。 使用德國(guó)StemmerImaging公司的CVBManto的開(kāi)發(fā)人員,也不需要在分類之前選擇圖像中的相關(guān)特征。使用提取的紋理、幾何和顏色特征,將捕獲的數(shù)據(jù)呈現(xiàn)給SVM進(jìn)行分類。與之相似,美國(guó)Cyth Systems公司的NeuralVision系統(tǒng),在設(shè)計(jì)上旨在允許那些沒(méi)有圖像處理經(jīng)驗(yàn)的機(jī)器制造商,能向他們的系統(tǒng)中添加圖像分類。 通過(guò)在提取的數(shù)據(jù)上應(yīng)用多個(gè)圖像分類器,開(kāi)發(fā)人員可以確定提取的特征是否足夠好,最終確定正在分析的產(chǎn)品的特定特征。否則,則可能需要提取不同類型的特征。因此,一些公司提供允許開(kāi)發(fā)和測(cè)試多個(gè)分類器的軟件包。荷蘭PR Sys Design公司的perClass就是這樣一種工具包,提供多種分類器,允許開(kāi)發(fā)人員與數(shù)據(jù)進(jìn)行交互式工作,選擇數(shù)據(jù)中用于圖像分類的最佳特征,訓(xùn)練多種多樣的分類器并優(yōu)化它們的性能(見(jiàn)圖4)。 圖4:PR Sys Design公司的perClass提供多種分類器,允許開(kāi)發(fā)人員與數(shù)據(jù)交互式工作,選擇數(shù)據(jù)中的最佳特征進(jìn)行圖像分類,訓(xùn)練各種類型的分類器并優(yōu)化它們的性能。在該圖像中,顯示了關(guān)于炸薯?xiàng)l的高光譜缺陷探測(cè)問(wèn)題。(左):從四種材料(健康土豆、土豆皮、腐爛和變綠)的超光譜圖像中提取的訓(xùn)練數(shù)據(jù)的可視化。(右):具有超疊加顏色的測(cè)試高光譜圖像(103種光譜波長(zhǎng)之一),顯示分類器的決定。 網(wǎng)絡(luò)上現(xiàn)在有許多深度學(xué)習(xí)資源。其中最有趣的兩個(gè)是Tombone's Computer Vision Blog(www.computervisionblog.com),一家致力于深度學(xué)習(xí)、計(jì)算機(jī)視覺(jué)和AI算法的網(wǎng)站,以及The Journal of Machine Learning Research(JMLR; www.jmlr.org),這是一家出版機(jī)器學(xué)習(xí)論文的論壇。 然而,雖然這種深度學(xué)習(xí)方法可以用于開(kāi)發(fā)諸如手寫識(shí)別、遙感和水果分選之類的應(yīng)用,但是它們總是具有有限的精度,使得分類器不太適用于需要高精度測(cè)量或?qū)?zhǔn)零件用于組裝或加工、或用于精密機(jī)器人引導(dǎo)的應(yīng)用。 許多開(kāi)發(fā)人員選擇高級(jí)商業(yè)軟件包來(lái)開(kāi)發(fā)機(jī)器視覺(jué)系統(tǒng),因?yàn)樗鼈兊囊子眯院涂捎玫募夹g(shù)支持。其他更雄心勃勃的開(kāi)發(fā)人員,可能希望嘗試在他們的項(xiàng)目中使用開(kāi)源代碼。雖然提供很少的技術(shù)支持,但不需要許可證或使用費(fèi)。 這類開(kāi)源軟件范圍涵蓋C/C++和Java庫(kù)、框架、工具包和最終用戶軟件包,其中許多可以在美國(guó)RoboRealm公司的網(wǎng)站上找到。雖然一些鏈接已經(jīng)過(guò)時(shí),但該網(wǎng)站確實(shí)提供了許多可用的開(kāi)源機(jī)器視覺(jué)庫(kù)的概覽。 使用開(kāi)源代碼開(kāi)發(fā)應(yīng)用程序的兩種最受歡迎的方法包括:利用諸如AForge.NET(www.aforgenet.com)之類的軟件,該軟件是為計(jì)算機(jī)視覺(jué)和人工智能的開(kāi)發(fā)人員設(shè)計(jì)的C#框架;以及Open Source Computer Vision Library(Open CV),這是一個(gè)開(kāi)源計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),提供C/C++、Python和Java接口,并支持Windows、Linux、Mac OS、iOS和Android操作系統(tǒng)。 對(duì)于希望從C#使用OpenCV的用戶,Elad Ben-Israel已經(jīng)為.NET Framework創(chuàng)建了一個(gè)小型OpenCV封裝。代碼由Managed C++編寫的DLL組成,將OpenCV庫(kù)封裝在.NET類中,以便它們可以從C#、VB.NET或Managed C++獲得。該封裝可以從http://bit.ly/VSD-1704-8下載。其他.NET封裝包括Emgu CV(www.emgu.com),OpenCV的跨平臺(tái).NET封裝,允許從.NET兼容語(yǔ)言(如C#、VB、VC ++和IronPython)調(diào)用OpenCV函數(shù)。該封裝包可以由Visual Studio、Xamarin Studio和Unity編譯,并在Windows、Linux、Mac OS X和Android操作系統(tǒng)下運(yùn)行。 要使用OpenCV構(gòu)建計(jì)算機(jī)視覺(jué)應(yīng)用程序,開(kāi)發(fā)人員可以使用SimpleCV(http://simplecv.org),這是一種開(kāi)源框架,允許訪問(wèn)多個(gè)計(jì)算機(jī)視覺(jué)庫(kù)(如OpenCV),而無(wú)需了解位深度、文件格式、顏色空間或緩沖區(qū)管理協(xié)議。由于通過(guò)OpenCV自動(dòng)執(zhí)行整合英特爾的集成性能基元(IPP),因此自動(dòng)加速了超過(guò)3000種專有優(yōu)化的圖像處理和計(jì)算機(jī)視覺(jué)功能。這些IPP可以在英特爾的開(kāi)發(fā)者站點(diǎn)(http://bit.ly/VSD-1704-9)免費(fèi)下載。 迄今為止,一些公司支持用OpenCV庫(kù)開(kāi)發(fā),如美國(guó)WillowGarage公司、德國(guó)Kithara公司、美國(guó)國(guó)家儀器(NI)公司和新西蘭ControlVision公司。 該文章在 2023/2/27 11:27:36 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |