총 46 건
1. 프로그램 실행 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. Camera GPIO 4EA Bi-direction IO 제공 기본 3.3V 출력이 되며, 외부 회로 (Pull-up) 구성을 통해 24V까지 사용 가능 2. GPIO 설정 Line Selector : 사용할 GPOI 를 선택 Line Model : Input / Output을 선택 Line Source : Inference Output (Infernce 결과를 출력으로 사용) Line Inference Target: Out에 반영시킬 Class를 선택 Line Inference Threshold : Inference 결과에 대한 Accuracy를 선택 ※ Line Inference Target / Threshold는 Line Source가 반드시 Inference Output으로 선택이 되어 있어야 선택 가능. 3. 동작 예시 Class 0의 Inference 결과가 80% 이상일 경우, GPIO0의 출력 발생 Class 1의 Inference 결과가 80% 이상일 경우, GPIO1의 출력 발생 4. Acquisition On Boot Enable 설정하기 카메라 부팅 완료 후에 즉시 영상 촬영 및 검사 진행이 가능하도록 설정이 가능합니다. 5. UserSet 저장하기 설정완료 이후 진행 합니다. UserSetSelector : 저장할 메모리 공간을 선택 UserSetDefault : 파워 재인가시 Load하는 메모리 공간 선택 ※ UserSetSelector의 경우 , Inference File 업로드 시 , Neuro Utility에서 선택했던 UserSet을 그대로 사용하는 것을 권장 드립니다.
2022.10.251.영상 취득 학습을 하고자 하는 대상체의 영상을 취득합니다. 확장자는 PNG, JPG로 이미지를 저장 합니다. 2. Data Annotation Data Annotation은 Detection과 같은 지도 학습 전처리의 필수 단계입니다. 딥러닝 네트워크는 Annotation 설정이 되어 있는 데이터에서 반복되는 패턴을 인식하는 방법을 학습니다. 충분한 학습이 되어야 새 데이터가 제공될 때, 패턴을 인식하게 됩니다. 다운로드 링크 : https://tzutalin.github.io/labelImg/ Labelmg를 실행 합니다. Open Dir를 클릭하여 이미지 경로를 Open 합니다. Change Save Dir를 클릭합니다. Data Annotation 결과 파일 (XML)이 저장될 경로를 설정 합니다. ※이미지 경로 하위경로로 만드는 걸 권장합니다. 키보드의 “W“ 버튼을 클릭 합니다. Drag 기능을 이용하여 Object에 Bounding Box를 그립니다. Label 명을 기입하고 OK 버튼을 클릭 합니다. File 을 눌러 Save를 실행 합니다. ※View 목록에 “Auto Saving” 을 체크 할 경우, 자동 저장이 됩니다. File List의 이미지를 선택해 가며 모든 이미지에 Annotation을 진행 합니다. Save 경로에, XML 파일이 정상적으로 저장되어 있는지 확인 합니다. 3. Augmentation Detection 학습을 위해 데이터 셋의 숫자를 증가 시키는 작업이 필요합니다. (이미지 수가 충분한 경우, 해당 단계는 Skip하여도 됩니다.) Augmentation은 취득된 이미지를 변형시켜 새로운 이미지를 생성 합니다. Pip를 설치 합니다. Sudo apt-get install python3-pip 다음 명령어를 실행 합니다. sudo -H pip3 install --upgrade --ignore-installed pip setuptools Imgaug를 설치 합니다. pip3 install imgaug 하기 명령어를 실행 합니다 cd Desktop git clone https://github.com/FLIR/IIS_Object_Detection.git IIS_Object_Detection 폴더의 image_aug_w_bounding_boxes.py 를 실행합니다. “RGB”를 “L”로 변경 합니다. (Mono 이미지 학습 시) 다른이름으로 저장을 진행 합니다. ex ) image_aug_w_bounding_boxes_Mono.py IIS_Object_Detection 폴더에 학습에 필요한 이미지를 옮깁니다. 수정된 py를 이미지 경로로 복사 합니다. 터미널을 실행 합니다. 하기 명령어를 실행 합니다. python3 image_aug_w_bounding_boxes_Mono.py --input_image_dir='./image/’ --input_bbox_dir='./Annotate/' 정상적으로 동작이 완료 되었는지 확인 합니다. 4. Docker 실행 하기 하기 명령어를 실행 합니다. docker run --gpus all --rm -it --name caffe-env-1 -e DISPLAY=${DISPLAY} --net=host --privileged --shm-size=2g --ulimit memlock=-1 --ulimit stack=67108864 -v /dev:/dev -v ~/Desktop:/home/dockerasigiuk/caffe-ssd_devel:latest 해당 terminal은 켜둔 상태로 유지 합니다. 5. Docker 학습 환경 구성하기 새로운 terminal을 실행합니다. 하기 명령어를 실행 합니다 cd Desktop/IIS_Object_Detection nano project.config DATA_DIR에 Augmentation 경로를 설정 합니다. CLASSNUM은 학습하고자 하는 Detection Class 개수를 의미 합니다. *항상 학습 개수 +1 로 설정해야 합니다. (BackGround) CLASSES 는 학습하는 Detection Class의 이름을 지정 합니다. 다수인 경우 “camera,lens” 형태로 ‘,’로 구분합니다. PROJECT_NAME은 출력물이 저장될 폴더명을 지정합니다. (학습 시 자동 생성 됩니다) 6. Project.config 수정 하기 하기 명령어를 실행 합니다.Nano project.config 수정할 부분을 수정한 뒤 CTRL + O , Enter, CTRL + X 를 진행 합니다. 7. 학습 하기 Docker가 실행중인 terminal에서 경로를 이동 합니다. cd IIS_Object_Detection 학습 실행 명령을 실행 합니다. ./run.sh 8. Project.config 수정하기 Docker가 실행중인 Terminal에서 목록을 확인 합니다.ls IIS_Object_Detection 폴더로 이동 합니다. cd IIS_Object_Detection 학습을 시작 합니다. ./run.sh
2022.10.25서비스 설정 경로 1. 서비스를 실행 합니다. 2. CVB Management Service를 찾습니다. 서비스 설정 세부사항 1. CVB Management Service를 우클릭 하여 속성창을 오픈 합니다. 2. 복구 Tap으로 이동 하여 하기와 같이 설정을 변경 합니다. 첫째 실패 : 서비스 다시 시작 둘째 실패 : 서비스 다시 시작 후속 실패 : 서비스 다시 시작 다음 기간 이후 실패 횟수 다시 설정 : 120 다음 시간 이후에 서비스 다시 시작 : 0
2022.10.241. 설정 방법 연결할 카메라를 선택한 후 "Force IP"를 클릭 합니다. Force IP 완료 후 "OK"를 클릭 합니다. 를 클릭하여 이미지 취득을 멈춥니다. 를 클릭하여 Camera Control 창을 엽니다. Trigger Mode 설정 탭을 클릭합니다. Trigger Control Enable / disable trigger를 체크합니다. Mode 0 : 트리거 신호가 들어올 때마다 노출합니다. 15 : 트리거 신호가 들어오면 Parameter에 설정된 값 만큼 노출합니다. Trigger Source Trigger 신호를 인가할 핀을 선택합니다. Trigger Polarity Trigger 신호 극성을 선택합니다. Trigger Delay Enable / disable trigger를 체크합니다. Min trigger delay 부터 Max trigger delay 까지 Trigger Delay를 설정할 수 있습니다 Software Trigger Fire Software Trigger를 클릭하면 Software Trigger 선호가 발생합니다. Pin Direction Control Trigger 신호를 인가할 핀을 In으로 선택합니다. Strobe 설정 Strobe Control Strobe 출력을 내보낼 핀의 Enable strobe for this pin을 체크합니다. Polarity Strobe 신호의 극성을 선택합니다. Delay Strobe 신호의 Delay를 설정할 수 있습니다. Duration Strobe 신호의 출력 주기를 설정할 수 있습니다. Pin Direction Control Strobe 신호를 내보낼 핀을 Out으로 설정합니다.
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. Auto White Balance 사용 방법 평평한 흰색 타겟 (Ex: A4용지, 조명 디퓨져)를 카메라 FOV에 들어오도록 합니다. 렌즈는 초점이 맞지 않도록 디포커싱 합니다. Analog Caontrol -> Balance White Auto를 Once로 변경 합니다. 2. Color Algorithm 설정 방법 SpinView Image 영역에서 우 클릭 합니다. Color-Processing Methods를 클릭 합니다. 원하는 Color Algorithm을 선택 합니다.
2022.10.211. 주의 사항 일반적으로 GigE를 사용할 때는 한 제조사의 SDK만 사용 합니다. Cognex의 경우 Vision Pro를 설치하면 GigE Driver도 같이 설치가 됩니다. 만일 JAI GigE SDK도 설치를 하게 되면 GigE SDK가 서로 퍼포먼스에 영할을 줄 수도 있습니다. 따라서 지금처럼 Vision Pro를 사용할 경우 JAI GigE SDK는 설치하지 않습니다. 2. 사용 순서 Vision Pro 설치 후 'GigE Vision Configuration Tool'을 실행 합니다. Network IP와 Camera IP를 수정하여 통신이 가능하도록 합니다. Vision Pro를 실행 합니다. 'Image Source'를 두번 클릭 합니다. '카메라'를 클릭 합니다. 연결할 카메라를 선택 합니다. 만일 다음과 같은 에러가 발생할 경우, eBus Driver를 설치 합니다. ※eBus Universal Pro Driver를 클릭하여 설치하면 다음과 같이 상태가 변경 됩니다. 정상적으로 연결이 되면 다음과 같은 화면이 표시 됩니다. 영상 취득 버튼을 클릭하면 다음과 같이 영상을 볼 수 있습니다. 3. 파라미터 변경 카메라 연결이 정상적으로 된 상태에서 다음의 값을 입력하여 카메라의 파라미터를 변경 합니다. Feature : GenICam Node Name을 입력. Value : 해당 GenICam Node의 설정 값을 입력. Read : 해당 GenICam Node의 현재 값을 불러옴. Write : 해당 GenICam Node에 Value 값을 적용.
2022.10.201. 환경 구성 PTP 기능을 사용하면 동일한 네트워크에 있는 장치들의 Timestamp를 Master 기준으로 동기화 할 수 있습니다. Master: Timestamp를 동기화할 주 장치 Slave: 마스터와 Timestamp를 동기화할 장치 PTP는 아래와 같이 2가지 구조로 사용 가능합니다. Camera 만을 사용하여 구성할 경우, MAC 주소가 가장 낮은 Camera가 Master가 됩니다. PTP - 일반적인 시스템 구조, TP - Camera만을 사용한 구조환경 구성 > PTP - 일반적인 시스템 구조 >PTP - Camera만을 사용한 구조 2. 네트워크 설정 동일한 네트워크 영역으로 IP 및 Subnet Mask를 설정해야 합니다.네트워크 설정 3. Remote Device 설정 모든 Camera를 아래와 같이 동일하게 설정합니다. Trigger Mode: On Trigger Source: Action 0 Action Device Key: 0x12345678 Action Group Mask: 0xffffffff Action Group Key: 0x1 Ptp Enable: TrueRemote Device 설정 4. 인터페이스 설정 Interface 설정은 동일 네트워크 영역의 Camera는 모두 동일하기 때문에 연결된 Camera 중 한 쪽에서만 변경하면 됩니다. Action Device Key: 0x12345678 Action Group Key: 0x1 Action Group Mask: 0xffffffff 아래 공식으로 모든 Camera의 Gev SCPD 값을 설정합니다. Packet Size * 1,000,000,000 * ( Camera 개수 – 1 ) / 100,000,000 Example) 4대의 Camera, Packet Size 8164 일 경우 8164 * 1,000,000,000 * ( 4 – 1 ) / 100,000,1000 = 244920Remote Device 설정 Action Command 사용 후 각 Camera의 이미지 출력 시작하는 타이밍에 대한 Timestamp 간격 측정 결과 거의 동시에 촬상 되는 것을 확인할 수 있습니다.
2022.10.19