티스토리 뷰

이전 글을 통해서 이미지 수집에 필요한 카메라의 종류에 대한 설명과 기본적인 카메라 기술에 대해서 설명을 드렸습니다. 이전 글을 확인하고 싶으시면 아래의 링크를 이용해 주시기 바랍니다.



이 글에서는 머신 비전 시스템 구축에 필요한 하드웨어와 소프트웨어를 위한 드라이버 정보에 대해서 알아보도록 하겠습니다. 이 글은 NI 제품군을 기반으로 설명을 드리겠습니다.


이미지 수집 하드웨어


머신 비전 혹은 과학적 이미지 어플리케이션을 위해서 아래와 같은 하드웨어 요소를 고려해야 합니다. 

  • 온보드 메모리
  • PC 메모리로의 빠른 데이터 전송
  • 고급 트리거링
  • 데이터 수집과 모션 제어 하드웨어의 통합
  • 전처리 기능


National Instruments high-speed image acquisition (IMAQ) 장치는 최대 80메가의 온 보드 메모리를 제공합니다. 온 보드 메모리를 이용하게 되면 고속 처리량과 더 높은 전체 시스템 성능을 유지하면서 매우 높은 속도로 이미지를 수집할 수 있습니다. 


NI는 PCI 버스를 통한 데이터 처리량을 최대화하기 위해서 첨단 디지털 기술을 사용합니다. 이 기술을 이용하여 사용자는 고속의 디지털 카메라로부터 데이터의 낮은 지연과 데이터 손실 없이 수집이 가능합니다. 


IMAQ 장비는 병렬 디지털, 아날로그, Camera Link 카메라와 연결을 합니다. 이 장비들은 포토셀 또는 근접 스위치로부터 전달되는 디지털 신호를 기반으로 하는 측정에 대한 트리거를 위해 고급 트리거링과 디지털 IO 기능을 포함합니다. 또한 디지털 I/O를 섬광 전구 및 릴레이 장비를 제어할 때도 사용할 수 있습니다. 


많은 IMAQ 장비는 모션 제어와 데이터 수집 하드웨어를 같이 사용하기 위해서 RTSI 버스를 이용합니다. NI PCI 보드에서 RTSI 버스 컨넥터는 보드의 가장 위에 위치합니다. 사용자는 리본 케이블을 이용하여 인접 보드의 RTSI 커넥터에 연결하고 하나의 보드에서 다른 보드로 트리거와 시간 정보를 전달합니다. 


NI의 PXI 모듈에서는 PXI Backplane에 있는 PXI 트리거 버스가 RTSI 버스를 대체합니다. 어플리케이션의 성능을 높여주는 전처리 기능을 제공하는 IMAQ 장비를 통해서 픽셀, 라인 스케일링, ROI 수집과 같은 태스크를 수행할 수 있습니다.


저렴한 가격의 표준 흑백 장비


NI PCI-1407 와 PXI-1407 은 흑백 수집을 위한 저렴한 아날로그 수집 장치입니다. 사용자는 RS-170, CCIR과 프로그레시브 스캔 아날로그 흑백 카메라를 위해서 이 장비를 설정할 수 있습니다. 이 장비들은 부분 이미지 수집, 메모리 데시메이션, 룩-업 테이블 처리, 프로그래밍 가능한 게인 설정 및 트리거링과 같은 고급 기능을 제공합니다.


표준과 비-표준 다중 채널 보드


PCI-1409 보드는 표준과 비-표준 카메라에 대한 최대 4대의 사용이 쉬운 드라이버와 카메라 설정 소프트웨어를 제공합니다. 사용자는 5에서 40MHz의 가변적인 픽셀 클럭을 가지는 비-표준 카메카메부터 데이터 수집을 하는데 사용합니다. RS-170, CCIR, NTSC, PAL, RGB 와 프로그래시브 스캔 카메라로부터 흑백 이미지 수집을 위해 설정을 할 수도 있습니다. 


저렴한 표준 컬러 장치


