engiAI
- 요구 사항
- 무엇을 하는지
- 라이선스
engiAI 인터페이스는 한국어를 지원합니다. 이 설명서의 버튼과 필드 이름은 프로그램에 표시되는 그대로 표기했습니다.
내용
- 1. 엔지AI와 존-페어 방법의 원리
- 1.1. 이 방법이 전체 프레임을 분류하는 방법에 비해 어떤 이점을 제공하는가
- 1.2. 속도: AI는 필요한 부분만 추출
- 1.3. 예상되는 정확도: 자신의 카메라로 측정
- 1.4. 빠르고 간편한 설정: 원하는 설정, 영역 및 모델을 몇 번의 클릭만으로 설정
- 2. 프로그램 인터페이스 1분 만에 완성
- 3. 카메라: 연결 및 설정
- 3.1. 어떤 카메라를 지원하나요
- 3.2. 카메라 윈도우: 추가, 재연결, 삭제
- 3.3. HIKROBOT 및 SICK용 카메라 기능
- 3.4. USB/웹캠용 카메라 탭
- 3.5. 저장된 카메라 설정 (프레임)
- 3.6. GigE 네트워크 및 재연결
- 4. 존-페어 모델: 격자 구조에서 학습된 모델로의 전환
- 4.1. 방법의 구조: 하나의 모델, 각 영역에 맞는 클래스
- 4.2. 모델 생성
- 4.3. 결제 영역 표시
- 4.4. 기준 이미지 설정: 정렬 영역
- 4.5. 영역별 이미지: 정상 데이터 및 합성 데이터
- 4.6. 2번의 클릭으로 합성 데이터 오류 수정: 요소가 기반과 함께 이동
- 4.7. 영역별 이상 현상: 설정 창
- 4.8. 기준 이미지: 납땜 영역 및 영역 편집
- 4.9. 모델 훈련
- 5. 검사
- 5.1. 모델을 지정하고 영역을 확인
- 5.2. 영역 식별 임계값
- 5.3. 유연한 컨베이어: 어떤 자세에서도 사용 가능
- 5.4. 어떤 신호를 분석할 것인가
- 5.5. 노란색 영역: 클릭으로 영역 끄기
- 5.6. 화면과 콘솔에서 확인할 수 있는 내용
- 6. 트리거: 카메라 입구에 장착된 외부 센서
- 7. 출력: 리젝터, 디지털 카메라 출력 및 TCP
- 7.1. 참고자료: 연락처 및 테스터 사용 방법
- 7.2. 출력 창: 영역 규칙
- 7.3. TCP 패킷을 로봇 또는 PLC로 전송
- 7.4. 카메라의 독립적인 출력
- 7.5. 음성 알림: 각 구역별 맞춤 음성
- 7.6. 작동 기록 및 데이터베이스
- 8. 다른 모드 및 작업
- 9. 설정, 콘솔, 요구 사항 및 라이선스
- 10. 간략한 점검 목록 및 문제 해결
사용 방법: 1단계에서는 해당 방법의 목적과 예상 결과를 설명합니다. 3~5단계는 빈 프로그램에서 작동하는 검사를 수행하는 단계이며, 순서대로 진행해야 합니다. 6~7단계는 센서, 출력 및 TCP 연결 설정입니다. 8~10단계는 나머지 기능, 설정 및 확인 목록입니다.
1. 엔지AI와 존-페어 방법의 원리
engiAI Ethernet System은 생산 라인을 위한 시각 검사 프로그램입니다. 산업용 또는 일반 카메라에서 이미지를 캡처하여 영역으로 분할하고, 훈련된 신경망을 사용하여 각 영역을 검사한 다음, 결과를 카메라의 디지털 출력, 로봇 또는 PLC로 전송하거나, 로그에 기록합니다. "존-페어" 방법은 "각 위치에 적합한" 제품에 적합하도록 설계되었습니다. 예를 들어, 인쇄 회로 기판, 조립품, 조립함 내 부품 세트, 포장 등이 있습니다.
1.1. 전체 이미지를 분류하는 방법과 비교했을 때 이 방법이 제공하는 것
일반적인 접근 방식은 전체 이미지 또는 특정 영역에 대해 "정상/이상" 두 개의 클래스를 가진 단일 모델을 사용하는 것입니다. 하지만 이러한 모델은 작동하지 않습니다. 예를 들어, BR1 교량 아래 영역(2 영역)의 빈 공간은 "이상"으로 인식되지만, 다른 영역의 동일한 빈 공간은 "정상"으로 인식됩니다. 단일 모델로는 이러한 두 가지 상황을 모두 처리할 수 없습니다. 또 다른 극단적인 방법은 각 부품에 대해 별도의 모델을 사용하는 것입니다. 이는 수십 번의 훈련과 수십 개의 파일 저장 공간을 필요로 합니다.
존 페어는 다음과 같이 해결합니다: 모델은 하나이고, 영역의 수는 클래스 수와 같습니다. "영역"은 하나의 부품을 둘러싸는 사각형입니다. "클래스"는 네트워크가 학습하는 이미지 폴더입니다. 각 영역은 다음과 같은 쌍을 가집니다: "zone_001" (정상 영역 1, 예: C30 콘덴서) 및 "zone_001_anomaly" (불량 영역 1); "zone_002" 및 "zone_002_anomaly"는 BR1 다리입니다. 1번 영역을 검사할 때, 프로그램은 해당 영역의 쌍만 확인하고, 2번 영역에 대한 정보는 사용하지 않습니다. 이상 영역은 필수는 아닙니다: 불량은 영역의 모양을 변경하고, "정상"에 대한 신뢰도가 자동으로 감소합니다. 하지만 합성 데이터(4.6절)를 사용하면 한 번의 클릭으로 생성할 수 있으며, 신뢰도를 크게 향상시킵니다.

1.2. 속도: AI는 필요한 부분만 확인
신경망은 전체 이미지를 받지 않습니다. 각 영역에 대해서는 해당 영역의 사각형만 잘라내고, 영역 번호를 선택하여 두 개의 클래스를 지정합니다. 하나의 이미지의 영역은 병렬로 처리 (최대 4개의 스트림)되며, 모든 영역의 결과는 하나의 패킷으로 화면에 표시됩니다.
- 분석 속도는 시간으로 설정됩니다. "카메라 탭의 '초당 분석 횟수(AI)' 슬라이더는 정확히 초당 N번의 분석을 의미하며, 'N번째 프레임마다'가 아닙니다. 한계는 카메라의 프레임 속도와 추론 시간을 의미합니다.
- 기본적으로 GPU를 사용합니다. ONNX Runtime과 CUDA를 통해 추론이 수행됩니다. NVIDIA 그래픽 카드가 없는 경우, 프로그램은 자동으로 CPU로 전환하고, 상태에 "GPU (CUDA)" 또는 "CPU"로 표시합니다.
- 불필요한 데이터 제거. 메모리 공간은 한 번에 할당되어 재사용되며, 분석 시간은 프레임마다 변동되지 않습니다.
- 특정 작업에 맞게 모델을 조정합니다. 존-페어 프로그램은 입력 크기를 128 픽셀로 자동 설정하고 YOLO11 네트워크의 "s" 크기를 사용합니다. 영역 잘라내기는 거의 크기 조정이 필요하지 않으며, 네트워크는 수백 개의 클래스 쌍에 충분한 용량을 제공합니다.
- 자동화 시스템은 인력 부족 문제를 해결합니다. AI 시스템은 부품 검색 및 정렬 작업을 한 번에 처리하므로, 인력 투입이 줄어듭니다.
- 화면 표시가 분석을 방해하지 않습니다. 타일은 초당 최대 25번 렌더링되며, 새로운 카메라 프레임에 따라 화면 크기가 타일 크기로 줄어들고, 화면에 표시되기 전에 로그는 백그라운드 스레드로 기록됩니다. 8메가 픽셀 프레임과 수많은 영역에서도 인터페이스가 반응성을 유지합니다.
화면 상단의 상태 표시줄에는 실제 프레임 속도(fps)와 마지막 분석의 밀리초, 그리고 Eff (즉, 초당 실제로 완료된 분석 횟수)가 표시됩니다.
1.3. 기대할 수 있는 정확도: 자신의 카메라로 확인
이 프로그램은 카메라와 렌즈에 관계없이 "0.5mm"의 변위를 보장하지 않습니다. 변위 감도는 제품당 픽셀 수와 모델이 학습한 경계에 따라 결정됩니다. 다음 두 줄로 계산합니다:
최소 감지 가능한 변화는 약 5 픽셀이며, 이는 픽셀당 밀도(픽셀/mm)를 기준으로 계산됩니다
5px – 권장 설정에서 발생하는 이상(표준 오차는 0–2px)의 하한 변위. 기본 설정은 11px/mm를 기준으로 합니다. 이 경우 0.5mm는 5–6px로, 이는 개발 단계에서 합의된 목표입니다. 다음 값을 입력하세요:
| 카메라 (프레임 폭) | 시야 100mm | 200mm | 300mm | 400mm |
|---|---|---|---|---|
| 3264px (USB 8MP, 사진과 동일) | 0.03mm/px → 변위 ≈ 0.15mm | 0.06 → ≈ 0.3mm | 0.09 → ≈ 0.45mm | 0.12 → ≈ 0.6mm |
| 2448 픽셀 (HIKROBOT 5MP) | 0.04 → ≈ 0.2mm | 0.08 → ≈ 0.4mm | 0.12 → ≈ 0.6mm | 0.16 → ≈ 0.8mm |
| 1920 픽셀 (SICK picoCam, HIKROBOT 2MP) | 0.05 → ≈ 0.25mm | 0.10 → ≈ 0.5mm | 0.16 → ≈ 0.8mm | 0.21 → ≈ 1.0mm |
1.4. 빠른 시작: 설정이 완료되었고, 영역 및 모델을 몇 번의 클릭으로 설정
이 방법은 기계 학습 경험이 없는 기술자가 단 한 번의 교대 근무 만에 작동하는 모델을 얻을 수 있도록 설계되었습니다. 미리 설정할 수 있는 모든 사항은 프로그램 데이터베이스에 저장됩니다.
- 1분 단위 영역 설정 ROI 편집기에서 특정 영역을 선택하고, 영역의 크기를 지정합니다 (예: 256px). 여러 개의 동일한 요소가 있는 경우, 전체 표에 영역을 드래그하여 프로그램이 자동으로 행과 열을 계산하도록 합니다.
- 합성 데이터의 정상 및 불량 설정이 미리 구성되어 있습니다. "기본값", "요소 이동", "색상 및 색상" 버튼은 미리 정의된 프로필을 선택합니다. 파일 수, 카메라 캡처된 프레임 수, 예상 촬영 시간을 "촬영" 버튼을 누르기 전까지 표시합니다.
- 학습 파라미터는 자동으로 설정됩니다. 첫 번째 영역별 이미지를 촬영한 후, 프로그램은 이미지 크기를 128, 모델 크기를 s, 에포크를 50, 배치 크기를 64로 설정하고, 이상치 클래스와 충돌하는 증강 기능을 학습 중에 비활성화합니다.
- 카메라 설정은 버튼을 사용하여 합니다. "AI (프레임별) 자동 설정"은 셔터 속도, 감도, 색상 영역 및 화이트 밸런스를 자동으로 설정합니다. USB 카메라의 경우 "폼별 자동 설정" 및 "파라미터 고정" 기능이 있습니다.
- 카메라 설정 세트 미리 설정된 파라미터는 특정 이름으로 저장되며, 목록에서 선택하여 카메라에 적용하고, 카메라 메모리에 저장합니다.
- 결과로 1개의 ONNX 파일이 생성됩니다. 훈련된 모델은 자동으로 내보내고 즉시 검사에 할당되며, 추가적인 단계는 필요하지 않습니다.
전체 과정: 카메라 연결 → 모델 생성 → 영역 표시 → 영역 정렬 → 여러 개의 정상 보드에서 "영역별 이미지" 캡처 → "영역별 이상" → AI 모델 훈련 → "검사" 탭. 이후에는 영역에 소리, 출력 및 TCP 연결을 설정해야 합니다. 시작에 필요한 것: Windows 10/11 (빠른 검사를 위해 NVIDIA 그래픽 카드), 카메라, 하나의 정상 보드, 그리고 학습 환경 설치를 위한 인터넷 연결. 불량 보드는 필요하지 않습니다.
4.2. 프로그램 인터페이스 1분 만에
메인 창은 두 부분으로 나뉩니다. 왼쪽에는 카메라의 실시간 비디오와 그 위에 있는 상태 표시줄이 있습니다. 오른쪽에는 모든 제어 기능이 있는 탭이 있는 패널입니다. 창의 경계를 드래그하여 변경할 수 있으며, 프로그램은 창의 크기, 위치 및 레이아웃을 자체 데이터베이스에 저장합니다.

