전체(3401)
전체(419)
1.준비단계 카메라의 Calibration을 하려면 하얗고 균일한 물체가 필요합니다. EX) 디퓨저 또는 A4 용지 , 기타 흰 물체 등등 Calibration 진행 전 물체 표면에 영향을 최소화 할수 있도록 물체와의 WD(Working Distance)를 멀게 세팅하여 초점을 무너트립니다. 이미지 취득 카메라의 Calibration을 하려면 영상 데이터가 취득되고 있어야 합니다. 카메라는 Calibration 물체의 한 라인만 촬영해야 합니다. (모션 정지상태) Euresys의 Multicam 또는 타사의 SDK를 이용하여 영상 데이터 취득을 시작합니다. CLCtrl2의 "Standard" 탭에서 스크롤 바를 내려 FFC 기능으로 이동합니다. 데이터 클리어 FFC를 시작하기 전 카메라의 FFC 데이터를 초기화하는 작업을 진행합니다. FFC Mode 파라미터를 "[00H]OFF"로 변경합니다. Clear Ram of gain과 Clear Ram of offset 모두 "Clear" 버튼을 클릭합니다. Black Level Correction (DSNU) 카메라 렌즈 마개를 이용하여 빛을 차단시켜 이미지를 어둡게 세팅합니다. FFC Target Level(Offset) 값은 Default 값인 3으로 사용합니다. FFC Mode를 "[06]Auto Setting for offset"로 변경 후 한단의 초록색 프로그레스 바가 모두 진행되면 Black Level Correction이 완료 됩니다. Gray Level Correction(PRNU) 이미지 데이터가 빛을 수광 할 때 포화되지 않는 Level로 설정 합니다. FFC Target level for Gray 값은 현재 이미지 평균 Gray Level 보다 20 ~40 높게 설정 합니다. FFC Mode를 "[05H]Auto settiong for gain"로 변경 후 하단의 초록색 프로그레스바가 모두 진행 되면 Gray Level Correction 이 완료 됩니다. FFC데이터 저장 FFC Mode를 "[01H]ON(Gain+Offset)" 으로 변경 하면 FFC가 카메라 적용됩니다. EEPROM save for normal User의 "Save" 버튼을 클릭하면 EEPROM에 데이터가 저장됩니다. FFC 적용 전 / 후 차이 FFC 적용 전 노이즈를 부각한 이미지 데이터에 FFC를 사용하여 하기 첨부된 이미지 예시와 같이 균일하게 Calibration 할 수 있습니다.
2022-10-27
1.카메라 통신 연결 Comport 설정 방법 : Euresys Frame Grabber Multicam Studio를 관리자 권한으로 실행합니다. Multicam Studio의 상단 메뉴의 Tool -> Board Information을 선택 후 SerialControl 텍스트 박스에 사용하고 싶은 가상 Comport를 입력합니다. ComPort 확인 방법 : Matrox Frame Grabber 내 PC 또는 내 컴퓨터의 관리 창을 실행 합니다. 관리 -> 관리 장치자 -> 포트 - Matrox Comport 0의 번호를 확인 합니다. 카메라 통신 툴 연결 방법 윈도우 메뉴에서 CLCtrl2를 검색 후 관리자 권한으로 실행 합니다. CLCtrl2 좌상단 메뉴의 "CoMM" - "Port Settiong" - Comport 선택 - "OK" - "Read all" 순서대로 클릭하면 카메라 파라미터 제어 기능이 확성화 됩니다, 2. 카메라 파라미터 설명 공통 파라미터 설명 Comm mode "Comm mode[CBH,1-0" : Internal Mode 에서 파라미터 제어가 가능합니다 【V】"Comm Mode[CBH,1-0" : External Mode 에서 파라미터 제어가 가능합니다. 체크 박스 【V】 선택시 영상 취득이 불가능하므로 파라미터 변경 후 다시 체크 박스를 해제해야 합니다. Serial Communication Baud Rate : 카메라의 통신 속도를 설정 할 수 있습니다. Speed / Output format : 카메라의 속도 , Tap 관련 파라미터를 설정 할 수 있습니다. OutPut bit setting : 카메라에서 출력할 bit 수를 설정 할 수 있습니다. Sync control mode : 카메라 동작을 내부 / 외부제어로 설정 할 수 있습니다. Internal : 카메라가 내부 신호를 이용하여 이미지를 촬영합니다. (라이브모드 - 노출 별도 제어 불가) Internal (ExposureControl) : 카메라가 내부 신호를 이용하여 이미지를 촬영합니다. (라이브 모드 - 노출 별도 제어가능) External : 카메라가 외부 신호를 받아 이미지를 촬영합니다, (트리거 모드 - 노출 제어 가능) Exposure mode : 카메라 노출 모드를 변경합니다. Line Interval : 설정된 LineRate에 따라 종속되어 노출합니다. Edge Preset : 설정된 값으로 노출 합니다. (Line Rate 와 종속 관계 없음) Pulse Width : 외부에서 받은 Pulse 폭 만큼 노출 합니다. *Sync Mode - Exposure Mode에 대한 노출 및 계산식 내용은 카메라 메뉴얼에서 참고 가능합니다. Electronic Shutter(Exposure Time) : 카메라 촬영 주기 또는 노출을 설정합니다. Synchronization mode에 따라서 제어되는 파라미터가 달라 집니다. Internal : 촬영주기 / 노출 값 둘 다 설정 Internal(ExposureControl) : 노출 값 설정만 가능 / 촬영 주기는 Interval Time of Internal Sync에서 제어 External : 노출 값 설정만 가능 / 촬영 주기는 외부 신호로 제어 Interval Time of Internal sync : 카메라 촬영 주기를 설정합니다. Synchronization mode가 -> Internal(ExposureControl)에서만 동작 합니다. Digital Gain : 카메라의 Digital Gain을 설정 할 수 있습니다. (0~255) Analog gain : 아날로그 게인을 On / Off 설정 할 수 있으며 On시 4배의 Gain이 활성화 됩니다. TEst pattern : 프레임 그래버로 전송할 테스트 패턴 이미지를 설정 할 수 있습니다. User ID : 카메라 고유 Index 를 설정할 수 있으며 0~255 까지 설정 가능 합니다. Scan direction : 스캔 방향을 결정 합니다. Norm : 이미지를 그대로 출력합니다. Reverse : X Reverse가 적용되어 이미지를 출력합니다. Chattering : Chattering Noise를 필터링 합니다. (0~255) *상세 값은 카메라의 메뉴얼을 참조해 주세요 듀얼 라인스캔 파라미터 설명 BINNING : Binning 모드 사용시 파라미터가 적용 됩니다. add : 각 픽셀의 값을 더하여 감도를 올립니다. ave : 각 픽셀의 값을 평균 값으로 SN 비율을 개선합니다. 1 Line Delay :DualLineScan 카메라의 파라미터 입니다. Lower Line delay : 하부 센서의 촬영을 1 Line Lelay 설정 합니다. Upper Line delay : 상부 센서의 촬영을 1 Line Delay 설정 합니다. Scan direction : 스캔 방향을 결정 합니다. Line1 First NormRotate : 정방향으로 이미지를 촬영하는 경우 사용합니다 - > Default Line2 First ReverseRotate : 역방향으로 이미지를 촬영하는 경우 사용합니다. (이미지 X Reverse) Line2 First NormRotate : 역방향으로 촬영하는 경우 사용합니다. Line1 First ReverseRotate : 정방향으로 이미지를 촬영하는 경우 사용합니다. (이미지 X Reverse) * 이미지 출력에 대한 예시는 아래에 나와있습니다. 컬러 라인스캔 파라미터 설명 Digital Gain Color : R,G,B 데이터에 대한 개별 Gain을 조정합니다. Red : R Gain 을 조정합니다. Green in red Line : GR Gain을 조정합니다. Green in blue Line : GB Gain을 조정 합니다. Blue : B Gain을 조정합니다. Color gain Mode : Color gain의 사용 여부를 On/Off 합니다. 3. 카메라 EEPROM 이용 방법 ( 카메라 내부 메모리) 카메라 내부 메모리 사용방법 Read all : 카메라의 파라미터를 불러오고 활성화 시킵니다. Register -> EEPROM : 카메라의 EEPROM에 파라미터 값을 저장합니다. EEPROM ->Register : 카메라 EEPROM에 저장된 파라미터 값을 불러옵니다. Factory -> EEPROM: 카메라에 설정된 파라미터 값을 초기화 시킵니다. (EEPROM에 설정된 값 또한 초기화 시킵니다.) * EEPROM : 카메라 내부에 있는 데이터를 불러오기 / 저장하기 가능한 메모리를 의미하며, 저장된 데이터는 전원을 다시 인가하여 도 카메라에 남아 있습니다. 4. 카메라 데이터 파일 사용 방법 (Flash Memory / EEPROM to I2C File) 데이터 파일 사용 방법 (Flash Memory) CLCtrl2의 좌 상단에 "File" - "Open -[Form file to Register]..." 을 클릭하여 I2c확장자 형태인 파라미터 데이터를 Flash Memory로 불러 올 수 있습니다. CLCtrl2의 좌 상단에 "File" - "Save as[Frome Register To File]..." 클릭하여 i2c 확장자 형태로 Flash Memory에 설정된 파라미터를 데이터로 저장 할 수 있습니다. * Flash Memory의 파라미터는 전원 재 인가시 초기화 됩니다. 데이터 파일 사용 방법 (EEPROM) CLCtrl2의 좌 상단에 "File" - "Open -[Form file to Register]..." 을 클릭하여 I2c확장자 형태인 파라미터 데이터를 EEPROM으로 덮어씁니다. CLCtrl2의 좌 상단에 "File" - "Save as[Frome Register To File]..." 클릭하여 i2c 확장자 형태로 Flash Memory에 설정된 파라미터를 데이터로 저장 할 수 있습니다. * EEPROM의 파라미터는 전원 재 인가 시 유지 됩니다.
2022-10-27
1.AOI 모드 선택 Speed / Output format의 리스트 박스 항목 중 AOI 모드를 선택합니다. 2. AOI 영역 설정 AOI의 영역 설정을 위해 LVAL width에 (설정할 해상도 / Tap) 값을 입력합니다. LVAL width x 4가 아닌 LVAL width x Tap로 동작합니다. (표기 오류) 예시로 AOI 2Tap 사용 시 1024 Pixel로 AOI 하고 싶다면 LVAL width 값에 512를 입력합니다. 3. AOI 영역 OffSet 설정 AOI 사용 시 이미지 취득 영역을 센서 중심부로 옮기기 위하여 Offset을 설정합니다. Beginning pixel of video output 텍스트 박스에입력 값 x 4(표기 되있는 수치) 만큼 Offset 값으로 설정되어 카메라에 적용됩니다. 예시로 4K 카메라를 AOI하여 1024Pixel로 설정한 경우[센서 크기(4096) – AOI 영역(1024)] / 2 = 1536(Offset)로 설정하면 센서 중심 기준의 AOI가 설정됩니다.
2022-10-27
1. 준비단계 카메라의 Calibration 을 하려면 하얗고 균일한 물체가 필요합니다 EX) 디퓨저 또는 A4용지 , 기타 흰 물체 등등 Calibration 진행 전 물체 표면에 영향을 최소화 할 수 있도록 물체와의 WD (Working Distance)를 멀게 세팅 하여 초점을 무너트립니다. 2. 이미지 취득 카메라의 Calibration 을 하려면 영상 데이터가 취득되고 있어야 합니다. 카메라는 Calibration 물체의 한 라인만 촬영해야 합니다, (모션 정지상태) Euresys의 Multicam 또는 타사의 SDk를 이용하여 영상 데이터 취득을 시작합니다 Line Sensor Communication Toll의 "FFC(Auto)"탭을 선택 합니다. 3. 데이터 클리어 FFC를 시작하기 전 카메라의 데이터를 초기화하는 작업을 진행합니다. VIDIO output 그룹의 "OriginalImage" 버튼을 클릭합니다 Auto FFC Flow의 "Clear" 버튼을 클릭합니다. "Dsable the confirmation window"의 체크박스를 체크합니다. 4. Black Level Correction (DSNU) 카메라 렌즈 마개를 이용하여 빛을 차단시켜 이미지를 어둡게 세팅합니다. FFC Target Level for Black 값은 Default 값인 3으로 사용합니다. -> -> 버튼을 순서대로 클릭합니다 버튼이 활성화 되면 Black Level Correction이 완료 됩니다. 5. Black Level Correction (DSNU) 이미지 데이터가 빛을 수광 할 때 포화되지 않는 Level로 설정합니다. 조명, Exposure Tiem , 조리개 등으로 설정 가능 FFC target level for gray 값은 수광 이미지의 평균 Gray Level보다 20~40높게 설정합니다. -> 버튼을 순서대로 클릭 합니다. 버튼이 다시 활성화 되면 Gray Level Correction이 완료 됩니다. Save Correction 그룹 박스에 버튼을 클릭하여 카메라 내부에 데이터를 저장합니다. 6. FFC 적용 전 / 후 차이 FFC 적용 전 노이즈를 부각한 이미지 데이터레 FFC를 사용하여 하기 첨부된 이미지 예시와 같이 균일하게 Calibration 할 수 있습니다.
2022-10-26
1. 카메라 통신 연결(시리얼 통신 연결) Comport 설정 방법 : Euresys Frame Grabber Multicam Studio를 관리자 권한으로 실행합니다. Multicam Studio의 상단 메뉴의 Tool -> Board Information을 선택 후 SerialControl 텍스트 박스에 사용 하고 싶은 가상 Comport 를 입력합니다. Ex) com8 Comport 확인 방법 : Matrox Frame Grabber 내 PC 또는 내 컴퓨터의 관리 창을 실행합니다. 컴퓨터 관리 -> 장치 관리자 -> 포트 – Matrox Com por 0의 번호를 확인합니다. 카메라 통신 툴 연결 방법 LineSensorCommunication Tool을 관리자 권한으로 실행합니다. Comport 선택 후 "Open" -> "Reload" 버튼을 클릭하면 카메라 파라미터가 활성화 됩니다. 2.카메라 파라미터 설명 Exposure Time : 카메라의 Exposure Time을 설정합니다. Line interval : 1:ine 당 카메라의 촬영 주기를 설정합니다 . Sync control mode : 카메라의 동작을 Internal 또는 External 모드로 설정합니다 Exposure control mode : 카메라의 노출 제어 방식을 설정합니다. Sync Control mode -> Internal 설정 Line interval : 카메라에 설정된 Exposure time으로 동작합니다. Sysc control mode -> External 설정 programmable : 카메라에 설정된 Exposure Time으로 동작합니다 Pulse width : 외부에서 인가되믄 Pulse 폭에 의해 Exposure Time이 동작 합니다. Speend / Output Format : 카메라의 속도 , TAP 설정 관련 파라미터를 설정할 수 있습니다. Test pattern : 프레임 그래버로 전송할 테스트 패턴 이미지를 설정 할 수 있습니다. User id : 카메라 고유 Index를 설정할 수 있으며 0~255까지 설정 가능합니다. Output bit : 카메라에서 출력할 bit 수를 설정 할 수 있습니다 . Gain A (Digital Gain) : 디지털 게인을 설정할 수 있습니다. Analog gain : 아날로그 게인을 On / Off 설정할 수 있으며 On시 4배의 Gain이 설정됩니다. RGB digital gain : 컬러 카메라의 R,B,Gr,Gb Gain을 개별로 조절 할 수 있습니다. 3. 카메라 EEPROM 이용 방법 (카메라 내부 메모리) : 카메라의 EEPROM에 설정한 파라미터 값을 저장합니다 : 카메라 EEPROM에 저장된 파라미터 값을 불러옵니다 : 카메라에 설정된 파라미터 값을 초기화 시킵니다. (EEPROM에 설정된 값 또한 초기화 시킵니다.) * EEPROM : 카메라 내부에 있는 데이터로 불러오기 / 저장하기 가능한 메모리를 의미하며 , 저장된 데이터는 전원을 다시 인가하여도 카메라에 남아있습니다. 4. 카메라 데이터 파일 이용방법 (카메라 파라미터 데이터 파일) "To file" : History Log 창에 있는 파라미터 제어 정보를 데이터 파일로 저장합니다 History Log에 있는 기록들이 파일로 저장되므로 파일 저장전 반드시 "Cls" 후 "Reload" 버튼을 클릭하여 파라미터 정보를 새로 갱신 후"Reload"버튼을 클릭하여 저장합니다. "Load": 카메라 파라미터를 담고 있는 선택 후 불러옵니다. (아직 카메라로 데이터는 전송되지 않은 상태) "Send" : 불러온 카메라 파라미터 파일의 정보를 카메라로 전송 합니다. (카메라로 전송을 됐으나 파라미터 창에 정보 갱신은 되지않은 상태) "Reload" : 변경된 카메라 정보를 파라미터 창에 갱신 합니다. "Cls": 카메라와 통신 한 History Log를 제거 합니다, " to Clipboard" : History log 의 모든 텍스트를 복사 합니다. "Send" : Send 버튼 우측에 기입된 단일 메세지를 카메라로 전송 합니다. "Trans" : 카메라 컨트롤 툴을 반 투명화 시킵니다.
2022-10-26
1.CoanLink Quad 3D-LLE Grabber 소개 3D 프로파일링을 위한 온보드 레이저 라인 추출 기능 탑재. CPU 사용량 없이, 레이저 프로파일 추출. 싱글 / 듀얼 레이저 프로파일 추출. 16Bit Height 맵 생성 다양한 알고리즘 지원 (PEAK, COG, MAX) Laser Line Extraction 라인 레이저를 이용한 광삼각법 기반. 라인 레이저를 대상 물체에 투사하고 반사된 라인 이미지의 모양을 분석하여 객체의 표면 형상을 기하하적으로 재구성. 획득된 일련의 프로파일에 기초하여 Height Map을 생성하기 위한 알고리즘 LLE Processing Core Euresys Quad 3D-LLE Grabber에 내장된 기능 레이저 라인 추출을 위한 3가지 알고리즘 제공 (PEAK, COG, MAXIMUM) 필터링을 위한 전처리 기능 제공 (Filter, Threshold) Linear Filter 1x3 Sliding Window에 convolution 연산자를 적용. Convolution kernel 요소 (A,B,C)는 3개 요소 합이 1~512 사이 값이 되도록 모든 양의 정수로 구성 가능. Kernel 요소가 ROI 경계 밖에 있을 경우, 입력 픽셀 값은 중앙 픽셀 값으로 대체. Coring Threshold 규칙에 따라 픽셀을 두가지 값 (범주)로 분류하는 간단한 분할 기법. Maximum Detection 열의 모든 픽셀을 분석하여, 어느 포지션이 최대 높이 지점인지 감지 8Bit(0 ~ 255) 혹은 16Bit (0 ~ 65535) Height Map 출력 구성. 두개 이상의 픽셀에서 최대 레이저 강도가 감지될 경우, Maximum Detection 알고리즘은 가장 높은 위치를 가진 픽셀을 나타냅니다 Threshold 기능을 이용하여 노이즈 성분 제거 가능 최대 ROI Y Size는 8BIT 255, 16Bit 65535 Pixel. Peak Detection 취득된 프로파일을 1차 미분하여, 어느 포지선이 최대 높이지점인지 감지. 16Bit 고정 소수점 단위로 Height Map 출력 UQ11.5 : MSB 11Bit는 정수부, LSB 5Bit는 실수부로 구성 UQ8.8 : MSB 8Bit는 정수부, LSB 8Bit는 실수부로 구성 Peak 값이 감지 되면 Peak Detection 알고리즘은 해당 f(x) 픽셀을 가장 높은 값을 갖는 위치로 감지 하나 이상의 f(x) 픽셀이 동일한 조건을 갖는 경우, 가장 높은 높이와 동일한 위치를 감지 최대 지원 ROI Y Size는 2048Pixel Center Of Gravity Detection 취득된 프로파일의 무게중심을 레이저 라인으로 인식 16Bit 고정 소수점 단위로 Height Map 출력 UQ11.5 : MSB 11Bit는 정수부, LSB 5Bit는 실수부로 구성 UQ8.8 : MSB 8Bit는 정수부, LSB 8Bit는 실수부로 구성 2. 테스트 환경 구성 구성품 CXP Interface Camera Euresys Coaxlink Quad 3D-LLE Line Laser Lens 환경구성 일반적으로 Standard Geometry로 구성을 합니다. Standard Geometry는 레이저는 대상체에 수직, 카메라는 특정 각도로 구성. 카메라와 레이저의 각도, 렌즈에 따라 분해능과 측정 Range가 결정 됩니다. 계산이 용이하도록 해당 내용은 Euresys 측에서 별도 Excel Sheet를 제공하고 있습니다. 엑셀 시트 사용하기 제공되는 Excel Sheet에 파라미터를 적용시키면, 현재 구성한 환경에 대해 Z Range, Accuracy, Resolution 등의 정보를 획득합니다. Input Data Camera : Sensor Width, Sensor Height, Pixel Size, Frame Rate, Camera Angle, Camera Height Lens : Lens Iris No Position, Working Distance, Magnification, Lens Fno Laser : Laser Angle Grabber : Effective ROI Height, Line Extraction Method Motion : Trigger per mm , Conveyer Speed 엑셀시트 결과 확인 엑셀시트 Input에 대한 Output 정보를 확인 합니다. Output Data 중에 , out of lomits values의 값이 있을 경우, Input을 조절하여 output values 로 되도록 조절합니다. 카메라 AOI 설정 영상을 확인 하면서 적절한 AOI 위치 선정 Object의 상단, 하단 영역을 모두 포함하도록 설정. 데이터 연산영역을 줄여 속도 증대. 알고리즘 설정 사용하고자 하는 알고리즘 및 적절한 세부 파라미터를 설정 사용하고자 하는 알고리즘. Threshold 사용 여부 및 레벨. 스캔 거리 설정 스캔하고자 하는 거리를 설정 합니다. 스캔 거리 = Vertical Sampling(Y) x ScanLength 3. 데이터 취득 캘리브레이션 타겟 Euresys에서 캘리브레이션 타겟 도면 제공 Easy3D Library를 이용하여 Calibration File 제작에 이용 음영지역을 최소화 하여 데이터 취득 캘리브레이션 파일 생성 Easy 3D LLE 이용하여 캘리브레이션 파일 생성 캘리브레이션 타겟을 LLE를 이용하여 데이터 취득. 실제 제작된 캘리브레이션 타겟의 배율 및 종류 적용 캘리브레이션 파일 생성 (.mdl) 캘리브레이션 파일 생성은 다소 시간이 소요됩니다. Point Cloud 데이터 생성 캘리브레이션 타겟이 아닌 다른 오브젝트의 Depth Map 이용 미리 생성되어 있는 캘리브레이션 파일 (.mdl)을 적용하여 PCD 데이터 생성 ZMap 데이터 생성 PCD 데이터를 평면 데이터로 변경 각각의 Pixel은 실측 높이 데이터. 4. 참고 사항 Laser Width 선명한 레이저 폭을 이용하여 정밀한 데이터 취득 Angle 카메라와 레이저 사이 각 변경에 따라 다른 이미지 취득
2022-10-26
1. 프로그램 레이아웃 프로그램 UI 레이아웃 툴 바 빛 메뉴 : 영상 취득, 스크립트 로드, 이미지 저장 등의 메뉴 모듈 : 보드 및 카메라 설정을 하기 위한 디바이스 리스트 표시 파라미터 : 연결된 보드와 카메라의 파라미터 값 표시 및 제어 2. Contiunuous 영상 취득 방법 Continuous 영상 취득 카메라를 연결 후 프로그램 실행을 실행 합니다. Devices 모듈에서 CameraModel -> CameraControlMethod를 NC로 설정합니다. Remote Devices 모듈에서 AcquisitionControl -> TriggerMode를 Off로 설정합니다. 상단 메뉴에서 "Start Stream"을 클릭합니다. 3. 이미지 저장하기 이이미 저장 고정 경로 이미지 저장 우측 상단 를 클릭하여 저장경로 설정을 합니다. 이미지의 확장자는 처럼 텍스트를 수정하여 변경이 가능합니다. 저장 경로 설정 후 를 클릭하면 취득된 이미지가 저장됩니다. 지정 경로 이미지 저장 이미지 화면을 우클릭하여 Save Display Image As를 클릭합니다. 저장 경로를 설정하고 파일 형식에서 이미지의 확장자를 변경하여 저장이 가능합니다. 4. Immediate 영상 취득방법 Immediate 영상 취득 Devices 모듈에서 하기 파라미터를 수정합니다. CameraControlMethod : RG ExposureReadoutOverlap : True ExposureRecoveryTime : 100us CycleMinimumPeriod : 4200us (STC-MBS212CXP6 기준) RemoteDevices 모듈에서 다음 파라미터를 수정합니다. (Sentech 카메라 기준이며 타사 카메라 사용 시 명칭이 다를 수 있음) TriggerMode : On TriggerSource : LinkTrigger0 TriggerOverlap : ReadOut ExposureMode : Timed or TriggerWidth Timed : 카메라에서 노출 제어 TriggerWidth : 보드에서 노출 제어 상단 메뉴에서 "Start Stream" 을 클릭합니다. 5. SW Trigger 영상 취득 방법 SW Trigger 영상 취득 기본 설정을 Immediate Trigger와 동일하게 설정 합니다 Device 모듈 -> CycleTriggerSource -> StartCycle로 설정합니다. 상단 메뉴에서 "Start Stream"을 클릭합니다. Devices -> CycleControl -> StartCycle의 Command 버튼을 클릭하여 이미지를 취득합니다. 6. HW Trigger 영상 취득 방법 HW Trigger 영상 취득 기본 설정을 Immediate Trigger와 동일하게 설정합니다. Device 모듈 -> CycleTriggerSource -> LIN1로 설정합니다. Interfaces 모듈 IOToolBox -> LineInputTool LineinputToolSelector : LIN! LineinputToolSource : IIN11 상단 메뉴에서 "Start Stream"을 클릭합니다. Hardware Trigger 신호를 인가하여 이미지를 취득합니다.
2022-10-26
1. 프로그램 UI 레이아웃 UI 레이 아웃 탭 오픈소스 : 연결한 카메라의 목록이 표시 카메라 뷰 : 카메라의 영상이 표시 파라미터 및 기능 설정 : 카메라 설정을 할 수 있는 파라미터 및 기능 표시 기능 메뉴 : 카메라 영상, 레코더, 파라미터 등 메뉴 표시 2. 카메라 연결 방법 연결 방법 eGrabber Studio를 실행 합니다. Sources 목록에 연결한 카메라의 interface를 선택합니다. (해당 메뉴얼에서는 Coaxlink 선택) eGrabbers 목록에 연결 된 카메라의 Stream0를 클릭한 후 "Open"을 클릭합니다. ※ Gigelink 및 Recorder containers를 사용하려면 각각의 라이센스가 필요합니다. 3. Buffer Queue 설정 방법 Buffer Queue 설정 기본값은 Continuous모드이므로 Conticuous영상이 필요한 경우 설정하지 않습니다. 설정한 수 만큼 이미지를 보려면 Replay Count를 Buffer Count와 동일한 값으로 설정합니다. Continuous모드 처럼 지속적인 이미지를 보려면 Replay Count를 Buffer Count 보다 작은 값으로 설정합니다. 설정 후에는 반드시 "Apply"를 클릭해야 적용됩니다. Buffer Count : eGrabber Studio 필드 전용 메모리 공간에 할당할 버퍼 수 Replay Count : 필드에 저장된 이미지를 표시하기 위해 대기열에 예약될 버퍼 수 ※ Browse buffer queue 스크롤을 이동하면 취득한 이미지를 볼 수 있습니다. 4. Continuous 영상 취득 방법 5. 이미지 저장 하기 저장 방법 이미지를 저장할 경로를 을 클릭하여 지정합니다. 저장할 이미지의 확장자를 선택 후 을 클릭하여 저장합니다. 6. 레코더 저장 및 확인 방법 레코더 저장 및 확인 레코더를 저장할 경로를 을 클릭하여 지정합니다. 저장할 레코더 파일의 크기를 지정합니다. (무분별한 PC 저장공간 사용 방지) 을 클릭하여 레코더를 생성합니다. 을 클릭하여 녹화를 시작 후 이미지를 취득하면 생성한 레코더 파일에 버퍼가 저장됩니다. 녹화를 완료 하면을 클릭하여 레코더를 닫습니다. ※ 레코더 기능을 사용하려면 레코더 라이센스가 필요합니다. 탭 오픈소스 영역에서 "+" 을 클릭합니다. Sources 목록에서 Recorder Containers를 클릭합니다. Recent 목록에서 앞서 생성한 레코더를 선택 후 "open"을 클릭합니다. Record 스크롤로 저장된 버퍼를 확인할 수 있으며, Range를 설정하여 원하는 버퍼를 .tiff 이미지 및 .mkv 동영상으로 저장이 가능합니다. 저장방법은 File type, Format, Range 를 설정 후 Name을 지정하고 "Export"를 클릭합니다. 7. JS 파일 적용 방법 을 클릭하여 PC에 저장되어있는 JS파일을 Load합니다. "Run"을 클릭하여 JS파일을 적용합니다. 정상적으로 적용이 될 경우 우측 아래 이미지(정상적용)와 같이 표시됩니다. 어떠한 에러로 인하여 적용이 되지 않을 경우 우측 아래 이미지(에러)와 같이 표시됩니다. ※ 에러가 발생한 경우 JS파일을 올바르게 수정 후 다시 적용하여 사용합니다.
2022-10-26
1. 기초 용어 설명 기초 용어 ROI(Region Of Interest) 이미지에서 학습할 영역을 표시하는 기능입니다. ROI로 지정하여 학습할 경우, 검사 이미지도 ROI 크기와 동일해야 합니다. Mask 이미지에서 학습에 사용하지 않는 영역을 표시하는 기능입니다. Labeling 이미지에서 검출하고 싶은 부분을 표시하는 기능입니다. 데이터 세트(Dataset) Train: 학습에 사용되는 훈련용 이미지 Validation: 학습 중 모델의 검증에 사용되는 이미지(과적합 방지) Test: 학습 후 모델의 성능을 평가하기 위해서만 사용되는 이미지 데이터 증강(Data augmentation) 원래 데이터 집합의 이미지에 랜덤 변환을 생성하여, 훈련 데이터 세트에 없는 기하학적, 밝기, 노이즈 차이에 대해 강인(robust)하게 만듭니다. 과적합 모델이 학습 데이터를 과하게 학습하여, 학습 데이터 내에서는 분류를 잘 하지만 새로운 데이터 내에서는 성능이 떨어지는 상황을 의미 합니다. 학습 이미지 수가 부족하여 iteration을 과하게 높일 경우 발생할 수 있습니다. 반복(iteration) Training dataset의 모든 이미지를 한 번 진행하는 것을 의미합니다. 기본 값은 50이며, 반복 횟수가 많을수록 더 좋은 결과를 얻을 수 있으나 과적합(overfitting)에 주의해야 합니다. Patch Size Neural network에서 처리하는 패치의 크기입니다. 학습하는 데이터의 양을 늘리기 위해 한 장의 이미지를 조각 내는데, 이 조각의 단위를 패치(patch)라고 합니다. Batch Size 학습에 사용되는 이미지의 묶음 단위를 의미합니다. 배치 크기가 크면 GPU에서 단일 반복 처리 속도가 증가하지만 더 많은 메모리가 필요합니다. 기본적으로 배치 크기는 사용 가능한 메모리에 대해 최적으로 결정됩니다. AUC-ROC Curve ROC(Receiver Operating Characteristic): 분류 모델의 성능을 보여주는 그래프 AUC(Area Under the Curve): ROC 곡선 아래의 영역을 의미하며, 이 값이 높다는 것은 클래스를 구별하는 모델의 성능이 훌륭하다는 것을 의미 TPR(True Positive Rate): 맞게 예측한 비율 FPR(False Positive Rate): 잘못 예측한 비율 AUC-ROC 해석 방법 ROC Curve가 좌상단에 가까워질수록 그룹을 더 잘 구별할 수 있는 모델이라고 해석할 수 있습니다. 2. UI 설명 UI 설명 - 프로젝트 선택 화면 Deep Learning Studio를 실행하면 프로젝트 파일을 불러오는 창이 표시됩니다. 기준 프로젝트 파일의 불러오려면 "Open" 버튼을 클릭합니다. 신규 프로젝트를 생성하려면 "New" 버튼을 클릭합니다. "Open" 버튼을 클릭하면 오른쪽 그림과 같이 프로젝트 파일 선택 화면이 표시됩니다. 불러올 프로젝트 파일을 선택합니다. "New" 버튼을 클릭하면 오른쪽 그림과 같이 프로젝트 생성 화면이 표시됩니다. 애플리케이션에 적합한 알고리즘을 선택하여 프로젝트를 생성합니다. UI 설명 - Dataset and annotations 라벨 및 라벨에 따른 이미지를 관리하는 탭입니다. 해당 탭에서 ROI, Masking , Segmentation, Object 설정을 수행합니다. UI 설명 - Dataset split 데이터 세트의 이미지를 비율에 따라 Training / Validation / Test로 나눕니다 다수의 Split을 생성하면 Tools 탭에서 특정 Split을 선택하여 학습할 수 있습니다. UI 설명 - Data augmentation 설정한 조건에 따라 데이터를 랜덤하게 증강합니다. "Add, Remove" 버튼을 클릭하여 다수의 augmentation 조건을 관리할 수 있습니다. 이 목록은 추 후 학습할 때 사용됩니다. 오른쪽 그롬과 같이 Lower / Upper/ Random 버튼을 클릭하여 조건이 적용될 때 예상 이미지를 미리 볼 수 있습니다. 이미지가 실제 발생 가능한 경우로만 설정하는 것이 좋습니다. UI 설명 - Tools 모델을 학습하기 위한 툴을 관리하는 메뉴입니다. "Add, Import, Export, Remove" 버튼을 클릭하여 생성, 제거, 불러오기, 내보내기가 가능합니다. Dataset split 항목에서 이전 단계에서 생성된 split 항목을 선택할 수 있습니다. Data augmentation 항목에서, 이전단계에서 생성한 augumentation 항목을 선택할 수 있습니다. "Train" 버튼을 클릭하여 학습을 진행합니다. 다수의 Toold을 추가하여 순차적 학습이 가능합니다. UI 설명 - Validation and results 학습된 모델을 평가하는 메뉴입니다. 알고리즘에 따라 표시되는 화면이 다릅니다. UI 설명 - Inference tests 학습된 모델을 선택하고 검사할 이미지를 불러와 테스트하는 메뉴 입니다. 알고리즘에 따라 표시되는 화면이 다릅니다. 3. NVIDIA GPU 환경 설정 지원되는 GPU 환경 Open eVision Deep Learing은 NVDIA GPU만 지원합니다. 지원되는 GPU geForce GTX 900 series, GTX 1000 series, Titan serires, RTX 2000 series Quadro M series, P series, RTX series Telsa K40, K80, M series, P series, V100, T4 NVIDIA CUDA 리소스를 다운로드 합니다. NVIDIA CUDA® Toolkit version v11.1 NVIDIA CUDA® Deep Neural Network library (cuDNN) v8.1 지원되는 GPU 환경 설정 절차 NVIDIA CUDA® Toolkit v11.1을 기본 경로로 설치합니다. 기본 경로: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1 다운로드한 NVIDIA CUDA® Deep Neural Network library (cuDNN) v8.1의 압축을 해제합니다. 압축 해제 후 각 폴더(bin, include, lib)의 파일을 아래 경로에 복사합니다. bin\cudnn64_11.dll > C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin include\cudnn.h > C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include lib\x64\cudnn.lib > C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\lib\x64 Deep Learning Studio 실행 후 프로그램 상단에 아래와 같이 GPU가 표시되는지 확인합니다. 4. EasyClassify EasyClassify "New" 버튼을 클릭하여 EasyClassify 프로젝트를 생성합니다. 프로젝트의 이름과 경로를 선택 한 후 "OK" 버튼을 클릭합니다. EasyClassify - Dataset and annotations "Add label" 버튼을 클릭하여 라벨을 추가합니다 "라벨 별로 가중치 (Weight)를 설정할 수 있으며, 특정 라벨의 가중치가 높을 경우 해당 라벨의 검출력을 높입니다. "Add Images" 버튼을 클릭하여 이미지를 추가하고, 이미지에 라벨을 지정할 수 있습니다. EasyClassify - Dataset Split "New" 버튼을 dataset split 항목을 생성합니다. 이름과 Training / Validation / Test 의 비율을 설정하고 "OK" 버튼을 클릭합니다. EasyClassify - Data augmentation "Add" 버튼을 클릭하여 Augmentation 항목을 추가 합니다. 예상 가능한 이미지 조건을 설정합니다. EasyClassify - Tools - Classifier properties1 "Add" 버튼을 클릭하여 Tools 항목을 추가합니다. Capacity: 학습할 수 있는 정보의 양을 의미합니다. Small: 메모리가 훨씬 작고 추론 속도가 빠릅니다. Large: 복잡한 데이터 세트를 처리할 수 있으며 노이즈가 많은 데이터 세트에도 적합합니다. Use pretrained model 사전 훈련된 모델을 사용하면 적은 데이터 세트로 정확도를 높일 수 있습니다. Compute the heatmap 예측에 가장 많이 기여한 이미지의 픽셀을 나타냅니다. 활성화 시 분류 시간이 약간 증가합니다. EasyClassify - Tools - Classifier properties2 Width, Height 속도를 위해 이미지에서 분류할 내용이 사라지지 않는 가장 작은 해상도를 사용하는 것이 좋습니다. 최소 해상도는 128x128이며, 분류기는 256x256 ~ 512x512 사이의 해상도에 최적화되어 있습니다. Image type 색상이 중요하지 않은 경우 흑백 이미지를 사용합니다. 흑백 이미지를 사용하면 훈련 및 분류에 약간 더 빠릅니다. Enable histogram equalization 모든 이미지의 히스토그램이 정규화됩니다. Enable automatic image reformat 이미지의 크기를 자동으로 조정하고, 위에서 정의한 분류 기준 해상도와 이미지 유형으로 변환합니다. EasyClassify - Tools - Dataset split 이전 단계에서 설정한 Dataset split 항목을 선택합니다. 또는 "New random Split" 버튼을 클릭하여 새로 생성합니다. EasyClassify - Tools - Training settings Number of iterations 기본 값은 50이며, 학습을 위해 필요 시 수치를 증가합니다. 단, 과적합에 주의합니다. Batch size 학습에 사용되는 이미지의 묶음 단위를 의미합니다. Optimize 사용을 권장합니다. Data augmentation 이전 단계에서 설정한 Data augmentation 항목을 선택합니다. Deterministic training 해당 옵션은 결정론적 알고리즘을 사용하기 때문에 학습이 느려질 수 있습니다. EasyClassify - Validation and results Tool 이전 단계에서 학습한 분류기를 선택합니다. Metrics 가중치 오류 및 정확도와 True labels에 표시된 이미지를 확인 할 수 있습니다. EasyClassify - Inference tests "Add Image , Add folder" 버튼을 클릭하여 이미지를 추가합니다. Tool 이전 단계에서 학습한 분류기를 선택합니다 버튼을 클릭하여 검사를 수행합니다. Results 탭에서 처리 시간과 예측 결과를 확인 할 수 있습니다. 5. EasySegment EasySegment "New" 버튼을 클릭하여 EasSegment Supervised 프로젝트를 생성합니다. 프로젝트의 이름과 경로를 설정한 후 "OK"버튼을 클릭합니다. EasySegment - Dataset and Annotations "Add label" 버튼을 클릭하여 라벨을 추가합니다. Background는 OK를 , Defect는 결함이 있는 라벨을 의미합니다. 라벨 별로 가중치 (Weight)를 설정할 수 있으며 , 특정 라벨의 가중치가 높을 경우 해당 라벨의 검출력을 높입니다. "Add Images" 버튼을 클릭하여 이미지를 추가하고 , 이미지에 라벨을 지정할 수 있습니다. EasySegment - Dataset and annotations - Labeling 라벨링이 필요한 이미지를 선택합니다 "Segmentation" 버튼을 클릭하면 툴 바가 표시됩니다 "Segmentation"을 체크하고 라벨을 선택한 다음, 도형을 선택하여 라벨을 지정합니다. EasySegment - Dataset Split "New" 버튼을 dataset split 항목을 생성합니다. 이름과 Training / Validation / Test의 비율을 설정하고 "OK" 버튼을 클릭합니다. EasySegment - Data augmentation "Add" 버튼을 클릭하여 Augmentation 항목을 추가합니다. 예상 가능한 이미지 조건을 설정합니다. EasySegment - Tools - Supervised segmenter properties1 "Add" 버튼을 클릭하여 Tools 항목을 추가합니다. Capacity : 학습할 수 있는 정보의 양을 의미합니다. Small : 메모리가 훨씬 작고 추론 속도가 빠릅니다. Large : 복잡한 데이터 세트를 처리할 수 있으며 노이즈가 많은 데이터 세트에도 적합합니다. Sampling density 패치 추출 간격을 의미합니다. 1은 겹치는 부분이 없는 것을 의미하고, 2는 절반이 겹치는 것을 의미합니다. 이미지 처리 시간은 sampling density의 제곱 만큼 느려집니다. EasySegment - Tools - Supervised segmenter properties2 Path size 기본적으로 패치 크기는 학습 데이터 세트의 이미지 크기에 따라 자동으로 결정됩니다. Scale Down-scaling 수치를 입력합니다. 1보다 작은 수치는 처리 속도가 빨라집니다. EasySegment - Tools - Dataset Split 이전 단계에서 설정한 Dataset split 항목을 선택합니다. 또는 "New random split" 버튼을 클릭하여 새로 생성합니다. EasySegment - Tools - Training settings Number of iterations 기본 값은 50이며, 학습을 위해 필요 시 수치를 증가합니다. 단, 과적합에 주의합니다. Batch size 학습에 사용되는 이미지의 묶음 단위를 의미합니다. Optimize 사용을 권장합니다. Data augmentation 이전 단계에서 설정한 Data augmentation 항목을 선택합니다. Deterministic training 해당 옵션은 결정론적 알고리즘을 사용하기 때문에 학습이 느려질 수 있습니다. EasySegment - Validation and results - Pixel based metrics1 Tool 이전 단계에서 학습한 분류기를 선택합니다. Weighted error 가중 오차는 각 라벨에 대한 오차의 가중 평균을 의미하며, 딥 러닝 네트워크를 최적화하는데 사용되는 지표입니다. Classification threshold 분류 임계값을 조정하여 이미지에서 감지된 결함 객체(defective blob)를 필터링할 수 있습니다. EasySegment - Validation and results - Pixel based metrics2 Weighted intersection over Union(IoU) 실제 불량 영역을 모델이 얼마나 정확하게 검출하고 있는지 확인하는데 사용되는 지표입니다. Weighted pixel accuracy 해당 라벨에 대해 올바르게 예측된 픽셀 수와 해당 라벨에 대한 정답 픽셀 수 간의 비율을 의미합니다. EasySegment - Validation and results - Blob metrics Recall 실제 값이 불량(positive)인 것들 중, 예측 값이 불량(positive)인 것들의 비율을 의미합니다. Precision 예측 값이 불량(positive)인 것들 중, 실제 값이 불량(positive)인 것들의 비율을 의미합니다. F1-Score Recall과 Precision의 조화 평균(harmonic mean)으로 계산되며 공식은 다음과 같습니다. EasySegment - Validation and results - Image metrics Image detection accuracy 이미지 검출의 정확도를 의미합니다. Foreground(결함 있는, Positive) image detection rate 결함이 있는 이미지에서 결함이 있는 이미지를 찾은 비율을 의미합니다. Background(결함 없는, Negative) image detection rate 결함이 없는 이미지에서 결함이 없는 이미지를 찾은 비율을 의미합니다. EasySegment - Inference test "Add Image , Add folder" 버튼을 클릭하여 이미지를 추가합니다. Tool 이전 단계에서 학습한 분류기를 선택합니다. 버튼을 클릭하여 검사를 수행합니다. Results 탭에서 처리 시간과 예측 결과를 확인할 수 있습니다. 6. EasyLocate EasyLocate "New" 버튼을 클릭하여 EasyLocate 프로젝트를 생성합니다. 프로젝트의 이름과 경로를 설정한 후 "OK" 버튼을 클릭합니다. EasyLocate - Dataset and annotations "Add label" 버튼을 클릭하여 라벨을 추가합니다. Object 별로 라벨을 생성합니다. 라벨 별로 가중치 (Weight)를 설정할 수 있으며 , 특정 라벨의 가중치가 높을 경우 해당 라벨의 검출력을 높입니다. "Add Image" 버튼을 클릭하여 이미지를 추가하고, 이미지에 라벨을 지정할 수 있습니다. EasyLocate - Dataset and annotations - Objects Object 지정이 필요한 이미지를 선택합니다. Objects 버튼을 클릭하면 툴바가 표시 됩니다. Object labeling을 체크하고 라벨을 선택한 다음, "Add Objects"를 클릭하여 Object를 지정합니다. EasyLocate - Dataset split "New" 버튼을 Dataset split 항목을 생성합니다. 이름과 Training / Validation / Test 비율을 설정하고 "OK" 버튼을 클릭합니다. EasyLocate - Dataset augmentation "Add" 버튼을 클릭하여 Augmentation 항목을 추가합니다. 예상 가능한 이미지 조건을 설정합니다. EasyLocate - Tools - EasyLocate properties "Add"버튼을 클릭하여 Tools 항목을 추가합니다. Capacity: 학습할 수 있는 정보의 양을 의미합니다. Small: 메모리가 훨씬 작고 추론 속도가 빠릅니다. Large: 복잡한 데이터 세트를 처리할 수 있으며 노이즈가 많은 데이터 세트에도 적합합니다. Width, Height 이미지는 500,000픽셀 미만(약 707x707 pixels)이어야 합니다. Width, Height는 적어도 128pixles이어야 합니다. 지정된 크기로 자동 조정되며, 크기가 작을수록 빨라집니다. EasyLocate - Tools - Advanced parameters Maximum number of object 이미지에서 찾을 객체의 최대 개수를 정의합니다. 개수가 적을수록 처리 속도가 약간 증가할 수 있습니다. Same label maximum overlap 동일한 라벨에서 최대 겹침 비율을 정의합니다. Absolute maximum overlap 라벨에 관계 없이 객체 간의 최대 겹침을 정의합니다. EasyLocate - Tools - Dataset split 이전 단계에서 설정한 Dataset split 항목을 선택합니다. 또는 "New random split" 버튼을 클릭하여 새로 생성합니다. EasyLocate - Tools - Training settings Number of iterations 기본값은 50이며 , 학습을 위해 필요 시 수치를 증가합니다. 단, 과적합에 주의합니다. Batch size 학습에 사용되는 이미지의 묶음 단위를 의미합니다. Optimize 사용을 권장합니다. Data augmentation 이전 단계에서 설정한 Data augmentation 항목을 선택합니다. Deterministic training 해당 옵션은 결정론적 알고리즘을 사용하기 때문에 학습이 느려질 수 도 있습니다. EasyLocate - Validation and results - Objects metrics Average precision(AP) Detection threshold를 변경하여 얻은 여러 Recall에 대한 Precision의 평균이며, 1에 가까울수록 좋습니다. Recall 실제 값이 불량(positive)인 것들 중, 예측 값이 불량(positive)인 것들의 비율을 의미합니다. Precision 예측 값이 불량(positive)인 것들 중, 실제 값이 불량(positive)인 것들의 비율을 의미합니다. F1-Score Recall과 Precision의 조화 평균(harmonic mean)으로 계산되며 공식은 다음과 같습니다. EasyLocate - Inference tests "Add Image, Add folder" 버튼을 클릭하여 이미지를 추가합니다. Tool 이전 단계에서 학습한 분류기를 선택합니다. 버튼을 클릭하여 검사를 수행합니다. Result 탭에서 처리 시간과 예측 결과를 확인 할 수 있습니다.
2022-10-26
1. 소개 Open eVision은 이미지 처리와 분석을 위한 Software Tool이며, 이미지 획득을 위한 3’rd party device를 지원합니다. Host memory에서 이미지 처리 수행됩니다. 사용자의 Application에 통합할 수 있게 설계되어 있습니다. Libraries(DLLs), .NET classes 개발 환경에 대해 광범위하게 지원 Libraries 구성 32/64bit libraries : C++ / .NET 참고 문서 사용자가 사용하기 쉽게 HTML Documentation 형태로 제공합니다. C++ / .NET 예제 제공 Open eVision 22.04: https://documentation.euresys.com/Products/OPEN_EVISION/OPEN_EVISION_22_04/ko-kr/Content/00_Home/home.htm 튜토리얼 HTML Documentation에서 알고리즘 별 Step by Step 교육 자료를 제공합니다. Open eVision 의 주요 기능에 대해 중요한 설명이 포함되어 있습니다. 테스트를 위한 샘플 이미지도 제공합니다. Visual C++ MFC MBCS Library for Visual Studio 2013이 반드시 설치되어 있어야 합니다. MSVC와 같은 C++ 컴파일러가 반드시 설치되어 있어야 합니다. 가상 시스템에 제품을 설치할 수 없습니다. 2. 기초 설명 이미지 구조 이미지 구조화 각 용어의 설명 Pointer: 메모리상에 존재하는 이미지 버퍼의 시작 주소. Width: 이미지의 가로 크기. Height: 이미지의 세로 크기. Padding Data: 4byte 정렬을 맞추기 위한 데이터. Buffer Pitch: 패딩(Padding) 데이터를 포함한 전체 가로 크기. 이미지 관심 영역 (Region Of Interrest) ROI 이미지의 관심 영역을 직사각형으로 제공합니다. 다음과 같은 상속 관계입니다. ROI를 이미지에 붙여 (Attach) 사용합니다. Region 이미지의 관심 영역을 임의의 모양으로 제공합니다. 여러 개의 Region을 연산하여 새로운 Region을 생성할 수 있습니다. 해당 기능을 Open eVision Studio에서 제공하지 않습니다. 코드에서만 사용가능합니다. 서브 픽셀 (Sub-Pixel) 다음의 라이브러리에서 1/10 수준으로 제공합니다. EasyMatch EasyFind EasyGauge EasyObject EasyMatch만 서브 픽셀 선택이 가능합니다. 그 외의 모든 라이브러리는 사용자가 선택할 수 없습니다. 멀티 코어 처리 기본적으로 병렬 처리는 비활성화 되어 있습니다. 시스템에서 사용 가능한 물리적 CPU 코어 수를 확인하고, 설정할 수 있습니다. (하이퍼 스레딩 제외) Thread-Safe 클래스 Open eVision은 멀티 스레드에 의한 동시 실행은 지원하지만, 데이터는 한번에 하나의 스레드에서만 접근이 가능합니다. 3. SDK 사용 방법 예제 코드 Open eVision 리소스의 기본 경로는 다음과 같습니다.Open eVision 리소스의 기본 경로는 다음과 같습니다. 예제 코드: C:\Users\Public\Documents\Euresys\Open eVision XX.YY\Sample Programs 예제 이미지: C:\Users\Public\Documents\Euresys\Open eVision XX.YY\Sample Images 딥 러닝, 3D 관련 자료는 홈페이지에서 다운받아야 합니다. https://www.euresys.com/ko/Support/Download-area?Series=9de20c1e-c26c-470c-a5ae-93a48539b4e0 편집하며 계속하기 Open eVision은 ‘편집하며 계속하기‘ 기능을 지원하지 않습니다. 편집하며 계속하기는 메모리를 저장, 재컴파일 그리고 메모리 교체가 발생합니다. 메모리가 단순한 상태가 아닐 때 실패할 가능성이 있으며, Open eVision을 이용한 메모리 매핑은 간단하지 않습니다. 편집하며 계속하기 기능으로 라이선스 프로세스가 다시 시작되어, 오랜 시간이 걸릴 수 있습니다. 라이브러리 참조 방법 C++ ‘프로젝트 속성 > C/C++ > 일반 > 추가 포함 디렉터리’에 라이브러리 include 경로를 추가합니다. 기본 경로: C:\Program Files (x86)\Euresys\Open eVision XX.YY\Include ‘프로젝트 속성 > C/C++ > 명령줄’에 -Zm256과 /bigobj 옵션을 추가합니다. 다음의 헤더 파일을 추가합니다. C# 솔루션 플랫폼을 x86 또는 x64 중 하나만 사용합니다(Any CPU는 지원하지 않습니다.). 플랫폼에 맞는 ‘프로젝트 > 참조’에 Open_eVision_NetApi_XX_YY.dll 파일을 추가합니다. 기본 경로: C:\Program Files (x86)\Euresys\Open eVision XX.YY\Bin32 또는 Bin64 다음의 네임스페이스를 추가합니다. 라이선스 모델 지정 라이선스 초기화 과정에서 생기는 지연을 방지하기 위해, 사용하는 모델만 설정하여 지연 시간을 최소화 합니다. 어떠한 Open eVision Library API를 호출하기 전에, 반드시 최초로 호출합니다. 라이선스 모델은 다음과 같이 열거형으로 정의되어 있습니다. 여러 개의 라이선스 모델을 사용한다면, 다음과 같이 호출합니다. 초기화 어떠한 Open eVision Library API를 호출하기 전에, 반드시 최초로 호출합니다. 앞에서 설명한 Preconfiguration 이후에 호출합니다. 해제 더 이상 Open eVision Library API를 사용하지 않는다면, 가장 마지막에 호출합니다. 예외 처리 Open eVision Library는 에러가 발생하면 예외를 던집니다. 사용자는 반드시 try-catch를 사용하여 예외를 처리해야 합니다. 예외를 처리하지 않으면, 예외 발생 시 프로그램이 비정상 종료될 수 있습니다. .NET 객체 관리 객체 관리 .NET에서 Open eVision Library를 사용할 때, 더 이상 사용되지 않는 객체는 Dispose()를 호출할 것을 적극 권장합니다. Garbage Collector가 .NET객체를 적절하게 해제하는 반면, Open eVision Library 객체는 그렇지 못하기 때문입니다. 연관된 객체 관리 일부 객체는 내부에 다른 객체가 연관되어 있습니다. 연관된 객체에 접근한 후 순서대로 적절하게 해제해야 합니다. C++ dll에서 사용하기 -dll 내부에서만 객체 사용하기 주의 사항 Preconfiguration을 제외한 Open eVision API 호출 전에, 반드시 Easy::Initialize()를 먼저 호출합니다. 더이상 Open eVision API를 사용하지 않는다면, Easy::Terminate()를 호출합니다. Open eVision 객체를 전역(Global object)으로 사용하지 않습니다. C++ dll에서 사용하기 - dll 외부에서 dll 내부로 객체 넘기기 주의 사항 Preconfiguration을 제외한 Open eVision API 호출 전에, 반드시 Easy::Initialize()를 먼저 호출합니다. 더이상 Open eVision API를 사용하지 않는다면, Easy::Terminate()를 호출합니다. Open eVision 객체를 전역(Global object)으로 사용하지 않습니다. 동일한 버전의 Open eVision Library를 dll 내부, 외부에서 사용합니다. C++ dll에서 사용하기 - dll 외부에서 dll 내부로 포인터 넘기기 주의 사항 Preconfiguration을 제외한 Open eVision API 호출 전에, 반드시 Easy::Initialize()를 먼저 호출합니다. 더이상 Open eVision API를 사용하지 않는다면, Easy::Terminate()를 호출합니다. Open eVision 객체를 전역(Global object)으로 사용하지 않습니다. 동일한 버전의 Open eVision Library를 dll 내부, 외부에서 사용합니다. 3'rd party 버퍼 연동하기 버퍼 연결 이미지 컨테이너 객체에 버퍼(예: 카메라)를 연결하기 위해 SetImagePtr()를 사용합니다. width : 이미지의가로크기(픽셀 단위). height : 이미지의세로크기(픽셀 단위). imagePointer : 4byte 정렬된 버퍼의 시작 주소. bitsPerRow : 패딩 데이터가 포함된, 행의 전체 비트 수. 이 값이 0 또는 없다면, 4byte(32bit) 배수에 맞춰 가능한 가장 작은 값이 계산됨. 주의 사항 해당 함수는 깊은 복사가 아닙니다. imagePointer가 삭제되거나 내용이 달라지면 이미지 컨테이너 객체도 영향을 받습니다. 기본적으로, Open eVision은 이미지 버퍼가 4byte(32bit) 정렬이 되어있다고 가정합니다. 이는 이미지의 모든 행의 시작 주소가 4의 배수임을 의미합니다. 또한, 이미지의 가로 크기가 4의 배수라면 문제가 없지만, 4의 배수가 아니라면 이미지 정렬에 문제가 생깁니다. 이미지가 4의 배수가 아니라면, bitsPerRow 인자에 값을 넣어야 합니다. 이미지 버퍼의 버퍼 피치를 취득하여 bit로 변환하여 인자를 넘깁니다. 즉, 8bit 기준으로 buffer pitch * 8 을 인자로 넘겨야 하며, 이 값은 32배수여야 합니다. 만약, SDK에서 버퍼 피치를 얻을 수 없고, 이미지 정렬에 문제가 생긴다면 카메라의 가로 크기를 4의 배수로 맞춰야 합니다. 코드 예시 4의 배수인 경우 4의 배수가 아닌 경우
2022-10-26전체(10)
AUTOMATION TECHNOLOGY
| 번호 | 제품명 | 지원os | 버전 | 업데이트 | 지원형태 | 다운로드 |
|---|---|---|---|---|---|---|
| 1 | AT Solution Package | Windows 32, 64 / Linux | 2025.2 | 2025-07-17 | Cx Series |
EVT
| 번호 | 제품명 | 지원os | 버전 | 업데이트 | 지원형태 | 다운로드 |
|---|---|---|---|---|---|---|
| 1 | EyeVision | Windows 64bit | 4.04.005 | 2025-07-17 | LIBRARIES 평가판 |
LVS
| 번호 | 제품명 | 지원os | 버전 | 업데이트 | 지원형태 | 다운로드 |
|---|---|---|---|---|---|---|
| 1 | LVS_IP_SETUP_v1_0 | Windows | 2022-02-24 |
OPTOTUNE
| 번호 | 제품명 | 지원os | 버전 | 업데이트 | 지원형태 | 다운로드 |
|---|---|---|---|---|---|---|
| 1 | Cockpit | Windows 10,11 | 1.0.8966 | 2025-07-17 | MR-E-2 / MR-E-3 / ICC-4C / ECC-1C | |
| 2 | Lens Driver 4 / 4i | Windows 7, 8, 10 | 1.10.6108 | 2024-07-02 | ELM, EL-16-40, EL-12-30, EL-10-30, EL-3-10 |
EURESYS
| 번호 | 제품명 | 지원os | 버전 | 업데이트 | 지원형태 | 다운로드 |
|---|---|---|---|---|---|---|
| 1 | Open eVision | Windows, Linux | v25.06.0.36009 | 2025-07-17 | LIBRARIES, STUDIO, BUNDLES | |
| 2 | EVISION 6.7 & UPDATE | Windows | 6.7.1.490 | 2022-02-24 | LIBRARIES, STUDIO, BUNDLES | |
| 3 | Memento | Windows, Linux, Mac | v25.05.0.1 | 2025-07-17 | Coaxpress, Cameralink | |
| 4 | egrabber SDK | Windows, Linux, Mac OS | v25.5 | 2025-07-17 | Coaxpress | |
| 5 | Multicam | Windows, Linux,macOS | v6.19 | 2025-07-17 | Camera Link, Analog, Picolo | |
| 6 | Cognex VisionPro adapter for MultiCam | Windows | 1.2 | 2025-06-30 | Cognex Vision Pro | |
| 7 | LabVIEW wrapper for MultiCam | Windows | 2.0 | 2025-06-30 | Multicam | |
| 8 | LabVIEW wrapper for eGrabber | Windows | 2.0 | 2025-06-30 | eGrabber |