NI PCI-1411 and PXI-1411 장치는 표준 NTSC, PAL과 S-Video 카메라로부터 컬러 이미지 수집을 위해 설정을 할 수 있습니다. 또한 흑백 RS-170, CCIR 카메라로부터 이미지 수집이 가능합니다. 이 장비들은 데이터가 PC 메모리로 전달되기 이전에 HUE, 포화인지, HSL 이미지 데이터로의 빠른 온보드 컬러 변환을 제공합니다. 이 기능은 특히 다양한 조명 환경에서 고속의 컬러 매칭 및 검출을 하는 어플리케이션에서 효율적입니다. 


National Instruments 디지털 장치


디지털 카메라는 고속의 이미지 출력을 제공합니다. 몇몇의 디지털 카메라는 100 MB/s 이상의 속도로 데이터를 출력할 수 있습니다. NI 1424, 1428, 1422 디지털 이미지 수집 장치는 많은 제작사의 디지털 카메라와 연동됩니다. 이 장치는 고속과 큰 이미지 그리고 고-해상도에 이상적입니다. 디지털 IMAQ 장치와 함께 사용자는 높은 그레이 스케일과 공간 해상도를 가진 이미지를 수천 프레임의 속도로 수집을 할 수 있습니다.


NI PCI-1424는 최대 50MHz 픽셀 클럭과 32비트의 디지털 입력(4개의 8비트 픽셀)을 가진고속 디지털 이미지 수집 보드 중 하나입니다. 최대 80MB의 온보드 메모리 사용이 가능한 이 장치는 200MB/s의 속도로 데이터를 수집할 수 있고, 100MB/s 속도를 유지할 수 있습니다.  PCI-1428 보드는 Camera Link 카메라와 연동하기 위한 디지털 결선의 어려움을 없애 줍니다.  PCI-1422 와  PXI-1422 장치는 16비트 입력과 최대 40MHz의 속도를 가진 저가형입니다. 


National Instruments는 LVDS(Low-voltage Differential Signaling) 인터페이스를 가지는 디지털 카메라를 위한 IMAQ 하드웨어를 제공합니다. LVDS는 일반적으로 사용되는 디지털 카메라 RS422 차동 데이터 버스의 성능을 높이기 위한 전자 표준입니다. RS422는 20MHz의 범위를 가집니다. 그러나 LVDS 카메라는 PCI-1424보드를 이용하여 최대 50MHz까지 가능합니다. 최대 100프레임에 전송하기 위한 IMAQ 보드의 LVDS 사용이 가능합니다. LVDS는 또한 잡음을 크게 줄여줍니다. 


NI-IMAQ 드라이버 소프트웨어


LabVIEW, Measurement Studio, Visual Basic, 또는 Microsoft Visual C++ 기반의 사용자는 NI 이미지 수집 장치를 제어하기 위해서 NI- IMAQ 드라이버 소프트웨어를 사용할 수 있습니다. NI-IMAQ은 이미지 수집을 위한 완벽하고 견고한 API입니다. 


이는 레지스터 레벨의 프로그래밍이 아닌 간단한 이미지 수집에 대한 모든 컴퓨터와 장치의 특정 작업을 수행합니다. NI-IMAQ은 IMAQ 장치 구매시 무료로 사용이 가능합니다. 그림 1은 LabVIEW에서 이미지 처리 라이브러리인 IMAQ 비전과 NI-IMAQ을 쉽게 사용하는 방법을 보여줍니다. LabVIW에서 세개의 vi를 이용하여 스냅 이미지를 표시할 수 있습니다. 사용자는 LabVIEW 다이어그램을 통해서 복잡한 설정을 쉽게 생성할 수 있습니다. 


 


Figure 1. 이미지 수집 및 표현을 위한 간단한 LabVIEW 다이어그램 


아래는 그림 5의 기능과 동일한 Snap 기능을 처리하는 LabWindows/CVI 코드를 위한 IMAQ 비전의 내용입니다. 


// This sample demonstrates how to acquire a picture using a high level snap operation

#include "stdafx.h"

#include <windows.h>

#include "snap.h"

#define _NIWIN

#include "niimaq.h"