영상 위 버튼
| 버튼 | 열 때 |
|---|---|
| 영상 숨기기 | 화면에서 이미지를 제거합니다. 렌더링만 수행되므로, 분석은 계속 진행됩니다. |
| 출력 | 참조 창: HIKROBOT 및 SICK 카메라의 디스크리트 출력 정보, 테스터를 이용한 확인, 부하 연결 (7.1절) |
| 카메라 | "연결된 카메라 설정" 창: 카메라 추가, 재연결, 삭제 및 하드웨어에서 읽은 모든 파라미터 확인 (3.2절) |
| 트리거 | 외부 센서를 카메라의 디스크리트 입력에 연결하는 방법 (6절) |
| 일반 모델 | "카메라 → 모델" 유형의 묶음을 전체 스테이션에 단일 선택으로 할당 (8절). |
| 레이아웃 (열) | 몇 개의 카메라 타일을 한 줄에 표시할지: "■" - 단일 모드 (선택된 카메라 확대), "자동" - 루트 카메라에서, "⛶" - 전체 모니터에 있는 카메라 (Esc 키). |
| ROI 영역 표시 | 비디오 위에 영역 격자를 그릴지 여부. |
오른쪽 탭
| 탭 | 설정 |
|---|---|
| Camera | 선택된 카메라의 설정: 셔터 속도, 증폭, 색상, 해상도, AI용 자동 설정, 저장된 설정 세트, 분석 속도. AI 임계값은 더 이상 존재하지 않으며, "검사" 탭에서만 사용됩니다. |
| OUTPUT | 임계값: 영역 규칙 - 로봇/PLC로의 TCP 전송, 카메라의 디지털 출력 및 오디오 알림, 작동 로그, 데이터베이스. |
| AI Model | 모델 생성: 폴더, 클래스, 영역 격자, 영역별 이미지, 영역 이상, 기준 이미지, 설정 및 학습 시작. |
| Inspect | 작업 탭: 어떤 모델이 검사를 수행하고, 검사 영역 및 임계값을 확인하며, 실시간 컨베이어, 어떤 신호를 사용하여 영상을 캡처하고, 다중 모델 검사 슬롯. |
| Settings | 인터페이스 언어 (14개 언어), 라이선스 구매, 설정 저장 및 로드, 비디오 녹화. |
| Console | 이벤트 로그: 카메라 연결, 교육 진행, 리젝터 작동, 경고. 화면에는 마지막 800~1000줄이 유지되며, 모든 내용은 logs\engiai-*.log 파일에 기록됩니다. |
상태 표시줄
카메라 상태는 다음과 같이 표시됩니다: `LIVE (Android): 3264×2448 [HD USB Camera] – 유형, 해상도 및 이름; `AI: WAITING 또는 `AI: GPU (CUDA) – 모델이 어떤 방식으로 작동하고 마지막 분석에 걸린 시간을 나타냅니다; `Net: 총 … 활성 … Mbps – GigE 카메라에서 네트워크에 가해지는 부하 (녹색은 링크의 40%까지, 주황은 70%까지, 그 이후에는 빨간색). `Exp Load 밴드는 셔터 시간이 프레임 간격의 어느 비율을 차지하는지 보여줍니다. 셔터가 오른쪽으로 멈추면, 카메라가 지정된 주파수를 유지하지 못합니다.
각 카메라 화면에는 이름, 상태 (LIVE | AI:ON) 및 재연결 버튼이 표시된 헤더가 있습니다. 화면의 특정 영역을 마우스 오른쪽 버튼으로 클릭하면 해당 영역 메뉴가 열리고, 마우스 오른쪽 버튼을 누른 채로 드래그하면 확대된 화면에서 파노라마 이미지를 볼 수 있습니다.
3. 카메라: 연결 및 설정
3.1. 지원되는 카메라
| 종류 | 연결 방법 | 프로그램에서 설정 가능한 항목 |
|---|---|---|
| HIKROBOT MV-CS (GigE, USB3) | MVS SDK (자체). 시리얼 번호로만 열리며, 목록 순서는 중요하지 않습니다. | 6μs의 노출 시간, 데시벨(dB) 단위의 증폭, 초당 프레임 수(FPS), 해상도(AOI), 블랙 레벨 0...4095, 모든 GenICam 노드(자동 모드, 감마, 선명도, 화이트 밸런스 R/G/B, 디지털 시프트, 회전, GigE 패킷)를 지원합니다. 카메라 자체의 UserSet1 영역에 파라미터가 저장됩니다. Line 0은 디스크리트 입력, Line 1은 출력, Line 2는 GPIO로 사용됩니다. |
| SICK picoCam (IDS uEye, GigE) | uEye 드라이버. 카메라가 IDS Camera Manager에서 "올바르게 설정됨" 상태로 표시되어야 합니다. uEye의 DeviceID는 매번 실행될 때마다 변경되므로, 시리얼 번호는 카메라와 일치해야 합니다. | 명암 대비, 증폭: 0 ~ 100, 프레임 속도(FPS), 해상도, 검은색 레벨: 0 ~ 255, 픽셀 클럭, 증폭률, 채널별 하드웨어 증폭 (R 채널)/G/B(기기 관련 설명) 하드웨어 범위, 베이어 배열. 이러한 파라미터들은 카메라 메모리에 저장됩니다. 광 커플러의 트리거 입력, 플래시 출력 (150mA). |
| USB 웹캠 (목록에서: Android) | OpenCV를 통한 DirectShow. moniker가 다르기 때문에 동일한 두 대의 카메라가 혼동되지 않습니다. | 8K 해상도, FPS 지원, 드라이버의 모든 속성: 밝기, 대비, 채도, 색조, 선명도, 감도, 증폭, 셔터 (자동), 초점 (자동), 화이트 밸런스 (자동), 하이킹 보정 등. 별도의 입력 및 출력은 없으며, TCP만 지원합니다. |
| IP 카메라 (RTSP) | `rtsp://admin:비밀번호@192.168.1.64:554/ 형식의 링크는 수동으로 추가됩니다. | 셔터, 증폭, 해상도 및 FPS는 카메라 자체의 웹 인터페이스에서 설정합니다. 프로그램에는 영역, 모델 및 TCP가 있습니다. |
카메라의 개수에 대한 제한은 없습니다: 타일은 격자 형태로 원하는 개수만큼 배치할 수 있습니다. 실제 스테이징 환경에서는 8개 또는 9개의 카메라를 동시에 사용했습니다. 각 카메라는 자체 모델, 영역, 임계값 및 분석 속도를 가지고 있습니다.
3.2. 카메라 창: 추가, 재연결, 삭제
체크 박스는 선택된 카메라에 적용됩니다: 카메라 활성화 (체크 해제 시, 장치에서 연결이 끊기고 화면에서 사라집니다), 영상/영역 표시 (영상의 표시만 해당되며, 분석 기능은 항상 작동합니다), 선택된 카메라에 AI 기능 활성화. 재연결 버튼은 카메라를 완전히 연결 해제하고 다시 연결하며, AI 스트림을 재시작하고 모델을 재로딩합니다.
오른쪽 창은 연결 시 장치에서 읽어온 카메라의 모든 매개변수를 보여줍니다. 매개변수는 그룹별로 분류되어 있으며, 각 매개변수에는 측정 단위가 표시됩니다. "어떤 매개변수를 표시할지", "카메라에서 다시 읽기", "클립보드에 복사" 등의 옵션이 있습니다. 이 창에서는 매개변수를 확인할 수만 있으며, 매개변수를 변경하려면 "Camera" 탭을 사용해야 합니다.
3.3. HIKROBOT 및 SICK용 카메라 탭
이 탭은 파란색 테두리로 표시된 카메라 모듈과 연동됩니다. 프로그램이 연결되면 카메라 모듈에 아무런 데이터도 기록하지 않습니다. 카메라 모듈은 진실의 원천이며, 슬라이더는 카메라 모듈의 값에 맞춰 조정됩니다. 설정을 저장하려면 "매개변수 저장" 버튼을 명시적으로 클릭해야 합니다.
"Hikrobot: 카메라 설정 (GenICam)" 블록
카메라에서 보이는 정보만 표시됩니다. 항목: 자동 노출 (Off / 한 번 / 연속), 자동 강조, 감도 및 감도 설정, 선명도, 색조, 채도, 자동 화이트 밸런스, 채널별 화이트 밸런스, 디지털 셔프트, 블랙 레벨 활성화, FPS 제한 활성화, 수평 및 수직 회전, GigE: 패킷 크기, GigE: 패킷 간 지연, GigE: 대역 제한, 테스트 이미지. "카메라 설정 재설정" 버튼은 표를 다시 구성합니다.
"이미지 색상" 블록
베이어 방식 (자동/BGGR/RGGB/GRBG/GBRG), 채도 0…200 %, 감도 0.30…3.00, 대비 50…200 %, 초기화 버튼. 이 설정은 모든 프레임의 데이터를 처리하며, 화면 표시, 녹화, 추론 및 학습용 이미지 생성에 적용됩니다. 따라서 학습 및 검사 시 동일한 이미지가 사용됩니다. HIKROBOT의 경우, 카메라 픽셀 형식에서 설정을 가져오고, 컬러 SICK의 경우 센서에서 가져와 첫 번째 프레임을 기준으로 조정합니다.
| 파라미터 | 무엇을 하는지 | 영향 |
|---|---|---|
| 초당 분석 (AI) | 검사 속도의 상한, 1...200 | 낮은 해상도는 그래픽 카드에 가해지는 부담을 줄여줍니다. 카메라 연결 상태와는 독립적입니다. |
| 인공지능의 한계 | "카메라 탭에서는 설정되지 않습니다" | 영역 인식 임계값은 "Inspect" 탭(5.2절)에서 설정하며, 각 카메라마다 하나씩 설정해야 합니다. |
| Exposure | 노출 시간 | 결론적으로, 움직이는 부품에 사용되는 윤활제의 양은 최소화해야 하며, 윤활제가 전혀 사용되지 않는 것은 허용되지 않습니다. |
| Gain / Gain boost | 매트릭스 신호 증폭 | 밝기를 높이지만 노이즈를 추가합니다. |
| Pixel clock (SICK) | 센서의 클럭 속도 | FPS 및 프레임 속도를 변경하고, 해당 값들이 다시 읽어 들여짐 |
| FPS | 프리 릴 모드에서의 프레임 속도 | 트리거 모드에서는 사용되지 않습니다. |
| 너비 / 높이 | 프레임 크기 (AOI) | 프레임이 작을수록 더 높은 주파수와 더 적은 트래픽 |
3.4. USB/웹캠용 "카메라" 탭
USB 카메라의 경우, 이 탭에는 "USB 카메라: 해상도, FPS 및 속성" 블록이 표시됩니다. 카메라가 제공하지 않는 드라이버 속성은 표시되지 않으며, 경계는 프로그램에 의해 설정됩니다. DirectShow 범위가 정보를 제공하지 않기 때문입니다.
3.5. 저장된 카메라 설정 (세트)
USB, SICK, HIKROBOT용 "저장된 카메라 설정" 블록이 표시됩니다. 제품에 맞는 매개변수를 선택하여 이름을 지정하여 저장할 수 있습니다. 다른 보드 또는 다른 조명에 대해서는 목록에서 세트를 선택하면 됩니다.
- 저장하기... – 현재 카메라 설정을 읽어 들여, 세트 이름을 묻습니다. 만약 이름이 이미 사용 중이라면, 덮어쓰기를 제안합니다.
- 리스트에서 설정 선택 시, 해당 설정값을 즉시 카메라에 기록하고 저장합니다. USB의 경우 데이터베이스에 저장하고, SICK 및 HIKROBOT의 경우 설정 파일과 카메라 메모리(UserSet1 / EEPROM)에 저장합니다. 그런 다음, 시스템은 하드웨어에서 설정값을 다시 읽어와, 적용된 설정값과 변경된 설정값을 보여줍니다.
- 재저장은 선택된 설정을 현재 값으로 덮어쓰고, 이름 변경 및 삭제는 데이터베이스 내의 항목에만 영향을 미치며, 카메라 설정은 변경되지 않습니다.
세트에 포함된 내용은 다음과 같습니다: USB 카메라의 경우, 해상도, 프레임 속도(FPS), 드라이버 속성 및 자동 모드 설정이 포함됩니다. SICK 카메라의 경우, 증폭, 노출 시간, 프레임 속도, 블랙 레벨, 픽셀 클럭, 증폭 부스트, 화이트 밸런스 (R/G/B), 하드웨어 감마 보정 및 소프트웨어 색상 설정이 포함됩니다. HIKROBOT 카메라의 경우, 증폭, 노출 시간, 프레임 속도, 블랙 레벨 및 모든 GenICam 관련 설정이 포함됩니다. 산업용 카메라의 경우, 프레임 크기는 세트에 포함되지 않으며, 변경하면 캡처가 재시작됩니다. 이러한 세트는 동일한 종류의 모든 카메라에 공통적으로 사용되므로, 동일한 카메라로 구성된 테스트 환경에서는 각 카메라에 하나의 세트가 적용됩니다.
3.6. GigE 네트워크 및 재연결
- HikroBOT의 GigE 패킷 크기는 자동으로 최적 값으로 설정됩니다. 수동으로 GenICam 블록에서 수정할 수도 있습니다. Jumbo 프레임 (8164–9000)은 부하를 줄이며, 프레임이 손상될 경우 1500으로 설정하고 패킷 간 지연 시간을 늘립니다.
- `Net` 라인은 각 카메라의 부하를 자체 데이터(유효 부하 크기 × 빈도)를 기준으로 계산하고, 네트워크 카드의 실제 들어오는 트래픽과 비교합니다. 두 값의 차이가 크면 프레임 손실 또는 불필요한 트래픽이 발생한 것을 의미합니다. GigEVision, uEye, Npcap과 같은 가상 어댑터 및 NDIS 필터는 계산에서 제외됩니다.
- 카메라가 보이지만 스트리밍이 되지 않는 경우, "재연결" 버튼을 클릭하세요 (카메라 창 또는 타일에서). 일반적으로 원인은 네트워크 대역폭 또는 USB 연결 문제입니다.
- SICK picoCam은 디스크립터를 닫을 때 설정 정보를 잃어버립니다. 만약 카메라 자체에 설정 파일이 없다면, 프로그램은 설정 파일을 적용하고 "설정 저장" 버튼을 클릭하여 카메라에 저장하도록 안내합니다.
4. 존-페어 모델: 격자 구조에서 학습된 모델로의 전환
4.1. 방법의 구조: 하나의 모델, 각 영역에 맞는 클래스
존-페어 모델은 일반적인 YOLO11 분류 네트워크이며, 영역 수만큼의 클래스와 선택적인 이상 클래스를 포함합니다. "클래스"는 train 및 val 내부에 있는 폴더입니다. 프로그램은 모든 폴더를 자동으로 생성합니다. 수동으로 폴더를 만드는 것은 필요하지 않습니다. 학습 후의 모델 폴더의 예시가 다음과 같습니다:



`real_…jpg 파일은 카메라에서 직접 촬영한 원본 이미지입니다 (학습 데이터와 검증 데이터 모두에 포함). syn_…jpg 파일은 합성 데이터입니다. edit_…jpg 파일은 영역 편집기에서 촬영한 이미지입니다. 예시에서 여러 장의 회로 기판을 촬영한 경우, `zone_001`은 학습 데이터에 502개, 검증 데이터에 111개의 파일이 있고, `zone_001_anomaly`은 학습 데이터에 680개, 검증 데이터에 144개의 파일이 있으며, `zone_002`은 학습 데이터에 813개, 검증 데이터에 181개의 파일이 있고, `zone_002_anomaly`은 학습 데이터에 340개, 검증 데이터에 60개의 파일이 있습니다.
이 프로그램은 특정 클래스(예: zone_NNN)가 존재하는 경우, 해당 모델을 자동으로 "결제"로 인식합니다. 클래스 번호는 그리드 내 영역의 전체 번호(1…N)입니다. 따라서 이 방법의 주요 규칙은 다음과 같습니다:
4.2. 모델 생성
4.3. 결제 영역 표시

빨간 영역: 한 번 클릭으로 합성 데이터에서 해당 영역 제거
"AI 모델" 탭에서 이미 생성된 영역을 클릭하면, 해당 영역이 빨간색으로 변하고, 영역별 이미지 추출 및 이상 영역 감지에 참여하지 않습니다. 다시 클릭하면 원래 상태로 돌아갑니다. 합성 데이터 창의 파일 카운터는 즉시 갱신되며, "N 꺼짐" 표시가 나타나면 몇 개의 영역이 꺼져 있는지 확인할 수 있습니다. 빨간색 영역 목록은 카메라 및 모델별로 저장됩니다. "검사" 탭에서는 해당 영역이 정상 상태로 유지됩니다 (다른 영역, 즉 노란색 영역은 5.5절에 있습니다).
4.4. 기준 이미지 설정: 정렬 영역
검사 영역은 하나의 PCB 위치에 따라 표시됩니다. 따라서 다른 PCB를 겹쳐서 검사할 수 있도록, 프로그램은 기준 이미지 (실시간 이미지)와 정렬 영역 (제품을 찾기 위한 PCB의 특정 영역)을 저장합니다. 프로그램은 해당 영역을 찾으면, 새로운 PCB에 검사 영역을 복사합니다. 이러한 방식으로 이미지를 촬영하고, 합성 데이터를 생성하며, 검사를 수행합니다.


| 조합 모델 | 언제 선택 |
|---|---|
| 자동 (권장) | 부품은 단단하게 조합 (이동, 회전, 크기 조정); 관점이 눈에 띄게 더 잘 일치할 때만 연결. 작은 정렬 영역에서의 정확도는 1–2 픽셀. |
| 단단한 | 카메라가 정확히 위를 향하고, 부품이 평평하게 놓여 있음. 정렬 영역이 작을 때 가장 안정적인 방법. |
| 관점 | 카메라가 각도에 있거나 부품이 기울어져 있음. 전체 폭에 걸쳐 점이 있는 큰 영역이 필요하며, 그렇지 않으면 호모그래피가 왜곡됨. |
"기준 이미지와 영역을 기준으로 이미지를 열면, 격자와 번호가 있는 저장된 기준 이미지를 볼 수 있습니다(4.8절 참조). 발견된 회로는 다음 기준을 충족하는지 확인합니다: 0.5에서 2 영역 사이의 면적, 4개의 변을 가진 凸형, 각 축에 대해 최소 1/4 영역을 차지하는 지지점이 있어야 합니다. 그렇지 않으면 결과가 무효화되고 콘솔에 "회로를 찾을 수 없음"이라고 표시됩니다.
4.5. 영역별 캡처: 정상 및 합성 데이터
"존-페어: 영역별 사진 기능은 핵심적인 역할을 수행합니다. 실시간 이미지를 영역으로 분할하고, 각 영역의 컷아웃을 해당 영역의 클래스 zone_NNN에 배치하며, 합성 데이터의 정상성을 확인합니다. 합성 데이터의 정상성은 촬영의 변동성을 의미하며, 결함이 아닙니다. 예를 들어, 플래그가 약간 다른 위치에 놓이거나, 조명이 약간 다르고, 센서가 소음을 발생할 수 있습니다.

| 설정 | 기본적으로 어떤 기능을 제공하고 어떤 설정을 기본으로 설정해야 하는가 |
|---|---|
| 각 구역에 맞는 합성 재료 | 하나의 이미지에 생성할 합성 파일 수는 몇 개입니까? 권장되는 수는 20개, 최소 0개 (단, 기준 이미지만), 최대 500개입니다. |
| 시간 순서대로 촬영된 사진: 각 사진은 카메라의 새로운 프레임에서 촬영 | 800–1200ms의 기간 동안 촬영되며, 최소 셔터 시간을 사용합니다. 각 이미지는 실제 센서의 소음, 진동, 빛의 깜빡임 등을 그대로 캡처하여 제작됩니다. |
| 각 옵션마다 확률 (%)와 함께 제시됩니다. | 20%. 기준 이미지는 항상 'val' 폴더에 포함되어야 합니다. Ultralytics에서는 각 클래스가 두 폴더 모두에 포함되어야 합니다. |
| 회색 톤으로 가르치기 | 전체 모델의 색상: 정상, 오류, 검사에서 색상을 제거합니다. 여러 모델에 색상 및 회색 파일을 혼합하는 것은 불가능하며, 프로그램은 이를 경고합니다. |
| 위치, 픽셀 | 창 영역이 지정된 방향(← → ↑ ↓)에서 0…2 픽셀만큼 전체 화면을 이동합니다. 부족한 부분은 인접한 회로판 영역에서 가져와서, 절단면이 평평하게 유지됩니다. "모든 방향" 체크는 파일당 각 방향에 대해 정보를 제공하며, "무작위 하나"는 하나의 파일만 생성합니다. |
| 방향, ° · 어디로 | 기본 설정에서는 비활성화되어 있습니다: 정렬 영역에 따라 회전 기능이 없고, 활성화하면 불량 영역과의 경계가 흐려집니다. "좌/우", "모든 방향/무작위"와 같이 슬라이드와 유사합니다. |
| 확대/축소 비율 (%) | 기본 설정에서는 꺼져 있습니다. 두 개의 체크 표시는 각각 감소 (100 미만) 및 증가 (100 초과, 영역은 인접한 프레임의 요소를 사용)를 의미합니다. 각 체크 표시된 측면은 별도의 파일에 해당합니다. |
| 밝기/대비/색상 범위 | 각 옵션에 따라 범위 내의 무작위 값: 밝기 88…112, 대비 88…112 %, 색상 범위 98…102 % (사진에서); "요소 이동" 프로필에서는 밝기가 더 넓게 설정되어 불필요한 특징이 나타나지 않도록 합니다. |
| 노이즈 (시그마)/흐림 | 센서 해상도 3…8 단계, 약간의 초점 흐림 0.4…0.8 픽셀. |
| "일반" 열 | 체크 표시를 누르면 다른 요소와 함께 일반 파일에 포함됩니다. 체크 표시를 누르지 않으면 "기준 이미지 + 이 요소만"이라는 별도의 파일이 생성됩니다. 개별 요소가 많을수록 옵션에 따라 파일 수가 많아집니다. |


4.6. 2번의 클릭으로 합성 데이터 오류: 요소가 기반과 함께 이동
합성 데이터 생성에 사용되는 관찰 데이터 모델은 특히, 실제 오류가 아닌, 검사 대상 요소와 주변 부품(인쇄 회로 기판)의 선, 트랙, 색상 및 재질을 함께 보여줄 때 학습 효과가 뛰어납니다. 프로그램은 검사 영역을 요소의 크기로 줄인 다음, 이 영역을 이동하거나 회전시켜, 주변 픽셀로 채워 영역의 가장자리를 완성합니다. 결과적으로, 요소는 실제 오류 상황에서 검사자가 보는 대로, 실제 센서 소음, 실제 조명, 실제 회로 기판과 함께 정확한 위치에 놓이게 됩니다.
정상 영역과 이상 영역은 단지 요소의 위치와 기준과의 관계만 다릅니다. 나머지 모든 요소는 동일하므로, 네트워크는 "요소-기판"의 관계를 학습하는 것이 아니라, 얼룩의 색상이나 조명에 집중하게 됩니다.
2번의 클릭
더 이상 설정할 필요가 없습니다: 불량 그림을 그릴 필요도, 결함이 있는 회로를 찾는 필요도 없습니다. 다음 단계는 AI 모델 훈련입니다.
사전 및 사후: 프로그램이 달성하는 것




사용자가 보는 이상 징후 폴더
4.5절의 정상 폴더와 비교: 차이점은 단의 위치에 있습니다.


부품 라벨링: 왜 긁힘이 두드러지게 표시되고 어떻게 설정하는가
부품 표면에 마킹이 표시되어 있으며, 이는 1~2px 두께의 선과 기호로 구성됩니다. 이 마킹은 배치마다 다릅니다. 다른 글꼴, 용량 표에 표시된 문자가 다른 방향으로, 일부 기호가 지워진 상태입니다. 만약 "스크래치"와 같은 인공적인 결함이 동일한 얇은 선으로 표시되면, 시스템은 이 선을 마킹 선과 센서의 노이즈, 그리고 다른 배치 부품의 선과 구별하지 못하고, 정상적인 부품을 폐기할 수 있습니다.
합성 데이터 존-페어는 이 문제를 양쪽에서 해결합니다. 첫째, 주요 결함인 요소의 위치 변화는 마크를 함께 이동시키므로, 마크가 정상 상태와 비정상 상태 모두에서 동일하게 보입니다. 둘째, 기본적으로 그려진 선/긁힘은 굵고 (⅛ 영역, 최소 3px 이상) 명확하게 마크의 선과 다릅니다. 이제 선의 두께는 명시적으로 설정됩니다: 선 두께, px (0 = 자동) 필드는 선과 십자 모두에 적용됩니다.
그림으로 표시된 결함(직사각형, 원, 선, "누락된 요소", 흐릿한 점 등)은 "출력 영역 위에 있는 합성 결함" 그룹으로 묶여 있습니다. 기본적으로 묶여 있고 비활성화되어 있습니다. 주요 결함은 "출력 영역의 이동"입니다. 특정 작업에 대해 활성화할 수 있습니다(예: 묻어낸 영역, 과도한 방울, 지워진 마킹).
| 부품 파라미터 | 설정하는 것: |
|---|---|
| 크기: …부터 …, 영역의 % / px | 부품의 크기 또는 길이. %, 영역의 작은 면에서 계산 (모든 영역에 동일). px, 모든 영역에서 동일, 실제 결함의 픽셀 크기가 알려져 있을 때 편리합니다. |
| 채우기 | 단색 / 윤곽선 / 혼합 (윤곽선도 두드러지게 표시). |
| 선 두께, px | 선 / 긁힘 및 교차선. 0 = 자동 (두드러지게 표시). 부품 라벨링에는 3px 이하로 설정하지 마십시오. |
| 결함 위치 | 중앙, 왼쪽, 오른쪽, 위, 아래 – 어떤 위치에 배치할지 (약간의 무작위 분포를 고려). 모든 위치 선택 – 파일에 따라 각 선택된 위치에 적용; 무작위 선택 – 하나의 파일, 선택된 위치 중 하나를 무작위로 선택. 하단 창의 파일 카운터는 이를 즉시 반영합니다. |
| 모양의 색상: 5개의 슬롯 | 5개의 슬롯 대신 이름 목록 대신. 체크 표시 - 해당 슬롯이 선택됨, 색상은 선택된 색상 중 무작위로 선택 (±12 범위 내에서, 단일 색상으로 선택되지 않도록). 샘플 버튼 - 팔레트에서 색상을 선택, 💧 피펫 - 카메라의 실제 장면을 클릭 (바퀴 - 줌, 오른쪽 버튼 - 패노라마) 하여 실제 디테일 또는 보드에서 색상을 선택. 기본적으로 2개의 슬롯 (어두운 및 밝은)이 활성화되어 있고, 나머지 3개는 비활성화되어 있습니다. |
| "일반" 열 | 손상 유형이 다른 "공통" 유형(예: 이동된 요소 위에 생긴 흠)과 함께 일반 파일에 기록됩니다. 체크 표시가 없으면 "정상 + 이 특정 손상만"으로 된 별도 파일이 생성됩니다. "모든 위치" 유형은 항상 별도로 저장됩니다. |
4.7. 영역의 이상: 설정 창
"존-페어: 영역의 이상을 정의하면 정상 영역에서 zone_NNN_anomaly 클래스를 생성합니다. 모든 영역을 포함하지만, 빨간색(AI 모델의 4.3절에서 켜고 끄는 기능) 영역은 제외합니다. 이상 영역 클래스는 반드시 모든 영역에 적용할 필요는 없습니다. 실제로 문제가 발생하는 영역에만 적용하고, 나머지 영역은 모델이 인식 기반으로 검사하도록 합니다.

| 설정 | 무엇을 하는지 |
|---|---|
| 손상 위에 복사 | 모든 유형에 적용 가능한 단일 값: 각 지정된 유형에 대해 새 임의 매개변수로 생성할 복사본 수 (기본값: 10). |
| ▸ 절단 영역의 합성 결함 | 기본적으로 묶인 그룹: 사각형, 작은 사각형, 원, 타원, 삼각형, 8자 모양, 선/긁힘, 십자, `누락된 요소, 흐릿한 점, 노이즈 패치, 다른 영역의 조각. 도형의 파라미터, 위치 및 팔레트 - 4.6절. |
| 이동, px · 위치 · 형태 | 주요 결함: 특정 방향 (← → ↑ ↓ 및 두 대각선 ⤡ ⤢)으로 5–12px 정도 이동하는 영역 (원 또는 사각형). 수직/수평 크기, ±% – 영역의 크기는 영역에 대한 비율: 0 – 전체 영역, -30 – 영역이 30% 작음 (단, 요소만 이동, 기반은 유지), +30 – 영역이 영역보다 큼 (인접 요소 포함). 모든 방향 – 파일별로 각 방향에 따라. |
| 회전, ° · 형태 | (원 또는 사각형, 동일한 척도 ±%) 영역이 임의의 각도로 양쪽 방향에서 회전합니다. |
| 확대/축소 비율 (%) | 영역을 결함으로 취급: 60–85% 감소 또는 120–160% 증가. 각 지정된 측면은 별도의 파일입니다. 일반적으로 켜져 있습니다. |
| "일반" 이동 및 회전 | 두 옵션 모두 선택하면, `파일 내의 하나의 요소`에 적용됩니다. 즉, 이동 및 회전은 하나의 변환으로 처리되며, 영역의 크기와 형태는 이동에 의해 결정됩니다. |
| ▸ 하위 영역 | 영역이 2, 4 또는 9개의 부분으로 나뉘며, 각 부분 내에서 영역이 회전하거나 이동합니다. "각 하위 영역에 대한 별도 이미지" 옵션을 사용하면 각 부분에 대해 파일이 생성됩니다. 여러 요소를 가진 큰 영역에 필요합니다. |
| 각 결함 파일에 대한 조명 및 노이즈 | 켜져 있고 정상 상태: 결함은 조명과 구별되어야 합니다. |
| 시간별 / val | 새로운 프레임(800ms)의 각 복사본, val에서 20%를 사용하고, val의 첫 번째 클래스 파일은 항상 사용됩니다. |
4.8. 기준 이미지: 납땜 영역 및 영역 편집
"기준 이미지와 영역 버튼을 클릭하면 저장된 기준 이미지 플레이트와 그리드를 엽니다. 여기서는 카메라 없이 합성 데이터를 생성합니다: 휠은 줌, 오른쪽 버튼은 파노라마, 왼쪽 버튼은 영역 선택 (Ctrl - 추가, 드래그 - 테두리, Ctrl+A - 모두), 더블 클릭은 영역 편집기입니다.
- 선택된 영역에 사용되는 납 접착 핀… – "납 접착 핀: 트랙 간 단락" 창. 프로그램은 영역 내의 트랙을 자동으로 찾습니다 (오츠 임계값, 2px 이상의 밝은 띠). 트랙의 색상, 어두운 가장자리, 반사를 사용하여 인접한 트랙 사이의 틈에 납 접착 핀을 배치합니다. 설정: 수직 또는 수평 트랙 사이, 사진 1~3에 납 접착 핀 배치, 영역 크기 8~18%, 영역에 대한 사진 (5개), 납 접착 핀을 배치할 위치 (이상 또는 정상, 표면 조명, val - 다른 조명 또는 정확한 복사본).
- 영역 편집기 : 붓, 피펫, 색상 영역, 영역 복사, 붙여넣기, 스탬프, 영역 (플레이트 영역); "납/패드", "PCB", "그림자/마스크", 흰색, 검은색 팔레트; "복사" 필드 및 " 이미지 생성 " 버튼. 이렇게 하면 기존에 라인에 없던 결함을 표시할 수 있습니다: 덮인 영역, 불필요한 요소, 누락된 표시.
편집기의 파일들은 "edit_…"과 같은 이름으로 저장되며, 해당 파일은 특정 영역 또는 해당 영역의 이상 현상과 관련된 클래스에 분류됩니다. "검사" 탭에서는 동일한 창이 열리지만, 이는 파일 내용을 확인하기 위한 용도로만 사용됩니다.
4.9. 모델 훈련
AI 모델 탭의 "학습 설정" 영역에 첫 번째 스캔 후, 영역별로 자동으로 값이 채워집니다. (이미지 크기: 128, 모델 크기: s, 에포크: 50, 배치: 64). 이는 108–137px 영역에 해당하는 값입니다. 256px 영역의 경우, 예시와 같이 이미지 크기를 192 또는 256으로 설정하면, 잘리는 부분이 거의 줄어들지 않습니다 (메인 창의 에포크는 100, 이미지 크기는 192로 설정). 값을 확인하고 "AI 모델 학습" 버튼을 클릭하세요.
| 파라미터 | 의미는 | 어떻게 선택해야 하나 |
|---|---|---|
| Epochs | 모델이 전체 데이터 세트를 몇 번 반복 학습할 것인가? | 기본값은 50; 이상치 클래스가 많을 경우 100~150 |
| Batch Size | 한 번의 클릭으로 몇 장의 이미지를 가져올 수 있나요? | 64; 비디오 메모리가 부족한 경우, 다음을 수행하세요 |
| Image Size | 어떤 크기로 잘라내는지, 32를 기준으로 | 대략적인 영역 크기: 108–137px 영역의 경우 128, 256px 영역의 경우 192–256 |
| Model Size | n / s / m / l / x | s는 수백 개의 클래스 쌍에 최적이며, n은 용량이 부족하고, m 및 그 이상은 더 느립니다. |
| Device | 어떻게 학습할 것인가 | 0 (GPU) NVIDIA 그래픽 카드; CUDA가 없으면 프로그램이 자동으로 CPU로 전환 |
| Workers | 데이터 준비 스레드 | 12 (기본 설정) 다중 코어 프로세서용 |
5. 검사
모든 작업은 "Inspect" 탭에서 진행됩니다. 모델은 학습 후 이미 설정되었으므로, 영역을 확인하고, 임계값을 설정하고, 속도 소스를 선택하고, 결제가 어떤 방향으로든 들어오더라도 라이브 컨베이어를 활성화하는 단계를 남겨두었습니다.

