동기화 및 실시간 촬영, GigE 네트워크에서의 여러 대의 카메라 조작

Basler

 

다양한 애플리케이션에서 여러 대의 카메라에서 이미지를 동시에 촬영해야 하는 경우가 많다. 이런 애플리케이션의 범위는 3D 삼각 측량 작업부터 스포츠 및 운동 분석, 그리고 컨베이어 벨트 모니터링 애플리케이션에 이르기까지 다양하다. 예를 들어 축구 경기에서 골이 들어가는 것을 촬영할 때 이미지는 지연 시간 없이 정확한 시간, 다시 말해 실시간으로 촬영되어야 한다. 그 밖의 실시간 애플리케이션으로는 기계 공학 및 품질 보증 시스템을 위한 AOI(Automatic Optical Inspection) 작업이 있다.


본문에서는 멀티 카메라 애플리케이션이 동기식 이미지 촬영을 위해 GigE Vision 2.0 표준의 고유한 기능을 어떻게 활용하는지 설명한다. 이 표준은 Precision Time Protocol(PTP, IEEE1588)을 토대로 하고 있다. PTP는 컴퓨터 네트워크 상에 존재하는 여러 대의 장치 간 정밀시간 동기화를 달성하기 위한 네트워크 프로토콜이다.

 

1. 이미지 촬영을 위한 요구 사항


동기화 또는 실시간 작동을 위해서는 카메라 전용 I /O 포트의 디지털 신호를 통해 이미지 촬영이 실행된다. 이러한 설정에서 각각의 카메라는 적절한 플러그가 장착된 추가 케이블로 연결해야 한다. 이것은 설치를 복잡하게 할 뿐 아니라 비용도 증가하며 특히, 드래그체인 애플리케이션에 사용되는 것과 같은 고품질 케이블이 필요하다.


현재의 GigE Vision 2.0 표준은 추가 배선 없이 카메라를 실시간으로 동기화해 조작하기 위한 간단한 대안을 제공한다. 이러한 발전에서 한 발 더 나아가 많은 애플리케이션들에서 추가 하드웨어(트리거 박스) 필요성이 제거되었다. 이 시나리오에서 카메라는 동기화 조작을 위한 것을 포함해 소프트웨어를 통해 작동된다. GigE Vision 2.0의 핵심 구성 요소는 다음과 같다.


- PTP(Precision Time Protocol = IEEE 1588)를 통한 전체의 모든 네트워크 구성 요소를 공유하는 초정밀 타임 소스


- 카메라를 위한 동기식 프리 런(Free Run)


- Action Command 또는 Scheduled Action Command 를 통한Trigger-over-Ethernet

 

다음은 이들 기능 및 샘플 애플리케이션의 정밀한 정의를 제공한다.

 

2. 네트워크 기반 시간 동기화: Precision Time Protocol(PTP, IEEE1588)


PTP(Precision Time Protocol)는 네트워크 구성 요소(예: GigE Vision 카메라)가 이더넷 네트워크에 연결되어 있는 동안 완벽히 동기화된 시스템 시간과 어떻게 연동되는지 정의한다.

 


주어진 네트워크 구성 요소의 PTP 지원 구현 레벨이 하드웨어 레벨인지 소프트웨어 레벨인지에 따라 PTP는 수 마이크로초부터 나노초에 이르기까지의 정밀도를 제공한다. PTP 구현 목록은 http://en.wikipedia.org/wiki/List_of_PTP_implementations에서 찾을 수 있다.

 

3. PTP(Precision Time Protocol) 요구 사항 및 PTP의 작동 방식


네트워크 영역에서 PTP가 작동하려면 카메라를 포함한 PTP 지원 장치가 필요하다. 최적화된 실시간 처리를 위해서는 스위치의 PTP 호환성도 필요하다. PC에 PTP 지원 네트워크 카드가 장착되어 있어야 하며 PTP 서비스를 제공하는 소프트웨어 솔루션이 한개 이상 실행 중이어야 한다. 여기에서 소프트웨어 솔루션의 정밀도는 PTP 호환 네트워크 카드와 같은 하드웨어 솔루션에 비해 낮다는 점을 인식해야 한다.


