카메라 검색 및 선택#
애플리케이션이 카메라를 사용하기 전에, 먼저 사용 가능한 카메라가 무엇인지 파악해야 합니다. 이 과정을 ‘열거’라고 합니다.
카메라 열거#
소비자용 카메라(예: 웹캠)와 달리, 산업용 카메라는 특정 용도에 자동으로 국한되지 않습니다. 오히려 다음과 같은 특징이 있습니다:
- 여러 대의 카메라를 동시에 연결할 수 있습니다.
- 카메라는 USB, GigE 등 다양한 전송 계층을 통해 연결될 수 있습니다.
- 카메라는 핫플러깅이나 네트워크 변경 등으로 인해 동적으로 나타나거나 사라질 수 있습니다.
열거를 통해 애플리케이션은 다음과 같은 기능을 구현할 수 있습니다:
- 현재 사용 가능한 모든 카메라를 감지합니다.
- 이를 확실하게 식별하십시오.
- 작업에 적합한 카메라를 선택하세요.
예제#
전송 계층 팩토리는 Pylon 생태계로의 진입점입니다. 이 팩토리는 다음과 같은 작업을 담당합니다:
- 카메라를 알아보기.
- 장치 인스턴스 생성.
- USB, GigE 등과 같은 기본 전송 계층을 추상화합니다.
이것을 장치 관리자로 생각하면 됩니다.
이 함수는 장치 설명자 목록을 반환합니다. 각 항목에는 다음과 같이 감지된 카메라에 대한 메타데이터가 포함됩니다:
- 모델명
- 일련번호 (고유 식별자)
- 인터페이스 유형 (USB, GigE 등)
for device_info in device_info_list:
print(device_info.GetFriendlyName())
print(device_info.GetSerialNumber())
멘탈 모델#
System Startup
↓
Transport Layers Scan for Devices
↓
Detected Camera List (Enumeration)
↓
Application selects a camera
카메라 선택하기#
일련번호를 입력하거나 색인을 통해 카메라를 선택할 수 있습니다.
일련번호 (권장)#
이것이 카메라를 선택하는 데 권장되는 방법입니다.
serial_number = "123456"
for device_info in device_info_list:
if device_info.GetSerialNumber() == serial_number:
camera = pylon.InstantCamera(factory.CreateDevice(device_info))
Index#
정보
연결된 카메라의 수에 따라 순서가 달라질 수 있으므로, 이 인덱스를 사용하는 것은 권장하지 않습니다.
사용 사례#
단일 카메라 시스템#
설정하려는 속성을 식별하려면 pylon.InstantCamera(pylon.FirstFound).
주요 특징:
- 간단한 설정을 테스트하기에는 충분합니다.
- 카메라가 하나뿐인 사용 사례의 경우, 필요한 속성을 사전(dictionary) 형태로 전달하여 Pylon이 카메라를 자동으로 찾아내도록 할 수 있습니다.
- 다중 카메라 사용 환경에서는 권장하지 않습니다.
멀티 카메라 시스템#
Basler는 먼저 장치를 열거할 것을 권장합니다. 그 후, 일련번호와 같은 고유 식별자를 통해 원하는 카메라를 선택하면, 여러 장치를 반복해서 열거해야 하는 부하를 피할 수 있습니다.
- 모든 카메라를 나열하십시오.
- 일련번호나 사용자 지정 이름으로 카메라를 매핑합니다.
생산 시스템#
- 카메라 식별자를 구성 파일에 저장합니다.
- 시작 시 존재 여부를 확인합니다.
- 예상된 카메라가 없는 경우 즉시 실패 처리합니다.
주요 핵심 사항#
열거는 다음과 같은 이점을 제공하므로 애플리케이션에 필수적입니다:
- 하드웨어 변경에 대한 내성이 강함
- 연결 순서와 무관하게
- 여러 대의 카메라로 확장 가능
적절한 열거가 이루어지지 않으면 시스템은 취약해지고 유지 관리가 어려워집니다.