5.1. 모델 및 영역 지정
5.2. 영역 인식 임계값
각 영역에 대해 네트워크는 모든 클래스에 대한 확률 값을 제공하지만, 최종 결정은 쌍(pair) 내에서만 이루어집니다. "정상" 상태의 확률 q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly))은 "인지도(recognition)"에 곱해집니다. 여기서 "인지도"는 해당 쌍이 네트워크의 출력을 얼마나 잘 나타내는지 나타내는 값이며, 10% 이상이면 "완전 인지"로 간주됩니다. 최종 점수 0~100%는 임계값과 비교되며, 임계값보다 높으면 정상(normal), 낮으면 이상(anomaly)으로 분류됩니다.
기본 임계값은 50%이며, 모델 옆의 `board.json`에 저장되어 즉시 적용됩니다. 50% 미만인 경우, 정상 범위가 더욱 강조됩니다: 25% → 6% 차단, 10% → 0.4% 차단, 1% → 거의 모든 영역이 녹색으로 표시됩니다. 99%는 확실한 영역만 통과합니다. 이러한 척도는 운영자가 5%와 99% 사이의 차이를 명확하게 파악할 수 있도록 하고, 붉은색으로 표시된 영역만 보이는 것을 방지하는 데 필요합니다.
5.3. 실시간 파이프라인: 어떤 위치에서도 작동
[라이브 컨베이어: 각 위치에서 플래트 검색] 기능은 각 분석 전에 플래트를 정렬 영역별로 검색합니다. 프레임은 기준 이미지와 함께 겹쳐지고, 겹쳐진 이미지에서 영역이 잘립니다. 또한, 영상에 정렬 영역과 영역의 경계(녹색은 정상, 빨간색은 이상)가 표시됩니다. [기간, ms] 필드는 플래트를 검색하는 빈도를 설정합니다(기본값 1000, 사진에서는 2000). 인디케이터 옆에 다음과 같은 정보가 표시됩니다: 녹색 "정상 · N개 포인트", 빨간색 "이상 · N개 포인트", 주황색 "플래트 미발견" 또는 "기준 이미지가 없음 - 확인". 판단은 단일 분석 결과에 따라 결정되며, 누적되지 않습니다.
기준 이미지와 정렬 영역은 촬영 시와 동일한 기준 이미지 고정 버튼으로 고정됩니다 (4.4절). 기준 이미지 및 영역를 클릭하면 해당 영역이 표시됩니다. 영상에는 정렬 영역과 파란색 지지점을 그리고, 이는 결제 금액과 일치하도록 설정됩니다. 정렬 후 화면 밖으로 튀어나온 영역은 SKIP로 표시됩니다.
5.4. 어떤 신호를 사용하여 분석
속도 소스는 항상 하나입니다: 새로운 속도를 사용하면 이전 속도가 제거됩니다.
| 방법 | 사용 방법 | 적용 시기 |
|---|---|---|
| 카메라 | "카메라" 확인란 | 지속적인 모니터링; 속도는 "카메라" 탭의 "초당 분석 횟수" 슬라이더로 제한 |
| 타이머 | "타이머" 확인란 및 간격 (ms) | 정기적인 모니터링, 예를 들어 초당 한 번 |
| 트리거 | "트리거" 목록에서 연결을 선택하고, "입력 신호 +" 또는 "입력 신호 -"에 따라 분석 | 카메라 입력 센서가 있는 컨베이어: 제품이 도착하는 순간에 프레임 캡처 - 가장 정확한 방법 (6절) |
| GPU | "GPU" 체크 | 기본적으로 활성화; 전환 시 모델이 재시작됨 |
| 그레이 분석 | "그레이 분석" 체크 | 그레이로 훈련된 모델의 경우 자동으로 활성화; 추론 전에 잘라낸 영역이 그레이로 변환됨 |
5.5. 노란 영역: 클릭으로 영역 끄기
작업 중인 영역 중 일부는 일시적으로 제어에서 제외해야 할 수 있습니다. 이는 해당 부품이 아직 장착되지 않았거나, 특정 영역이 장비에 의해 차단되었거나, 시스템 조정 작업이 진행 중일 때 발생할 수 있습니다. 이 경우, 격자 또는 모델을 수정할 필요 없이, 비디오 화면에서 직접 해당 영역을 비활성화할 수 있습니다. 이는 "검사" 탭에서만 가능합니다.
"노란색 영역이 어떤 기능을 수행하는지는, OUTPUT 창의 '오디오' 탭에서 기본적으로 활성화된 노란색 (클릭으로 비활성화) 영역은 작동하지 않습니다 이 확인란을 통해 설정할 수 있습니다.
| 체크박스 | 노란색 영역 동작 |
|---|---|
| 활성화 (기본) | 영역이 분석되지 않음: 잘라낸 영역이 네트워크로 전송되지 않고, "OFF" 표시가 되어, 소리나 TCP 전송, 카메라 종료가 발생하지 않습니다. 실시간 파이프라인에서 노란색 영역은 "정상 / 이상" 판정에도 영향을 미치지 않습니다. |
| 꺼짐 | 노란색 테두리는 단순히 확인 영역으로 표시하는 역할만 수행합니다. 영역을 분석하고 일반적인 방식으로 작동하며, 검사를 위해 영역을 표시하면서도 감시 기능을 끄지 않고 사용할 수 있습니다. |
5.6. 화면과 콘솔에서 확인할 수 있는 내용
- 영역에 대한 결과가 표시되었으며, 영역의 경계는 테이블의 색상으로 표시됩니다. 트리거가 작동하면 빨간색으로 표시됩니다. 50개 이상의 영역이 있을 때, 정상 영역은 녹색 경계로만 표시되고, 비정상 영역과 불확실한 영역은 각각 다른 색상으로 표시됩니다. 수백 개의 영역이 표시될 때, 이미지의 가독성을 저해하고 렌더링 부하를 증가시키는 문제가 있었습니다. 노란색 영역은 클릭을 통해 끄도록 설정되었습니다 (5.5절).
- "트리거 분석" 패널은 탭 하단에 있으며, 각 트리거 작동을 시간(분:초:경로.밀리초) 형식으로 표시합니다. 입구 카메라 + 트리거 4ms | AI 12ms #57와 각 영역별 결과를 보여줍니다. 이 데이터는 데이터베이스에 저장되지 않습니다.
- 비디오 영역에 오른쪽 클릭: "이 영역의 감지 클래스 → 이를 '…'으로 지정"은 해당 영역의 모델 응답 이름을 변경합니다 (모델 자체는 변경되지 않지만, 리젝터와 로그는 새로운 이름을 보게 됩니다). 또한, "이 영역에 대한 리젝터를 생성" 및 규칙 카운터도 해당 위치에 있습니다.
- 검사 사진 저장 옵션: 검사 사진과 함께 그려진 영역이 포함된 이미지는 inspect_….jpg 파일로 저장됩니다. 각 카메라의 설정은 다를 수 있습니다.
- 매 10분마다, diag라는 하위 폴더에, 실시간 컨베이어 영상과 영역 목록이 저장되며, 최근 20개의 이미지가 저장됩니다. 이는 분기 폴더가 확장되지 않아도, 논쟁적인 사례를 분석하는 데 유용합니다.
6. 트리거: 카메라 입구에 장착된 외부 센서
컨베이어용 기본 설정: 카메라가 센서의 개별적인 입력 신호를 통해 프레임을 촬영합니다. 이는 가장 정확한 촬영 시점이며, 제품은 항상 동일한 프레임 내에 위치하고, 분석은 제품에 대해 한 번만 수행됩니다. 트리거는 "센서 → 카메라" 간의 연결을 수집하고, 선택된 커넥터에 맞는 연결도를 그립니다.