이러한 조건이 일단 충족되고 나면 수집된 PTP 호환 구성 요소들은 먼저 어떤 요소가 가장 정밀한 클럭을 갖고 있는지 결정한다. 그런 뒤 다른 구성 요소들 모두가 정확히 동일한 시스템 시간에 동작될 때까지 해당 타임 마크를 충족시키도록 동기화된다. 아래에서 자세한 내용을 찾을 수 있다.

 

4. 정밀 지원 카메라


ace GigE 카메라 시리즈의 제품과 같은 현재의 Basler GigE Vision 카메라는 하드웨어 레벨에서 PTP 서비스를 구현한다. 결과적으로 카메라는 나노초 단위에서 측정된 시스템 시간 동기화를 달성한다.


이러한 수준의 정밀도로 인한 주요 장점은 카메라 이미지에 메타 정보로 극히 정확한 타임스탬프가 추가된다는 점이다. 카메라 이벤트에는 애플리케이션의 실시간 평가를 위해 초정밀 타임스탬프를 주석으로 달 수 있다. 예를 들어 차량 속도 위반이 감지되면 여러 대의 카메라로 다양한 시각에서 위반 사항을 기록하는 것이 중요한다. 정밀 타임스탬프는 여러 장치에서 촬영한 개별 이미지를 간편하게 조합할 수 있게 해 준다.

 

PTP 작동 방식


PTP는 마스터 및 슬레이브의 두 가지 클럭과 함께 동작한다. 단말 기기의 클럭 한 개는 ordinary clock과 관련되며 이더넷 스위치의 전송 구성 요소 클럭은 boundary clock으로 지정된다. 마스터 한 개는 무선 신호 또는 GPS 수신기에 의해 이상적으로 제어되며, 이에 연결된 모든 슬레이브를 동기화한다. 동기화 프로세스는 두 단계로 동작한다. 첫 번째 프로세스는 마스터와 슬레이브 간 시차 보정이며 오프셋 보정이다.

 


마스터는 연결된 슬레이브 클럭에 타임스탬프로서 최상의 추정 시간이 포함된 사이클 동기화 메시지(SYNC)를 전달한다. 이와 동시에 시스템은 가장 큰 레벨의 정밀도로 메시지가 전달되는 시간도 측정한다. 그런 다음 마스터는 실제로 해당 동기화 메시지를 위한 정확한 전송 시간에 관한 정보가 포함된 두 번째 후속 메시지를 슬레이브 클럭에 전달한다. 다음으로 슬레이브는 첫 번째 메시지와 후속 시지의 수신 간격을 정밀하게 측정하고 이 결과를 이용해 마스터에서의 보정 ‘오프셋’을 정의한다. 그런 다음 슬레이브 클럭은 오프셋에 맞게 클럭을 조절한다.

 

 

지연 시간 측정으로 알려져 있는 동기화의 두 번째 단계에서는 슬레이브와 마스터간 전달 시간이 결정된다. 첫 번째 단계와 비슷한 방법을 이용해 지연 요청과 지연 응답 메시지가 슬레이브에 전송된다. 결과를 계산한 뒤 이를 사용해 클럭을 조정한다.

 

PTP 타임스탬프


PTP 타임스탬프는 80비트 레이블이다. GigE Vision 카메라에 사용되는 타임스탬프(예: 이미지 청크의 타임스탬프)는 길이가 64비트에 지나지 않다. GigE Vision 2.0 표준은 80비트 PTP값이 64비트 값으로 변환되는 것으로 추정한다. 이론적으로는 그리 강력한 솔루션이 아닌 것처럼 보이지만 실질적인 단점은 없다. 64비트 타임스탬프는 동일한 나노초 수준의 정밀도를 제공하지만 2262년 11월 4일 화요일 GMT 기준 오후 11시 47분 16초까지 계산에 제한이 없다.


PTP(Precision Time Protocol)는 다음에 알아보게 될 동기식 프리 런(Free Run) 및 Scheduled Action Command를 위한 필수 조건이다.

 

5. 동기식 프리 런(Free Run): 카메라 동기식 프리 런


PTP 덕분에 모든 카메라가 같은 시스템 시간으로 동작해 프리 런(모든 연결된 카메라에 대해 개별 카메라의 이미지 촬영이 같은 시간에 실행됨)이 가능하다. 현실적으로 일부 애플리케이션에서는 여러 대의 카메라에서 다양한 각도로 이미지를 동시 녹화해야 한다. 360° 뷰의 장면을 만드는 데 필요한 경우이다. 개별 이미지를 나중에 타임 라인에 맞춰 조합해야 하긴 하지만 동기식 이미지 캡처는 이를 위해 아주 중요하다. 위에서 설명한 공유 타임스탬프가 이것을 가능케 한다.

 

