一、工業(yè)相機丟包問題
前言
使用環(huán)境:
??????????档墓I(yè)相機相機、??礛VS軟件。
問題描述:
????????通過架設的兩個相機采集圖像,其中一個相機采集圖像數(shù)量少于另一個相機。MVS提示相機丟包。
? ? ? ? 首先可以肯定的一個相機丟包了,另一個不確定。
原因
工業(yè)相機丟包原因是什么?
? ? ? ? 1、可視化軟件問題
? ? ? ? 主要查看圖像空間等待可視化軟件進行計算,是否存在緩沖機制,以增加圖像緩存的緩沖時間,從而可以處理程序的操作。如果圖像在穩(wěn)定操作下比CPU的整體處理速度更快地進入,則當緩存過載時,將發(fā)生幀丟失。
? ? ? ??簡而言之:一次性給予的數(shù)據(jù)太多處理不多來,所以丟包了。如果有緩存機制一定程度上能解決這個問題,但不能徹底解決。
? ? ? ? 2、工業(yè)相機本身問題
????????圖像傳感器首先將圖像傳送到工業(yè)相機的芯片,然后傳送到PC。如果PC系統(tǒng)太忙而不能及時處理接收到的圖像,并且圖像傳感器繼續(xù)傳送新圖像,則工業(yè)相機必須有足夠的存儲器緩存,否則它將導致幀丟失。
? ? ? ? 在PC來不及處理的情況下,相機會把一定數(shù)量的圖像存儲在自身緩存中,也能在一定程度上保留圖像數(shù)據(jù)。
? ? ? ? 3、PC系統(tǒng)硬件原因
????????PC硬件驅動程序有偏差。對于PC機來說,最重要的事情是驅動程序的效率和CPU中內核模式的線程數(shù)。接收效率不高,工業(yè)相機沒有足夠的緩沖存儲器。幀丟失也會發(fā)生。
工業(yè)相機出現(xiàn)掉幀現(xiàn)象的原因是數(shù)據(jù)通道被阻塞,無法進行技術處理。因此,當捕獲新圖像時,可以強制丟棄先前圖像,或者強制丟棄新圖像。為了解決這個問題,設計者需要精確地設計驅動和工業(yè)相機硬件數(shù)據(jù)傳輸?shù)拿總€部分。
工業(yè)相機出現(xiàn)掉幀現(xiàn)象的原因是數(shù)據(jù)通道被阻塞,無法進行技術處理。因此,當收集新圖像時,可以強制丟棄先前的圖像,或者強制丟棄新圖像。一般來說,工業(yè)相機的幀丟失與工業(yè)相機所使用的傳輸接口無關。無論是USB、1394、GigE還是相機鏈接,設計不當?shù)尿寗映绦蚧蚬I(yè)相機硬件都是幀丟失的真正原因。
? ? ? ? 總的來說:當PC因各種原因,對數(shù)據(jù)的處理數(shù)據(jù)慢于接受的數(shù)據(jù),額外的數(shù)據(jù)就可能被丟棄,從而造成丟包。提高驅動效率增加線程數(shù),保持數(shù)據(jù)通道暢通,提高PC的數(shù)據(jù)處理能力才能真正解決丟包問題。
解決方法
????????精確地設計驅動和工業(yè)相機硬件數(shù)據(jù)傳輸?shù)拿總€部分。從上述三方面著手,處理相機丟包問題。
1、增加相機的緩存區(qū)大小
2、增加相機緩存機制
3、加強pc處理能力
雖然上面這么說,但是不知道怎么做
? ? ? ? 但是如果自己寫軟件,可以使用
1、多線程方式。創(chuàng)建多個線程,分別偵聽各個端口上的連接。
2、用poll或epoll方式,異步接收每個端口上的數(shù)據(jù)。
3、創(chuàng)建緩存區(qū),定時讀取緩存內容(加鎖)。
還是不會
現(xiàn)成的相機和軟件的丟包處理方式:
1、推薦使用英特爾芯片的千兆網口
2、PC設置:
? ? ? ? (1)網卡巨型幀為9KB或9014字節(jié)
? ? ? ? ? ? ? ? 控制面板搜索網絡共享中心→屬性→ 巨型幀
? ? ? ? (2)設置網卡接收與緩存區(qū)最大
????????????????控制面板搜索網絡共享中心→屬性→transmit buffers
? ? ? ? (3)關閉網卡休眠節(jié)能選項
? ? ? ? ? ? ? ? 網卡屬性→電源管理→取消?(允許計算機關閉此設備以節(jié)約電源)
3、電源設置
? ? ? ? 高性能
4、防火墻
? ? ? ? 關閉防火墻
6、網線選擇
千兆網口工業(yè)相機需使用超五類及其以上規(guī)格網線(cat5e、cat6…)
萬兆網口工業(yè)相機,根據(jù)接口類型,分為光口與電口線纜,電口需使用7類網線(cat7)
7、相機設置
????????檢查相機Transport Layer Control屬性下GevSCPSPacketSize,GevSCPD參數(shù)數(shù)值
????????(1). 檢查Packet Size(GEV SCPD上方的參數(shù))的數(shù)值是否為8164/1500
? ? ? ? (2). 修改GevSCPD值,視具體情況,調大GevSCPD(400>800>1200…)
????????(3).開啟相機端Pause幀功能,此功能需同步設置網卡端參數(shù)(流量控制>啟用Rx>Tx)
實操如上,好像有用。
參考
參考鏈接:
工業(yè)相機丟幀的原因 - 知乎 (zhihu.com)[相機配置] ??迪鄼C丟包配置環(huán)境_丶布布的博客-CSDN博客_jumbo packet設置文章來源:http://www.zghlxwxcb.cn/news/detail-490802.html
實時攝像頭數(shù)據(jù)傳輸丟包問題_魏波.的博客-CSDN博客_攝像頭丟包怎么解決文章來源地址http://www.zghlxwxcb.cn/news/detail-490802.html
到了這里,關于視覺檢測系統(tǒng)設計過程中遇到的問題的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!