具有裝置獨(dú)立性相機(jī)接口的機(jī)器視覺(jué)系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種方法的若干實(shí)施例,所述方法包括:在以通信方式耦合到一或多個(gè)相機(jī)的計(jì)算機(jī)的緩沖器中接收一或多個(gè)圖像;從所述緩沖器檢索所述一或多個(gè)圖像;及將所述一或多個(gè)圖像作為一或多個(gè)存儲(chǔ)器映射圖像文件存儲(chǔ)于由所述計(jì)算機(jī)及所述一或多個(gè)相機(jī)共享的存儲(chǔ)器的存儲(chǔ)器映射文件MMF區(qū)中。
【專利說(shuō)明】具有裝置獨(dú)立性相機(jī)接口的機(jī)器視覺(jué)系統(tǒng)
[0001 ] 優(yōu)先權(quán)主張
[0002]本申請(qǐng)案根據(jù)專利合作條約(PCT)第4條主張2014年I月15日提出申請(qǐng)的美國(guó)申請(qǐng)案第14/156,221號(hào)及2013年11月5日提出申請(qǐng)的美國(guó)臨時(shí)申請(qǐng)案第61/900,241號(hào)的優(yōu)先權(quán)。
技術(shù)領(lǐng)域
[0003]所揭示的實(shí)施例一般來(lái)說(shuō)涉及機(jī)器視覺(jué)系統(tǒng)且特定來(lái)說(shuō)但非排他地,涉及具有裝置獨(dú)立性相機(jī)接口的機(jī)器視覺(jué)系統(tǒng)。
【背景技術(shù)】
[0004]許多現(xiàn)代系統(tǒng)(例如機(jī)器視覺(jué)系統(tǒng))由多個(gè)不同組件組成,所述多個(gè)不同組件耦合在一起使得其可彼此通信及互動(dòng)。通常使用硬件與軟件的組合(硬件提供組件之間的有形物理鏈路,而軟件控制硬件且可執(zhí)行其它功能)來(lái)實(shí)現(xiàn)所述組件的耦合。
[0005]這些系統(tǒng)提供許多優(yōu)點(diǎn),但其具有的一個(gè)缺點(diǎn)是系統(tǒng)中的不同組件可在不同接口下操作。機(jī)器視覺(jué)系統(tǒng)通常由捕獲圖像的至少一個(gè)相機(jī)及分析所述圖像的計(jì)算機(jī)組成。每一相機(jī)通常使用相機(jī)接口以通信方式耦合到計(jì)算機(jī),存在許多相機(jī)接口,例如模擬接口、相機(jī)鏈路接口、火線接口、千兆位以太網(wǎng)接口、Twain接口、USB接口等。一直在開(kāi)發(fā)新的相機(jī)接口,且許多成像裝置及傳感器根本不遵循任何標(biāo)準(zhǔn)但仍可產(chǎn)生有用數(shù)據(jù)供視覺(jué)系統(tǒng)進(jìn)行分析。這些可為2D或3D傳感器、平板掃描儀、X射線成像器等。為本發(fā)明起見(jiàn),所有這些裝置將稱為術(shù)語(yǔ)“相機(jī)(camera或cameras)”且由所述術(shù)語(yǔ)囊括。
[0006]在典型視覺(jué)系統(tǒng)中,將圖像從相機(jī)傳送到計(jì)算機(jī)中需要針對(duì)每一類型的相機(jī)接口、相機(jī)供應(yīng)商或甚至相機(jī)族系而寫入自定義驅(qū)動(dòng)程序、插入式(drop-1n)模塊或插件以使所述相機(jī)將圖像遞送到特定視覺(jué)系統(tǒng)。在計(jì)算機(jī)上運(yùn)行的視覺(jué)系統(tǒng)的制造者以及相機(jī)制造商花費(fèi)大量開(kāi)發(fā)時(shí)間來(lái)建立此相機(jī)/視覺(jué)系統(tǒng)接口。此因以下事實(shí)而變得進(jìn)一步復(fù)雜:許多相機(jī)供應(yīng)商有時(shí)不完全遵循已發(fā)布接口標(biāo)準(zhǔn),或即使所述相機(jī)供應(yīng)商遵循已發(fā)布標(biāo)準(zhǔn),其也跟不上所述標(biāo)準(zhǔn)的持續(xù)修訂。存在用以開(kāi)發(fā)相機(jī)與特定視覺(jué)系統(tǒng)之間的兼容性的高前期成本以及用以隨時(shí)間而維持所述兼容性的高額外成本。
【附圖說(shuō)明】
[0007]參考以下各圖描述本發(fā)明的非限制性及非窮盡性實(shí)施例,其中除非另有說(shuō)明,否則貫穿各個(gè)視圖,相同參考編號(hào)指代相同部件。
[0008]圖1是機(jī)器視覺(jué)系統(tǒng)的實(shí)施例的框圖。
[0009]圖2是機(jī)器視覺(jué)系統(tǒng)的實(shí)施例的框圖。
[0010]圖3是實(shí)施于機(jī)器視覺(jué)相機(jī)中的方法的實(shí)施例的流程圖。
[0011]圖4是實(shí)施于在耦合到一或多個(gè)機(jī)器視覺(jué)相機(jī)的計(jì)算機(jī)上運(yùn)行的機(jī)器視覺(jué)系統(tǒng)中的方法的實(shí)施例的流程圖。
【具體實(shí)施方式】
[0012]描述用于具有裝置獨(dú)立性相機(jī)接口的機(jī)器視覺(jué)系統(tǒng)的設(shè)備、系統(tǒng)及方法的實(shí)施例。描述特定細(xì)節(jié)以提供對(duì)實(shí)施例的透徹理解,但相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可在無(wú)所描述細(xì)節(jié)中的一或多者的情況下或利用其它方法、組件、材料等實(shí)踐本發(fā)明。在一些實(shí)例中,未詳細(xì)展示或描述眾所周知的結(jié)構(gòu)、材料或操作,但其仍囊括于本發(fā)明的范圍內(nèi)。
[0013]貫穿本說(shuō)明書對(duì)“一個(gè)實(shí)施例”或“一實(shí)施例”的提及意指結(jié)合所述實(shí)施例描述的特征、結(jié)構(gòu)或特性包含于至少一個(gè)所描述實(shí)施例中。因此,短語(yǔ)“在一個(gè)實(shí)施例中”或“在一實(shí)施例中”的出現(xiàn)未必全部是指同一實(shí)施例。此外,可在一或多個(gè)實(shí)施例中以任何適合方式來(lái)組合所描述特征、結(jié)構(gòu)或特性。
[0014]圖1圖解說(shuō)明機(jī)器視覺(jué)系統(tǒng)100的實(shí)施例。如本文中所使用且如上下文需要,術(shù)語(yǔ)“機(jī)器視覺(jué)系統(tǒng)”或“視覺(jué)系統(tǒng)”可指硬件(如所圖解說(shuō)明)或指運(yùn)行于系統(tǒng)中的所圖解說(shuō)明硬件元件中的一或多者上的軟件。在一個(gè)實(shí)施例中,系統(tǒng)100包含耦合到計(jì)算機(jī)(例如個(gè)人計(jì)算機(jī))的機(jī)器視覺(jué)相機(jī)A到C。在機(jī)器視覺(jué)系統(tǒng)100內(nèi),相機(jī)A到C無(wú)需全部為相同類型的相機(jī)且其也無(wú)需通過(guò)相同種類的通信鏈路耦合。在不同實(shí)施例中,系統(tǒng)100中的組件之間的通信鏈路可為硬接線的、無(wú)線的或所述兩者的某一組合。如果所述相機(jī)為不同的,那么可發(fā)生所述相機(jī)使用不同軟件、不同命令語(yǔ)言及不同通信協(xié)議來(lái)操作。
[0015]計(jì)算機(jī)運(yùn)行視覺(jué)系統(tǒng)軟件的一或多個(gè)實(shí)例,且視覺(jué)系統(tǒng)軟件的每一實(shí)例可運(yùn)行各種過(guò)程,所述過(guò)程除其它之外與相機(jī)互動(dòng)以獲取圖像(即,圖像獲取過(guò)程)且接著分析所獲取圖像(即,視覺(jué)分析或檢驗(yàn)過(guò)程)。除其它之外,所揭示實(shí)施例通過(guò)將圖像獲取過(guò)程與其它視覺(jué)系統(tǒng)過(guò)程分離而大體上簡(jiǎn)化視覺(jué)系統(tǒng)。待解決的主要問(wèn)題是在允許經(jīng)由簡(jiǎn)單且快速機(jī)制(其無(wú)需改變以適應(yīng)大量現(xiàn)有相機(jī)或在下一代相機(jī)及接口技術(shù)被開(kāi)發(fā)時(shí)的新相機(jī))將圖像從相機(jī)傳送到視覺(jué)系統(tǒng)的同時(shí),將圖像獲取驅(qū)動(dòng)程序與視覺(jué)系統(tǒng)軟件分離。
[0016]大多數(shù)相機(jī)、成像器、幀捕獲器及傳感器供應(yīng)商給經(jīng)試驗(yàn)且經(jīng)證明的(tried-and-proven)軟件提供其裝置,所述裝置允許軟件開(kāi)發(fā)者使用供應(yīng)商供應(yīng)的軟件開(kāi)發(fā)工具包(SDK)來(lái)完全控制相機(jī)且拍攝照片。圖像在其被獲取時(shí)在RAM中存儲(chǔ)為8、12或24位陣列。在供應(yīng)商添加新相機(jī)或接口時(shí),所述供應(yīng)商經(jīng)歷大量努力來(lái)測(cè)試所述相機(jī)且確保所述相機(jī)在其自身的SDK內(nèi)穩(wěn)健地工作。所揭示實(shí)施例利用以下事實(shí):幾乎普遍地,相機(jī)供應(yīng)商軟件可在計(jì)算機(jī)存儲(chǔ)器中存儲(chǔ)且顯露所捕獲圖像。所描述實(shí)施例使用可用于微軟視窗(MicrosoftWindows)及其它現(xiàn)代操作系統(tǒng)中的稱作存儲(chǔ)器映射文件(MMF)的共享存儲(chǔ)器機(jī)制來(lái)共享存儲(chǔ)器區(qū)。特殊存儲(chǔ)器區(qū)將含有將在相機(jī)與視覺(jué)系統(tǒng)之間進(jìn)行共享的圖像。此機(jī)制跨越平臺(tái)、跨越若干過(guò)程及/或在同一過(guò)程內(nèi)透明地工作以將圖像直接傳送到視覺(jué)系統(tǒng)可存取的計(jì)算機(jī)存儲(chǔ)器。
[0017]圖2以框圖形式圖解說(shuō)明與視覺(jué)系統(tǒng)200相關(guān)聯(lián)的硬件的實(shí)施例。視覺(jué)系統(tǒng)200包含耦合到兩個(gè)相機(jī):相機(jī)A及相機(jī)B的計(jì)算機(jī)。視覺(jué)系統(tǒng)200的其它實(shí)施例可包含比所展示的少或多的相機(jī)一在從一個(gè)相機(jī)到N個(gè)相機(jī)的任何地方,其中N可為任何整數(shù)一取決于包含計(jì)算機(jī)的處理速度及/或通信能力的因素。
[0018]計(jì)算機(jī)包含耦合到存儲(chǔ)器204、緩沖器206、存儲(chǔ)裝置208及輸入/輸出(I/O)接口210的處理器(CPU)202。在此應(yīng)用中,將兩個(gè)元件描述為“以通信方式耦合”或“耦合”意指可在所述組件之間交換數(shù)據(jù),除非從其中使用所述術(shù)語(yǔ)的上下文清楚所述描述為不同含義。CPU 202還耦合到相機(jī)A中的控制器/處理器214A及相機(jī)B中的控制器/處理器214BXPU 202可為任何種類的處理器:從一般應(yīng)用處理器到專用集成電路(ASIC)。
[0019]存儲(chǔ)器204耦合到CPU 202及緩沖器206,使得所述存儲(chǔ)器可與所述CPU及緩沖器兩者交換數(shù)據(jù)。緩沖器206耦合到存儲(chǔ)器204的MMF區(qū)209、耦合到CPU 202且耦合到相機(jī)A的存儲(chǔ)器216A及相機(jī)B的存儲(chǔ)器216B。存儲(chǔ)器204還包含也可與緩沖器206及CPU 202交換數(shù)據(jù)的存儲(chǔ)器映射文件(MMF)區(qū)20LMMF區(qū)209在虛擬存儲(chǔ)器中含有圖像文件的內(nèi)容。文件與存儲(chǔ)器空間之間的此映射使得包含多個(gè)過(guò)程的應(yīng)用程序能夠通過(guò)讀取及直接寫入到存儲(chǔ)器而修改文件。使用此機(jī)制,可使用相機(jī)供應(yīng)商的SDK拍攝圖像,且可接著將所述圖像寫入到存儲(chǔ)器映射文件。此時(shí),可引發(fā)簡(jiǎn)單事件以向視覺(jué)系統(tǒng)指示新圖像處于存儲(chǔ)器中且準(zhǔn)備好被處理。視覺(jué)系統(tǒng)從存儲(chǔ)器獲取圖像且接著處理所述圖像。此方案為快速且高效的。
[0020]存儲(chǔ)裝置208耦合到CPU202及I/O接口 210。存儲(chǔ)裝置208存儲(chǔ)用于計(jì)算機(jī)的信息,包含相機(jī)清晰度(Camdef)文件(其包含耦合到計(jì)算機(jī)的所有相機(jī)的配置信息)。存儲(chǔ)于每一Camdef文件中的關(guān)于相機(jī)的信息可包含相機(jī)名稱、步幅、行數(shù)、每像素位數(shù)及像素類型的字段。像素類型告知系統(tǒng)此為單色圖像還是彩色圖像以及其為標(biāo)準(zhǔn)彩色還是格式化拜耳(Bayer)彩色。以此方式,視覺(jué)系統(tǒng)知曉如何解譯從圖像獲取過(guò)程傳送的像素值。I/O接口210耦合到CPU 202及存儲(chǔ)裝置208兩者且可用于將數(shù)據(jù)發(fā)送到除相機(jī)之外的其它裝置(計(jì)算機(jī)可連接到其)及接收數(shù)據(jù)。
[0021]相機(jī)A及B中的每一者在其內(nèi)具有各種經(jīng)耦合組件,所述經(jīng)耦合組件中的一些經(jīng)耦合組件另外以通信方式耦合到計(jì)算機(jī)中的組件。相機(jī)A及B兩者均包含以光學(xué)方式耦合到對(duì)應(yīng)光學(xué)器件211的圖像傳感器212。每一圖像傳感器212 (即,圖像傳感器212A及212B)還以通信方式耦合到控制器/處理器214、存儲(chǔ)器216及存儲(chǔ)裝置218。在每一相機(jī)中,控制器/處理器214以通信方式耦合到CPU 202,且每一相機(jī)存儲(chǔ)器216經(jīng)由緩沖器206以通信方式耦合到MMF存儲(chǔ)器209。因此,計(jì)算機(jī)以及相機(jī)A及B各自將MMF存儲(chǔ)器209視為其自身的存儲(chǔ)器。換句話說(shuō),MMF存儲(chǔ)器209操作為計(jì)算機(jī)與相機(jī)之間的共享存儲(chǔ)器。
[0022]此布置的優(yōu)點(diǎn)是其利用相機(jī)供應(yīng)商的標(biāo)準(zhǔn)SDK,所述標(biāo)準(zhǔn)SDK負(fù)責(zé)控制相機(jī)且通常將圖像寫入到計(jì)算機(jī)存儲(chǔ)器。所描述布置的實(shí)施例為足夠一般的使得用于不同相機(jī)及相機(jī)接口的相機(jī)供應(yīng)商SDK可全部共存以共享由相機(jī)捕獲且利用視覺(jué)系統(tǒng)處理的圖像。視覺(jué)系統(tǒng)供應(yīng)商完全消除控制大量相機(jī)類型的必要。視覺(jué)系統(tǒng)唯一需要的是等待被告知圖像可用于存儲(chǔ)器映射空間中,此時(shí)所述視覺(jué)系統(tǒng)可對(duì)所述圖像進(jìn)行操作。如先前所述,此布置并不限于相機(jī),而是可與許多其它成像裝置(例如平板掃描儀、3D成像器、X射線成像器及非標(biāo)準(zhǔn)相機(jī)類型)一起使用,只要所述成像裝置產(chǎn)生存儲(chǔ)于計(jì)算機(jī)存儲(chǔ)器中的傳感器數(shù)據(jù)陣列即可。
[0023]圖3圖解說(shuō)明可實(shí)施于視覺(jué)系統(tǒng)200中的每一相機(jī)內(nèi)的方法的實(shí)施例;下文參考視覺(jué)系統(tǒng)200描述所述方法。所述方法在框302處開(kāi)始。在框304處,圖像傳感器212與光學(xué)器件211—起起作用而捕獲或獲取一或多個(gè)對(duì)象的一或多個(gè)圖像。光學(xué)器件211將對(duì)象的圖像聚焦到圖像傳感器212上,所述圖像傳感器接著捕獲聚焦于其上的圖像。在如圖2中所展示的多相機(jī)設(shè)置中,不同相機(jī)可捕獲相關(guān)或不相關(guān)圖像。舉例來(lái)說(shuō),在視覺(jué)系統(tǒng)200的一個(gè)實(shí)施例中,相機(jī)A可檢驗(yàn)一個(gè)裝配線且相機(jī)B檢驗(yàn)另一裝配線,在此情形中,由相機(jī)A及B捕獲的圖像將為不相關(guān)的。在另一實(shí)施例中,相機(jī)A及B可用于捕獲同一對(duì)象的不同部分的圖像,借此有效地增加相機(jī)的視野。在此實(shí)施例中,由相機(jī)A及B捕獲的圖像將為相關(guān)的。
[0024]在框306處,(舉例來(lái)說(shuō))由控制器/處理器214從圖像傳感器212讀取來(lái)自由所述圖像傳感器捕獲的圖像的圖像數(shù)據(jù)。在框308(其為選用的,如由其虛線輪廓所指示)處,控制器/處理器214可執(zhí)行對(duì)從圖像傳感器讀取的圖像數(shù)據(jù)的初始預(yù)處理以修改、增強(qiáng)或改進(jìn)所捕獲圖像的光學(xué)特性。在各種實(shí)施例中,預(yù)處理的實(shí)例包含增益調(diào)整、白色平衡、彩色調(diào)整等等。
[0025]在框310處(無(wú)論是經(jīng)由框308到達(dá)還是直接從框306到達(dá)),經(jīng)由相機(jī)存儲(chǔ)器216將圖像數(shù)據(jù)寫入到緩沖器206。在框312處,相機(jī)向在計(jì)算機(jī)上運(yùn)行的視覺(jué)系統(tǒng)指示圖像處于緩沖器206中且準(zhǔn)備好用于進(jìn)一步處理。在框314處,方法檢查是否將捕獲更多圖像。如果將捕獲更多圖像,那么方法返回到框304且再次通過(guò)所述方法。如果在框314處,將不捕獲進(jìn)一步圖像,那么方法在框316處結(jié)束。
[0026]圖4是圖解說(shuō)明由在視覺(jué)系統(tǒng)200中的計(jì)算機(jī)上運(yùn)行的視覺(jué)系統(tǒng)的一或多個(gè)實(shí)例實(shí)施的方法400的實(shí)施例的流程圖,且下文參考視覺(jué)系統(tǒng)200描述所述方法。通常,視覺(jué)系統(tǒng)的每一實(shí)例將同時(shí)或順序地運(yùn)行數(shù)個(gè)過(guò)程(至少包含圖像獲取過(guò)程及分析/檢驗(yàn)過(guò)程)。在一個(gè)實(shí)施例中,所圖解說(shuō)明方法的大部分(框414及426除外)由圖像獲取過(guò)程執(zhí)行。
[0027]所述方法在框402處開(kāi)始。在框403處,CPU202將針對(duì)耦合到計(jì)算機(jī)的每一相機(jī)的先前所描述Camdef文件加載到其板載存儲(chǔ)器中或加載到存儲(chǔ)器204中。如上文所描述,Camdef文件含有關(guān)于相機(jī)的信息,使得視覺(jué)系統(tǒng)的相關(guān)過(guò)程可知曉相機(jī)的特性。在此特定實(shí)施方案中,視覺(jué)過(guò)程并不使用來(lái)自注冊(cè)表的值來(lái)進(jìn)行設(shè)置以用于存儲(chǔ)器共享,而是使用來(lái)自Camdef文件的值。在視覺(jué)過(guò)程的參數(shù)頁(yè)中,用戶可僅選擇使用哪一Camdef文件,且接著在照片拍攝步驟中選擇稱作“從存儲(chǔ)器加載圖像”的獲取選項(xiàng)。此時(shí),用戶可選擇使用哪一命名的存儲(chǔ)器映射文件來(lái)從其獲得圖像以用于處理。再次,此存儲(chǔ)器映射文件列表對(duì)應(yīng)于注冊(cè)表中所定義的所有映射文件。
[0028]在框404處,視覺(jué)系統(tǒng)聽(tīng)取指示新圖像數(shù)據(jù)已放置于緩沖器206中以用于處理的信號(hào)。如果在框406處,并未從相機(jī)接收到信號(hào),那么方法返回到框404且繼續(xù)進(jìn)行聽(tīng)取。如果在框406處,已接收到相機(jī)信號(hào),那么方法繼續(xù)進(jìn)行到框408。
[0029]在框408處,方法檢查是否存在耦合到視覺(jué)系統(tǒng)的多個(gè)相機(jī)。如果不存在耦合到計(jì)算機(jī)的多個(gè)相機(jī)一也就是說(shuō),如果僅存在耦合到計(jì)算機(jī)的一個(gè)相機(jī)一那么方法沿流程圖的開(kāi)始于框410處的左側(cè)繼續(xù)向下進(jìn)行。在框410處,視覺(jué)系統(tǒng)存取緩沖器206且從所述緩沖器讀取圖像數(shù)據(jù)。在框411(其為選用的,如由其虛線輪廓所指示)處,方法可在繼續(xù)進(jìn)行到下一框之前預(yù)處理來(lái)自緩沖器、從所述緩沖器讀取的圖像數(shù)據(jù)以調(diào)整各種光學(xué)特性。在框411處執(zhí)行的調(diào)整或預(yù)處理(如果有)可與在框308中所列示及/或先前所執(zhí)行的預(yù)處理選項(xiàng)相同或不同。
[0030]在框412處(無(wú)論是直接從框410到達(dá)還是穿過(guò)框411到達(dá)),使用存儲(chǔ)器映射文件來(lái)在圖像獲取過(guò)程與視覺(jué)分析過(guò)程之間傳送圖像。可針對(duì)連接到視覺(jué)系統(tǒng)的每一相機(jī)建立多個(gè)存儲(chǔ)器映射。負(fù)責(zé)拍攝照片的圖像獲取過(guò)程建立存儲(chǔ)器映射文件或若干文件以用于與視覺(jué)系統(tǒng)共享圖像。在注冊(cè)表中定義用于將圖像從圖像獲取過(guò)程傳送到視覺(jué)分析過(guò)程的存儲(chǔ)器映射。針對(duì)每一相機(jī)或圖像的映射被給定唯一名稱且被給定特定存儲(chǔ)器緩沖器大小;所述唯一名稱使其與特定相機(jī)或圖像緩沖器相關(guān)聯(lián),且所述緩沖器大小對(duì)應(yīng)于容納所述圖像所需的傳感器或圖像緩沖器的大小(就像素來(lái)說(shuō))。
[0031]將從緩沖器讀取的圖像數(shù)據(jù)復(fù)制到MMF存儲(chǔ)器209中,因此建立所述圖像數(shù)據(jù)的存儲(chǔ)器映射圖像文件。每一存儲(chǔ)器映射圖像文件經(jīng)建立而具有其從注冊(cè)表獲得的針對(duì)所述相機(jī)的共享圖像緩沖器的名稱。就“步幅”及“行數(shù)”來(lái)描述圖像文件大小。步幅對(duì)應(yīng)于圖像中的像素的列數(shù),且行數(shù)是圖像中的像素的行數(shù)。一旦建立存儲(chǔ)器映射文件,圖像獲取過(guò)程便接著建立對(duì)所述存儲(chǔ)器映射文件的存取器,所述存取器允許存儲(chǔ)器映射文件安全地讀取且寫入到所述存取器。當(dāng)獲取圖像且像素值駐存于本地存儲(chǔ)器中時(shí),此過(guò)程進(jìn)行封送(Marshal)復(fù)制以將圖像數(shù)據(jù)從本地陣列復(fù)制或?qū)懭氲酱鎯?chǔ)器映射文件。一旦完成,簡(jiǎn)單事件機(jī)制便用信號(hào)通知視覺(jué)分析過(guò)程一圖像可用于處理。
[0032]在框414處,視覺(jué)系統(tǒng)的分析/檢驗(yàn)過(guò)程使用CPU 202處理來(lái)自MMF區(qū)209的MMF圖像文件,且在框416處輸出對(duì)MMF圖像文件執(zhí)行的任何視覺(jué)分析/檢驗(yàn)的結(jié)果。此時(shí),分析/檢驗(yàn)過(guò)程也建立對(duì)存儲(chǔ)器映射文件的存取器,所述存取器允許存儲(chǔ)器映射文件從所述存取器安全地讀取或?qū)懭氲剿龃嫒∑?。所述分?檢驗(yàn)過(guò)程又進(jìn)行封送復(fù)制以將圖像數(shù)據(jù)從存儲(chǔ)器映射文件復(fù)制到本地緩沖器陣列中的一者。一旦圖像處于此本地緩沖器中,便可對(duì)所述圖像進(jìn)行分析。此最終復(fù)制的優(yōu)點(diǎn)是:一旦將圖像從存儲(chǔ)器映射文件復(fù)制到本地存儲(chǔ)器中,便可在視覺(jué)系統(tǒng)忙于處理前一圖像的同時(shí)拍攝另一圖像且將所述另一圖像放入共享存儲(chǔ)器緩沖器中。
[0033]返回到框408,如果方法發(fā)現(xiàn)存在多個(gè)相機(jī),那么方法沿流程圖的開(kāi)始于框420處的右側(cè)繼續(xù)向下進(jìn)行。在框420處,視覺(jué)系統(tǒng)存取緩沖器206且從所述緩沖器讀取圖像數(shù)據(jù)。
[0034]在框422(其為選用的,如由其虛線輪廓所指示)處,可在繼續(xù)進(jìn)行到下一框之前預(yù)處理從緩沖器讀取的圖像數(shù)據(jù)以調(diào)整各種光學(xué)特性。在框422中執(zhí)行的調(diào)整或預(yù)處理(如果有)可與在框308中先前所執(zhí)行的預(yù)處理相同或不同??墒褂闷渌浖?例如開(kāi)放CV(計(jì)算機(jī)視覺(jué))庫(kù))來(lái)在圖像傳遞到視覺(jué)系統(tǒng)之前修改所述圖像。舉例來(lái)說(shuō),在捕獲多個(gè)相關(guān)圖像的實(shí)施例中,可將所述多個(gè)圖像一起拼接成較大圖像??蓪D像解彎曲以消除(zero-out)透鏡或?qū)ο笫д???衫每捎米鞯谌杰浖娜魏嗡惴▉?lái)預(yù)處理圖像。所有這些選項(xiàng)可包含于較簡(jiǎn)單較小的專用圖像獲取過(guò)程中而非必須合并到復(fù)雜且固定的視覺(jué)系統(tǒng)代碼中。
[0035]在框424處(無(wú)論是經(jīng)由框424到達(dá)還是直接從框420到達(dá)),如上文針對(duì)框412所描述而處理圖像數(shù)據(jù),且在框426及428處,視覺(jué)系統(tǒng)如上文針對(duì)框414及416所描述而處理來(lái)自MMF存儲(chǔ)器209的MMF圖像文件且輸出結(jié)果。
[0036]此布置具有許多額外益處。一個(gè)益處是圖像拼接:設(shè)置足夠大以并排地容納來(lái)自多個(gè)相機(jī)的圖像的單個(gè)緩沖器206是可能的??赏ㄟ^(guò)控制指針地址來(lái)在存儲(chǔ)器中并排地布置來(lái)自每一相機(jī)的像素的行及列而將來(lái)自每一相機(jī)的圖像復(fù)制到此一個(gè)緩沖器中??山又鴮蝹€(gè)大圖像遞送到視覺(jué)系統(tǒng)以用于處理。此對(duì)于線掃描網(wǎng)絡(luò)應(yīng)用程序(其中不期望丟失來(lái)自所述網(wǎng)絡(luò)的圖像的任何行)可為尤其有用的。
[0037]視覺(jué)處理側(cè)上的另一益處是:多個(gè)視覺(jué)過(guò)程可同時(shí)分析同一圖像。典型視覺(jué)軟件可生成多個(gè)分析/檢驗(yàn)線程,可引導(dǎo)所有所述多個(gè)分析/檢驗(yàn)線程在計(jì)算機(jī)的單獨(dú)核心上運(yùn)行。每個(gè)線程可指向同一存儲(chǔ)器映射文件,且由于存儲(chǔ)器映射文件支持多個(gè)讀取存取,因此每一線程可復(fù)制圖像且接著同時(shí)且并行處理所述圖像的不同部分。此可使得視覺(jué)處理極其快速。
[0038]最后,視覺(jué)系統(tǒng)的代碼的標(biāo)準(zhǔn)體(其通常為數(shù)百萬(wàn)行長(zhǎng))無(wú)需針對(duì)每個(gè)所添加相機(jī)而被修改。此利用以下事實(shí):成像裝置的制造者提供穩(wěn)健SDK來(lái)控制其相機(jī)。因此,在圖像傳送到視覺(jué)系統(tǒng)之前,所述圖像還可被其它第三方軟件操縱以進(jìn)行如自定義圖像篩選、圖像解彎曲等事情。再次,此允許視覺(jué)系統(tǒng)代碼保持相同且第三方軟件全部用于次級(jí)解決方案系統(tǒng)圖像獲取應(yīng)用程序中。
[0039]包含發(fā)明摘要中所描述內(nèi)容的對(duì)本發(fā)明所圖解說(shuō)明實(shí)施例的以上說(shuō)明并非打算為窮盡性或?qū)⒈景l(fā)明限于所揭示的精確形式。盡管出于說(shuō)明性目的而在本文中描述本發(fā)明的特定實(shí)施例及實(shí)例,但如相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可在本發(fā)明的范圍內(nèi)做出各種等效修改??设b于以上詳細(xì)說(shuō)明對(duì)本發(fā)明做出這些修改。
[0040]所附權(quán)利要求書中使用的術(shù)語(yǔ)不應(yīng)理解為將本發(fā)明限制于說(shuō)明書及權(quán)利要求書中所揭示的特定實(shí)施例。而是,本發(fā)明的范圍將完全由所附權(quán)利要求書來(lái)確定,所述權(quán)利要求書將根據(jù)權(quán)利要求解釋的既定原則來(lái)加以理解。
【主權(quán)項(xiàng)】
1.一種方法,其包括: 在以通信方式耦合到一或多個(gè)相機(jī)的計(jì)算機(jī)的緩沖器中接收一或多個(gè)圖像; 從所述緩沖器檢索所述一或多個(gè)圖像;及 將所述一或多個(gè)圖像作為一或多個(gè)存儲(chǔ)器映射圖像文件存儲(chǔ)于由所述計(jì)算機(jī)及所述一或多個(gè)相機(jī)共享的存儲(chǔ)器的存儲(chǔ)器映射文件MMF區(qū)中。2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括對(duì)所述一或多個(gè)存儲(chǔ)器映射圖像文件運(yùn)行分析/檢驗(yàn)過(guò)程以從所述存儲(chǔ)器映射圖像文件提取視覺(jué)數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括產(chǎn)生及/或接收所述存儲(chǔ)器映射圖像文件處于存儲(chǔ)器的所述MMF區(qū)中的指示。4.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在將從所述緩沖器檢索的所述一或多個(gè)圖像存儲(chǔ)于MMF存儲(chǔ)器中之前預(yù)處理所述一或多個(gè)圖像。5.根據(jù)權(quán)利要求4所述的方法,其中所述一或多個(gè)圖像包含多個(gè)相關(guān)圖像,且預(yù)處理包含將所述多個(gè)相關(guān)圖像一起拼接成單個(gè)經(jīng)拼接圖像。6.根據(jù)權(quán)利要求5所述的方法,其中將所述單個(gè)經(jīng)拼接圖像作為單個(gè)存儲(chǔ)器映射圖像文件來(lái)存儲(chǔ)。7.根據(jù)權(quán)利要求4所述的方法,其中所述一或多個(gè)圖像為不相關(guān)的,且預(yù)處理包含調(diào)整圖像特性。8.根據(jù)權(quán)利要求7所述的方法,其中所述圖像特性包含白色平衡、彩色平衡及增益。9.一種非暫時(shí)性計(jì)算機(jī)可讀媒體,其上具有指令,所述指令當(dāng)由在以通信方式耦合到一或多個(gè)相機(jī)的計(jì)算機(jī)上運(yùn)行的視覺(jué)系統(tǒng)的一或多個(gè)實(shí)例執(zhí)行時(shí)致使所述計(jì)算機(jī)進(jìn)行以下操作: 在緩沖器中接收一或多個(gè)圖像; 從所述緩沖器檢索所述一或多個(gè)圖像;及 將所述一或多個(gè)圖像作為一或多個(gè)存儲(chǔ)器映射圖像文件存儲(chǔ)于由所述計(jì)算機(jī)及所述一或多個(gè)相機(jī)共享的存儲(chǔ)器的存儲(chǔ)器映射文件MMF區(qū)中。10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)可讀媒體,其中所述媒體進(jìn)一步包含致使所述計(jì)算機(jī)對(duì)所述一或多個(gè)存儲(chǔ)器映射圖像文件運(yùn)行分析/檢驗(yàn)過(guò)程以從所述存儲(chǔ)器映射圖像文件提取視覺(jué)數(shù)據(jù)的指令。11.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)可讀媒體,其中所述媒體進(jìn)一步包含致使所述計(jì)算機(jī)產(chǎn)生及/或接收所述存儲(chǔ)器映射圖像文件處于存儲(chǔ)器的所述MMF區(qū)中的指示的指令。12.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)可讀媒體,其中所述媒體進(jìn)一步包含致使所述計(jì)算機(jī)在將從所述緩沖器檢索的所述一或多個(gè)圖像存儲(chǔ)于MMF存儲(chǔ)器中之前預(yù)處理所述一或多個(gè)圖像的指令。13.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)可讀媒體,其中所述一或多個(gè)圖像包含多個(gè)相關(guān)圖像,且預(yù)處理包含將所述多個(gè)相關(guān)圖像一起拼接成單個(gè)經(jīng)拼接圖像。14.根據(jù)權(quán)利要求13所述的計(jì)算機(jī)可讀媒體,其中所述單個(gè)經(jīng)拼接圖像作為單個(gè)存儲(chǔ)器映射圖像文件來(lái)存儲(chǔ)。15.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)可讀媒體,其中所述一或多個(gè)圖像為不相關(guān)的,且預(yù)處理包含調(diào)整圖像特性。16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其中所述圖像特性包含白色平衡、彩色平衡及增益。17.—種設(shè)備,其包括: 存儲(chǔ)器,其中包含由所述設(shè)備及一或多個(gè)相機(jī)共享的存儲(chǔ)器映射文件區(qū); 處理器,其以通信方式耦合到所述存儲(chǔ)器; 一或多個(gè)緩沖器,其以通信方式耦合到所述存儲(chǔ)器且耦合到所述處理器并經(jīng)配置而以通信方式與所述一或多個(gè)相機(jī)耦合;及 邏輯,其用以致使所述處理器、存儲(chǔ)器映射存儲(chǔ)器及所述緩沖器進(jìn)行以下操作: 在所述一或多個(gè)緩沖器中接收一或多個(gè)圖像, 從所述緩沖器檢索所述一或多個(gè)圖像,及 將所述一或多個(gè)圖像作為一或多個(gè)存儲(chǔ)器映射圖像文件存儲(chǔ)于由所述設(shè)備及所述一或多個(gè)相機(jī)共享的存儲(chǔ)器的所述存儲(chǔ)器映射文件MMF區(qū)中。18.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述邏輯可進(jìn)一步致使計(jì)算機(jī)對(duì)所述一或多個(gè)存儲(chǔ)器映射圖像文件運(yùn)行分析/檢驗(yàn)過(guò)程以從所述存儲(chǔ)器映射圖像文件提取視覺(jué)數(shù)據(jù)。19.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述邏輯可進(jìn)一步致使所述計(jì)算機(jī)產(chǎn)生及/或接收所述存儲(chǔ)器映射圖像文件處于存儲(chǔ)器的所述MMF區(qū)中的指示。20.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述邏輯可進(jìn)一步致使所述計(jì)算機(jī)在將從所述緩沖器檢索的所述一或多個(gè)圖像存儲(chǔ)于MMF存儲(chǔ)器中之前預(yù)處理所述一或多個(gè)圖像。21.根據(jù)權(quán)利要求20所述的設(shè)備,其中所述一或多個(gè)圖像包含多個(gè)相關(guān)圖像,且預(yù)處理包含將所述多個(gè)相關(guān)圖像一起拼接成單個(gè)經(jīng)拼接圖像。22.根據(jù)權(quán)利要求21所述的設(shè)備,其中所述單個(gè)經(jīng)拼接圖像作為單個(gè)存儲(chǔ)器映射圖像文件來(lái)存儲(chǔ)。23.根據(jù)權(quán)利要求20所述的設(shè)備,其中所述一或多個(gè)圖像為不相關(guān)的,且預(yù)處理包含調(diào)整圖像特性。24.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述圖像特性包含白色平衡、彩色平衡及增益。
【文檔編號(hào)】H04N21/232GK105981390SQ201480072189
【公開(kāi)日】2016年9月28日
【申請(qǐng)日】2014年10月29日
【發(fā)明人】史蒂文·J·金, 澤格·利蒙丹
【申請(qǐng)人】邁思肯系統(tǒng)公司