導(dǎo)語:工業(yè)攝像頭的丟幀現(xiàn)象之所以會(huì)發(fā)生,其實(shí)就是資料通道的堵塞,無法技術(shù)處理,所以新的圖像采集進(jìn)來時(shí),前一張圖像可能會(huì)被迫丟棄,或者是新的圖像被迫丟棄。
01 丟幀表現(xiàn)
01 工業(yè)相機(jī)預(yù)覽模式下,無法以滿幀的速度傳輸圖像
02 觸發(fā)拍照模式下,相機(jī)傳輸圖像數(shù)量少于觸發(fā)次數(shù)(觸發(fā)頻率應(yīng)小于幀率)
03 圖像處理軟件處理的圖像數(shù)量小于預(yù)期
02 丟幀可能存在的原因
工業(yè)相機(jī)丟幀問題是工業(yè)相機(jī)常出現(xiàn)的問題,其原因與相機(jī)的傳輸接口沒有太大的關(guān)系,主要在于工業(yè)相機(jī)硬件和設(shè)計(jì)不良的驅(qū)動(dòng)程序有關(guān),這種情況對(duì)于機(jī)器視覺檢測(cè)來說,具有很不確定性的效果影響。
相機(jī)丟幀3個(gè)主要原因解釋:
1. 工業(yè)相機(jī)自身硬件設(shè)計(jì)
工業(yè)相機(jī)將圖像從光學(xué)信號(hào)轉(zhuǎn)變成有序的電信號(hào),其中圖像傳感器傳送圖像到相機(jī)上的usb芯片,USB再傳送給電腦端,如果某一時(shí)段電腦端系統(tǒng)繁忙,沒有及時(shí)接收到圖像,而后續(xù)的圖像又傳送過來,導(dǎo)致未接收到的那部分圖像丟失。
2. 工業(yè)視覺軟件應(yīng)用程序部分
視覺軟件包括硬件驅(qū)動(dòng)程序和圖像處理,為圖像計(jì)算所分配的內(nèi)存空間,有無緩沖的機(jī)制,可以加大圖像的緩存來加大緩沖的時(shí)間,另外多線程的設(shè)計(jì)好壞也會(huì)影響到處理速度。
讓程序運(yùn)算有足夠的空間來處理,在運(yùn)作情況下,CPU的整體處理速度比圖像進(jìn)來的速度慢,如果緩存不夠,接收的效率太低,工業(yè)相機(jī)又沒有足夠的緩存,就會(huì)構(gòu)成丟幀的現(xiàn)象。
但這是系統(tǒng)掉資料,不是工業(yè)相機(jī)丟幀。在這種情況不管是用1394接口的工業(yè)相機(jī),還是USB接口,又或者是GigE接口,任何接口的工業(yè)相機(jī)都會(huì)得到相同效果。
3. 硬件PC系統(tǒng)部分
PC部分主要依賴于硬件驅(qū)動(dòng)程序,重要的是驅(qū)動(dòng)程序的功率以及系統(tǒng)有多少內(nèi)核方式下的線程在分割CPU的時(shí)間,接收的功率不佳,工業(yè)相機(jī)沒有比較好的緩沖記憶,往往會(huì)引起丟幀現(xiàn)象。
硬件原因?qū)е碌膩G幀,可能是因?yàn)閿?shù)據(jù)帶寬不足引起的,比如擴(kuò)展網(wǎng)卡或者USB3.0卡都可能造成問題。
相機(jī)網(wǎng)線達(dá)不到傳輸速率要求;PCIe插槽有問題,達(dá)不到標(biāo)準(zhǔn)速率(比如有的PCIe插槽可能是從主PCIe插槽擴(kuò)展出來的,與主PCIe插槽共用一個(gè)PCIe插槽的帶寬);又或者相機(jī)滿幀采像的數(shù)據(jù)傳輸速率超過單個(gè)網(wǎng)口/USB3.0口的傳輸速度;網(wǎng)卡/USB3.0卡所有通道滿負(fù)荷工作超過對(duì)應(yīng)PCIe插槽的數(shù)據(jù)傳輸速率。
03 如何解決幀丟失問題
為了解決這個(gè)問題,設(shè)計(jì)者需要精確地設(shè)計(jì)驅(qū)動(dòng)和工業(yè)相機(jī)硬件數(shù)據(jù)傳輸?shù)拿總(gè)部分,有三個(gè)地方阻止圖像數(shù)據(jù):
1. 工業(yè)相機(jī)的一部分
圖像傳感器將圖像傳輸?shù)较鄼C(jī)上的USB芯片,將USB傳輸?shù)絇C,如果PC系統(tǒng)忙于處理接收到的圖像,并且圖像傳感器繼續(xù)傳輸新的圖像數(shù)據(jù),則工業(yè)相機(jī)必須有足夠的存儲(chǔ)器緩沖區(qū),反之亦然。
2. 可視化軟件程序部分
該可視化軟件具有用于等待所計(jì)算的圖像空間的緩沖機(jī)制,以便增加圖像的緩沖以獲得緩沖時(shí)間,從而可以處理程序的操作,但是如果操作穩(wěn)定,則CPU的整體處理速度更快。
在機(jī)器視覺系統(tǒng)中,工業(yè)相機(jī)的幀率往往很大,且工業(yè)相機(jī)自帶緩存也有限,主要為調(diào)度系統(tǒng)起到暫時(shí)繁忙處理的輔助功能。
機(jī)器視覺軟件的速度比工業(yè)相機(jī)圖像進(jìn)來的速度還慢,時(shí)間長(zhǎng)了就會(huì)導(dǎo)致軟件緩存的飽和溢出丟失,所以不管是usb接口和gige接口等,都會(huì)出現(xiàn)丟幀現(xiàn)象,所以,優(yōu)化機(jī)器視覺軟件的處理速度也是非常重要的。
3. 硬件PC系統(tǒng)部分
這部分偏向PC硬件驅(qū)動(dòng)程序,與可視化軟件程序無關(guān)。
PC機(jī)接收的關(guān)鍵是驅(qū)動(dòng)程序的效率,在內(nèi)核模式下有多少線程處于CPU時(shí)間,接收效率不高,工業(yè)相機(jī)沒有足夠的緩沖存儲(chǔ)器會(huì)導(dǎo)致幀丟失。
工業(yè)相機(jī)具有非?斓膸俾,事實(shí)上,只要有足夠的容量來調(diào)整系統(tǒng)的“臨時(shí)”忙碌,工業(yè)相機(jī)緩存就不會(huì)像PC程序那樣擴(kuò)大規(guī)模。USB工業(yè)相機(jī)將丟棄幀,只有一種情況,機(jī)器視覺軟件比工業(yè)相機(jī)圖像慢,軟件緩存已滿,無法存儲(chǔ)新圖像。
但這是系統(tǒng)數(shù)據(jù),而不是工業(yè)相機(jī)掉數(shù)據(jù)。在這種情況下,不管使用1394接口、USB接口或GigE接口的工業(yè)相機(jī),任何接口的工業(yè)相機(jī)都將得到相同的結(jié)果。
因此,在購(gòu)買工業(yè)相機(jī)時(shí),必須詳細(xì)檢查其參數(shù),并選擇項(xiàng)目的實(shí)際要求,以避免發(fā)生掉幀事件。