機(jī)器視覺與圖像分析技術(shù)
或許你依然希望能得到咨詢專家的協(xié)助,不過緊縮包裹型(Shrink-Wrapped)開發(fā)東西包現(xiàn)在現(xiàn)已使得短少專業(yè)經(jīng)歷的開發(fā)者也能夠照樣承當(dāng)更多依據(jù)視覺的項(xiàng)目。
要點(diǎn)
● 與視覺相關(guān)的項(xiàng)目并非全都需求咨詢專家的效勞;在硬件供貨商和開發(fā)東西供貨商的協(xié)助下,短少視覺體系開發(fā)經(jīng)歷的開發(fā)者一般也能夠完結(jié)大部分(即便不是悉數(shù))開發(fā)作業(yè),而且為他們的公司節(jié)約費(fèi)用。
● 在開端視覺體系開發(fā)之前,你有必要答復(fù)大約五六個(gè)問題;你的答案將底子決議體系的硬件本錢。
● 你只要挑選能夠在菜單驅(qū)動(dòng)環(huán)境中能使你開端設(shè)備開發(fā)作業(yè),然后經(jīng)過圖形編程或語法編程來完善程序,就可大大進(jìn)步功率。
● 習(xí)慣于視覺體系在裝置之后需求盡心呵護(hù)的觀念;你常常無法預(yù)見在體系運(yùn)轉(zhuǎn)一段時(shí)刻之后可能有必要調(diào)整算法的各種理由。
成功地開發(fā)一種依據(jù)視覺的設(shè)備可能需求許多專業(yè)知識(shí),致使許多計(jì)劃這樣做的開發(fā)者都不情愿嘗試這種使命,而轉(zhuǎn)向求助于那些經(jīng)過把握技能的方方面面細(xì)微不同樹立自己職業(yè)生涯的咨詢專家。一般,一位咨詢專家不只可認(rèn)為你節(jié)約數(shù)倍咨詢費(fèi)的費(fèi)用,而且還能夠節(jié)約大量名貴的時(shí)刻。即便這樣,有些適用于依據(jù)視覺的體系開發(fā)的緊縮包裹型軟件包卻使那些沒有機(jī)器視覺或圖畫剖析經(jīng)歷的人能恬然承當(dāng)?shù)捻?xiàng)目數(shù)量不斷添加。
如果你短少恰當(dāng)?shù)慕?jīng)歷,則要走好的第一步是設(shè)法斷定哪些使命需求外界協(xié)助,哪些使命是你有可能用預(yù)包裝軟件自己敏捷完結(jié)的。供給開發(fā)東西和硬件的廠商一般能夠協(xié)助你做出這種判別。在許多情況下,這些廠商的網(wǎng)站都有協(xié)助做出這種決議的東西。給一個(gè)這樣的廠商打個(gè)電話,你一般就能夠與一位能收集有關(guān)你設(shè)備信息的運(yùn)用工程師取得聯(lián)系。在恰當(dāng)?shù)臅r(shí)分,大多數(shù)廠商會(huì)向你引薦他們熟悉其作業(yè)情況的咨詢專家。一般,最經(jīng)濟(jì)的辦法就是,某個(gè)項(xiàng)目中僅僅某些部分運(yùn)用咨詢協(xié)助,例如照明部分。
圖畫剖析和機(jī)器視覺是相關(guān)而又不同的兩個(gè)范疇。從某種含義上說,圖畫剖析是機(jī)器視覺的一部分??墒牵瑥牧硪环N含義上說,圖畫剖析是一門更廣的學(xué)科。實(shí)際上,這兩范疇的分界線常常是模糊不清的。
機(jī)器視覺運(yùn)用一般具有商業(yè)滋味。例如,機(jī)器視覺是許多制作進(jìn)程的要害部分。另一方面,"圖畫剖析"--按多數(shù)人的了解--更可能運(yùn)用于科學(xué)研討實(shí)驗(yàn)室。一些專家說,圖畫剖析常常處理的操作不及機(jī)器視覺處理的操作清晰。對(duì)不知道物體,例如學(xué)術(shù)實(shí)驗(yàn)室中(圖1)或許乃至臨床病理學(xué)實(shí)驗(yàn)室中的動(dòng)物組織細(xì)胞的圖畫進(jìn)行表征或分類就是一例。
圖1 冷泉港(紐約)實(shí)驗(yàn)室霍華德休斯醫(yī)學(xué)院的一個(gè)研討小組運(yùn)用Matlab及其圖畫捕獲和圖畫處理東西箱來研討哺乳動(dòng)物的大腦怎么運(yùn)作。運(yùn)用圖畫捕獲東西箱,研討人員就可將顯微鏡圖畫從攝像機(jī)直接流式傳輸?shù)組atlab,并可運(yùn)用圖畫處理東西箱功用來剖析一段時(shí)刻內(nèi)的圖畫。為了一按按鈕就能進(jìn)行捕獲和剖析,研討人員在Matlab中發(fā)明了生動(dòng)的圖形用戶界面。
在機(jī)器視覺中,你一般對(duì)照相機(jī)或圖畫傳感器所調(diào)查的物體有一般的了解,但你需求取得更詳細(xì)的信息。產(chǎn)品檢測(cè)設(shè)備屬于機(jī)器視覺這一類。例如,你知道一幅圖畫描繪的是哪種印制電路板模型,可是你有必要斷定一切元件的類型是否正確以及方位是否妥當(dāng)。斷定元件是否正確和方位是否合適當(dāng)然要涉及到圖畫剖析,可是這種剖析比臨床實(shí)驗(yàn)室中的那種剖析更為直觀。
機(jī)器視覺使命的分類
幾位專家將首要機(jī)器視覺使命分為以下幾類:
● 對(duì)比如墊圈、螺母和螺栓等元件進(jìn)行計(jì)數(shù),并從噪聲布景中提取可視信息。
● 丈量 (也稱為測(cè)定) 視點(diǎn)、尺寸以及相關(guān)方位。
● 讀出,包含比如從條形碼中獲取信息、對(duì)蝕刻在半導(dǎo)體芯片上的字符的OCR(光學(xué)字符識(shí)別)以及讀出二維DataMatrix碼等操作。
● 對(duì)物體進(jìn)行比較,例如,將出產(chǎn)線上的單元與相同類型的KGU(已知優(yōu)質(zhì)單元)進(jìn)行比較,找出比如短少元件或標(biāo)簽等的制作缺點(diǎn)。這種比較可能是簡(jiǎn)單的圖樣相減,也可能涉及到幾許或矢量圖形匹配算法。如果被比較物體的尺寸或方向各不相同的話,就有必要選用后者。比較的類型包含檢測(cè)物體的有無、匹配顏色和比較印刷質(zhì)量。被檢查的物體可能與阿司匹林藥片一樣簡(jiǎn)單,其正確標(biāo)記需在包裝之前加以驗(yàn)證。
上述列表因?yàn)楹茉敿?xì),所以可能意味著你能夠運(yùn)用菜單驅(qū)動(dòng)的依據(jù)圖形的開發(fā)東西來創(chuàng)立機(jī)器視覺設(shè)備,而不是運(yùn)用如C++這樣的依據(jù)文本的言語來編寫代碼。雖然具有長(zhǎng)時(shí)間用依據(jù)文本的言語對(duì)機(jī)器視覺設(shè)備進(jìn)行編程的開發(fā)者一般更情愿堅(jiān)持運(yùn)用他們多年來成功運(yùn)用的東西,但你的確能夠運(yùn)用多種菜單驅(qū)動(dòng)的圖形化運(yùn)用開發(fā)軟件包之一。雖然業(yè)界中的一些人對(duì)這種不愿改動(dòng)的傾向頗有微詞,但要問一問自己,如果你延聘來處理某種設(shè)備的咨詢專家第一次嘗試運(yùn)用新軟件包來完結(jié)你的作業(yè)的話,你的感觸怎么呢?
即便在各種依據(jù)圖形的東西傍邊,供貨商們也把那些真實(shí)供給可編程才能的和那些僅答應(yīng)用戶裝備設(shè)備的區(qū)別開來。這種可裝備的辦法能讓你更便利地使設(shè)備運(yùn)轉(zhuǎn),并能供給許多開發(fā)者所需的靈活性。編程功用可為開發(fā)者供給更大的靈活性,但卻會(huì)延伸開發(fā)時(shí)刻-特別是關(guān)于那些第一次運(yùn)用一種東西的人來說更是如此。在某些情況下,可裝備的辦法和可編程的辦法都以相同的言語發(fā)作輸出,然后使你能運(yùn)用編程功用來修正或進(jìn)步你用可裝備的辦法創(chuàng)立的設(shè)備(圖2)。這樣的靈活性的潛在長(zhǎng)處是巨大的:你能夠運(yùn)用更強(qiáng)大的東西來完善某種設(shè)備,并可憑借底子的東西,敏捷使之在原始級(jí)作業(yè)。這種辦法可下降在完善辦法上浪費(fèi)時(shí)刻的可能性,而你后來發(fā)現(xiàn)這些辦法存在底子缺點(diǎn)。
圖2 運(yùn)用Data Translation公司的Vision Foundry進(jìn)行設(shè)備開發(fā)的首要代替技能比如了東西箱的優(yōu)越性,東西箱使你能夠運(yùn)用可裝備的依據(jù)菜單的交互式東西快速驗(yàn)證概念,然后再經(jīng)過編程功用改善其設(shè)備。在Vision Foundry中,你能夠經(jīng)過編寫直觀的腳正本完結(jié)大部分編程使命。
正在發(fā)作的調(diào)整
或許更重要的是怎么運(yùn)用兩種辦法的輕松交換運(yùn)用來簡(jiǎn)化許多機(jī)器視覺設(shè)備中正在進(jìn)行的不行避免的調(diào)整。例如,在AOI (主動(dòng)光學(xué)查驗(yàn))中,你或許希望除掉任何與KGU不同的UUT (被測(cè)單元)。唉,如果選用這種戰(zhàn)略,查驗(yàn)進(jìn)程大概會(huì)除掉你出產(chǎn)的大部分單元,即便其間大多數(shù)單元具有能夠接受的性能。闡明因?yàn)榉怯斜匾煌鴮?dǎo)致AOI體系除掉一個(gè)優(yōu)質(zhì)部件的簡(jiǎn)單比如就是UUT運(yùn)用的某個(gè)元件的日期代碼與KGU上的等效元件的日期代碼不同。
此刻,你可在設(shè)備的規(guī)劃期間預(yù)見到數(shù)據(jù)代碼問題,并確保體系疏忽包含日期代碼的區(qū)域內(nèi)的圖畫不同。惋惜的是,雖然如此,其它非有必要不同更難意料,你有必要估計(jì)到你發(fā)現(xiàn)這些非有必要不一起需求修正設(shè)備。實(shí)際上,一些AOI體系的軟件簡(jiǎn)直能主動(dòng)地進(jìn)行這樣的修正;如果你奉告體系它除掉了優(yōu)質(zhì)單元,則軟件就會(huì)將單元的圖畫與原始KGU進(jìn)行比較,并在有不同的區(qū)域內(nèi)不再對(duì)隨后的單元進(jìn)行查驗(yàn)。
不過,這樣的辦法有時(shí)分會(huì)發(fā)作并不令人滿足的成果。假定查驗(yàn)體系裝置在一間有外部光線能夠從窗戶進(jìn)入的房間內(nèi),然后使UUT的照度發(fā)作改變。雖然檢查員能夠一揮而就地習(xí)慣這種改變,可是這樣的改變會(huì)導(dǎo)致視覺體系將相同物體的圖畫分為不同物體的圖畫,然后引起不行意料的查驗(yàn)失利。雖然遮住窗戶能夠防止外部光線進(jìn)入,可是調(diào)整測(cè)驗(yàn)程序使KGU在各種照明極點(diǎn)情況下都能經(jīng)過或許更加經(jīng)濟(jì)合算。
即便如此,這個(gè)比如也指出了照明在機(jī)器視覺和圖畫剖析中的重要性。照明自身就是一門科學(xué)或藝術(shù)。各式各樣的照明技能具有不同的長(zhǎng)處和弱點(diǎn),而對(duì)UUT的照明辦法能夠處理或改善普通的機(jī)器視覺問題(參考文獻(xiàn)1)。
項(xiàng)目本錢及時(shí)刻期限
機(jī)器視覺項(xiàng)目的本錢相差很大。有幾個(gè)這樣的項(xiàng)目的本錢不逾越5000美元,其間包含硬件、預(yù)包裝軟件開發(fā)東西以及設(shè)備開發(fā)者的工時(shí)本錢。不過,如此低價(jià)的項(xiàng)目本錢很可能不包含為了抵達(dá)滿足性能而對(duì)設(shè)備進(jìn)行調(diào)整和調(diào)試的本錢。在本錢范圍的另一端,項(xiàng)目本錢逾越一百萬美元。這類項(xiàng)目中最常見的可能就是在轎車和航空工業(yè)中對(duì)主動(dòng)出產(chǎn)線的嚴(yán)重改善。依據(jù)一些供貨商說,最常見的項(xiàng)目本錢一般從數(shù)萬美元到略高于十萬美元不等。從管理層同意項(xiàng)目啟動(dòng)到視覺體系在出產(chǎn)中正常運(yùn)用的項(xiàng)目期限一般不到六個(gè)月,而且常常只要一兩個(gè)月。
并不令人驚奇的是,簡(jiǎn)直一切視覺項(xiàng)目都從取得底子問題的答案開端。這些問題的答案充分地?cái)喽艘曈X體系硬件的本錢:需求多少臺(tái)攝像機(jī)?有必要具有多高的圖畫分辨率?五顏六色成像是否必要?每秒有必要收集多少幀?用不用發(fā)作模仿輸出的攝像機(jī)?如果這樣,就需求挑選一個(gè)幀接納板來將模仿信號(hào)轉(zhuǎn)換成數(shù)字方式,在必要時(shí)還要圖畫幀的收集與外部觸發(fā)事件同步(參考文獻(xiàn)2)。
雖然一些用于模仿攝像機(jī)的幀接納器能夠一起接納來自多個(gè)攝像機(jī)的輸入,可是一次為一臺(tái)攝像機(jī)供給一個(gè)接口的電路板更為常見。如果你挑選具有數(shù)字接口的攝像機(jī),你會(huì)運(yùn)用能夠進(jìn)行圖畫處理和圖畫收集的"智能"攝像機(jī)嗎?仍是由攝像機(jī)將原始(未處理的)圖畫數(shù)據(jù)發(fā)送到主機(jī)PC進(jìn)行處理?還有,數(shù)字?jǐn)z像機(jī)選用哪種接口規(guī)范或總線與主機(jī)PC通訊呢?適用于某些總線的數(shù)字?jǐn)z像機(jī)需求幀接納器。可是,與用于模仿攝像機(jī)的幀接納器不同,用于數(shù)字?jǐn)z像機(jī)的幀接納器不進(jìn)行模/數(shù)轉(zhuǎn)換。
與硬件相關(guān)的考慮要素可能會(huì)逾越這些問題。而且,一些問題選用了一般正確的默許假定,即視覺體系的主計(jì)算機(jī)是一臺(tái)運(yùn)轉(zhuǎn)規(guī)范版別Windows (www.microsoft.com)的PC。機(jī)器視覺系統(tǒng)有時(shí)分在實(shí)時(shí)操作體系下運(yùn)轉(zhuǎn),而圖畫剖析軟件則經(jīng)常在Unix或Linux下運(yùn)轉(zhuǎn)。此外,與其它實(shí)時(shí)體系一樣,許多實(shí)時(shí)視覺體系選用與Pentium (www.intel.com)或Athlon (www.amd.com)器材不同的CPU。
攝像機(jī)接口
使攝像機(jī)與主機(jī)計(jì)算機(jī)接口依然是視覺體系規(guī)劃的一個(gè)要害問題。雖然呈現(xiàn)了數(shù)字化接口的攝像機(jī),雖然成像體系選用IEEE 1394 (也稱為FireWire和i-Link)來與攝像機(jī)接口,但攝像機(jī)接口的挑選仍值得細(xì)心考慮。(正在敏捷成為干流高速PC外設(shè)接口的USB 2.0并不是工業(yè)成像范疇的一個(gè)要素,這首要是因?yàn)?,雖然其480 Mbps的數(shù)據(jù)傳輸速率名義上比開始版別的FireWire更高,但USB 2.0的以主機(jī)為中心的協(xié)議關(guān)于成像來說卻比FireWire更慢。)
FireWire是消費(fèi)類視頻體系和家庭文娛體系中盛行的高速串行總線。這種即插即用的總線選用多點(diǎn)體系結(jié)構(gòu)和對(duì)等層通訊協(xié)議。該規(guī)范的開始詳細(xì)化包含速率高達(dá)400 Mbps的數(shù)據(jù)傳輸。數(shù)據(jù)傳輸速率最終將抵達(dá)3.2 Gbps。2003年1月,IEEE發(fā)布了1394b,而且其擁護(hù)者們希望不久就能夠在視覺硬件中看到800Mbps的版別。不過,雖然工業(yè)FireWire攝像機(jī)具有合理的本錢,但它在消費(fèi)類設(shè)備中的可用性在不斷添加(在消費(fèi)類設(shè)備中,所需的分辨率--有時(shí)分還有幀頻--均比工業(yè)設(shè)備中所要求的更為適度),其纖細(xì)而柔軟的串行電纜用起來很便利,其總線數(shù)字技能具有抗擾性,但選用這類攝像機(jī)依然受到約束。
本錢可能會(huì)約束FireWire在工業(yè)成像范疇中的遍及。工業(yè)FireWire攝像機(jī)的本錢要比具有相同幀頻和分辨率的工業(yè)模仿輸出攝像機(jī)高。另一方面,F(xiàn)ireWire攝像機(jī)與模仿攝像機(jī)的本錢比較有時(shí)分可能會(huì)發(fā)作誤導(dǎo)。在具有內(nèi)置FireWire端口的體系中,攝像機(jī)一般不需求額定的接口硬件。這種攝像機(jī)包含一個(gè)ADC(模/數(shù)轉(zhuǎn)換器),而模仿攝像機(jī)則需求幀接納器來完結(jié)必要的ADC功用(圖3)。
圖3 National Instruments公司的依據(jù)Celeron的CVS-1454型細(xì)巧視覺體系(Compact Vision System)比如了為工廠環(huán)境規(guī)劃的機(jī)器視覺硬件。雖然這一體系(右上)并非一個(gè)規(guī)范的辦公室PC,但它包含三個(gè)FireWire端口然后不需求特殊的攝像機(jī)接口硬件。該體系與National Instruments公司的LabView圖形化開發(fā)環(huán)境配套運(yùn)用,而這個(gè)開發(fā)環(huán)境能經(jīng)過交互式圖形化東西快速開發(fā)程序,如果有必要,隨后再運(yùn)用完好的圖形化編程功用調(diào)試設(shè)備。
FireWire攝像機(jī)選用IEEE 1394的同步協(xié)議,這就能確保帶寬并確保數(shù)據(jù)包依照它們的發(fā)送次序抵達(dá)(如果他們悉數(shù)抵達(dá)的話)。該規(guī)范的其它協(xié)議(異步的)確保消息傳遞但不確保數(shù)據(jù)包依照它們的發(fā)送次序抵達(dá)。每個(gè)同步設(shè)備能夠每隔125μs--也就是以8kHz的最大速率--宣布一個(gè)帶寬懇求。起總線管理器效果的設(shè)備賦予每個(gè)宣布懇求的設(shè)備在隨后125μs內(nèi)發(fā)送預(yù)訂數(shù)目數(shù)據(jù)包的權(quán)利。
總線上的同步設(shè)備越多,每個(gè)設(shè)備可得到的帶寬就越少。當(dāng)FireWire總線上僅有一臺(tái)攝像機(jī)時(shí),一臺(tái)1280×960像素黑白攝像機(jī)差不多能夠每秒發(fā)送15幀。一臺(tái)640×480像素的FireWire五顏六色攝像機(jī)大約能夠每秒發(fā)送30幀。雖然這兩個(gè)比如中的任一個(gè)似乎都不會(huì)運(yùn)用總線的悉數(shù)可用數(shù)據(jù)傳輸容量,但每個(gè)像素的比特?cái)?shù)以及攝像機(jī)使數(shù)據(jù)格式化的辦法卻會(huì)對(duì)最大幀速率發(fā)作影響。順便闡明一下,分辨率越高并不總是越好。分辨率較高的攝像機(jī)不只價(jià)格更貴,幀速率一般比分辨率較低的攝像機(jī)更慢,而且還更容易提醒UUT和KGU之間微不足道的不同,然后進(jìn)步AOI體系錯(cuò)誤地檢測(cè)毛病的速率。
更多攝像機(jī)接口
除了FireWire之外,數(shù)字輸出攝像機(jī)的接口選件還包含RS 422并行接口和Camera Link(表1)。RS 422攝像機(jī)接口還沒有徹底規(guī)范化,所以一般需求攝像機(jī)專用接口卡。從用于模仿輸出攝像機(jī)的接口卡的含義上來說,這些卡并不是幀接納器,但它們一般相同可插入主PC的PCI總線。因?yàn)橛袝r(shí)分需求50多根連線,并行接口被證明并不適用。不過,RS 422數(shù)字?jǐn)z像機(jī)依然受歡迎,而且持續(xù)用得廣泛。
AIA的Camera Link是性能最高的數(shù)字輸出攝像機(jī)接口規(guī)范。與FireWire不同,Camera Link答應(yīng)每條總線上只要一臺(tái)攝像機(jī),但許多PC能夠包容多條Camera Link總線。Camera Link可在并行組合的單向鏈路、串行鏈路和點(diǎn)對(duì)點(diǎn)鏈路上,運(yùn)用SERDES(串行化/解串行化)技能以高達(dá)4.8 Gbps的速度發(fā)送數(shù)據(jù)。每條鏈路可傳送來自7個(gè)通道的數(shù)據(jù),并運(yùn)用每條鏈路需求兩根導(dǎo)線的LVDS (低電壓差分信號(hào)傳輸) 技能。通道的數(shù)目決議了Camera Link總線的最大數(shù)據(jù)速率。一條裝備徹底的總線能夠有76個(gè)通道,其間包含11條鏈路和22根導(dǎo)線,不過該規(guī)范考慮到具有28個(gè)通道和56個(gè)通道的總線 (4和8條鏈路及8和16根連線)。每條Camera Link總線一般需求PC中的一個(gè)獨(dú)立接口卡。
選用Camera Link總線現(xiàn)在還涉及到編寫額定的軟件。因?yàn)樵赑C中生成Camera Link總線的卡既稀少又沒有徹底規(guī)范化,所以緊縮包裹型運(yùn)用程序開發(fā)軟件包一般短少Camera Link啟動(dòng)程序。雖然如此,如果需求Camera Link的有目共睹的速度,那你就沒有多少挑選地步。
某些時(shí)分,你可運(yùn)用智能攝像機(jī)來減少視覺體系有必要處理的數(shù)據(jù)量,因?yàn)橹悄軘z像機(jī)能夠先對(duì)其收集的數(shù)據(jù)進(jìn)行處理或緊縮,然后再將數(shù)據(jù)發(fā)送給主機(jī)PC。這樣的攝像機(jī)有時(shí)分既可下降攝像機(jī)與主機(jī)之間的數(shù)據(jù)速率又可下降主機(jī)與主機(jī)中負(fù)載之間的數(shù)據(jù)速率,但本錢較高。可是,你有必要確保數(shù)據(jù)緊縮要么是真實(shí)無損的,要么是不需求緊縮中丟失的數(shù)據(jù)。