단자 연결
| 핀 | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR: 카메라 전원 공급: 9-24V. | GND — 카메라 전원 접지 |
| 2 | OPTO_IN — Line 0 (+) 입력, 트리거 신호 | VCC — 카메라 전원 (12–24V) |
| 3 | GPIO — Line 2, 입력 또는 출력 | 트리거 입력 − 오토파 ((-) |
| 4 | OPTO_OUT - 1호선 (양(+) 방향) 출구. | 트리거 신호 + — 광전 센서 (+) 입력 |
| 5 | OPTO_GND — 일반적인 광파, 반전선 | Flash + — 독립 출력 (+) |
| 6 | GND — 카메라 전원 접지 | Flash − — 독립 출력 (−) |
7. 출력: 리젝터, 카메라 독립 출력 및 TCP
리젝터는 검사 결과를 실행으로 전환합니다. 규칙은 특정 영역(또는 모델, 클래스 또는 지정된 영역 전체)에서 생성되며, 모델이 해당 영역에서 지정된 클래스를 감지하면 작동합니다. 실행 가능한 작업은 다음과 같습니다. 1) 로봇 또는 PLC로 TCP 패킷 전송, 2) 카메라의 디지털 출력을 전환, 3) 운영자에게 소리 알림. 각 실행은 로그에 기록됩니다.
7.1. 출력 정보: 핀 번호 및 테스터를 이용한 확인
"나가 버튼은 비디오 위에 표시되어 있으며, 이 버튼을 누르면 설정 변경 없이 정보 창이 열립니다. 이 창에는 어떤 핀이 출력을 나타내는지, 전원이 연결되지 않은 상태에서 테스터로 테스트하는 방법, 그리고 부하를 연결하는 방법을 보여줍니다.


