跳至內容
測試伺服器
開發伺服器

設定相機參數#

本主題提供部分最常用 Property 的說明。

Exposure Time#

The exposure time 定義了相機感光元件針對每張畫格感光的時間長度。它是影像擷取中最重要的 Property 之一,因為它會直接影響影像亮度、動態模糊和訊號 Quality。

Exposure Time 的影響#

在感光期間,感光元件會收集光子並將其轉換為電氣訊號。Exposure Time 越長,累積的光線就越多。此視覺化圖表總結了這一點:

Short exposure → less light → darker image
Long exposure  → more light → brighter image

Exposure Time 的長度具有下列影響:

  • 亮度
    • 較長的曝光會增加亮度。
    • 較短的曝光會降低亮度。
  • 動態模糊
    • 長時間曝光會導致移動中的物件顯得模糊。
    • 短時間曝光會導致移動中的物件顯得靜止。
  • 影像雜訊
    • 極短的曝光可能會導致影像產生雜訊(訊號較低)。
    • 較長的曝光可改善訊號 Quality,但可能會引入動態模糊。

根據您的應用,您必須在指定 Exposure Time 時決定要優先考量哪種效果。下表可作為指引。

目標 建議曝光
凍結快速移動 短曝光
最大化亮度 長曝光
穩定量測 平衡曝光

設定範例#

camera.ExposureAuto.Value = "Off"
camera.ExposureTime.Value = 3000  # Value, usually in microseconds
  • ExposureAuto = Off 確保手動控制。
  • ExposureTime 指定於 微秒 (µs).

重點整理#

選擇 Exposure Time 時必須考量以下因素:

  • 場景亮度
  • 運動速度
  • 影格率需求

指定正確的 Exposure Time 是建構可靠視覺系統的基本步驟。

camera.ExposureAuto.Value = "Off"
camera.ExposureTime.Value = 3000  # Value is in microseconds. Check ValueRange for valid values.
#alternatively:
camera.ExposureTimeAbs.SetValue(3000, pylon.FloatValueCorrection_ClipToRange)

Gain#

gain 控制感光元件訊號在曝光後的電子放大。與 Exposure Time 不同,gain 不會增加所擷取的進光量,而是放大既有的訊號。此視覺化圖表總結了這一點:

Low gain  → weak amplification → darker but cleaner image
High gain → strong amplification → brighter but noisier image

Gain 的影響#

  • 亮度
    • 增加 gain 會使影像變亮。
    • 不會增加實際的訊號強度,只會放大已經擷取的內容。
  • 影像雜訊
    • 較高的 gain 會同時放大訊號與雜訊。
    • 過高的 gain 會導致影像產生雜訊。
  • 細節 Quality
    • 高 gain 可能會降低對比度和細節可見度。

設定範例#

camera.GainAuto.Value = "Off"
camera.Gain.Value = 5

重點整理#

  • 當無法增加 Exposure Time 時(例如為了避免產生動態模糊),請使用 gain。
  • 當影像 Quality 與訊噪比至關重要時,請避免過高的 gain。

一般原則:儘可能優先選擇較長的 Exposure Time,而非較高的 gain。

ROI#

region of interest (ROI) 定義了每個影格實際讀取並傳輸的感光元件區域。依預設,ROI 的大小與感光元件相同(全解析度)。透過變更其寬度和高度,您可以只聚焦於場景中相關的部分。此視覺化圖表總結了這一點:

Full sensor → large image → more data
Part of the sensor → cropped image → less data

如果您縮減 ROI,指定區域之外的任何像素將不會被讀取或傳輸。

您可以使用以下工具調整 ROI: Width, Height, OffsetX 和 OffsetY 參數的狀態。 Width + OffsetX 受限於 MaxWidth 和 Height + OffsetY 受限於 MaxHeight.

資訊

  • ROI 尺寸受到硬體限制(增量、對齊)。
  • 最大 ROI 等於完整的感光元件解析度。
  • 若要變更 ROI,必須先停止影像擷取。

ROI 變更的影響#

  • 提高影格率:每張影格的資料量越少,意味著讀取速度更快、影格率 (fps) 更高。
  • 降低頻寬:這對於 GigE 相機而言尤其重要。
  • 降低處理負載:較小的影像有助於加快影像處理 (OpenCV/AI) 的速度。
  • 聚焦於相關區域:允許您忽略場景中不相關的部分。

下表可作為參考,說明較小的 ROI 如何為您的應用帶來效益。

Use Case 較小 ROI 的效益
追蹤小型物件 更快的處理速度與更低的雜訊
高速檢測 提高幀率
區域內的邊緣偵測 減少運算量

設定範例#

camera.StopGrabbing()

camera.Width.Value = 640
camera.Height.Value = 480

camera.StartGrabbing()

重點整理#

縮小 ROI 是機器視覺系統中最有效的效能優化工具之一。透過在資料來源端減少資料量,您可以改善以下幾個方面:

  • 產能
  • 延遲
  • 系統擴充性

與軟體影像裁切不同,縮小 ROI 會在資料進入管線之前就消除不必要的資料。

Static Defect Pixel Correction#

透過 Defect Pixel Correction,您可以將感測器個別像素靈敏度差異所產生的影響降到最低。並非所有相機都支援此功能。因此,針對目前裝置可能不支援此功能的情況預作準備是非常重要的。

資訊

  • 使用 pylon.StaticDefectPixelCorrection 並使用 camera.NodeMap.
  • 使用 ListType_Factory 以讀取出廠提供的壞點。
  • 使用 ListType_User 以讀取/更新使用者專屬的壞點。
  • 攔截 pylon.RuntimeException 和 pylon.InvalidArgumentException 針對不支援的型號。

設定範例#

from pypylon import pylon

with pylon.InstantCamera(pylon.FirstFound) as camera:
    # Read the factory defect pixel list.
    factory_ok, factory_pixels = pylon.StaticDefectPixelCorrection.GetDefectPixelList(
        camera.NodeMap,
        [],
        pylon.StaticDefectPixelCorrection.ListType_Factory,
    )

    # Build/update the user list as (x, y) or (x, y, type) tuples.
    user_pixels = [(100, 200), (300, 400, 0)]

    try:
        normalize_ok, normalized_pixels = pylon.StaticDefectPixelCorrection.NormalizePixelList(
            camera.NodeMap,
            user_pixels,
        )

        set_ok, written_pixels = pylon.StaticDefectPixelCorrection.SetDefectPixelList(
            camera.NodeMap,
            normalized_pixels,
            pylon.StaticDefectPixelCorrection.ListType_User,
        )

        get_ok, read_back_pixels = pylon.StaticDefectPixelCorrection.GetDefectPixelList(
            camera.NodeMap,
            [],
            pylon.StaticDefectPixelCorrection.ListType_User,
        )
    except (pylon.RuntimeException, pylon.InvalidArgumentException):
        # Camera does not provide this feature.
        pass

重點整理#

將靜態壞點校正視為裝置相依功能:有支援時即可使用,若不支援則採取相容的降級處理。