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