- 출력: 광센서의 "건조 접점": 자체 전압을 제공하지 않고, 단지 회로를 연결합니다. 외부 전원 공급 장치가 필요합니다.
- 테스터를 사용하여 Ω 모드에서 확인: 출력 OFF — 단선 (OL), ON — 수백 옴. 두 경우 모두 톤이 울리지 않으므로, 숫자를 확인하십시오. 아무 변화가 없다면, 팁을 반대로 돌려보세요. 광센서는 극성을 가지고 있습니다.
- 부하: +24V → 램프 → 핀 "+", 핀 "-" → GND. HIKROBOT의 경우 25mA 제한: 27mA를 초과하면 신호 장비에 연결하거나 전압을 낮추거나 중간 리레이를 사용하십시오. SICK의 경우 20~30mA 램프는 직접 연결 가능합니다.
7.2. OUTPUT 창: 영역 규칙
오른쪽 패널의 "OUTPUT" 버튼 (또는 해당 영역을 마우스 오른쪽 버튼으로 클릭하여 "이 영역에 대한 리젝터 생성" 선택)을 클릭하면 "OUTPUT - TCP 패킷 및 카메라 디스크리트 출력" 창이 열립니다. 왼쪽에는 "카메라 → AI 모델 → 클래스 → 영역" 트리 구조가 있으며, 영역에 체크 표시가 되어 있습니다. 오른쪽에는 "영역 규칙, 작동 로그, 데이터베이스" 탭이 있습니다.

