工業相機的幀率
幀率是工業相機擷取並傳輸獨立影像的頻率,以每秒幀數(FPS)表示。當您指定工業相機的幀率時,實際上是在定義一條生產線的速度上限。如果輸送帶每秒有 50 個零件經過鏡頭前方,系統便必須在同一時間範圍內可靠地擷取、傳輸並處理至少 50 張畫面,且不得遺失資料。要追求更高的吞吐量,工程師必須在感測器解析度與介面頻寬、曝光時間等硬性物理限制之間取得平衡。
相機速度的物理原理
幀率並不只是您在軟體滑桿中輸入的目標值,而是受三個連續流程支配的物理約束:曝光、感測器讀出與資料傳輸。
產生單張畫面所需的總時間,主要由曝光時間(影像感測器接受光照的時長)與讀出時間(CMOS 感測器將累積電荷轉換為數位訊號所需的時間)共同決定。如果某項檢測任務光線不足,需要 20 毫秒的曝光才能達到可接受的訊雜比,那麼理論最大幀率就無法超過 50 FPS--無論感測器架構或纜線有多快。
介面頻寬的瓶頸
一旦影像資料離開感測器,就必須傳輸至主機 PC 或嵌入式視覺板。在高解析度的應用中,硬體介面幾乎總是首要瓶頸。
一顆 2,000 萬畫素的感測器每張畫面所產生的資料量極為龐大。如果介面無法以足夠的速度將資料傳輸至纜線另一端,相機就必須降低自身的擷取速率,以避免內部緩衝區溢位。
|
介面標準 |
實用頻寬 |
對幀率的影響 |
|
GigE Vision(1 GigE) |
約 115 MB/s |
會將高解析度相機的幀率限制在較低水準。非常適合長距離佈線。 |
|
USB3 Vision |
約 400 MB/s |
產業中的標準主力。可在中高解析度下支援較高幀率。 |
|
MIPI CSI-2 |
依 lane 數量擴充(例如 4 lane 時約 1.25 GB/s) |
板對板直接連接,繞過一般纜線,在嵌入式系統中達成最大 FPS。 |
如何在不更換硬體的情況下提升幀率
如果您目前的相機已碰到頻寬上限,但生產線必須運行得更快,您主要有兩種以軟體為主、不需要升級硬體即可提升 FPS 的方式:
1. 興趣區域(ROI)
與其讀取整顆感測器,您可以將相機設定為僅讀取特定的像素區段。例如要追蹤畫面中央的一組小條碼時,把 500 萬畫素的感測器裁切到 1000×1000 像素的 ROI,可大幅減少資料量。介面傳輸較小畫面的速度快很多,相機幀率也能因此大幅提升。
2. Binning / Decimation(合併 / 抽樣)
如果您需要保留完整的光學視野,又希望取得更高速度,可以採用 binning(合併鄰近像素)或 decimation(跳過部分像素)的方式。兩者都會降低傳輸畫面的整體解析度,從而減少頻寬需求並提升幀率,但會直接犧牲空間解析度。
幀率 vs. 曝光時間:取捨是什麼?
要提高幀率,您往往必須縮短曝光時間,這是無法迴避的物理取捨。
較短的曝光代表抵達光電二極體的光子更少。如果您將幀率由 60 FPS 提升到 120 FPS,實際上就把最大可用曝光時間減半,亮度也隨之下降,每張畫面所收集的光子總量減少,訊雜比也會變差。要在高幀率下維持清晰、對比明確的畫面,您必須以高強度的工業照明充分照亮檢測區域,或改用同步觸發的閃光燈。
常見問題
丟幀是指相機產生資料的速度超過了主機系統能處理的速度。這通常並非相機本身的故障。常見原因包括介面頻寬被佔滿、網路交換器過載(GigE 設定中),或主機 PC 的 CPU 無法即時處理傳入的影像緩衝。
視影像處理在何處進行而定。如果彩色相機輸出原始 Bayer 資料(通常為 8 bit),其頻寬需求與黑白相機完全相同。但若將相機設定為在板上完成去 Bayer 處理並輸出 RGB24 格式,每個像素的資料量便會增加為三倍,頻寬暴增,最大幀率也會大幅下降。
不一定。USB 3.1 相機或許能穩定擷取並傳輸 200 FPS,但若機器視覺軟體每張影像需要 15 毫秒來執行複雜演算法,在沒有硬體流水線或多執行緒緩衝的情況下,您的有效吞吐量便被限制在約 66 FPS。相機的擷取速率最終必須與系統實際的處理能力相匹配。
詞彙表
- 返回總覽