6. Action Command 지원 Trigger-over-Ethernet


소프트웨어 명령을 통한 동기식 이미지 촬영


최신 Basler GigE Vision 카메라는 Action Command로 수신하고 반응할 수 있다. Action Command는 브로드캐스트 모드에서 네트워크 클라이언트가 네트워크 상의 모든 수신자에게 전송할 수 있는 이더넷 패킷이다.

 


Action Command 기능의 세 가지 핵심 변수

 

장치 키:장치 키는 Action Command의 ‘암호’ 역할을 한다. 각각의 카메라에는 사전에 자유롭게 선택할 수 있는 32비트 값인 장치 키가 부여된다. 장치 키는 쓰기 전용이며 카메라에서 간단히 읽을 수 없다. 키가 포함되어 있는 Action Command만이 이벤트를 실행할 수 있다.

 

그룹 키:Action Command의 실제 ID 역할을 하는 자유롭게 선택할 수 있는 32비트 값이다. 각각의 관련 카메라는 그룹 키가 프로토콜 메시지 및 카메라용 그룹 키와 모두 일치할 때만 작업을 실행한다.

 

그룹 마스크:연결된 카메라들은 항상 장치 키 및 그룹 키와 함께 Action Command에 의해 주소가 지정된다. 그룹 마스크는 실제로 명령을 실행할 카메라 서브셋을 지정하는 데 사용되는 32비트 마스크이다.


Action Command의 가장 중요한 사례는 Trigger-over-Ethernet 옵션이다. 과거에는 여러 대의 GigE 카메라에서 동시에 작업을 실행하려면 카메라의 디지털 포트를 통해 개별 카메라에서 트리거 발생기로 유선으로 연결해야 했다. Ac tionCommand는 단일 브로드캐스트 이더넷 패킷을 통해 여러 대의 동기화된 카메라에서 작업을 실행할 수 있게 한다. 관련된 Action Command는 원래 PTP 기능을 필요로 하지 않다. Basler pylon 카메라 소프트웨어 제품군과 같은 소프트웨어 레벨에서 해당 명령을 간단하고 쉽게 실행할 수 있다.

 

 

7. Action Command용 샘플 애플리케이션: 달리고 있는 말 촬영하기


Action Command 기능의 애플리케이션 샘플 중 한 가지로 달리는 말의 비디오 분석을 예로 들 수 있다. 트랙 길이 방향으로 여러 대의 카메라가 설치되어 있는 경주로를 상상해 보라. 이 애플리케이션에서는 달리는 말을 촬영하기 위해 인접한 네 대의 카메라가 필요하다. 네 대의 카메라에서 수신된 이미지를 하나의 이미지로 결합해야 하기 때문에 동기식 이미지 촬영이 중요하다.


모든 카메라는 Action Command 수신을 위해 필요한 필수 조건인 동일한 그룹 키로 구성된다(일치하는 장치 키 및 동일한 그룹 키). 이 밖에 Action Command는 그룹 마스크를 포함해 특정 시점에 카메라 전면에 위치한 네 대의 카메라만 실제로 이미지를 촬영한다.

 

 


8. 실시간 호환성의 한계


Basler pylon 카메라 소프트웨어 제품군과 같은 소프트웨어 프로그램으로도 카메라를 자연스럽게 조작할 수 있다. 일반 소프트웨어 트리거와 Action Command 사이의 차이점은 유니캐스트(Unicast) 기반 소프트웨어 트리거는 카메라 한 대로만 전달된다는 점이다. 소프트웨어 트리거는 여러 대의 카메라에 한 번에 동기식 트리거를 방출할 수 없다.


적절히 구성된 카메라들 간에 완벽히 동기화된 상태로 이미지를 촬영할 수는 있지만 소프트웨어 기반 명령 실행과 이미지 촬영 시작 사이의 상호 작용은 실시간으로 이루어지지 않다. 카메라를 위한 소프트웨어와 네트워크 연결 사이의 운영 체제 및 하드웨어(PC 및 스위치) 개별 계층은 타이밍에 영향을 주는 다양하고 예측할 수 없는 요소들의 영향을 받다. 결과적으로 소프트웨어 명령과 이미지 촬영 시작 사이의 지연 시간이 마이크로초 단위에서 이미지 간에 변동된다(지터라 부름).


