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