총 42 건
1. 소개 Euresys GenApi Script의 문법은 JavaScript와 비슷합니다. 확장자로 .js를 사용하는 이유는 에디터에서 문법의 highlighting 효과가 적용되기 위함입니다. Script로 보드 및 카메라 파라미터를 설정할 경우, 별도의 소스 코드 컴파일 단계가 필요하지 않으므로 유지보수를 간편하게 할 수 있습니다. Script 파일은 간단히 메모장에서 작성 가능하며, 확장자는 js로 저장하면 됩니다. 2. Script 예시 파일 아래 경로에 기본적인 Script 사용 예시가 있습니다. 기본 설치 경로 : C:\Program Files\Euresys\Coaxlink\scripts 3. Script 작성 - 카메라 설정 카메라의 특정 파라미터를 설정하기 위해 아래와 같이 작성합니다. var grabber = grabbers[0]; //첫 번째 보드의 핸들 var remote = grabber.RemotePort; //보드의 카메라 핸들 remote.set(“TriggerMode”, “On”); //Trigger Mode를 On으로 설정 4. Script 실행 - GenICam Browser GenICam Browser에서 작성한 Script 파일을 테스트할 수 있습니다. "Run Script..." 버튼을 클릭하여 작성한 Script 파일을 불러오면, 오른쪽 그림처럼 실행 결과를 확인할 수 있습니다. Script를 잘못 작성하면 에러 메시지가 표시됩니다. 5. Script 실행 - Code Code에서도 마찬가지로 Script 파일을 불러올 수 있습니다. Script 호출을 위한 EGrabber Class의 runScript() API가 제공 됩니다.
2022.10.251. FFC-Wizard로 FFC 파일 생성하기 준비 단계 보드의 종류와 펌웨어에 따라 FFC 지원 여부가 다릅니다. Coaxlink Quad G3(only F/W 1-camera) Coaxlink Octo(only F/W 2-camera) 위 보드가 아닌 경우, 문의 부탁드립니다. 카메라 및 보드의 설정을 Continuous mode로 준비해야 합니다. Device Tab의 CameraControlMethod: NC Remote Device Tab의 TriggerMode: Off 정확한 보정을 위해, 평평한 흰색 타겟(예시, A4용지)을 준비합니다. 8bit 출력 기준으로, 흰색 타겟의 픽셀 값이 약 200 Level로 유지되도록 카메라 파라미터 또는 외부 환경을 조정합니다. 차광 단계에서는 카메라의 빛을 차단해야 하므로, 렌즈 덮개 또는 어두운 물체로 빛을 차단해야 합니다. 프로젝트 빌드 샘플 코드 중 coaxlink-sampe-programs\cpp\ffcWizard의 프로젝트를 실행합니다. 별도의 코드 수정 없이, 바로 빌드(Build) 합니다. 빌드 후 출력 폴더에 ffc-wizard.exe 파일이 생성됩니다. FFC 파일 생성하기 출력 폴더에서 주소창에 cmd를 입력하여 명령 프로프트를 실행 합니다. 명령 프롬프트 창에 명령어를 입력합니다. 명령어 : ffc-wizard.exe --balance --output-ffc=(filename).ffc 또는 ffc-wizard.exe --ifINT --dew=INT --ds=INT --balance --output-ffc=(filename).ffc ※ 보드에 2개 이상의 카메라가 연결되어 있다면, INT에 올바른 인덱스를 입력해야 합니다. 아래의 화면이 표시되면 카메라 차광을 진행합니다. 렌즈 덮개를 이용하여 차광하는 것을 권장합니다. 차광이 준비되면 Enter키를 눌러 다음 단계로 넘어갑니다. (Enter 키를 누르면 어두운 이미지를 얻기 위한 영상취득이 시작됩니다.) 카메라 수광을 진행 합니다. 덮어져 있는 렌즈 덮개를 제거합니다. 수광이 준비되면 Enter키를 눌러 다음 단계로 넘어갑니다. Enter 키를 누르면 평평한 회색 타겟 이미지를 얻기 위한 영상취득이 시작됩니다. 정상적으로 절차가 완료되면 Done 메세지가 출력됩니다. ffc-wizard.exe 경로에 *.ffc 파일이 정상적으로 생성 되었는지 확인합니다. 2. GenICam Browser에서 ffc 파일 적용하기 FFC 파일 불러오기 GenICam Browser를 실행 합니다. 툴 바 -> "Run Script..." -> Load -ffc 메뉴를 클릭합니다. 생성한 FFC 파일을 선택합니다. 정상적으로 Load 되면 Script에 Finished 메세지가 표시됩니다. FFC 파일 적용 확인하는 방법 GenICam Browser의 Stream0에서, FfcControl 파라미터가 Enable로 변경되어 있으면 정상적으로 적용된 것입니다.
2022.10.251. HW 구성 2. SW 구성 각 Grabber 는 Master / Slave 에 맞는 Firmware Update 가 되어 있어야합니다. Area 1-camera 기준 Firmware 예시 Master Board: “1-camera” Slave Board: “1-df-camera” Line 1-Camera 기준 Firmware 예시 Master Board: “1-camera, line-scan” Slave Board: “1-df-camera, line-scan” Slave Pc에서 GenICam Browser를 실행 합니다. "Remote Devices" -> "DF"를 클릭하여 카메라의 해상도를 입력합니다. Master / Slave PC의 GenICam Browser에서 "Start Steam"을 클릭하면 동시에 이미지를 얻어 오는 것을 확인 할 수 있습니다.
2022.10.251. 프로그램 실행 GenICam Browser 실행 방법 시작프로그램 -> Euresys eGrabber -> GenICam Browser를 실행합니다. 주의 사항 12.7 이하 버전에서는 중간 경로의 이름이 변경됩니다. Ex) 시작프로그램 -> Euresys Coaxlink -> GenICam Browser 2. Color Conversion - Board Color Conversion (Board) 상단의 Preferences 클릭 -> Image 탭의 Enable Bayer decoding을 해제 합니다. 우측의 Data Stream 클릭 -> Bayer 카테고리의 BayerMethod에서 Legacy, Advanced 중 하나의 알고리즘을 선택한다. 설정이 끝나면 좌상단의 Start Stream 버튼을 선택하여 영상을 확인합니다. 특징 FPGA에서 처리 할 수 있는 한계가 있어서 FPS가 감소 할 수 있으며 Board에 따라 지원이 제한 될 수 있습니다. Quad G3 인 경우 최대 100만 픽셀을 처리 할 수 있습니다. 3. Color Conversion - S/W Color Conversion (S/W) 우측의 Data Streams 클릭 -> Bayer 카테고리의 BayerMEthod 값을 Disable로 변경 합니다. 상단의 Preferences 클릭 -> Image 탭의 Bayer decoding method에서 사용하려는 알고리즘을 선택합니다. Method1, Method2, Method3 중 택일 상단의 Preferences 클릭 -> Image 탭의 Enable Bayer decoding 을 선택합니다. 설정이 끝나면 좌상단의 Start Stream 버튼을 선택하여 영상을 선택합니다. 특징 PC 성능에 따라 처리속도가 가변되어 FPS에 변화를 줄 수 있으므로 테스트가 필요합니다.
2022.10.251. Neural Network Classification 미리 정의된 클래스 목록 중 가장 확률이 높은 클래스로 분류합니다. Firefly-DL 카메라는 인식된 현재 클래스와 그를 결정하게 된 백분율을 제공 합니다. Object Detection 미리 정의된 클래스 목록 중 이미지 내에 있는 각각의 객체에 대한 확률이 높은 클래스로 분류 합니다 이미지 내의 위치정도(Bounding Box)를 제공 합니다. 동일한 이미지 내에서 다수의 클래스를 검출 할 수 있습니다. 2. 환경 구축하기 OverView 미리 학습된 신경망을 재 학습하여 Movidius Chipset 전용 형식으로 변환 하고, 재 학습된 신경망을 FFY-DL모델에 탑재하여 Deep Learning 검사환경을 구현 합니다. Neural Network의 구축, Firefly-DL에서 Inference가 가능하도록 변환하는 프로세스를 실행 하기 위해서는, 환경 구성이 필요 합니다. 요구되는 프로그램이 이미 설치 되어 있는 경우 (Spinnaker 제외), 프로그램 설정으로 인한 충돌을 방지하고자 재설치를 진행하는 것을 권장 드립니다. Neuro Utility PC에서 사용되는 네트워크 파일 (Neural Network)을 Firefly-DL에서 사용가능한 형식으로 변환하는 기능을 제공 합니다. 변환된 네트워크 파일을 카메라로 업로드 하는 기능을 제공 합니다. 아이콘을 클릭하여 설치를 진행 합니다. 이 나타날 때 까지 Next 를 눌러 진행 합니다. Install을 눌러 설치를 진행 합니다. Python 네트워크 파일 학습 및 FFY-DL 용으로 재 학습을 위한 스크립트를 실행하는 기능을 수행합니다. 아이콘을 클릭하여 설치를 진행 합니다. Add Python 3.5 to PATH를 선택합니다. Install Now를 클릭하여 설치를 진행합니다. Tensor Flow 네트워크 파일을 제작하는 오픈소스 플랫폼 FFY-DL에서 사용 가능 하도록 형식을 변환 (재 학습) 하는 기능을 제공 합니다. 명령 프롬프트를 실행합니다. py -3.5 -m pip install tensorflow==1.13.2를 입력 합니다. Tensor Flow for Poet Google에서 제공하는 Tensor flow로 구현된 네트워크 학습 예제 네트워크를 학습하는 방법을 확인 할 수 있는 스크립트를 포함 합니다. https://github.com/googlecodelabs/tensorflow-for-poets-2 해당 경로에서 파일을 받아 압축을 해제하여 줍니다. Training Data Tensor Flow for Poet을 테스트하기 위한 학습용 이미지 데이지, 민들레, 장미, 해바라기 및 튤립 등 다양한 꽃 사진으로 구성 https://download.tensorflow.org/example_images/flower_photos.tgz 경로에서 데이터를 다운로드 한 뒤 tensorflow-for-poet-2-master\tf_files 디렉토리에서 floswer_photos폴더의 압축을 해제 합니다. MobileNet-SSD (Detection 전용) 사전에 학습된 Caffemodel 및 prototxt파일을 연결하는 예제 Windows 환경에서는 Upload만 가능 https://flir.app.boxcn.net/s/frspfle54xi44qzi9ozybqg5i7s9orhz 해당 경로에서 다운로드 가능 3. Classification Classification - Retrain TensorFlow-for-poet-2-master 폴더 경로로 이동 합니다. 폴더의 Address bar에 cmd를 입력 합니다. (명령 프롬프트 윈도우가 해당 폴더경로를 포함하여 실행 됩니다.) Py -3.5 –m scripts.retrain –how_many_training_steps=500 –output_graph=tf_files/retrained_graph.pb –output_labels=tf_files/retrained_labels.txt –architecture=mobilenet_0.50_224 –image_dir=tf_files/flower_photos 을 명령 프롬프트 윈도우에 적어 실행 합니다. ※사용자의 PC 환경 (CPU)에 따라 학습시간은 상이할 수 있습니다. Retrain이 완료 되었는지 확인합니다. Tensorflow-for-poet-2-master\tf_files 경로에 들어가 retrained_graph.pb 및 retrained_labels.txt 파일이 정상적으로 생성 되었는지 확인 합니다. Classification - Command how_many_training_steps 학습 반복 횟수 일반적으로 많이 학습할 수록 검사 성능 향상. output_graph 재 학습된 Network File의 이름. output_label 재 학습에 사용된 이미지에 대한 Label 정보. architecture 사용되는 신경망 구조. 다양한 mobilenet 버전이 사용될 수 있습니다. image_dir 학습에 이용되는 이미지 경로. Classification - Upload Flir Neuro Utility를 실행 합니다. (관리자 권한으로 실행) Tensorflow (Classification)을 선택 합니다. CONTINUE 를 눌러 다음 단계를 진행합니다. .pb File : Retrain으로 생성된 pb 파일의 경로를 지정합니다. Network Input Width(px) : 224 Network Input Height(px) : 224 Input Layer Name : input Output Layer : final_result Output Directory : FFY-DL 용으로 변환된 네트워크 출력파일의 생성 경로를 지정 합니다. Convert File Name : FFY-DL 용으로 변환된 네트워크 출력 파일의 이름을 지정 합니다. Inference Type : pb파일이 학습된 알고리즘을 선택 합니다. Camera user Set : 저장할 메모리를 지정 합니다. Convert를 눌러 변환 과정을 진행 합니다. 완료가 되면 CONTINUE를 눌러 다음 단계를 진행 합니다. 선택사항 - Validation Validation의 사용할 이미지 폴더 경로를 지정합니다. START를 클릭 합니다. 선택사항 - Validation Validation 결과를 확인 합니다. 흰색 : 학습된 pb 파일에 대한 결과 주황색 : Convert 된 네트워크 결과 CONTINUE를 눌러 다음단계를 진행 합니다. Camera 연결 상태를 확인 합니다. 업로드 방식을 지정 합니다. Flash : Camera Flash Memory에 저장 (비휘발성) DDR : Camera DDR Memory에 저장 (휘발성) Configure & Develop을 눌러 업로드를 진행 합니다.
2022.10.251. AdapterConfigGUI 프로그램 실행하기 시작 > Spinnaker SDK (64Bit) > Utilities를 선택합니다. AdapterConfigGUI 프로그램을 실행 합니다. 2. AdapterConfigGUI 프로그램 사용하기 "Start" 버튼을 클릭 합니다. 설정하고자 하는 NIC Port를 선택 합니다 "Next" 버튼을 클릭 합니다. 네트워크 카드에 설정하고자 하는 IP를 IP Address와 Subnet Mask에 입력 합니다. "Next"를 클릭 합니다. Receive Buffers (Bytes)를 최대 값으로 설정 합니다. Transmit Buffers (Bytes)를 최대 값으로 설정 합니다. Jumbo Packets (Bytes)를 최대 값으로 설정 합니다. "Next" 를 클릭 합니다. ※ 네트워크 카드 드라이버에 따라 최대 설정 값은 하기 이미지와 다를 수 있습니다. ※ 일반적으로 Receive Buffers(Byte)의 값은 2048 이상, Jumbo Packests 는 9Kb (9014)로 설정 되며, 해당 값이 설정이 되지 않을 경우 네트워크 카드 드라이버 재설치가 필요 합니다. "Configure" 를 클릭 합니다. 네트워크 설정이 정상적으로 되었는지 확인 합니다. "Finish"버튼을 클릭하여 설정을 종료 합니다.
2022.10.241. 설정 방법 시작 프로그램 -> Spinnaker SDK (64bit) -> SpinView를 실행합니다. Device를 선택하고 연결 합니다. Features에서 “Device Reset”을 검색합니다. Execute버튼을 클릭하면 카메라 전원이 재인가 됩니다.
2022.10.241.SpinPixelCorrection_WPF 설치 설치 경로 하기 경로로 이동하여 SpinPixelCorrection_WPF 프로그램이 존재 합니다. 경로 : C:\Program Files\FLIR Systems\Spinnaker\bin64\vs2015 SpinPixelCorrectionWPF GUI 현재 PC에 연결된 카메라의 목록. Pixel Correction을 적용시킬 환경 정보를 기재. Manual로 Pixel 위치를 추가 혹은 제거하는 기능. Correction이 적용될 Pixel 위치 List Pixel Correction 방법론 및 Table 적용 버튼 PixelCorrection 진행 SpinView를 실행하여 실제 사용할 환경 정보를 취득 합니다. (Exposure Time, Gain, Temperature) 반드시 Exposure Auto와 Gain Auto가 Off인 상태에서 정보를 취득해야 합니다. 카메라 Mount 캡을 닫아 차광상태를 만들어 줍니다. SpinView를 종료하고 SpinPixelCorrectionWPF를 실행 합니다. 취득 환경 데이터를 입력 합니다. Threshold 파라미터는 Pixel 값이 몇 이상부터 비정한 Pixel로 인식에 대한 기준값이 되어 줍니다. Apply Filter를 클릭하여 진행 합니다. 255개 이내의 비정상 Pixel이 확인 될 경우 255개 이상의 비정상 Pixel이 확인 될 경우 Pixel은 최대 255개 까지만 보정이 가능합니다. 취득된 Pixel List를 확인 합니다. Table Save를 눌러 Pixel List를 카메라에 저장 합니다. Correction Method를 Average로 변경 합니다. Correction Apply To Table 을 클릭하여 카메라에 적용 시킵니다. 카메라 전원을 재인가 한뒤 이미지를 확인 합니다. 주의 사항 SpinPixelCorrection의 경우 최대 255개의 Pixel까지 보정이 가능합니다. 255개 이상의 Pixel이 발생 할 경우, Threshold 수치를 조정하여 255개 이하의 Pixel이 취득될 때까지 수치를 조정해야 합니다. 보정 이후, 온도의 변화 노출시간, Gain의 변화에 의해 다른 Defective Pixel이 발생할 가능성이 존재 합니다. 따라서, 보정 이후에는 안정적인 환경을 구성하여 사용해야 합니다.
2022.10.241. UserSet Load & Save 사용 방법 Features -> 카메라 모델명 -> User Set Control를 선택합니다. UserSet 사용 방법 UserSetSelector : Load & Save 에 사용 할 영역을 설정합니다. UserSetLoad : 지정된 영역의 데이터를 불러옵니다. UserSetSave : 현재 설정값을 지정한 영역에 저장합니다. UserSetDefaultSelector : 전원 인가 시 Load 할 영역을 설정합니다.
2022.10.241. Burst Trigger Mode 설명 Trigger 1회를 이용하여, N회의 Image를 Capture 하는 방식 Image 취득 개수는 AcqusitionBurstFrameCount 파라미터로 결정 되며, 최대 255까지 설정 가능 Frame 취득 속도는 Acqusition Frame Rate에 의해 결정 2. Burst Trigger Mode 설정 Control Window에서 "Features"를 선택합니다. Burst를 검색합니다. Acquisition Brust Frame Count를 설정하여 Trigger 당 이미지 취득회수를 설정 합니다. (1~255) Trigger Selector를 "Frame Burst Start"로 선택합니다. 3. Trigger Mode 설정 Control Window 에서 " Features"를 선택합니다. Trigger를 검색합니다 "TriggerMode"를 On으로 설정 합니다 "Trigger Source"를 "Software" 혹은 "Line0"으로 설정 합니다.
2022.10.24