機(jī)器視覺系統(tǒng)中工業(yè)相機(jī)的丟幀現(xiàn)象淺談
普通觀點(diǎn)認(rèn)為網(wǎng)口工業(yè)相比USB接口相機(jī)更穩(wěn)定更不容易丟幀,其它這是市場(chǎng)上低品質(zhì)的USB相機(jī)給大家留下的不好印象。一般而言,工業(yè)相機(jī)丟幀與工業(yè)相機(jī)所采用的傳輸接口是沒有關(guān)系的,無(wú)論是USB,還是1394、GigE、或者是cameralink,設(shè)計(jì)不良的驅(qū)動(dòng)程序或工業(yè)相機(jī)硬件才是造成丟幀的真正原因。設(shè)計(jì)不良的工業(yè)相機(jī)之所以會(huì)發(fā)生丟幀的現(xiàn)象,其實(shí)就是資料通道的堵塞,無(wú)法及時(shí)處理,所以新的圖像進(jìn)來(lái)時(shí),前一張可能被迫丟棄,或是新的圖像被迫丟棄。要解決這問(wèn)題,需要設(shè)計(jì)者針對(duì)驅(qū)動(dòng)程序與工業(yè)相機(jī)硬件資料傳輸?shù)拿總€(gè)環(huán)節(jié)進(jìn)行精密的設(shè)計(jì)。
圖像資料堵塞的地方有三個(gè):
1、工業(yè)相機(jī)的部分
圖像傳感器傳送圖像到相機(jī)上的傳輸芯片,傳輸芯片再傳送給PC端,如果PC端系統(tǒng)太忙碌,來(lái)不及處理接收的圖像,而圖像傳感器又持續(xù)傳送新的圖像資料,這時(shí)工業(yè)相機(jī)就要有足夠的記憶體緩存,反之就會(huì)產(chǎn)生丟幀現(xiàn)象。
2、視覺軟件程序部分
視覺軟件對(duì)于等待計(jì)算的圖像空間,有無(wú)緩沖的機(jī)制,以加大圖像的緩存爭(zhēng)取緩沖的時(shí)間,讓程序的運(yùn)算來(lái)得及處理,但若穩(wěn)定的運(yùn)作情況下,CPU的整體處理速度比圖像進(jìn)來(lái)的速度慢,那緩存總有超載的時(shí)刻,就會(huì)有丟幀的情況發(fā)生。
3、硬件PC系統(tǒng)部分
這部分偏重PC硬件驅(qū)動(dòng)程序,跟視覺軟件程序無(wú)關(guān),PC端的接收最關(guān)鍵就是驅(qū)動(dòng)程序的效率,以及WINDOWS有多少內(nèi)核模式下的線程在瓜分CPU的時(shí)間,接收的效率不好,工業(yè)相機(jī)又沒有足夠的緩沖記憶體,就會(huì)造成丟幀的現(xiàn)象。
工業(yè)相機(jī)的幀速非???,實(shí)際上工業(yè)相機(jī)的緩存不會(huì)像PC的程序可以無(wú)限制的加大,只要有足夠的容量用以調(diào)節(jié)系統(tǒng)“暫時(shí)”的繁忙就夠了。工業(yè)相機(jī)會(huì)丟幀,大部分只有一種情況就是機(jī)器視覺軟件運(yùn)算的速度比工業(yè)相機(jī)圖像進(jìn)來(lái)的速度還慢,時(shí)間長(zhǎng)了軟件緩存堆滿了,無(wú)法再存放新圖像但這是系統(tǒng)掉資料,不是工業(yè)相機(jī)掉資料。在這種狀況不論使用1394接口的工業(yè)相機(jī),還是USB接口,又或者是GigE接口,任何接口的工業(yè)相機(jī)都會(huì)得到相同結(jié)果。