배너
닫기

산업동향

배너

글로벌 머신비전 인터페이스 표준 (3)

  • 등록 2017.08.11 14:19:49
URL복사

디지털 소프트웨어 표준 소개


각 머신비전 관련 협회는 글로벌 비전 및 이미징 산업의 성장을 활발히 하도록 한다. 표준 개발은 산업의 핵심 성공 요인이고, 각 협회는 표준을 위한 기금 모금, 유지 관리, 홍보 등을 돕고 있다. 2009년 3대 비전 관련 선도 협회인미국영상협회(AIA), 유럽머신비전협회(EMVA), 일본산업영상협회(JIIA)는 전세계적으로 적용된 비전 표준의 개발을 조정하는 협력 사업을 시작했다. 이 출판물은 협력의 결과물 중 하나다.



소프트웨어 표준은 머신비전 시스템 구성 요소의 상호 운용성을 보장하는 하드웨어 표준만큼 중요하다. 소프트웨어 측의 인터페이스는 전송 계층(TL: transport layer)과 소프트웨어 개발 키트(SDK: software development kit)의 일부로 제공되는 라이브러리로 구성된다. SDK는 독립 제품일 수 있고, 프레임 그래버 또는 이미지 프로세싱 라이브러리의 일부분으로 제공될 수 있다.


전송 계층은 표준화되거나 고유한 전송 계층 프로그래밍 인터페이스를 가질 수 있고, 카메라와 호스트 사이의 데이터 이동만 다룬다. 낮은 수준의 카메라 레지스터에 대응하고 기능을 표준화하는 것이 SDK 라이브러리의 작업이다. 이를 위해 사용되는 2개의 주요 방법은 GenICam 및 IIDC2이다.


이 방법들은 GenICam 또는 표준 텍스트로 기능 목록을 설명하는 차이가 있지만, 고유하게 레지스터 대응을 구현한다. 카메라 레지스터로 카메라 기능을 대응하는 방법에 관한 정보는 표준화된 형식으로 카메라에 내려받게 된다. SDK 라이브러리는 해당 파일을 해석하고 그에 따른 대응을 수행한다.


IIDC2는 표준 텍스트로 레지스터의 고정 설정을 설명하고 카메라 기능과 구현 세부 정보를 정의한다. 이 표준 유형의 경우 SDK 라이브러리는 일반적으로 레지스터에 카메라 기능의 하드 코드 대응이 포함되어 있다.


하드웨어 인터페이스 표준은 카메라가 어떠한 드라이버 또는 프레임 그래버에 연결될 수 있도록 보장한다. 소프트웨어 표준 프로그래밍 인터페이스는 다른 비전 라이브러리에서 또는 개발자가 직접 드라이버를 사용할 수 있다. 표준 기반의 SDK를 사용하는 경우 소프트웨어를 상당히 변경하지 않고도 개발자는 카메라, 드라이버, 전체 인터페이스 기술을 변경할 수 있다.


GEN <i> CAM


GenICam (Generic Interface for Cameras) 표준은 어떠한 하드웨어 인터페이스 기술을 사용하고 있는지 어떠한 기능이 구현되고 있는지에 상관없이 모든 종류의 카메라에 일반적인 프로그래밍 인터페이스를 제공한다.


GenICam의 목적은 산업 전반에 걸쳐 같이 사용할 수 있는 API(application programming interface)를 갖는 것이다.GenICam 표준은 여러 모듈로 구성돼 있다.


• GenTL: (Generic Transport Layer) 전송 계층 프로그래밍 인터페이스를 표준화한다. 이 파일은 카메라 열거, 카메라 레지스터 접속, 데이터 스트리밍, 비동기 이벤트 전송 등을 담당한다. GenTL은 굉장히 낮은 수준의 인터페이스이기 때문에 최종 사용자는 일반적으로 GenTL을 직접 사용하는 대신 SDK에 의존한다. GenTL의 주요 목적은 다양한 공급 업체의 드라이버 및 SDK가 함께 원활하게 동작하는 것을 보장하는 것이다.


• GenApi: (Generic Application Programming Interface) 카메라 자체 설명 파일 형식을 표준화한다. 이 파일은 카메라에 의해 구현되는 모든 기능을 나열하고 카메라 레지스터의 대응을 정의한다. 파일 형식은 XML 기반으로 사람이 읽을 수 있다. 일반적으로, 이 파일은 카메라 펌웨어에 저장되고, 카메라가 시스템에 처음 연결될 때 SDK에 의해 검색된다.


• SFNC: (Standard Feature Naming Convention) 카메라 자체 설명 파일에서 카메라 기능의 이름, 유형, 의미, 사용 등을 표준화한다. 이는 다른 제조사의 카메라도 같이 제공되는 기능이 같은 이름을 항상 사용하는 것을 보장한다.


• GenCP: (Generic Control Protocol) 제어 프로토콜의 패킷 배열을 표준화하고 제어 경로 구현의 일부를 다시 사용하는 인터페이스 표준에 의해 사용된다. GenICam 표준 그룹의 구성원은 카메라의 자체 설명을 포함하는 파일을 분석하는 참조 구현을 유지한다. 생산 품질 코드는 C++로 작성되어 무료로 사용할 수 있다. 쉽게 이동할 수 있고 다양한 운영체제 및 컴파일러에서 사용할 수 있다. 사용할 수 있는 대부분의 SDK 구현은 자동차 엔진룸의 엔진과 같이 이 참조 구현을 사용할 수 있어 높은 등급의 상호 운용성을 보장한다.


▲ 그림 1. GEN <i> CAM 개념도


IIDC 2


FireWire 카메라를 위한 IIDC의 후계자인 IIDC2 표준은 유연한 고정 카메라 제어 레지스터 배열을 정의한다. 노출 시간과 같은 각 기능을 사용하는 방법을 정의하는 모든 세부 정보가 레지스터 공간에 대응되어 카메라를 제어하는 가장 간단한 방법을 나타낸다.


IIDC2의 목표:

• 쉬운 구현 및 사용

• 카메라 제어 레지스터 접속 가능

• 제조사 특정 기능 확장 가능

• 모든 카메라를 위한 공통 제어 방법

• IEEE1394 뿐만 아니라 USB3 Vision, CoaXPress, 향후 인터페이스 모두에서 사용

• GenICam 인터페이스로 매칭 가능


이 표준은 카메라 내부에 직접 레지스터를 쓰고 읽어 카메라를 제어할 수 있는 쉬운 방법을 제공한다. 카메라 기능에 관한 모든 정보는 카메라 제어 레지스터다. 사용자가 레지스터를 판독함으로써 지원되는 기능을 결정할 수 있다.


▲ 그림 2. IIDC 2 개념도


레지스터 대응은 반고정 방법으로 동작하고, 이는 접근성을 위한 고정 대응 및 확장성을 위한 자유 대응을 의미한다. 카메라 기능은 기본 기능(고정 레지스터 배열과 행동)과 확장 기능으로 분류된다. 기능은 제조업체가 자유롭게 추가할 수 있다. 기능의 레지스터 배열은 사양의 목록에서 선택할 수 있고 이 동작은 제조업체마다 다르다. 


GenICam으로 IIDC2 레지스터를 사용하는 경우, IIDC2 레지스터 배열이 사양에 정의되어 있지 않으므로 카메라 설명 파일은 모든 카메라와 공통일 수 있다. 


▲ 표 1. 소프트웨어 디지털 인터페이스 표준 비교


EMVA, AIA, JIIA, 정리=김진희 기자



















주요파트너/추천기업