int main(int argc, char* argv[])

{

   // Window Handle of the display window

   static HWND ImaqSmplHwnd;


   // Imaq globals

   static SESSION_ID Sid = 0;

   static INTERFACE_ID Iid = 0;

   static Int8* ImaqBuffer=NULL;


   // Create a window to display the image

   ImaqSmplHwnd = CreateIMAQWindow();


   // Open an interface and a session

   imgInterfaceOpen("img0", &Iid);

   imgSessionOpen(Iid, &Sid);


   // Snap a picture

   ImaqBuffer = NULL;

   imgSnap(Sid, (void **)&ImaqBuffer);


   // Display using NI-IMAQ

   imgPlot((GUIHNDL)ImaqSmplHwnd, (void *)ImaqBuffer, 0, 0, 640, 480, 0, 0, IMGPLOT_MONO_8);


   // Close the interface and the session

   imgClose(Sid, TRUE);

   imgClose(Iid, TRUE);


   return 0;

}


마지막으로 아래의 코드는 그림5와 같이 Visual Basic을 위한 IMAQ Vision입니다. 


Private Sub Snap_Click()


   'Get the interface name and load the parameters set in

   'Measurement & Automation Explorer (MAX)

   CWIMAQ1.Interface = IntfName.Text

   CWIMAQ1.LoadInterfaceDefaults

   

   'Acquire asynchronously one buffer

   CWIMAQ1.AcquireImage

   

   'Display the most recently acquired picture in a Picture Box

   'Note that it could be done more simply with the CWIMAQViewer object

   'whose demo version is given, see the "Snap in CWIMAQViewer" sample

    CWIMAQ1.WindowPlot Display.hWnd

End Sub


Private Sub Quit_Click()

   End

End Sub



특정 이미지 수집 장치와 카메라를 사용하기 위한 코드를 작성 후, IMAQ 장치를 변경하더라도 코드를 수정할 필요는 없습니다. NI-IMAQ은 National Instruments의 이미지 수집 장치에 대한 전체 장비 라인업과 다양한 카메라에 대해서 동일하게 처리됩니다.


NI-IMAQ은 이미지 처리를 다른 어떤 NI 솔루션에 통합하고, NI-DAQmx와 같은 다른 National Instruments 드라이버 소프트웨어와 호환됩니다. NI-IMAQ은 응용 어플리케이션 개발 환경에서 호출 할 수 있는 상위 수준과 하위 수준의 함수를 제공하는 광범위한 라이브러리입니다. 상위 수준의 함수는 단일 이미지 및 연송 모드의 이미지 수집을 포함합니다. 


NI-IMAQ은 내부적으로 컴퓨터와 IMAQ 하드웨어 사이의 프로그래밍 인터럽트와 DMA 컨트롤러같은 많은 복잡한 이슈를 해결합니다. NI-IMAQ은 하드웨어 장비와 LabVIEW, Measurement Studio 및 다른 언어 환경에 사이의 인터페이스를 제공합니다. 


National Instruments 설정 소프트웨어


사용자는 Measurement & Automation Explorer (MAX)에서 NI-IMAQ에서 함께 제공하는 이미지 수집 시스템을 설정할 수 있습니다. MAX는 NI 하드웨어 장치를 설정하기 위한 대화형 툴입니다. MAX에서 사용하기 위한 카메라 타입(RS-170, CCIR, NTSC, PAL와 비-표준)을 선택할 수 있습니다. ROI 및 흑백 레벨, antichrominance 필터, 비동기 수집, 게인 및 노출 시간에 대한 설정도 가능합니다. 추가적으로 MAX를 통해서 인터레이스가 아닌 프로그레시브 스캔 카메라에 대한 인수를 설정할 수 있습니다. 사용자는 또한 VSYNC, HSYNC 및 다른 시간 정보 설정에 대해서 자신의 카메라 설정 파일 생성이 가능합니다. 


이 글에서는 이미지 수집에 필요한 NI 제품 기반의 하드웨어와 소프트웨어에 대해서 알아보았습니다.


이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.


댓글