콘텐츠로 바로 가기
STAGING SERVER
DEVELOPMENT SERVER

방법: Sequencer 모드와 PyPylon을 사용하여 Basler 카메라로 HDR 이미징 구현하기#

이 문서는 Sequencer Mode 및 PyPylon SDK를 사용하는 Basler 카메라로 HDR (High Dynamic Range) 이미지를 획득하고 처리하는 방법을 설명합니다. 카메라 측 설정과 OpenCV를 사용한 호스트 측 이미지 융합 및 톤 매핑을 모두 다룹니다.

이 도큐먼트는 ace 2 및 boost R 카메라를 기준으로 작성되었으나, 시퀀서 기능을 지원하는 다른 Basler 카메라에도 동일한 원리가 적용됩니다. 특정 카메라 모델에 맞게 코드를 적절히 수정하여 사용하십시오.

목적#

목표는 카메라의 내장 시퀀서를 사용하여 노출 시간이 다른 일련의 이미지를 캡처한 다음, 이를 병합하여 암부와 명부의 디테일이 향상된 단일 HDR 이미지를 생성하는 것입니다. 결과물은 디스플레이나 추가 처리에 적합한 톤 매핑된 이미지입니다.

하드웨어 및 소프트웨어 요구 사항#

하드웨어#

  • Basler 영역 스캔 카메라(Sequencer mode 지원)
  • 안정적인 조명 조건, 깜박이는 조명 없음
  • 안정적인 장면(고정된 카메라 위치 및 대상)

소프트웨어#

  • Python 3.8+
  • PyPylon Python 바인딩
  • OpenCV (cv2)
  • NumPy
pip install pypylon opencv-python numpy

HDR 캡처 워크플로#

Exposure Sequence 설정#

카메라는 마이크로초 단위의 Exposure Time 목록으로 구성됩니다.

exposure_times_us = [50, 500, 5000, 50000]

각 Exposure Time은 별도의 시퀀서 세트에 로드됩니다. 카메라는 각 트리거 후에 이러한 세트를 자동으로 순환하도록 설정됩니다.

주요 단계:

  • SequencerConfigurationMode = On
  • 설정 ExposureTime 및 SequencerSetNext
  • 구성 SequencerTriggerSource = ExposureStart
  • 각 세트를 저장하고 구성 모드 종료

일단 설정되면 카메라는 Burst Mode에서 트리거됩니다:

camera.AcquisitionBurstFrameCount = len(exposure_times_us)
camera.TriggerSource = "Software"
camera.TriggerSelector = "FrameBurstStart"

캡처된 이미지는 노출 시간이 파일 이름에 인코딩된 상태로(img_5000us.tiff) 폴더(예: raw_image/)에 16비트 TIFF 형식으로 저장됩니다.

HDR 이미지 처리#

단계별 프로세스:#

  1. 디스크에서 16비트 TIFF를 로드합니다.
  2. 비트 시프트하여 12비트 값을 추출합니다.
  3. [0,1] 범위의 float32로 정규화합니다.
  4. 삼각형 가중치 함수를 적용합니다.
  5. 휘도 맵을 계산합니다.
  6. Reinhard 연산자로 톤 매핑합니다.
  7. 결과를 PNG로 저장합니다.

예제 이미지#

다음 입력 이미지는 서로 다른 Exposure Time을 사용하여 캡처되었습니다:

Exposure Time Image
50 µs
500 µs
5000 µs
50000 µs

HDR 융합 결과#

최종 톤 매핑된 이미지는 모든 노출의 디테일을 결합합니다:

톤 매핑된 이미지 결과

참고사항 및 권장 사항#

  • 모든 노출에서 카메라 위치와 조명이 고정되도록 하십시오.
  • Sequencer 설정은 카메라 전원이 꺼지거나 재설정될 때까지 유지됩니다.
  • 필요한 경우 OpenCV EXR 지원을 사용하여 진정한 HDR을 저장하십시오(cv2.imwrite("output.exr", hdr_image)).
  • 컬러 카메라의 경우 추가적인 디모자이킹 및 화이트 밸런싱 단계가 필요합니다.

문제 해결#

문제 원인 해결 방법
GrabTimeout 노출 시간이 너무 길거나 FPS가 너무 낮음 타임아웃 늘리기
HDR 효과 없음 노출 범위가 너무 좁습니다. 더 다양한 시간을 사용하십시오.
파일 읽기 오류 TIFF가 기록되지 않았거나 경로가 잘못되었습니다. 권한 및 폴더를 확인하십시오.

참조#

기술 자료로 돌아가기