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