하나의 영역은 여러 개의 TCP 규칙(다른 수신 대상)을 포함할 수 있으며, 각 영역당 하나의 명시적 출력 규칙과 하나의 오디오만 허용됩니다. 규칙은 데이터베이스에 저장되며, 추론 스트림에서 작동합니다. 규칙은 메모리에 저장되며, 영역 주소에 대한 검색은 한 프레임마다 수행되고, 소켓과 카메라 SDK는 별도의 관리 스트림을 통해 처리되어 네트워크를 기다리는 분석을 방지합니다.
7.3. TCP 패킷 로봇 또는 PLC
이 프로그램은 TCP 클라이언트처럼 작동합니다. IP 주소와 포트를 가진 수신기에 연결을 설정하고, 연결을 유지하며 재사용합니다. 연결이 끊어지면 한 번의 재연결 시도와 재송신을 수행합니다. 마지막에 CR+LF를 사용하여 UTF-8 형식으로 전송됩니다.
| 필드 | 설정 |
|---|---|
| 연결 시간 초, ms | 기본값 1000, 100...10000 |
| 규칙 자동 전송 시간 초, ms | 자동 규칙 전송 간 최소 딜레이; 0은 딜레이 없음. 심지어 클래스 변경도 이 딜레이를 기다립니다. |
| 명령 | 원래대로 표현: "up" - "up" 패키지. 클래스 각도를 지정해야 합니다: "J6 {class}" → "J6 235". 비어 있으면 "데이터" 템플릿이 사용됩니다. |
| 자신의 데이터 | 임의 텍스트로 대체되며, `{data}` 대신 사용됩니다. |
| 데이터 | 배송 템플릿. 빈칸 = «구역 번호 및 이름» ({zoneId} {zone}). 해당 필드를 추가하면 해당 필드가 채워지고, 다시 클릭하면 삭제됩니다. «모든 필드»는 구조화된 템플릿을 설정합니다. |
| 대체 | 의미 | 대체 | 의미 |
|---|---|---|---|
| {zoneId} | 구역 번호 (1, 2, 3...) | {camera} | 카메라 이름 |
| {zone} | 구역 이름 (데이터베이스에서 수정 가능) | {model} | AI 모델 이름 |
| {class} | 모델이 인식한 클래스 | {time} | 시간 (HH:MM:SS.ms) |
| {conf} | 신뢰도 (%) (점을 구분자로 사용) | {date} | 날짜 (YYYY-MM-DD) |
| {data} | "자신의 데이터"에서 가져온 텍스트 |
예시: `zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. 숫자들은 항상 일관된 형식으로 표시되어 PLC에서 파싱 오류를 방지합니다.
- 연결 확인 기능은 단순히 소켓을 열고 "연결됨" 또는 "Nms 동안 응답 없음"과 같은 메시지를 표시합니다.
- 테스트 전송 기능은 실제로 문자열을 전송합니다. 결과는 버튼 옆에 표시되며, 창에는 표시되지 않습니다.
- 쿼티 기능 활성화 "반복" 옵션이 선택되지 않은 경우, 이 기능은 계층이 변경될 때마다 하나의 패키지를 보내고, 수신자가 "ok <패키지>"라는 문구를 보내는 동안 반복적으로 보냅니다. "반복" 옵션이 선택된 경우, 패키지는 해당 계층이 유지되는 동안 주기적으로 전송됩니다.
- "마지막 명령이 승리": 모델이 관리자가 바쁜 동안 여러 결과를 제공할 수 있는 경우, 마지막 결과가 실행됩니다. 큐는 512개의 작업으로 제한됩니다.
7.4. 카메라 출력

| 필드 | 설정 |
|---|---|
| 출력 | 방식: 자동 (SICK: 플래시 핀 (고정 레벨), GPIO; HIKROBOT: UserOutputValue 또는 LineInverter (플래시 켜짐)) |
| 라인 | SICK: 플래시 핀 / GPIO1…6; HIKROBOT: Line1 (출력), Line2 (양방향); Line0 - 입력만 |
| 레벨 | true / false / off. "off" - 규칙은 있지만 출력이 변경되지 않습니다. |
| 펄스, ms (0 - 유지) | 0 - 레벨이 변경될 때까지 유지; 그렇지 않으면 10…5000ms 펄스가 발생합니다. |
"출력 켜기, 출력 끄기, 간헐적 버튼은 테스터나 전구를 사용하여 핀을 확인합니다. "카메라가 할 수 있는 것는 모든 방법을 조사하고 보고서를 작성합니다. 수동 테스트는 동일한 기록에 작성됩니다.
7.5. 음성 알림: 각 영역별로 고유한 소리
세 번째 유형의 규칙은 컴퓨터와 프로그램에서 발생하는 소리입니다. 운영자는 화면을 보지 않아도 됩니다. 특정 영역이 오류 상태로 변경되면, 소리를 통해 알림을 받을 수 있으며, 다양한 영역에서 발생하는 다른 소리는 정확히 어디인지 알려줍니다. USB 및 RTSP와 같이 별도의 출력이 없는 모든 카메라에서 소리를 사용할 수 있습니다.
| 작동 방식 | "반복" 옵션이 선택되지 않은 경우 |
|---|---|
| 영역의 클래스가 확인되면 한 번의 소리 발생 | 클래스가 유지되는 동안에는 소리가 발생하지 않습니다. |
| "클래스가 유지되는 동안 반복" 옵션 선택 | "반복 간격"에 따라 신호가 반복되지만, 영역이 지정된 클래스 상태를 유지하는 동안에는 소리 사이의 멈춤 시간을 초과하지 않습니다. |
| 동시에 여러 영역이 오류 상태 | 각 영역은 자체 소리를 발생시키며, 서로 다른 영역의 신호는 서로 덮어쓰지 않습니다. 단, 동일한 영역의 신호만 반복됩니다. |
| 로그 | 각 이벤트는 "작동 기록"에 "소리: ..."라는 형태로 기록됩니다. 파일이 없거나 오디오 장치가 작동하지 않으면 오류 메시지가 기록되고 프로그램은 계속 실행됩니다. |
| 검사 | 이 규칙을 확인은 즉시 소리를 재생합니다. 영역 활성화 시뮬레이션은 TCP 및 전투 큐를 통해 소리를 재생합니다. |
7.6. 작동 기록 및 데이터베이스
"작동 기록 탭은 최근 300개의 기록을 다음과 같은 형식으로 보여줍니다: HH:MM:SS.mmm ✔/✖ 카메라 모델 · 종류 · 구역 → 동작 [메시지]. 이 기록은 실시간으로 업데이트됩니다. "새로 고침" 및 "기록 삭제" 버튼이 있습니다.

탭 데이터베이스: 프로그램은 SQLite 파일 rejectors.db 내에 모든 데이터를 저장하며, exe 파일과 함께 존재합니다. 별도의 서비스는 없으며, 포트를 수신하지 않으므로 설치할 필요가 없습니다. 테이블: settings (설정), cameras (카메라 프로필), camera_models (카메라 모델), zones (존 이름 및 지오메트리), rejectors (규칙), reject_log (로그), camera_param_files (카메라 파라미터 복사본), camera_presets (카메라 설정 세트). 데이터베이스 복사 저장…는 VACUUM INTO 명령을 사용하여 현재 실행 중인 데이터베이스의 전체 사본을 생성합니다. 복사본에서 데이터베이스 불러오기…는 현재 사본을 먼저 저장한 후 복원합니다. DBeaver를 사용하여 프로그램을 닫지 않고 데이터베이스를 확인할 수 있습니다. 외부에서 데이터베이스에 쓰지 않는 것이 좋습니다.
8. 기타 모드 및 작업
일반 모델: normal / anomaly 및 모든 클래스
동일한 ROI(관심 영역) 편집 기능은 일반적인 분류에도 적용됩니다. 여기에는 정제, 뚜껑, 라벨, 그리고 로지스트에 담긴 부품 등이 포함됩니다. 클래스는 "새로운 AI 모델" 대화 상자에서 설정하며 (기본값은 "normal"과 "anomaly", 이름은 영문자로 지정), 영역은 제품에 지정하고, "사진 찍기" 버튼을 사용하여 1~50개의 원을 생성하며, "사진 생성" 기능을 통해 카메라(프레임/초) 또는 인코더를 사용하여 일련의 이미지를 생성합니다. "AI를 위한 합성 데이터" 패널에서는 정확한 90°/180° 회전, 360° 완전 회전 (단계 및 범위 설정 가능), 반전, 그리고 "각도별 클래스" (각 각도를 별도의 클래스로 분류 - 리젝터는 각 각도를 TCP를 통해 전송) 기능을 사용할 수 있습니다. 또한, 밝기 및 대비 범위도 설정할 수 있습니다. 학습은 Ultralytics의 모든 증강 기법을 사용하여 진행됩니다. 이러한 모델의 신뢰도 임계값은 "Inspect" 탭에서 설정되며, 이는 "존-페어" 모델과 동일한 방식으로 설정됩니다.
다중 모델 검사 (슬롯 1–20)
하나의 카메라에 최대 20개의 모델을 설정할 수 있습니다: `ONNX를 슬롯에 추가, 그런 다음 `ROI → 선택한 모델에 클래스 추가` – 각 모델의 슬롯에는 자체적으로 영역이 정의되어 있으며, 모든 모델의 결과가 하나의 프레임에 표시됩니다.
다중 모델이 실제로 사용되는 경우:
| 상황 | 설정 방법 |
|---|---|
| 단일 프레임에서 여러 작업 수행 | 존-페어는 레이아웃과 요소의 존재 여부를 확인하고, 일반 모델은 두 번째 슬롯에서 레이블, 스티커, 잭 색상 또는 키 방향을 표시합니다. 두 번째 모델 영역은 "ROI → 선택한 모델에 클래스 추가"를 통해 개별적으로 설정됩니다. |
| 고정된 그리드 없이 | 정제, 캡, 부품: 일반 모델에서 여러 종류의 제품을 나타내는 여러 클래스. 유사한 클래스는 겹치지 않도록 다른 슬롯에 분리하여 구성됩니다. |
| 하나의 프레임 내에 두 개의 다른 보드 | 각각 다른 기준 이미지와 그리드를 가진 존-페어 모델이 다른 슬롯에 존재합니다. 주요 모델의 기준 이미지를 사용하여 실시간 컨베이어가 작동합니다. |
| 전이 기간 | 구 버전의 훈련된 모델은 새로운 존-페어가 통계를 수집할 때까지 슬롯에 남아 있습니다. 두 모델은 하나의 프레임에서 모두 표시되며, 거부 규칙은 신뢰에 따라 전송됩니다. |
임계값, 분석 속도, 경고 영역 및 리젝터 규칙은 모든 카메라 모델에 적용됩니다. "모델 삭제" 버튼을 누르면 슬롯이 함께 초기화되므로 확인을 요청합니다. "선택된 항목 삭제" 버튼은 슬롯에서 하나의 모델만 삭제하며, 해당 모델의 파일과 설정은 데이터베이스에 남아 있습니다.
일반 모델
"일반 모델 버튼은 다음과 같은 "카메라 → 모델" 세트를 저장합니다: 현재 모델에서 생성, 모든 카메라에 적용, 현재 모델에서 업데이트, 이름 변경, 세트 삭제. 8개의 카메라에서 다른 제품으로 스탠드를 전환하는 것은 단일 선택입니다. 세트 삭제는 폴더, ONNX, 영역 및 규칙만 제거합니다. 영역은 "카메라 + 모델" 쌍에 속하며, 8개의 카메라에 하나의 모델은 8개의 독립적인 레이블을 나타냅니다.
컨베이어에 있는 인코더 및 거부기
COM 포트(115200, ESP32)에 엔코더가 있는 경우: `엔코더 연결, 자동 연결, 위치, 셔터 스텝 및 보정, 제로 설정 + 셔터 설정. 교육 및 분석을 위한 촬영은 "엔코더를 따라" 방식으로 진행되며, 제품의 경로에 따라 프레임이 균일하게 생성됩니다. 오래된 리젝터는 지연 및 스팸 방지 기능을 통해 엔코더 컨트롤러에 REJECT 명령을 전송합니다.
비디오 및 이미지 캡처
설정 탭: 활성화된 카메라를 사용하여 비디오 녹화를 시작하며, 파일 이름은 record_날짜_시간.avi (MJPG, 카메라의 실제 프레임 속도). 학습용 사진은 real_….jpg 형식으로 저장되고, 검사용 사진은 inspect_….jpg 형식으로 저장되며, 사진에는 영역이 표시됩니다.
9. 설정, 콘솔, 요구 사항 및 라이선스
Settings
- 파일에 저장 / 파일에서 불러오기 – 모든 설정(카메라, 모델, 규칙)을 JSON 형식으로 저장하여, 재설치 시나 또는 다른 컴퓨터로 옮길 때 편리하게 사용할 수 있습니다. JSON은 데이터베이스가 사용 불가능할 경우를 대비한 백업 역할을 합니다. 모든 설정 변경 사항은 자동으로 저장됩니다.
- 초기 설정 초기화 — 이는 영구적인 작업입니다. 설정과 창 배치 설정을 삭제합니다.
- 인터페이스 언어: 14개 언어; 메인 창은 즉시 전환되며, 나머지 창은 다음 엽기 시 전환됩니다.
- 모든 창의 위치, 크기 및 모니터, 구분자 위치는 데이터베이스에 저장됩니다. 모니터가 꺼지면 창은 보이는 영역으로 돌아갑니다.
Console
"카메라" 및 "트리거" 옵션은 기본적으로 비활성화되어 있으며, 해당 메시지를 표시하도록 설정되어 있습니다 (카메라 메시지는 "트리거" 모드로 진행됩니다). logs\engiai-*.log 파일에는 필터링 전 모든 내용이 기록됩니다. 이 콘솔은 주의 없이 몇 주 동안 작동하도록 설계되었습니다. 화면에는 800줄의 데이터가 유지되며, 1000줄의 이전 데이터는 200줄씩 삭제됩니다. 새로운 줄은 초당 4묶음으로 생성되며, 개별적으로 생성되지 않습니다. 자동 스크롤 기능은 사용자가 위로 스크롤할 때까지 활성화됩니다. 콘솔에는 소리가 없습니다. 영역 변경 사항은 초당 10줄 이상 기록되지 않으며 (나머지는 카운터에 저장), 로그 파일은 20MB로 분할되며, 14일 이상 된 파일은 실행 시 삭제됩니다. 로그 기록은 데이터베이스에 저장되며, 마지막 20,000개의 기록을 저장합니다. 처리되지 않은 오류는 crash.log에, 강제 종료의 원인은 runtime.log 옆에 exe 파일과 함께 기록됩니다. 문제가 발생하면 먼저 이 부분을 확인하십시오.
요구 사항
| 구성 요소 | 요구 사항 |
|---|---|
| 운영 체제 | Windows 10/11 x64. |
| 검사용 그래픽 카드 | NVIDIA (CUDA 드라이버 포함), CUDA 13 및 cuDNN 9 라이브러리는 프로그램과 함께 제공됩니다. 그래픽 카드가 없으면 검사는 자동으로 프로세서에서 진행됩니다. |
| 교육 | Python 3 (설치 시 "python.exe"를 PATH에 추가하는 옵션 선택) 및 ultralytics, onnx, onnxslim, onnxruntime 패키지를 사용하고, 프로그램은 처음 학습 시 자동으로 설치하며, 인터넷 연결이 필요합니다. GPU는 PyTorch에 따라 자동으로 설정되며, CUDA가 없으면 CPU를 사용하여 학습하되, 속도는 느리고 결과는 동일합니다. |
| SICK 카메라 | IDS uEye 드라이버; 카메라는 IDS Camera Manager에서 인식되어야 합니다. |
| HIKROBOT 카메라 | MVS SDK (라이브러리는 프로그램과 함께 제공), GigE를 위한 경우 - Jumbo 프레임을 지원하는 네트워크 카드 |
라이선스 및 평가판
프로그램을 실행하면 engi.live 라이선스 서버에 접속하며, 하드웨어 식별자 및 버전 정보의 해시 값만 전송됩니다. 시리얼 번호나 사용자 이름은 전송되지 않습니다. 서버에 연결할 수 없는 경우, 캐시된 정보를 사용하여 프로그램이 실행됩니다 (인터넷 연결이 없는 환경). 라이선스가 없을 경우, 20분 동안 체험 모드가 제공되며, 창 제목과 AI 관련 영역에 "테스트 MM:SS"라는 문구가 표시됩니다. 설정 탭에 있는 "구매" 버튼을 클릭하면 구매 페이지로 이동합니다. 유효한 라이선스가 있는 경우, 시간 표시 기능은 작동하지 않습니다.
10. 간략한 점검 목록 및 문제 해결
초기부터 사용할 수 있는 카메라 설정 체크리스트
만약 문제가 발생했을 경우
| 증상 | 확인해야 할 것 |
|---|---|
| 카메라가 목록에 나타나지 않음 | 전원 및 케이블; SICK의 경우 IDS Camera Manager 및 어댑터 서브넷 IP; HIKROBOT의 경우 비상 종료 후 25초 대기 및 «재연결» |
| 이미지가 어둡거나 회색 또는 잘못된 색상 | 카메라 → «AI 자동 설정»; 컬러 SICK의 경우 Bayer 배열 및 화이트 밸런스; USB의 경우 «표준», 그런 다음 «파라미터 고정» |
| 프레임이 끊기고, 네트워크가 빨간색 | GigE: 패킷 크기 1500 또는 jumbo, 네트워크 카드 간 패킷 간 지연; FPS 또는 프레임 수가 적음; 카메라에 별도의 네트워크 카드 |
| "장비가 감지되지 않음" / 이미지 누락 | 기준 이미지가 캡처되지 않았거나 다른 조명 조건에서 캡처됨; 지지점이 부족함 - 정렬 영역을 더 크게 하고 세부 정보를 포함; 테이블이나 컨베이어에 영향을 받음; 검색 기간 증가 |
| 영역이 다른 보드에 이동 | 보드는 자체 영역 검사 기준으로 검색됨: 보드 주변의 정렬 영역과 함께 기준 이미지를 재확인 (4.4절); 자동 결합 모델 |
| 다른 부품의 정상 보드가 부족함 | 케이스에 다른 마킹: 이 배치에서 정상 이미지를 추가; 3px 이하의 인위적인 흠집을 만들지 않음 (4.6절); 결함이 이동인지 색인지 확인 |
| NO_ZONE_CLASS 표시된 지역 | 학습 후 격자 변경; 격자를 되돌리거나 새로운 모델을 만들고 다시 촬영 |
| 정상 보드에서는 모든 영역이 빨간색 | 다른 플랫폼 또는 다른 위치, 생동감 있는 컨베이어가 없는 경우; 임계값이 너무 높음; 사진은 다른 조명 조건에서 촬영됨; 색상 및 회색 파일 혼합 |
| 모델이 요소의 이동을 감지하지 못함 | px/mm 재계산 (1.3절): 작은 척도로 이동이 5px 미만일 경우; 시야를 줄이거나 더 높은 해상도의 카메라 사용; 정상적인 이동 확장 방지 |
| 학습이 느리거나 중단됨 | Device = cpu, NVIDIA 그래픽 카드가 없는 경우; 배치 크기 줄임; 콘솔 확인; Python이 PATH에 있는지 확인 |
| 검사가 작동하지 않음 | 선택되었습니까 best.onnx; 템포 소스 활성화 여부 (카메라 / 타이머 / 트리거 사용); "AI 사용 안 함" 버튼이 눌려 있는지 여부; 카메라 설정에서 "AI 활성화" 체크박스가 선택되어 있는지 여부 |
| 규칙 "리젝터"가 작동하지 않음 | "N 영역에서 생성" 버튼을 눌렀는지 확인; "활성화" 체크박스 확인; 규칙 클래스가 모델의 응답과 일치하는지 확인 (이상/정상); 종료 시 "off"가 아닌 레벨 사용; USB 카메라에는 출력이 없고 TCP만 사용 |
| 소리가 재생되지 않음 | 규칙이 생성되고 적용되었습니다. 파일은 "sounds" (또는 "sounds\custom") 폴더에 있습니다. 소리 사이의 일시 정지 기능이 작동하는지 확인해주세요. "반복" 기능이 활성화되지 않은 상태에서는 소리가 클래스가 변경될 때만 재생됩니다. Windows 음량 및 출력 장치 설정을 확인해주세요. |
| TCP 패킷은 한 번 전송됩니다. | "반복" 기능이 활성화되면, 수신 측에서 "ok <패킷>"과 같은 응답을 기다립니다. "반복, 수업이 진행되는 동안" 옵션을 선택하거나 PLC 측에서 응답 설정을 구성하십시오. |
engiAI Ethernet System. 버튼 및 필드의 이름은 귀하의 언어에서 프로그램에 표시되는 대로 번역되었습니다 (스크린샷은 러시아 인터페이스에서 캡처). 스크린샷은 "model_4" 모델에서 촬영되었습니다 (2개의 256x256 영역: C30 커패시터 및 BR1 브리지), USB 카메라 3264x2448, 모델은 회색 톤으로 훈련되었습니다. 3번째 버전, 2026년 9월: 2개의 영역에 대한 예시, 모델 폴더 생성, 정렬 영역, "기본 요소" 이미지와 함께 합성 데이터, 색상 팔레트 및 선 두께, 빨간 영역, 콘솔.