Action Command의 소프트웨어 트리거에 대한 대안:


Action Command를 전송하는 특수한 GigE 네트워크 어댑터(예: National Instruments 제품). 이것은 대개 카드의 디지털 입력에서 생성되는 특수 신호를 통해 처리된다. 이 장치는 위에서 언급한 지터 발생을 막아 주며 시스템은 실시간으로 반응한다.

 

 


9. 사전 경고를 통한 정밀도: Scheduled Action Command


소프트웨어를 통해 전달된 Action Command는 ace 카메라에 Action Command를 수행할 시스템 시간을 지정하는 특수한 PTP 타임스탬프를 추가한다. 이런 식으로 전달된 Action Command를 Scheduled Action Command라 한다. 순수한 소프트웨어 솔루션에서 실시간 동작을 다시 수행하도록 하는 데 도움이 된다.


예를 들어, 소프트웨어의 명령 전송과 이미지 촬영 시작 사이에 최대 지연 시간 합계가 200ms 미만일 경우 이 최대 지연 시간에 대해 모든 경우에 보상하기 위해 Scheduled Action Command에서 PTP 타임스탬프를 선택할 수 있다.

 

10. Scheduled Action Command용 샘플


애플리케이션: 반도체 검사


컨베이어 벨트에서 일정한 속도로 반도체가 이동된다. 해당 반도체는 검사용으로 설치한 네 대의 카메라 아래를 통과한다. 이들 카메라는 서로 바로 인접해 있으며 컨베이어 벨트와 수직이다. 각각의 카메라는 반도체가 카메라 위치 아래를 통과하는 동일한 순간에 반도체 이미지를 촬영해야 한다. 개별 카메라에서 촬영한 이미지를 하나의 이미지로 결합해야 하기 때문에 카메라들이 아주 정확히 같은 순간에 이미지를 촬영해야 한다.


이 반도체 검사 사례에서 소프트웨어에 의한 명령 전달과 카메라에 의한 동시 이미지 촬영 시작 사이의 지연 시간이 150ms를 초과하지 않는다고 가정해 보겠다. 컨베이어 벨트의 속도는 알고 있고 PTP호환 컨베이어 벨트는 PC 및 카메라와 동일한 시스템 시간으로 작동하고 있기 때문에 컨베이어 벨트의 제어 유닛은 PC 소프트웨어에 다음 이미지를 촬영할 순간을 알려줄 수 있다.


PC는 해당되는 Scheduled Action Command를 필요한 이미지 촬영 시간 150ms 전에 전송한다. 이미지는 완벽히 동기화된 상태로 수 마이크로초 이내에 촬영된다.

 

11. 요약


GigE Vision 2.0은 Precision Time Protocol(PTP, IEEE 1588)을 토대로 한 새로운 카메라 기능을 이용할 수 있게 해 준다. 네트워크의 모든 카메라가 동일하고 정밀한 시간에 동작하도록 동기화될 수 있어 촬영한 이미지에 아주 정밀한 타임스탬프를 추가할 수 있다.


동일한 시스템 시간 사용은 프리 러닝 카메라(free running cameras)에서 완벽히 동기화된 상태로 이미지 촬영을 수행할 수 있게 해준다. 엄격히 말해 PTP가 필요하지 않은 Action Command는 단일 브로드캐스트 소프트웨어 명령을 통해 카메라가 같은 시간에 사진 촬영을 시작하도록 할 수 있다. 명령 전달과 실제 이미지 촬영 사이의 지연 또는 딜레이는 프로세스를 예측 불가능한 상태로 만들 수 있다.


PTP 타임스탬프가 추가되면 표준 Action Command가 Scheduled Action Command로 변환된다. 타임스탬프는 카메라에 이미지 촬영을 수행할 시간을 알려준다. 단순한 Action Command와 달리 다음 이미지 촬영 이벤트를 위한 시간 명령을 정교하게 내릴 수 있어 소프트웨어에서의 명령 전달과 실제 이미지 촬영 사이의 지연 시간을 보상할 수 있다.

 

 

 

 

자료 제공: Basler(www.baslerweb.com)

 

 

 

 

 

 

주요기사

먼저 비밀번호를 입력하여 주세요.

창닫기확인