engiAI

  • 요구 사항
Windows 10/11 x64. CPU 및 GPU 분석 – RTX 50+ 버전.

⬇ engiAI.rar (900 MB)

⬇ engiAI-ZONA-PARA-KO.pdf (5.7 MB)

⬇ engiAI-doc-new-KO.pdf (12 MB)

SICK IDS Camera Manager ⬇ ids-software-suite-win-4.96.1.zip (184 MB)

SICK IDS Camera Manager - link 2

등록

engiAI에 신청

EngiAI (engiAI Ethernet System)는 산업 검사 및 생산 라인에서 제품 검사 및 불량 판별을 위한 데스크톱 기반 컴퓨터 비전 프로그램입니다. C# (.NET 9, WinForms)로 작성되었으며, Windows x64에서 실행 가능한 단일 AOT 실행 파일로 컴파일됩니다.

⬇ engiAI 설명.pdf (71 KB)
  • 무엇을 하는지
카메라 기반 시스템: Hikrobot (SDK), USB/DirectShow, IDS uEye, 그리고 OpenCV를 통해 Android 카메라 등 산업용 카메라. 여러 대의 카메라를 동시에 사용 가능.

AI 검사: YOLO 신경망 (ONNX Runtime / GPU-CUDA 또는 CPU)은 실시간으로 객체와 결함을 인식합니다.

ROI 영역: 사용자 정의 제어 영역으로, 클래스와 규칙이 정의된 영역, 영역 목록, 카탈로그.

리젝터 (Rejector): AI의 결과로, 불량 신호를 감지하여 디지털 출력(오류 제거)을 생성하며, 핀 배열 설정 및 테스터를 사용하여 검증합니다.

트리거: 외부 신호에 따른 프레임 캡처 (디지털 입력, 엔코더)

모델 훈련: 데이터 세트, 합성 데이터 (회전/반사/밝기), YOLO11 모델을 프로그램 내에서 직접 훈련

저장소: SQLite 로컬 데이터베이스 (rejectors.db) – 모델, 영역, 작동 로그, 카메라 상태.

  • 라이선스
단일 빌드: 모드 (테스트/라이선스/금지)

라이선스 없이 – 20분 테스트 모드; 라이선스 있는 경우 – 제한 없이 작동.

하드웨어에 연결, 모든 실행 인스턴스 제어.

engiAI Ethernet System
존 페어 - 인쇄 회로 기판 및 조립의 시각적 검사

engiAI 인터페이스는 한국어를 지원합니다. 이 설명서의 버튼과 필드 이름은 프로그램에 표시되는 그대로 표기했습니다.

검사의 핵심은 존-페어 방식의 다 영역 검사입니다. 회로 기판에는 검사해야 할 영역이 표시되어 있습니다. 각 영역마다 "정상/이상" 두 가지 기준으로 분류하고, 해당 영역 내에서만 판단합니다. 예시로, 설명서에는 C30 콘덴서와 BR1 브리지 두 영역이 표시되어 있습니다. 실제 회로 기판에는 수백 개의 영역이 있을 수 있으며, 동일한 방법이 적용됩니다.
합성 데이터 – 기본판 주변 부품의 자동 이동. 이 프로그램은 부품과 함께 기본판 주변의 부품(선, 트랙, 기본판 색상)을 가져와, 부품 크기로 영역을 줄이고, 이동하거나 회전시킵니다. 결함 데이터를 생성하는 데는 단 두 번의 클릭만으로, 단 하나의 결함 있는 기판만 필요합니다.
사용자 매뉴얼: 카메라 연결 방법, 영역 설정, 정렬 영역 지정, 정상/비정상 상태 감지, 모델 훈련, 검사 실행, 그리고 검사 결과를 SICK 및 HIKROBOT 카메라의 아날로그 출력, 소리 알림, 그리고 로봇 또는 PLC로의 TCP 통신으로 전송하는 방법.
1단계카메라
2단계 영역 격자
3단계정상 및 이상 현상
4단계교육
5단계검사
6단계출구 및 TCP
모든 스크린샷은 작동 중인 프로그램에서 촬영되었습니다: vtlift 소프트웨어, 3264×2448 해상도의 USB 카메라, model_4 모델, 256×256 픽셀 크기의 2개 영역 (C30 콘덴서 및 BR1 브릿지), 그리고 회색 톤으로 훈련되었습니다. 이 프로그램은 HIKROBOT (GigE 및 USB3), SICK picoCam (uEye), USB/웹 카메라 및 RTSP를 지원하는 IP 카메라와 함께 작동합니다. 버전 3 – 2026년 9월.

내용

  1. 1. 엔지AI와 존-페어 방법의 원리
  2. 1.1. 이 방법이 전체 프레임을 분류하는 방법에 비해 어떤 이점을 제공하는가
  3. 1.2. 속도: AI는 필요한 부분만 추출
  4. 1.3. 예상되는 정확도: 자신의 카메라로 측정
  5. 1.4. 빠르고 간편한 설정: 원하는 설정, 영역 및 모델을 몇 번의 클릭만으로 설정
  6. 2. 프로그램 인터페이스 1분 만에 완성
  7. 3. 카메라: 연결 및 설정
  8. 3.1. 어떤 카메라를 지원하나요
  9. 3.2. 카메라 윈도우: 추가, 재연결, 삭제
  10. 3.3. HIKROBOT 및 SICK용 카메라 기능
  11. 3.4. USB/웹캠용 카메라 탭
  12. 3.5. 저장된 카메라 설정 (프레임)
  13. 3.6. GigE 네트워크 및 재연결
  14. 4. 존-페어 모델: 격자 구조에서 학습된 모델로의 전환
  15. 4.1. 방법의 구조: 하나의 모델, 각 영역에 맞는 클래스
  16. 4.2. 모델 생성
  17. 4.3. 결제 영역 표시
  18. 4.4. 기준 이미지 설정: 정렬 영역
  19. 4.5. 영역별 이미지: 정상 데이터 및 합성 데이터
  20. 4.6. 2번의 클릭으로 합성 데이터 오류 수정: 요소가 기반과 함께 이동
  21. 4.7. 영역별 이상 현상: 설정 창
  22. 4.8. 기준 이미지: 납땜 영역 및 영역 편집
  23. 4.9. 모델 훈련
  24. 5. 검사
  25. 5.1. 모델을 지정하고 영역을 확인
  26. 5.2. 영역 식별 임계값
  27. 5.3. 유연한 컨베이어: 어떤 자세에서도 사용 가능
  28. 5.4. 어떤 신호를 분석할 것인가
  29. 5.5. 노란색 영역: 클릭으로 영역 끄기
  30. 5.6. 화면과 콘솔에서 확인할 수 있는 내용
  31. 6. 트리거: 카메라 입구에 장착된 외부 센서
  32. 7. 출력: 리젝터, 디지털 카메라 출력 및 TCP
  33. 7.1. 참고자료: 연락처 및 테스터 사용 방법
  34. 7.2. 출력 창: 영역 규칙
  35. 7.3. TCP 패킷을 로봇 또는 PLC로 전송
  36. 7.4. 카메라의 독립적인 출력
  37. 7.5. 음성 알림: 각 구역별 맞춤 음성
  38. 7.6. 작동 기록 및 데이터베이스
  39. 8. 다른 모드 및 작업
  40. 9. 설정, 콘솔, 요구 사항 및 라이선스
  41. 10. 간략한 점검 목록 및 문제 해결

사용 방법: 1단계에서는 해당 방법의 목적과 예상 결과를 설명합니다. 3~5단계는 빈 프로그램에서 작동하는 검사를 수행하는 단계이며, 순서대로 진행해야 합니다. 6~7단계는 센서, 출력 및 TCP 연결 설정입니다. 8~10단계는 나머지 기능, 설정 및 확인 목록입니다.

1. 엔지AI와 존-페어 방법의 원리

engiAI Ethernet System은 생산 라인을 위한 시각 검사 프로그램입니다. 산업용 또는 일반 카메라에서 이미지를 캡처하여 영역으로 분할하고, 훈련된 신경망을 사용하여 각 영역을 검사한 다음, 결과를 카메라의 디지털 출력, 로봇 또는 PLC로 전송하거나, 로그에 기록합니다. "존-페어" 방법은 "각 위치에 적합한" 제품에 적합하도록 설계되었습니다. 예를 들어, 인쇄 회로 기판, 조립품, 조립함 내 부품 세트, 포장 등이 있습니다.

1 모델
모든 영역에 적용 가능한 단일 모델로 변경
2 구역
예시: C30 커패시터와 BR1 다리. 이러한 부품은 회로판에 수십 개 있을 수 있습니다.
≈5 px
"정상/불량" 기준으로 설정된 경계선에 해당하는 요소의 위치 이동
2번 누르기
실제 이미지, 정상 및 합성 결함 학습용

1.1. 전체 이미지를 분류하는 방법과 비교했을 때 이 방법이 제공하는 것

일반적인 접근 방식은 전체 이미지 또는 특정 영역에 대해 "정상/이상" 두 개의 클래스를 가진 단일 모델을 사용하는 것입니다. 하지만 이러한 모델은 작동하지 않습니다. 예를 들어, BR1 교량 아래 영역(2 영역)의 빈 공간은 "이상"으로 인식되지만, 다른 영역의 동일한 빈 공간은 "정상"으로 인식됩니다. 단일 모델로는 이러한 두 가지 상황을 모두 처리할 수 없습니다. 또 다른 극단적인 방법은 각 부품에 대해 별도의 모델을 사용하는 것입니다. 이는 수십 번의 훈련과 수십 개의 파일 저장 공간을 필요로 합니다.

존 페어는 다음과 같이 해결합니다: 모델은 하나이고, 영역의 수는 클래스 수와 같습니다. "영역"은 하나의 부품을 둘러싸는 사각형입니다. "클래스"는 네트워크가 학습하는 이미지 폴더입니다. 각 영역은 다음과 같은 쌍을 가집니다: "zone_001" (정상 영역 1, 예: C30 콘덴서) 및 "zone_001_anomaly" (불량 영역 1); "zone_002" 및 "zone_002_anomaly"는 BR1 다리입니다. 1번 영역을 검사할 때, 프로그램은 해당 영역의 쌍만 확인하고, 2번 영역에 대한 정보는 사용하지 않습니다. 이상 영역은 필수는 아닙니다: 불량은 영역의 모양을 변경하고, "정상"에 대한 신뢰도가 자동으로 감소합니다. 하지만 합성 데이터(4.6절)를 사용하면 한 번의 클릭으로 생성할 수 있으며, 신뢰도를 크게 향상시킵니다.

예시의 실제 PCB 이미지: 두 영역 - 오른쪽 상단의 BR1 다리 및 아래쪽 왼쪽의 C30 커패시터, 모두 녹색이며 "normal"이라고 표시됨. 파란색 선은 정렬 영역의 경계, 파란 점은 PCB가 이미지에서 찾을 수 있는 지지점을 나타냄.
예시의 실제 PCB 이미지: 두 영역 - 오른쪽 상단의 BR1 다리 및 아래쪽 왼쪽의 C30 커패시터, 모두 녹색이며 "normal"이라고 표시됨. 파란색 선은 정렬 영역의 경계, 파란 점은 PCB가 이미지에서 찾을 수 있는 지지점을 나타냄.
파트 내에서의 해결네트워크 출구 중 17번 영역을 검사할 때, "정상 17 영역"과 "17 영역 이상"이라는 두 가지 결과만 고려합니다. 나머지 수백 개의 클래스는 결과에 영향을 미치지 않으므로, 유사한 인접 영역이 결과에 영향을 미치지 않습니다.
다른 영역의 신호가 정상적으로 수신되지 않음 만약 특정 영역에서 네트워크 신호가 10% 미만으로 수신되면, 해당 영역은 "신호 없음"으로 표시됩니다. 이는 다른 신호 또는 신호가 왜곡된 상태를 의미합니다. 이러한 영역은 "정상적인 상태"가 아닌 "오류"로 간주됩니다.
결함은 영역에 비례합니다인공적인 결함의 크기와 위치는 영역의 크기에 대한 비율로 설정됩니다. 8MP 이미지의 전체 프레임에서 요소가 0.5mm만큼 이동하는 것은 감지할 수 없지만, 128×128 픽셀 영역 내에서는 5~6 픽셀만큼 이동하는 것은 눈에 띄는 변화입니다.
완전 해상도 108–137 픽셀 영역을 128×128 해상도로 전송할 때, 거의 확대 없이 전송됩니다. 전체 프레임을 128 픽셀로 압축해야 하는데, 이 과정에서 수십 배의 디테일을 잃게 됩니다.
정상/불량 기준 합성 데이터의 정상 값은 0-2 픽셀의 범위이며, 합성 데이터의 불량 값은 5 픽셀만큼의 편차를 나타냅니다. 네트워크는 이러한 기준을 학습하며, 단순히 조명 변화와 같은 무작위적인 차이와는 다릅니다.
목표 대상각 영역은 고정된 주소(모델, 테이블, 셀)와 이름을 가지고 있습니다. 원하는 규칙(예: 음성 알림, 특정 영역에 대한 TCP 전송 또는 카메라 출력을 설정)을 해당 영역에 적용할 수 있습니다.
어떤 위치에서도 검사 가능운영자는 이미지에서 정렬 영역(부품이 있는 기판 부분)을 지정합니다. 각 프레임은 이 영역의 기준 이미지와 일치하도록 조정되며, 기판이 기울어져 있거나 180도 회전되어도 (4.4절) 검사 영역은 새로운 기판에 위치합니다.
기판 자체의 결함 인공적인 결함은 단순히 그림이 그려진 것이 아니라, 요소와 기판의 일부가 움직이거나 회전한 경우를 의미합니다. 모델은 "요소 ↔ 기판"의 관계를 학습하는 것이 아니라, 얼룩의 색을 학습합니다. 이는 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"의 변위를 보장하지 않습니다. 변위 감도는 제품당 픽셀 수와 모델이 학습한 경계에 따라 결정됩니다. 다음 두 줄로 계산합니다:

px/mm = (화면의 가로 크기 (픽셀 단위)) / (시야각의 가로 크기 (밀리미터 단위))
최소 감지 가능한 변화는 약 5 픽셀이며, 이는 픽셀당 밀도(픽셀/mm)를 기준으로 계산됩니다

5px – 권장 설정에서 발생하는 이상(표준 오차는 0–2px)의 하한 변위. 기본 설정은 11px/mm를 기준으로 합니다. 이 경우 0.5mm는 5–6px로, 이는 개발 단계에서 합의된 목표입니다. 다음 값을 입력하세요:

카메라 (프레임 폭)시야 100mm200mm300mm400mm
3264px (USB 8MP, 사진과 동일)0.03mm/px → 변위 ≈ 0.15mm0.06 → ≈ 0.3mm0.09 → ≈ 0.45mm0.12 → ≈ 0.6mm
2448 픽셀 (HIKROBOT 5MP)0.04 → ≈ 0.2mm0.08 → ≈ 0.4mm0.12 → ≈ 0.6mm0.16 → ≈ 0.8mm
1920 픽셀 (SICK picoCam, HIKROBOT 2MP)0.05 → ≈ 0.25mm0.10 → ≈ 0.5mm0.16 → ≈ 0.8mm0.21 → ≈ 1.0mm
중요합니다. 이는 급격한 변화와 안정적인 조명 조건에서 요소의 움직임을 평가하는 방법입니다. 실제 경계를 "존-페어: 영역 ↔ 모델" 버튼과 인식 임계값(5.2절)을 사용하여 확인하십시오. 각 영역마다 다른 경계가 있으므로, 각 영역에 따라 신뢰도가 달라집니다. 카메라의 시야각이 작고 픽셀 수가 많을수록 모델이 감지할 수 있는 오류가 작아집니다.

1.4. 빠른 시작: 설정이 완료되었고, 영역 및 모델을 몇 번의 클릭으로 설정

이 방법은 기계 학습 경험이 없는 기술자가 단 한 번의 교대 근무 만에 작동하는 모델을 얻을 수 있도록 설계되었습니다. 미리 설정할 수 있는 모든 사항은 프로그램 데이터베이스에 저장됩니다.

  • 1분 단위 영역 설정 ROI 편집기에서 특정 영역을 선택하고, 영역의 크기를 지정합니다 (예: 256px). 여러 개의 동일한 요소가 있는 경우, 전체 표에 영역을 드래그하여 프로그램이 자동으로 행과 열을 계산하도록 합니다.
  • 합성 데이터의 정상 및 불량 설정이 미리 구성되어 있습니다. "기본값", "요소 이동", "색상 및 색상" 버튼은 미리 정의된 프로필을 선택합니다. 파일 수, 카메라 캡처된 프레임 수, 예상 촬영 시간을 "촬영" 버튼을 누르기 전까지 표시합니다.
  • 학습 파라미터는 자동으로 설정됩니다. 첫 번째 영역별 이미지를 촬영한 후, 프로그램은 이미지 크기를 128, 모델 크기를 s, 에포크를 50, 배치 크기를 64로 설정하고, 이상치 클래스와 충돌하는 증강 기능을 학습 중에 비활성화합니다.
  • 카메라 설정은 버튼을 사용하여 합니다. "AI (프레임별) 자동 설정"은 셔터 속도, 감도, 색상 영역 및 화이트 밸런스를 자동으로 설정합니다. USB 카메라의 경우 "폼별 자동 설정" 및 "파라미터 고정" 기능이 있습니다.
  • 카메라 설정 세트 미리 설정된 파라미터는 특정 이름으로 저장되며, 목록에서 선택하여 카메라에 적용하고, 카메라 메모리에 저장합니다.
  • 결과로 1개의 ONNX 파일이 생성됩니다. 훈련된 모델은 자동으로 내보내고 즉시 검사에 할당되며, 추가적인 단계는 필요하지 않습니다.

전체 과정: 카메라 연결 → 모델 생성 → 영역 표시 → 영역 정렬 → 여러 개의 정상 보드에서 "영역별 이미지" 캡처 → "영역별 이상" → AI 모델 훈련 → "검사" 탭. 이후에는 영역에 소리, 출력 및 TCP 연결을 설정해야 합니다. 시작에 필요한 것: Windows 10/11 (빠른 검사를 위해 NVIDIA 그래픽 카드), 카메라, 하나의 정상 보드, 그리고 학습 환경 설치를 위한 인터넷 연결. 불량 보드는 필요하지 않습니다.

4.2. 프로그램 인터페이스 1분 만에

메인 창은 두 부분으로 나뉩니다. 왼쪽에는 카메라의 실시간 비디오와 그 위에 있는 상태 표시줄이 있습니다. 오른쪽에는 모든 제어 기능이 있는 탭이 있는 패널입니다. 창의 경계를 드래그하여 변경할 수 있으며, 프로그램은 창의 크기, 위치 및 레이아웃을 자체 데이터베이스에 저장합니다.

메인 창: 왼쪽에 2개의 영역(둘 다 녹색 - "정상")이 있는 회로판의 실시간 뷰, 오른쪽에 Inspect 탭과 model_4\best.onnx 모델이 있습니다. 실시간 컨베이어가 활성화되어 있으며, "정상 · 112개 포인트" 표시가 나타납니다.
메인 창: 왼쪽에 2개의 영역(둘 다 녹색 - "정상")이 있는 회로판의 실시간 뷰, 오른쪽에 Inspect 탭과 model_4\best.onnx 모델이 있습니다. 실시간 컨베이어가 활성화되어 있으며, "정상 · 112개 포인트" 표시가 나타납니다.

영상 위 버튼

버튼열 때
영상 숨기기화면에서 이미지를 제거합니다. 렌더링만 수행되므로, 분석은 계속 진행됩니다.
출력참조 창: 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. 카메라 창: 추가, 재연결, 삭제

1
화면 상단의 "카메라" 버튼을 클릭하면 "연결된 카메라 설정" 창이 전체 화면으로 나타납니다 (Esc 키를 누르면 닫음).
2
"+ 카메라 추가 버튼을 클릭합니다. 프로그램은 네트워크와 USB를 검색하여 다음과 같은 목록을 표시합니다: Hikrobot … SN: … IP:, SICK … SN: … DeviceID:, Android …. SICK 카메라는 최대 4초 동안 검색되는데, 이는 GigE 장치가 드라이버에 즉시 나타나지 않기 때문입니다. 사용 중이거나 잘못된 주소를 가진 SICK 장치는 ⚠ 표시와 함께 해당 이유를 나타냅니다.
3
원하는 카메라를 선택하고 "추가" 버튼을 누르세요. IP 카메라를 추가하려면 "+ RTSP 카메라 링크" 버튼을 사용하세요. 카메라가 연결될 때 "카메라 건너뛰기" 버튼이 표시됩니다.
4
카메라 정보는 "이름 | 유형 | 시리얼 번호 | 온라인/오프라인 | AI:ON | 디스플레이:ON" 형식으로 목록에 표시되고, 해당 카메라의 영상은 메인 창의 왼쪽에 표시됩니다.

체크 박스는 선택된 카메라에 적용됩니다: 카메라 활성화 (체크 해제 시, 장치에서 연결이 끊기고 화면에서 사라집니다), 영상/영역 표시 (영상의 표시만 해당되며, 분석 기능은 항상 작동합니다), 선택된 카메라에 AI 기능 활성화. 재연결 버튼은 카메라를 완전히 연결 해제하고 다시 연결하며, AI 스트림을 재시작하고 모델을 재로딩합니다.

오른쪽 창은 연결 시 장치에서 읽어온 카메라의 모든 매개변수를 보여줍니다. 매개변수는 그룹별로 분류되어 있으며, 각 매개변수에는 측정 단위가 표시됩니다. "어떤 매개변수를 표시할지", "카메라에서 다시 읽기", "클립보드에 복사" 등의 옵션이 있습니다. 이 창에서는 매개변수를 확인할 수만 있으며, 매개변수를 변경하려면 "Camera" 탭을 사용해야 합니다.

중요합니다. HIKROBOT GigE 카메라의 경우, 독점적인 연결을 유지합니다. 프로그램이 예기치 않게 종료되면, 심박 신호를 기다리는 동안 연결 상태를 유지합니다. 프로그램은 최대 25초(10번의 시도) 동안 대기하고 "다른 프로세스에 의해 사용 중"이라는 메시지를 표시합니다. SICK의 경우, 잘못된 IP 주소를 입력하면 프로그램이 자동으로 IP 주소를 수정하려고 시도하지만, 이는 네트워크 어댑터의 서브넷에 속하지 않는 경우에만 작동합니다.

3.3. HIKROBOT 및 SICK용 카메라 탭

이 탭은 파란색 테두리로 표시된 카메라 모듈과 연동됩니다. 프로그램이 연결되면 카메라 모듈에 아무런 데이터도 기록하지 않습니다. 카메라 모듈은 진실의 원천이며, 슬라이더는 카메라 모듈의 값에 맞춰 조정됩니다. 설정을 저장하려면 "매개변수 저장" 버튼을 명시적으로 클릭해야 합니다.

1
아래 탭에서 너비 (W)높이 (H)를 설정하거나 (이 카메라가 지원하는 크기만 있는 목록에서 미리 설정 선택) 해상도 적용 버튼을 클릭합니다. 일반적으로 전체 카메라 프레임을 사용합니다. 프레임 크기는 AOI 카메라의 단계별로 반올림됩니다.
2
"AI 자동 설정 (프레임별) 버튼을 누릅니다. 이 프로그램은 밝기 99.5%에 해당하는 값을 220~248 범위 내에서, 반사광 없이 조정하고, 그 다음 1.50의 톤, 115%의 채도, 105%의 대비, 그리고 자동 화이트 밸런스를 설정합니다. "자동" 체크 박스를 선택하면, 3초마다 자동으로 검사하고 조정하여, 빛이 변할 경우에 대응합니다.
3
필요에 따라 수동으로 조정: 노출 (마이크로초 단위 슬라이더, ms 단위 표시, 최대 1초), 이득, FPS, 블랙 레벨. SICK의 경우 추가적으로 픽셀 클럭 (FPS의 최대값 및 최소 셔터 시간을 결정), 이득 보정, 하드웨어 래, WB (빨강/녹색/파랑)를 설정할 수 있습니다.
4
"설정 저장" 버튼을 누르면, 파일 "camera_params\<SN>.ini"이 저장되고, HIKROBOT의 경우 "UserSet1" 메모리 영역에, SICK의 경우 EEPROM에 설정값이 저장됩니다. 저장 완료 여부는 버튼에 표시되는 "✔ 저장됨"이라는 메시지로 확인할 수 있습니다. HIKROBOT의 경우, "변경 사항 발생 후 5초 후 자동 저장 (UserSet1 메모리 영역)" 옵션을 선택할 수 있습니다.

"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 범위가 정보를 제공하지 않기 때문입니다.

1
해결적용. 확인 버튼은 VGA부터 8K까지 표준 해상도를 선택하고, 카메라가 승인한 해상도만 목록에 표시합니다. "카메라 형식" 항목은 실제 해상도와 FPS를 표시합니다.
2
자동 노출, 자동 초점, 자동 B 버즈 설정을 완료한 후, "파라미터 고정 (자동 기능 끄고 현재 설정 유지)" 버튼을 누르세요: 자동 기능이 꺼지고, 프로그램이 동일한 밝기로 수동 셔터 속도를 자동으로 설정합니다 (자동 기능이 켜져 있을 때, 드라이버는 마지막으로 설정된 수동 셔터 속도를 제공하며, 값과 형식은 데이터베이스에 저장되어 이 카메라를 다시 연결할 때마다 적용됩니다.
3
세트 AI 기반: 형태별 자동 선택 (20–60초, 실시간 이미지에서 셔터 속도 및 대비 조정, 기준 – 명확한 윤곽, 반사광 없음), 색 없는 형태, 부드러운 형태, 되돌리기, 표준.
4
필드에 입력된 값은 즉시 카메라로 전송되며, Enter 키를 누르지 않아도 바로 데이터베이스에 저장됩니다. "카메라에서 속성 재확인" 버튼은 카메라가 실제로 값을 수신했음을 나타냅니다.
팁: 인공지능 모델의 경우, 색상을 조정할 때 카메라의 채도 설정을 사용하는 것보다 "그레이스케일로 학습" 옵션을 사용하는 것이 좋습니다. 이 옵션은 카메라 설정 탭(AI 모델 탭에서는 "그레이스케일로 학습"이라고 표시됨)에 있습니다. 이렇게 하면 학습 데이터와 검사 이미지가 모두 흑백으로 처리되고, 동시에 카메라에서는 여전히 색상이 표시되어 작업자가 색상 정보를 활용할 수 있습니다. 예시로 제공된 모델은 그레이스케일로 학습되었습니다.

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 분류 네트워크이며, 영역 수만큼의 클래스와 선택적인 이상 클래스를 포함합니다. "클래스"는 trainval 내부에 있는 폴더입니다. 프로그램은 모든 폴더를 자동으로 생성합니다. 수동으로 폴더를 만드는 것은 필요하지 않습니다. 학습 후의 모델 폴더의 예시가 다음과 같습니다:

폴더 model_4: train 및 val — 이미지, data.json — 영역, live_template — 기준 이미지, board.json — 임계값, best.onnx — 학습된 네트워크.
폴더 model_4: train 및 val — 이미지, data.json — 영역, live_template — 기준 이미지, board.json — 임계값, best.onnx — 학습된 네트워크.
model_4\ train\ 교육용 이미지 zone_001\ 정상 영역 1 (C30): real_... 카메라에서 촬영한 영상입니다 syn_... 합성 데이터 zone_001_anomaly\ 불량 구역 1: syn_…_combo1_d, _rotate1 … zone_002\ 구역 2 (BR1) 정상 zone_002_anomaly\ 불량 구역 2 val\ 검증 데이터 세트: 동일한 네 개의 폴더가 사용되며, 데이터는 자동으로 채워집니다 data.json 영역: 테이블, 좌표, 크기, 색상, 활성화/비활성화; 클래스; 슬롯 live_template.png / .txt 기준 이미지의 구성 요소: 프레임, 정렬 영역, 빨간색(제외) 영역 live_template_zones.png 기준 이미지와 함께, 그림으로 표시된 영역과 해당 번호가 함께 제공됩니다 board.json 인식 가능 영역의 임계값 ({ "threshold": 0.50 }) train_gray.txt "회색 음영 세트" 기능 best.onnx 훈련된 모델은 검사를 위해 지정됩니다 runs\ diag\ *.cache 업무 관련: 학습 과정, 분석용 이미지, 학습 데이터 캐시
훈련: 각 영역별로 정상 및 비정상 데이터를 담은 두 개의 폴더를 사용합니다.
훈련: 각 영역별로 정상 및 비정상 데이터를 담은 두 개의 폴더를 사용합니다.
Val: 구조는 동일하며, 촬영 시 프로그램이 자동으로 채웁니다.
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개의 파일이 있습니다.

단 하나의 저장 위치. 모델의 모든 레이아웃(검사 영역, 정렬 영역, 클래스 및 슬롯)은 모델 폴더 내에만 존재합니다: data.jsonlive_template.txt. 프로그램 내의 영역은 더 이상 존재하지 않으므로, AI 모델 탭과 Inspect 탭에서 ROI 편집기는 동일한 영역을 표시하며, 모델 폴더 전체를 다른 컴퓨터로 복사할 수 있으며, 이 과정에서 아무런 데이터 손실이 없습니다. 기존 모델은 처음 열 때 자동으로 파일로 이동됩니다.

이 프로그램은 특정 클래스(예: zone_NNN)가 존재하는 경우, 해당 모델을 자동으로 "결제"로 인식합니다. 클래스 번호는 그리드 내 영역의 전체 번호(1…N)입니다. 따라서 이 방법의 주요 규칙은 다음과 같습니다:

중요합니다. 영역은 모델의 일부입니다. 수업 촬영 후에는 영역을 변경할 수 없습니다 (새 영역 추가, 삭제, 재배치): 영역 번호가 수업과 일치하지 않게 되며, 해당 영역에는 NO_ZONE_CLASS라는 레이블이 부여됩니다. 영역을 변경해야 하는 경우, 새로운 모델을 생성하십시오.

4.2. 모델 생성

1
"AI 모델" 탭을 열고 "새 AI 모델 생성" 버튼을 클릭하세요.
2
부모 폴더와 모델 이름을 지정하십시오 (프로그램은 사용 가능한 model_N를 제안합니다). 기본 클래스 목록에는 normalanomaly가 포함되어 있습니다. 존-페어의 경우, 이러한 클래스는 필요하지 않습니다. 영역별로 이미 생성됩니다. 필요에 따라 삭제하거나 비워 둘 수 있습니다. 학습 전에 프로그램은 비어 있는 클래스를 삭제하도록 제안합니다.
3
"모델 생성 버튼을 클릭합니다. 디스크에 trainval 폴더가 생성되고, 모델은 편집을 위해 열립니다 (검사용으로는 작동하지 않습니다). 만약 모델이 이미 있다면, 대신 모델 폴더 선택 버튼을 클릭합니다.

4.3. 결제 영역 표시

1
카메라에 올바른 회로를 정확히 배치합니다. ROI → 학습 모델에 추가 버튼을 누릅니다.
2
대화 "ROI(투자 수익)를 클래스로 관리"에서 원하는 클래스를 선택하거나 (레이블링에는 중요하지 않음) 새 이름을 입력하고 "확인 + ROI 열기"을 클릭합니다. 이후 이 위치에서 모든 영역 클래스가 zone_### 패턴에 따라 그룹화되어 표시됩니다. 그룹을 클릭하면 선택되고, 두 번째 클릭하면 선택 해제됩니다. "그룹 삭제" 버튼을 클릭하면 그룹과 함께 모든 이미지가 삭제됩니다.
3
"ROI 선택" 창이 열립니다. 마우스 왼쪽 버튼으로 해당 부분을 감싸는 영역을 드래그합니다. " 영역 크기 (px)" 필드가 나타나면 크기를 입력합니다 (32의 배수로 입력, 예: 256). Enter 키를 누르면 영역이 정삼각형으로 표시됩니다. 확인하려는 각 부분에 대해 이 단계를 반복합니다. 예시에서는 C30 주변과 BR1 주변에 두 영역이 있습니다.
4
세부 정보가 많고 모두 정확하게 정해져 있다면, 격자 형태를 사용하는 것이 더 편리합니다. 격자를 전체 영역에 따라 늘려주고, 영역 크기를 지정하면, 안내에 따라 필요한 행과 열 수를 확인할 수 있습니다. 또는 ` 영역 격자 ` 블록에서 행, 열, 셀의 너비와 높이를 지정하고 ` 격자 생성 ` 버튼을 클릭하면 됩니다. 격자는 마우스로 정확하게 제품에 배치할 수 있습니다.
5
오른쪽 패널에서는 각 영역 테이블이 표시되며, 각 테이블은 크기와 "활성화" 여부를 나타내는 체크 표시를 포함합니다. 비활성화된 영역은 영향을 미치지 않으며, 숨겨진 테이블은 검사 과정에 전혀 참여하지 않습니다. "모든 영역 ✓ / ✗", "색상", "삭제", "모든 영역 삭제" 버튼이 있습니다. Enter 키를 눌러 창을 닫으면, 영역 정보가 data.json에 저장되고, 비디오 화면에 노란색으로 표시됩니다.
AI 모델 탭의 결과: 실시간 이미지에서 두 개의 노란색 영역 - BR1이 우측 상단, C30이 좌측 하단에 위치. 우측에는 존-페어 모델 버튼, "제품 마커를 사용하여 영역 고정" 확인란, 그리고 학습 설정이 있습니다.
AI 모델 탭의 결과: 실시간 이미지에서 두 개의 노란색 영역 - BR1이 우측 상단, C30이 좌측 하단에 위치. 우측에는 존-페어 모델 버튼, "제품 마커를 사용하여 영역 고정" 확인란, 그리고 학습 설정이 있습니다.
참고. 부품은 영역의 상당 부분을 차지해야 하며, 주변에는 회로, 글자, 패드 등이 약간 남아 있어야 합니다. 이 "기반"은 이후 합성 데이터(4.6절)에 사용됩니다. 0603–1206 크기의 부품, 11px/mm 해상도에서 128px가 적합하며, 커패시터, 다리, 커넥터의 경우 192–256px와 같이 사용합니다. 네트워크 입력 크기(이미지 크기)는 영역 크기와 거의 동일하게 설정합니다.

빨간 영역: 한 번 클릭으로 합성 데이터에서 해당 영역 제거

"AI 모델" 탭에서 이미 생성된 영역을 클릭하면, 해당 영역이 빨간색으로 변하고, 영역별 이미지 추출 및 이상 영역 감지에 참여하지 않습니다. 다시 클릭하면 원래 상태로 돌아갑니다. 합성 데이터 창의 파일 카운터는 즉시 갱신되며, "N 꺼짐" 표시가 나타나면 몇 개의 영역이 꺼져 있는지 확인할 수 있습니다. 빨간색 영역 목록은 카메라 및 모델별로 저장됩니다. "검사" 탭에서는 해당 영역이 정상 상태로 유지됩니다 (다른 영역, 즉 노란색 영역은 5.5절에 있습니다).

4.4. 기준 이미지 설정: 정렬 영역

검사 영역은 하나의 PCB 위치에 따라 표시됩니다. 따라서 다른 PCB를 겹쳐서 검사할 수 있도록, 프로그램은 기준 이미지 (실시간 이미지)와 정렬 영역 (제품을 찾기 위한 PCB의 특정 영역)을 저장합니다. 프로그램은 해당 영역을 찾으면, 새로운 PCB에 검사 영역을 복사합니다. 이러한 방식으로 이미지를 촬영하고, 합성 데이터를 생성하며, 검사를 수행합니다.

두 개의 다른 직사각형 검사 영역는 모델이 확인하는 영역 (녹색). 정렬 영역는 PCB를 찾는 데 사용되는 지표 (주황색 테두리). 지지점은 절대 검사 영역 내에 위치하지 않아야 합니다. 만약 PCB를 가장 가까운 커패시터로 찾으면, 밀린 커패시터는 검사 영역과 불량 부분을 함께 가려버릴 것입니다. 따라서 정렬 영역에서는 실크스크린, 구멍, 트랙, 마이크로칩 등을 확인하고, 테이블과 컨베이어는 확인하지 않아야 합니다.
1
"AI 모델" 탭에서 "제품에 대한 영역을 마커로 지정" 확인란을 선택하고 "검색 기간 (ms)" (기본값: 100)을 설정합니다. 카메라 아래에 보드를 놓고 "기준 이미지 저장" 버튼을 클릭합니다.
2
"정렬 영역: 무엇을 찾을지"라는 창이 활성화되고, 녹색 영역 검사 영역이 표시됩니다. 마우스 왼쪽 버튼을 사용하여 회색 영역을 회로 기판의 특정 영역에 드래그합니다. 오른쪽에는 "기준점: N · 정렬: 엄격 / 관점"이 표시되며, 수백 개의 점이 표시됩니다. "작은 영역을 선택하면 더 큰 영역으로 확장"하면 회색 영역이 확장됩니다. 새로운 회색 영역은 이전 회색 영역을 대체하고, 오른쪽 버튼을 클릭하면 삭제됩니다.
3
"✔ 선택된 영역에 따라 영역 검색" 버튼을 누릅니다. "2단계 ✔ 검사 영역에 따라 영역 검색" 버튼은 특정 영역만 검색합니다. 즉, 주변에 다른 영역이 없을 때만 해당 영역을 검색합니다. 만약 "매번 정렬 영역을 묻기" 옵션이 해제되어 있다면, 다음 검색은 이전 검색 결과와 동일한 영역을 다시 검색합니다.
4
프로그램은 "기준 이미지 고정됨. 영역 N, 연결 1개, 점 K개"라는 메시지를 표시하고, `live_template.png` 및 `live_template.txt` (프레임, 영역, 빨간색 영역) 값을 저장합니다. `프레임에 촬영 영역 표시` 옵션을 선택하면 프로그램이 감지한 영역이 비디오에 표시되고, 프로그램이 기준점으로 사용하는 지점은 파란색 점으로 표시됩니다. 이 점들을 통해 프로그램이 어떤 부분을 기준으로 작동하는지 알 수 있습니다.
정렬 영역: 오렌지색 프레임 - 부품 (3000개의 지지점) 영역, 녹색 - C30 및 BR1 검사 영역 (프레임에 포함되지 않음).
정렬 영역: 오렌지색 프레임 - 부품 (3000개의 지지점) 영역, 녹색 - C30 및 BR1 검사 영역 (프레임에 포함되지 않음).
정렬 후 이미지: 각 부품에서 찾은 영역을 표시하고 "정상"으로 표시하며, 파란색 선은 정렬 영역의 경계를 나타내고, 파란 점은 부품의 일치하는 지지점 (이 영역에 포함되지 않음).
정렬 후 이미지: 각 부품에서 찾은 영역을 표시하고 "정상"으로 표시하며, 파란색 선은 정렬 영역의 경계를 나타내고, 파란 점은 부품의 일치하는 지지점 (이 영역에 포함되지 않음).
조합 모델언제 선택
자동 (권장)부품은 단단하게 조합 (이동, 회전, 크기 조정); 관점이 눈에 띄게 더 잘 일치할 때만 연결. 작은 정렬 영역에서의 정확도는 1–2 픽셀.
단단한카메라가 정확히 위를 향하고, 부품이 평평하게 놓여 있음. 정렬 영역이 작을 때 가장 안정적인 방법.
관점카메라가 각도에 있거나 부품이 기울어져 있음. 전체 폭에 걸쳐 점이 있는 큰 영역이 필요하며, 그렇지 않으면 호모그래피가 왜곡됨.

"기준 이미지와 영역을 기준으로 이미지를 열면, 격자와 번호가 있는 저장된 기준 이미지를 볼 수 있습니다(4.8절 참조). 발견된 회로는 다음 기준을 충족하는지 확인합니다: 0.5에서 2 영역 사이의 면적, 4개의 변을 가진 凸형, 각 축에 대해 최소 1/4 영역을 차지하는 지지점이 있어야 합니다. 그렇지 않으면 결과가 무효화되고 콘솔에 "회로를 찾을 수 없음"이라고 표시됩니다.

중요합니다. 이전에는 화면에 표시되는 영역 수가 적었지만, 이는 각 영역에 대해 별도로 비용을 청구했기 때문이었습니다. 이제 회로판의 세부 영역을 기준으로 정렬된 기준 이미지를 다시 캡처하십시오. 이 설명서에 있는 회로판에서 발견되는 영역 수는 46~51에서 134개 중 106~112개로 증가했습니다.

4.5. 영역별 캡처: 정상 및 합성 데이터

"존-페어: 영역별 사진 기능은 핵심적인 역할을 수행합니다. 실시간 이미지를 영역으로 분할하고, 각 영역의 컷아웃을 해당 영역의 클래스 zone_NNN에 배치하며, 합성 데이터의 정상성을 확인합니다. 합성 데이터의 정상성은 촬영의 변동성을 의미하며, 결함이 아닙니다. 예를 들어, 플래그가 약간 다른 위치에 놓이거나, 조명이 약간 다르고, 센서가 소음을 발생할 수 있습니다.

"존-페어: 영역별 이미지": 이미지 옵션 수, 시간별 이미지, val 내 비율, 영역 윈도우의 전체 이미지에 따른 이동/회전/확대/축소, "어디로" 선택 기능, 조명 및 노이즈, 최종 파일 카운터. 윈도우는 마우스로 확장됩니다.
"존-페어: 영역별 이미지": 이미지 옵션 수, 시간별 이미지, val 내 비율, 영역 윈도우의 전체 이미지에 따른 이동/회전/확대/축소, "어디로" 선택 기능, 조명 및 노이즈, 최종 파일 카운터. 윈도우는 마우스로 확장됩니다.
설정기본적으로 어떤 기능을 제공하고 어떤 설정을 기본으로 설정해야 하는가
각 구역에 맞는 합성 재료하나의 이미지에 생성할 합성 파일 수는 몇 개입니까? 권장되는 수는 20개, 최소 0개 (단, 기준 이미지만), 최대 500개입니다.
시간 순서대로 촬영된 사진: 각 사진은 카메라의 새로운 프레임에서 촬영800–1200ms의 기간 동안 촬영되며, 최소 셔터 시간을 사용합니다. 각 이미지는 실제 센서의 소음, 진동, 빛의 깜빡임 등을 그대로 캡처하여 제작됩니다.
각 옵션마다 확률 (%)와 함께 제시됩니다.20%. 기준 이미지는 항상 'val' 폴더에 포함되어야 합니다. Ultralytics에서는 각 클래스가 두 폴더 모두에 포함되어야 합니다.
회색 톤으로 가르치기전체 모델의 색상: 정상, 오류, 검사에서 색상을 제거합니다. 여러 모델에 색상 및 회색 파일을 혼합하는 것은 불가능하며, 프로그램은 이를 경고합니다.
위치, 픽셀창 영역이 지정된 방향(← → ↑ ↓)에서 0…2 픽셀만큼 전체 화면을 이동합니다. 부족한 부분은 인접한 회로판 영역에서 가져와서, 절단면이 평평하게 유지됩니다. "모든 방향" 체크는 파일당 각 방향에 대해 정보를 제공하며, "무작위 하나"는 하나의 파일만 생성합니다.
방향, ° · 어디로기본 설정에서는 비활성화되어 있습니다: 정렬 영역에 따라 회전 기능이 없고, 활성화하면 불량 영역과의 경계가 흐려집니다. "좌/우", "모든 방향/무작위"와 같이 슬라이드와 유사합니다.
확대/축소 비율 (%)기본 설정에서는 꺼져 있습니다. 두 개의 체크 표시는 각각 감소 (100 미만) 및 증가 (100 초과, 영역은 인접한 프레임의 요소를 사용)를 의미합니다. 각 체크 표시된 측면은 별도의 파일에 해당합니다.
밝기/대비/색상 범위각 옵션에 따라 범위 내의 무작위 값: 밝기 88…112, 대비 88…112 %, 색상 범위 98…102 % (사진에서); "요소 이동" 프로필에서는 밝기가 더 넓게 설정되어 불필요한 특징이 나타나지 않도록 합니다.
노이즈 (시그마)/흐림센서 해상도 3…8 단계, 약간의 초점 흐림 0.4…0.8 픽셀.
"일반" 열체크 표시를 누르면 다른 요소와 함께 일반 파일에 포함됩니다. 체크 표시를 누르지 않으면 "기준 이미지 + 이 요소만"이라는 별도의 파일이 생성됩니다. 개별 요소가 많을수록 옵션에 따라 파일 수가 많아집니다.
1
"존-페어: 영역별 사진". 대화 하단의 해당 줄은 미리 다음을 계산합니다: "1개의 파일, 21 영역 (기차), 약 5개 (테스트). 총 52개의 파일 (2 영역 기준)".
2
선택할 프로필: 기본 (0–2px 이동, 밝기 ±5, 대비 95–105 %), 요소 이동 (0–1px 이동, 밝기 -10…10) 또는 색상 및 채도 (0–2px 이동, 밝기 ±2, 대비 및 채도 비활성화, 색상만 유지)
3
"삭제 버튼을 누릅니다. 생성 과정은 "존 1/2 · 파일 26 · 프레임 4/20" 진행 창과 취소 버튼과 함께 백그라운드에서 진행됩니다. 완료되면: "완료: 2 존 → 클래스 zone_001…zone_002, 파일: 52" 메시지가 표시됩니다. 프로그램은 즉시 유료 학습 설정을 적용합니다: 이미지 크기 128, 모델 크기 s, 에포크 50, 배치 64 (4.9절).
4
동일한 버튼을 사용하여 여러 개의 정상적인 PCB에 이미지를 다시 촬영합니다. 신뢰성 있는 모델의 경우, 각 클래스당 최소 80개의 파일이 필요하며, 무엇보다 실제 PCB의 여러 개(5~10개)의 샘플이 필요하며, 100개의 옵션이 있는 단일 이미지가 아닙니다.
train\zone_001 - 정상 C30 상태로 확인됨: real_... 카메라에서 촬영한 영상입니다 syn_..._n1...n20은 "shiftd", "shiftl", "shiftr", "shiftu"와 같은 접미사를 가지고 있습니다. 텍스트는 항상 기준 위치와 상대적인 위치를 유지합니다.
train\zone_001 - 정상 C30 상태로 확인됨: real_... 카메라에서 촬영한 영상입니다 syn_..._n1...n20은 "shiftd", "shiftl", "shiftr", "shiftu"와 같은 접미사를 가지고 있습니다. 텍스트는 항상 기준 위치와 상대적인 위치를 유지합니다.
train\zone_002 - 정상 BR1: real_... 3개의 레이어를 사용한 방식과, 약간의 회전(rotl, rotr) 및 이동을 포함하는 다양한 방식이 있습니다.
train\zone_002 - 정상 BR1: real_... 3개의 레이어를 사용한 방식과, 약간의 회전(rotl, rotr) 및 이동을 포함하는 다양한 방식이 있습니다.

4.6. 2번의 클릭으로 합성 데이터 오류: 요소가 기반과 함께 이동

합성 데이터 생성에 사용되는 관찰 데이터 모델은 특히, 실제 오류가 아닌, 검사 대상 요소와 주변 부품(인쇄 회로 기판)의 선, 트랙, 색상 및 재질을 함께 보여줄 때 학습 효과가 뛰어납니다. 프로그램은 검사 영역을 요소의 크기로 줄인 다음, 이 영역을 이동하거나 회전시켜, 주변 픽셀로 채워 영역의 가장자리를 완성합니다. 결과적으로, 요소는 실제 오류 상황에서 검사자가 보는 대로, 실제 센서 소음, 실제 조명, 실제 회로 기판과 함께 정확한 위치에 놓이게 됩니다.

정상 영역과 이상 영역은 단지 요소의 위치와 기준과의 관계만 다릅니다. 나머지 모든 요소는 동일하므로, 네트워크는 "요소-기판"의 관계를 학습하는 것이 아니라, 얼룩의 색상이나 조명에 집중하게 됩니다.

2번의 클릭

1
존-페어: 영역별 사진촬영. 각 영역별 정상 사진 20가지 촬영 옵션 (창 이동 0–2px, 밝기, 노이즈)은 zone_NNN 클래스로 분류됩니다.
2
존-페어: 영역의 이상생성. 기본 설정에는 두 가지 유형의 변위가 모두 포함되어 있습니다: 영역의 이동 (모든 방향으로 5–12px) 및 요소 영역의 회전 (영역의 70%, 원) 15–180°. 파일은 zone_NNN_anomaly 클래스로 이동합니다.

더 이상 설정할 필요가 없습니다: 불량 그림을 그릴 필요도, 결함이 있는 회로를 찾는 필요도 없습니다. 다음 단계는 AI 모델 훈련입니다.

사전 및 사후: 프로그램이 달성하는 것

사전: 정상적인 PCB의 생생한 이미지. 두 영역 모두 "정상" 상태입니다.
사전: 정상적인 PCB의 생생한 이미지. 두 영역 모두 "정상" 상태입니다.
사후: 이상 영역 폴더에서 가져온 합성 데이터를 동일한 영역에 배치합니다. C30은 오른쪽으로 아래로 이동하고, BR1은 회전합니다. 두 영역 모두 "이상" 상태입니다. 또한 실제 결함이 발생했을 때 PCB의 모습도 동일하게 나타납니다.
사후: 이상 영역 폴더에서 가져온 합성 데이터를 동일한 영역에 배치합니다. C30은 오른쪽으로 아래로 이동하고, BR1은 회전합니다. 두 영역 모두 "이상" 상태입니다. 또한 실제 결함이 발생했을 때 PCB의 모습도 동일하게 나타납니다.
큰 이미지, 영역 1 (C30): 왼쪽은 카메라에서 정상, 오른쪽은 합성 데이터로, 요소와 기반이 아래쪽으로 오른쪽으로 이동하고, 가장자리는 다른 이미지의 요소로 채워져 있습니다.
큰 이미지, 영역 1 (C30): 왼쪽은 카메라에서 정상, 오른쪽은 합성 데이터로, 요소와 기반이 아래쪽으로 오른쪽으로 이동하고, 가장자리는 다른 이미지의 요소로 채워져 있습니다.
큰 이미지, 영역 2 (BR1): 오른쪽 영역은 180도 회전되어 있으며, 표면이 원래 위치에 있고, 케이스가 잘못된 방향을 향하고 있습니다.
큰 이미지, 영역 2 (BR1): 오른쪽 영역은 180도 회전되어 있으며, 표면이 원래 위치에 있고, 케이스가 잘못된 방향을 향하고 있습니다.

사용자가 보는 이상 징후 폴더

4.5절의 정상 폴더와 비교: 차이점은 단의 위치에 있습니다.

train\zone_001_anomaly - C30 모델의 결함. 각 복사본(t000, t001 등)에는 9개의 파일이 포함되어 있습니다. combo1_d_, _dl, _dr, _l, _r, _u, _ul, _ur: 영역이 5~12 픽셀만큼 위아래, 좌우로 이동되었습니다 (d = 아래, u = 위, l = 왼쪽, r = 오른쪽). rotate1: 커패시터 영역이 회전되었습니다.
train\zone_001_anomaly - C30 모델의 결함. 각 복사본(t000, t001 등)에는 9개의 파일이 포함되어 있습니다. combo1_d_, _dl, _dr, _l, _r, _u, _ul, _ur: 영역이 5~12 픽셀만큼 위아래, 좌우로 이동되었습니다 (d = 아래, u = 위, l = 왼쪽, r = 오른쪽). rotate1: 커패시터 영역이 회전되었습니다.
train\zone_002_anomaly - 불량 제품 BR1: 케이스는 8개 방향으로 흩어져 있으며, 각 케이스는 임의의 각도로 회전되어 있습니다. 회로 기판과 연결 패드는 실제 제품과 동일합니다.
train\zone_002_anomaly - 불량 제품 BR1: 케이스는 8개 방향으로 흩어져 있으며, 각 케이스는 임의의 각도로 회전되어 있습니다. 회로 기판과 연결 패드는 실제 제품과 동일합니다.
파일 이름 읽는 방법 syn_<날짜>_t003_combo1_dr.jpg — 3번째 복사본, 전체 파일, 아래-오른쪽으로 이동 (d = 아래, r = 오른쪽, u = 위, l = 왼쪽); …_rotate1.jpg — 요소 영역 회전; …_scale1_dn/_up — 작은 또는 큰 방향으로 확대/축소; …_tl/_c/_br — 영역이 있던 위치 (각도, 중심). 파일 이름만으로 어떤 결함이 있는지 알 수 있으며, "합성 데이터 클래스 (train + val) 삭제" 버튼을 사용하여 불필요한 부분을 삭제할 수 있습니다.

부품 라벨링: 왜 긁힘이 두드러지게 표시되고 어떻게 설정하는가

부품 표면에 마킹이 표시되어 있으며, 이는 1~2px 두께의 선과 기호로 구성됩니다. 이 마킹은 배치마다 다릅니다. 다른 글꼴, 용량 표에 표시된 문자가 다른 방향으로, 일부 기호가 지워진 상태입니다. 만약 "스크래치"와 같은 인공적인 결함이 동일한 얇은 선으로 표시되면, 시스템은 이 선을 마킹 선과 센서의 노이즈, 그리고 다른 배치 부품의 선과 구별하지 못하고, 정상적인 부품을 폐기할 수 있습니다.

합성 데이터 존-페어는 이 문제를 양쪽에서 해결합니다. 첫째, 주요 결함인 요소의 위치 변화는 마크를 함께 이동시키므로, 마크가 정상 상태와 비정상 상태 모두에서 동일하게 보입니다. 둘째, 기본적으로 그려진 선/긁힘은 굵고 (⅛ 영역, 최소 3px 이상) 명확하게 마크의 선과 다릅니다. 이제 선의 두께는 명시적으로 설정됩니다: 선 두께, px (0 = 자동) 필드는 선과 십자 모두에 적용됩니다.

그림으로 표시된 결함(직사각형, 원, 선, "누락된 요소", 흐릿한 점 등)은 "출력 영역 위에 있는 합성 결함" 그룹으로 묶여 있습니다. 기본적으로 묶여 있고 비활성화되어 있습니다. 주요 결함은 "출력 영역의 이동"입니다. 특정 작업에 대해 활성화할 수 있습니다(예: 묻어낸 영역, 과도한 방울, 지워진 마킹).

부품 파라미터설정하는 것:
크기: …부터 …, 영역의 % / px부품의 크기 또는 길이. %, 영역의 작은 면에서 계산 (모든 영역에 동일). px, 모든 영역에서 동일, 실제 결함의 픽셀 크기가 알려져 있을 때 편리합니다.
채우기단색 / 윤곽선 / 혼합 (윤곽선도 두드러지게 표시).
선 두께, px선 / 긁힘 및 교차선. 0 = 자동 (두드러지게 표시). 부품 라벨링에는 3px 이하로 설정하지 마십시오.
결함 위치중앙, 왼쪽, 오른쪽, 위, 아래 – 어떤 위치에 배치할지 (약간의 무작위 분포를 고려). 모든 위치 선택 – 파일에 따라 각 선택된 위치에 적용; 무작위 선택 – 하나의 파일, 선택된 위치 중 하나를 무작위로 선택. 하단 창의 파일 카운터는 이를 즉시 반영합니다.
모양의 색상: 5개의 슬롯5개의 슬롯 대신 이름 목록 대신. 체크 표시 - 해당 슬롯이 선택됨, 색상은 선택된 색상 중 무작위로 선택 (±12 범위 내에서, 단일 색상으로 선택되지 않도록). 샘플 버튼 - 팔레트에서 색상을 선택, 💧 피펫 - 카메라의 실제 장면을 클릭 (바퀴 - 줌, 오른쪽 버튼 - 패노라마) 하여 실제 디테일 또는 보드에서 색상을 선택. 기본적으로 2개의 슬롯 (어두운 및 밝은)이 활성화되어 있고, 나머지 3개는 비활성화되어 있습니다.
"일반" 열손상 유형이 다른 "공통" 유형(예: 이동된 요소 위에 생긴 흠)과 함께 일반 파일에 기록됩니다. 체크 표시가 없으면 "정상 + 이 특정 손상만"으로 된 별도 파일이 생성됩니다. "모든 위치" 유형은 항상 별도로 저장됩니다.

4.7. 영역의 이상: 설정 창

"존-페어: 영역의 이상을 정의하면 정상 영역에서 zone_NNN_anomaly 클래스를 생성합니다. 모든 영역을 포함하지만, 빨간색(AI 모델의 4.3절에서 켜고 끄는 기능) 영역은 제외합니다. 이상 영역 클래스는 반드시 모든 영역에 적용할 필요는 없습니다. 실제로 문제가 발생하는 영역에만 적용하고, 나머지 영역은 모델이 인식 기반으로 검사하도록 합니다.

"영역 페어: 영역 이상" 창: 손상 위에 복사; 매개변수, 위치 및 팔레트를 가진 그림으로 구성된 접이식 그룹; 영역의 이동, 회전 및 ±% 비율로 확대/축소; 하위 영역; 손상 위에 조명; 시간 및 val에 따른 캡처.
"영역 페어: 영역 이상" 창: 손상 위에 복사; 매개변수, 위치 및 팔레트를 가진 그림으로 구성된 접이식 그룹; 영역의 이동, 회전 및 ±% 비율로 확대/축소; 하위 영역; 손상 위에 조명; 시간 및 val에 따른 캡처. 마우스로 창을 확장합니다.
설정무엇을 하는지
손상 위에 복사모든 유형에 적용 가능한 단일 값: 각 지정된 유형에 대해 새 임의 매개변수로 생성할 복사본 수 (기본값: 10).
▸ 절단 영역의 합성 결함기본적으로 묶인 그룹: 사각형, 작은 사각형, 원, 타원, 삼각형, 8자 모양, 선/긁힘, 십자, `누락된 요소, 흐릿한 점, 노이즈 패치, 다른 영역의 조각. 도형의 파라미터, 위치 및 팔레트 - 4.6절.
이동, px · 위치 · 형태주요 결함: 특정 방향 (← → ↑ ↓ 및 두 대각선 ⤡ ⤢)으로 5–12px 정도 이동하는 영역 (원 또는 사각형). 수직/수평 크기, ±% – 영역의 크기는 영역에 대한 비율: 0 – 전체 영역, -30 – 영역이 30% 작음 (단, 요소만 이동, 기반은 유지), +30 – 영역이 영역보다 큼 (인접 요소 포함). 모든 방향 – 파일별로 각 방향에 따라.
회전, ° · 형태(원 또는 사각형, 동일한 척도 ±%) 영역이 임의의 각도로 양쪽 방향에서 회전합니다.
확대/축소 비율 (%)영역을 결함으로 취급: 60–85% 감소 또는 120–160% 증가. 각 지정된 측면은 별도의 파일입니다. 일반적으로 켜져 있습니다.
"일반" 이동 및 회전두 옵션 모두 선택하면, `파일 내의 하나의 요소`에 적용됩니다. 즉, 이동 및 회전은 하나의 변환으로 처리되며, 영역의 크기와 형태는 이동에 의해 결정됩니다.
▸ 하위 영역영역이 2, 4 또는 9개의 부분으로 나뉘며, 각 부분 내에서 영역이 회전하거나 이동합니다. "각 하위 영역에 대한 별도 이미지" 옵션을 사용하면 각 부분에 대해 파일이 생성됩니다. 여러 요소를 가진 큰 영역에 필요합니다.
각 결함 파일에 대한 조명 및 노이즈켜져 있고 정상 상태: 결함은 조명과 구별되어야 합니다.
시간별 / val새로운 프레임(800ms)의 각 복사본, val에서 20%를 사용하고, val의 첫 번째 클래스 파일은 항상 사용됩니다.
1
"존-페어: 영역의 이상" 버튼을 누릅니다. 결과는 미리 결정됩니다: "영역: 2 · 복사본: 2 파일 · 영역당: 20 · 총 ≈ 40 (+ val에 일부 포함)". 파일 복사 시 "모든 방향"으로 이동하면 9개가 됩니다.
2
프로필 선택: 기본 (5–12px 영역 이동 + 영역, 도형 및 하 영역의 회전, 모든 것이 접혀지고 비활성화됨), 요소 이동 (단, 4–12px 이동, 정상과 동일한 밝기), 또는 색상 및 톤 (도형, "요소 사라짐", 팔레트 색상, 이동 없음). 변경 사항은 즉시 저장되며, 각 클릭 시마다 적용됩니다.
3
"만들기 버튼을 클릭합니다. zone_NNN_anomaly 클래스는 모델 트리에 나타납니다. 실제 오류를 해당 클래스에 추가하려면 ROI → 클래스에 추가합니다.
중요합니다. 합성 스프트의 하한(5px)은 정상 범위(0–2px) 바로 위에 위치합니다. 정상을 5px로 확장하거나 이상치를 2px로 좁히지 마세요: 경계가 흐려지고, 모델이 실제 보드에서 불안정하게 작동할 수 있습니다. 다른 민감도가 필요하다면, 두 경계를 일관성 있게 조정하고 밀리미터 단위로 다시 계산하세요(1.3절 참조).

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 Sizen / s / m / l / xs는 수백 개의 클래스 쌍에 최적이며, n은 용량이 부족하고, m 및 그 이상은 더 느립니다.
Device어떻게 학습할 것인가0 (GPU) NVIDIA 그래픽 카드; CUDA가 없으면 프로그램이 자동으로 CPU로 전환
Workers데이터 준비 스레드12 (기본 설정) 다중 코어 프로세서용
1
프로그램은 시작 전에 다음 사항을 확인합니다: 빈 클래스를 삭제하고, val에 불필요한 폴더를 제거하며, val이 비어 있는 경우 해당 위치를 찾습니다. 첫 실행 시 학습 환경(Python 3, ultralytics, onnx, onnxslim, onnxruntime 패키지)이 설치됩니다. 인터넷 연결과 몇 분이 필요합니다.
2
존-페어 모델의 경우, erasing, flip, crop, randaugment 기능은 사용하지 않습니다. 이러한 기능은 이상 클래스(반전된 영역)와 충돌합니다. 해당 내용이 콘솔에 출력됩니다.
3
"STOP AI 모델" 버튼이 빨간색으로 변합니다. 오른쪽의 원은 각 에포크(epoch)별 진행률을 나타냅니다. 학습 과정은 콘솔에서 확인할 수 있습니다. 비디오 카드에서 2개의 영역(zone)을 사용하여 100번의 에포크를 학습하는 데 약 10~15분이 소요됩니다.
4
프로그램이 완료되면, best.onnx 파일을 모델 폴더의 최상위 디렉토리로 내보낸 후, 즉시 검사를 위해 할당합니다. "ONNX 내보내기" 버튼을 누르면, 모델 재학습 없이 동일한 내보내기 작업을 반복합니다.
조언. 불량 제품이나 새로운 제품이 추가된 후, 동일한 버튼을 사용하여 추가 학습을 진행합니다. 이 과정은 데이터 세트를 보완하고, AI 모델을 훈련하는 과정을 포함합니다 best.onnx 데이터가 덮어쓰기 됩니다. 이 과정에서 격자는 건드리지 마십시오.

5. 검사

모든 작업은 "Inspect" 탭에서 진행됩니다. 모델은 학습 후 이미 설정되었으므로, 영역을 확인하고, 임계값을 설정하고, 속도 소스를 선택하고, 결제가 어떤 방향으로든 들어오더라도 라이브 컨베이어를 활성화하는 단계를 남겨두었습니다.

"Inspect" 탭에서: 모델 model_4\best.onnx, "검사 클래스: PCB - 영역 2, 이상 2개", 영역 N은 zone_N / zone_N_anomaly 쌍 내에서 해결, 임계값 50%로 설정", 2000ms 주기의 실시간 컨베이어, "정상 · 112개 지점" 표시
"검사" 탭에서: 모델 model_4\best.onnx, "검사 클래스: PCB - 영역 2, 이상 2개", 영역 N은 zone_N / zone_N_anomaly 쌍 내에서 해결, 임계값 50%로 설정", 2000ms 주기로 작동하는 라이브 컨베이어, "정상 · 112개 지점" 표시, 아래에는 속도 및 "GPU", "그레이 분석" 체크 표시가 있습니다. 화면에는 두 영역 모두 녹색으로 표시되어 "정상" 상태입니다.

5.1. 모델 및 영역 지정

1
모델이 지정되지 않은 경우, "ONNX 모델 선택"을 클릭하고 모델 폴더에 "best.onnx"를 입력합니다. "검사 클래스" 줄은 모든 클래스를 표시하며, 이름은 ONNX 파일 자체에서 가져오므로 출력 번호는 반드시 이름과 일치합니다.
2
클릭하세요 존-페어: 영역 ↔ 모델 (검증, 임계값 확인)화면에는 다음과 같은 정보가 표시됩니다: "그리드 내 영역 수: 2 / 클래스." zone_NNN 모델에서: 2, 이상 감지 클래스: 2 / 각 격자 영역은 고유한 클래스를 가집니다. "모델 내 클래스가 없는 영역" 또는 "격자 내 영역이 없는 클래스"라는 경고는 격자가 학습 후에 변경되었음을 의미합니다.
3
"AI 사용 중지" 기능은 해당 카메라의 AI 분석 기능을 일시적으로 중단하지만, 설정은 삭제하지 않습니다 (각 카메라마다 설정 플래그가 다릅니다). "모델 제거" 기능은 모델과 슬롯을 완전히 삭제합니다.

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% 사이의 차이를 명확하게 파악할 수 있도록 하고, 붉은색으로 표시된 영역만 보이는 것을 방지하는 데 필요합니다.

조언. 10개의 확실히 정상적인 보드에서 임계값을 설정합니다. 임계값을 높여 모든 영역이 녹색으로 유지되는지 확인한 다음, 알려진 불량 보드를 테스트합니다. 프로그램은 10초마다 콘솔에 "[영역-페어] … 정상 N, 이상 M, 임계값 0.50"이라는 문자열을 기록합니다. 이를 통해 어떤 영역이 임계값에 가장 가까운지 확인할 수 있습니다.

5.3. 실시간 파이프라인: 어떤 위치에서도 작동

[라이브 컨베이어: 각 위치에서 플래트 검색] 기능은 각 분석 전에 플래트를 정렬 영역별로 검색합니다. 프레임은 기준 이미지와 함께 겹쳐지고, 겹쳐진 이미지에서 영역이 잘립니다. 또한, 영상에 정렬 영역과 영역의 경계(녹색은 정상, 빨간색은 이상)가 표시됩니다. [기간, ms] 필드는 플래트를 검색하는 빈도를 설정합니다(기본값 1000, 사진에서는 2000). 인디케이터 옆에 다음과 같은 정보가 표시됩니다: 녹색 "정상 · N개 포인트", 빨간색 "이상 · N개 포인트", 주황색 "플래트 미발견" 또는 "기준 이미지가 없음 - 확인". 판단은 단일 분석 결과에 따라 결정되며, 누적되지 않습니다.

기준 이미지와 정렬 영역은 촬영 시와 동일한 기준 이미지 고정 버튼으로 고정됩니다 (4.4절). 기준 이미지 및 영역를 클릭하면 해당 영역이 표시됩니다. 영상에는 정렬 영역과 파란색 지지점을 그리고, 이는 결제 금액과 일치하도록 설정됩니다. 정렬 후 화면 밖으로 튀어나온 영역은 SKIP로 표시됩니다.

5.4. 어떤 신호를 사용하여 분석

속도 소스는 항상 하나입니다: 새로운 속도를 사용하면 이전 속도가 제거됩니다.

방법사용 방법적용 시기
카메라"카메라" 확인란지속적인 모니터링; 속도는 "카메라" 탭의 "초당 분석 횟수" 슬라이더로 제한
타이머"타이머" 확인란 및 간격 (ms)정기적인 모니터링, 예를 들어 초당 한 번
트리거"트리거" 목록에서 연결을 선택하고, "입력 신호 +" 또는 "입력 신호 -"에 따라 분석카메라 입력 센서가 있는 컨베이어: 제품이 도착하는 순간에 프레임 캡처 - 가장 정확한 방법 (6절)
GPU"GPU" 체크기본적으로 활성화; 전환 시 모델이 재시작됨
그레이 분석"그레이 분석" 체크그레이로 훈련된 모델의 경우 자동으로 활성화; 추론 전에 잘라낸 영역이 그레이로 변환됨

5.5. 노란 영역: 클릭으로 영역 끄기

작업 중인 영역 중 일부는 일시적으로 제어에서 제외해야 할 수 있습니다. 이는 해당 부품이 아직 장착되지 않았거나, 특정 영역이 장비에 의해 차단되었거나, 시스템 조정 작업이 진행 중일 때 발생할 수 있습니다. 이 경우, 격자 또는 모델을 수정할 필요 없이, 비디오 화면에서 직접 해당 영역을 비활성화할 수 있습니다. 이는 "검사" 탭에서만 가능합니다.

1
카메라 칩의 영역을 클릭하면 해당 영역이 노란색으로 표시되고 분석에서 제외됩니다. 다시 클릭하면 해당 영역이 다시 포함됩니다.
2
영역 그룹: 왼쪽 버튼을 누른 상태에서 레이아웃을 드래그합니다. 레이아웃에 포함된 모든 영역이 꺼집니다. 모든 영역이 이미 노란색이었던 경우, 레이아웃이 다시 켜줍니다. 휠을 사용하여 확대/축소해도 작동합니다.
3
노란색 영역 목록은 카메라 및 모델에 따라 데이터베이스에 저장되며, 프로그램 재시작 및 카메라 재연결 시에도 유지됩니다. 콘솔에는 "[영역] … 영역 꺼짐: N"이라는 메시지가 표시됩니다.

"노란색 영역이 어떤 기능을 수행하는지는, OUTPUT 창의 '오디오' 탭에서 기본적으로 활성화된 노란색 (클릭으로 비활성화) 영역은 작동하지 않습니다 이 확인란을 통해 설정할 수 있습니다.

체크박스노란색 영역 동작
활성화 (기본)영역이 분석되지 않음: 잘라낸 영역이 네트워크로 전송되지 않고, "OFF" 표시가 되어, 소리나 TCP 전송, 카메라 종료가 발생하지 않습니다. 실시간 파이프라인에서 노란색 영역은 "정상 / 이상" 판정에도 영향을 미치지 않습니다.
꺼짐노란색 테두리는 단순히 확인 영역으로 표시하는 역할만 수행합니다. 영역을 분석하고 일반적인 방식으로 작동하며, 검사를 위해 영역을 표시하면서도 감시 기능을 끄지 않고 사용할 수 있습니다.
참고. 노란색 영역에 적용되는 "거부" 규칙은 제거할 필요가 없습니다. 해당 옵션이 켜져 있으면 해당 영역은 아무런 영향을 받지 않지만, 옵션을 다시 끄면 해당 영역이 즉시 작동합니다.

5.6. 화면과 콘솔에서 확인할 수 있는 내용

  • 영역에 대한 결과가 표시되었으며, 영역의 경계는 테이블의 색상으로 표시됩니다. 트리거가 작동하면 빨간색으로 표시됩니다. 50개 이상의 영역이 있을 때, 정상 영역은 녹색 경계로만 표시되고, 비정상 영역과 불확실한 영역은 각각 다른 색상으로 표시됩니다. 수백 개의 영역이 표시될 때, 이미지의 가독성을 저해하고 렌더링 부하를 증가시키는 문제가 있었습니다. 노란색 영역은 클릭을 통해 끄도록 설정되었습니다 (5.5절).
  • "트리거 분석" 패널은 탭 하단에 있으며, 각 트리거 작동을 시간(분:초:경로.밀리초) 형식으로 표시합니다. 입구 카메라 + 트리거 4ms | AI 12ms #57와 각 영역별 결과를 보여줍니다. 이 데이터는 데이터베이스에 저장되지 않습니다.
  • 비디오 영역에 오른쪽 클릭: "이 영역의 감지 클래스 → 이를 '…'으로 지정"은 해당 영역의 모델 응답 이름을 변경합니다 (모델 자체는 변경되지 않지만, 리젝터와 로그는 새로운 이름을 보게 됩니다). 또한, "이 영역에 대한 리젝터를 생성" 및 규칙 카운터도 해당 위치에 있습니다.
  • 검사 사진 저장 옵션: 검사 사진과 함께 그려진 영역이 포함된 이미지는 inspect_….jpg 파일로 저장됩니다. 각 카메라의 설정은 다를 수 있습니다.
  • 매 10분마다, diag라는 하위 폴더에, 실시간 컨베이어 영상과 영역 목록이 저장되며, 최근 20개의 이미지가 저장됩니다. 이는 분기 폴더가 확장되지 않아도, 논쟁적인 사례를 분석하는 데 유용합니다.

6. 트리거: 카메라 입구에 장착된 외부 센서

컨베이어용 기본 설정: 카메라가 센서의 개별적인 입력 신호를 통해 프레임을 촬영합니다. 이는 가장 정확한 촬영 시점이며, 제품은 항상 동일한 프레임 내에 위치하고, 분석은 제품에 대해 한 번만 수행됩니다. 트리거는 "센서 → 카메라" 간의 연결을 수집하고, 선택된 커넥터에 맞는 연결도를 그립니다.

HIKROBOT용 트리거 윈도우 (6핀): PNP 센서, 2번 핀으로 신호, 5번 핀으로 접지, 핀 배열.
HIKROBOT용 트리거 윈도우 (6핀): PNP 센서, 2번 핀으로 신호, 5번 핀으로 접지, 핀 배열.
SICK picoCam (6핀)의 경우, 4번 핀 (Trigger +)과 3번 핀 (Trigger −)에 해당 신호를 연결합니다.
SICK picoCam (6핀)의 경우, 4번 핀 (Trigger +)과 3번 핀 (Trigger −)에 해당 신호를 연결합니다.
1
영상 위에 있는 "트리거" 버튼을 클릭합니다. "트리거 장치" 항목에서 "BAOLSEN QAF-Q2P 광 센서 (4선)"를 선택합니다. (PNP 또는 NPN 출력을 가진 다른 센서도 동일한 방식으로 연결할 수 있습니다.) "카메라 연결 단자" 항목에서 "HIKROBOT 6핀" 또는 "SICK picoCam 6핀"을 선택합니다. "카메라 모델"을 선택하고, "센서 출력 유형"을 선택합니다. PNP는 "플러스" 신호를 출력하는 일반적인 방식이며, NPN은 "마이너스" 신호를 출력합니다. NPN을 사용하는 경우, +24V에 1~4.7kΩ의 저항을 연결해야 합니다.
2
그림에 따라 회로를 구성하세요: 센서와 카메라 전원 공급은 24V 단일 블록에서, 센서 신호선은 카메라 입력에 연결하고, 입력선의 반대쪽은 0V에 연결합니다. 센서의 흰색 전선은 두 번째 출력이므로 연결하지 않습니다.
3
"연결 생성 버튼을 클릭합니다. 연결은 데이터베이스에 저장되며, 중복된 연결은 삭제됩니다. "연결 삭제 버튼을 클릭하면 선택된 연결이 삭제됩니다."
4
"검사" 탭에서 "트리거" 목록에서 연결을 선택하고, "입력 시 + 분석" (24V 입력 시 프레임) 또는 "입력 시 - 분석"을 선택합니다. 이 경우, 프로그램은 카메라를 트리거 모드로 전환합니다. HIKROBOT의 경우 TriggerMode = On, TriggerSource = Line0로 설정되고, SICK의 경우, 캡처를 중지하고, 모드를 설정한 다음 다시 시작합니다. 인접한 원은 입력 레벨을 나타냅니다.

단자 연결

HIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR: 카메라 전원 공급: 9-24V.GND — 카메라 전원 접지
2OPTO_IN — Line 0 (+) 입력, 트리거 신호VCC — 카메라 전원 (12–24V)
3GPIO — Line 2, 입력 또는 출력트리거 입력 − 오토파 ((-)
4OPTO_OUT - 1호선 (양(+) 방향) 출구.트리거 신호 + — 광전 센서 (+) 입력
5OPTO_GND — 일반적인 광파, 반전선Flash + — 독립 출력 (+)
6GND — 카메라 전원 접지Flash − — 독립 출력 (−)
중요합니다. 카메라의 "아버지" 단자와 케이블의 "어머니" 단자는 서로 대응됩니다. 유일한 기준은 키(오버롤의 큰 틈)입니다. SICK의 경우, 이 키는 1번과 6번 단자 사이에 위치하며, 단자를 뒤집으면 오른쪽으로 연결됩니다. 손으로 잡고 있는 쪽의 단자를 기준으로 연결을 확인하십시오. 단자 연결 오류는 전원과 출력이 함께 손상되는 것을 의미합니다. SICK의 단자 연결 정보를 확인하려면 테스트를 수행하십시오.
참고. 프론트(+ 방향)에서 촬영하는 것이 스파드(다운) 방향 촬영보다 훨씬 정확합니다. 실제 장비에서 프론트 방향 촬영 시 프레임 간 간격은 4.2ms, 스파드 방향 촬영 시 40.7ms였습니다. 센서 확인: 갈색과 파란색은 항상 24V, 이는 전원입니다. 신호는 검은색과 파란색 사이에서 확인하며, 빛이 닿아야 합니다. 신호가 변하지 않으면 검은색에서 갈색으로 2~10kΩ 저항을 연결하십시오. 이때 24V↔0V는 NPN을 의미합니다.

7. 출력: 리젝터, 카메라 독립 출력 및 TCP

리젝터는 검사 결과를 실행으로 전환합니다. 규칙은 특정 영역(또는 모델, 클래스 또는 지정된 영역 전체)에서 생성되며, 모델이 해당 영역에서 지정된 클래스를 감지하면 작동합니다. 실행 가능한 작업은 다음과 같습니다. 1) 로봇 또는 PLC로 TCP 패킷 전송, 2) 카메라의 디지털 출력을 전환, 3) 운영자에게 소리 알림. 각 실행은 로그에 기록됩니다.

7.1. 출력 정보: 핀 번호 및 테스터를 이용한 확인

"나가 버튼은 비디오 위에 표시되어 있으며, 이 버튼을 누르면 설정 변경 없이 정보 창이 열립니다. 이 창에는 어떤 핀이 출력을 나타내는지, 전원이 연결되지 않은 상태에서 테스터로 테스트하는 방법, 그리고 부하를 연결하는 방법을 보여줍니다.

HIKROBOT — 핀 4 (+) 및 5 (−)에 연결된 광센서 출력 (Line 1), 최대 전류 25mA.
HIKROBOT — 핀 4 (+) 및 5 (−)에 연결된 광센서 출력 (Line 1), 최대 전류 25mA.
SICK picoCam — 핀 5 (+) 및 6 (−)에 연결된 플래시 핀 (광센서), 지속적인 150mA.
SICK picoCam — 핀 5 (+) 및 6 (−)에 연결된 플래시 핀 (광센서), 지속적인 150mA.
  • 출력: 광센서의 "건조 접점": 자체 전압을 제공하지 않고, 단지 회로를 연결합니다. 외부 전원 공급 장치가 필요합니다.
  • 테스터를 사용하여 Ω 모드에서 확인: 출력 OFF — 단선 (OL), ON — 수백 옴. 두 경우 모두 톤이 울리지 않으므로, 숫자를 확인하십시오. 아무 변화가 없다면, 팁을 반대로 돌려보세요. 광센서는 극성을 가지고 있습니다.
  • 부하: +24V → 램프 → 핀 "+", 핀 "-" → GND. HIKROBOT의 경우 25mA 제한: 27mA를 초과하면 신호 장비에 연결하거나 전압을 낮추거나 중간 리레이를 사용하십시오. SICK의 경우 20~30mA 램프는 직접 연결 가능합니다.

7.2. OUTPUT 창: 영역 규칙

오른쪽 패널의 "OUTPUT" 버튼 (또는 해당 영역을 마우스 오른쪽 버튼으로 클릭하여 "이 영역에 대한 리젝터 생성" 선택)을 클릭하면 "OUTPUT - TCP 패킷 및 카메라 디스크리트 출력" 창이 열립니다. 왼쪽에는 "카메라 → AI 모델 → 클래스 → 영역" 트리 구조가 있으며, 영역에 체크 표시가 되어 있습니다. 오른쪽에는 "영역 규칙, 작동 로그, 데이터베이스" 탭이 있습니다.

OUTPUT 창: 왼쪽 영역 목록, 영역 규칙 목록, "규칙" 그룹 및 TCP 탭에 대한 설정.
OUTPUT 창: 왼쪽 영역 목록, 영역 규칙 목록, "규칙" 그룹 및 TCP 탭에 대한 설정.
1
트리 구조에서 영역을 선택하세요 (오른쪽 상단의 제목은 경로를 보여줍니다: HD USB 카메라 → model_5 → 1 → 영역 1 (T1.C1)). "새로운 TCP 연결", "새로운 디지털 입력" 또는 "새로운 오디오 채널" 버튼을 클릭하세요.
2
`규칙` 그룹에서 `AI 클래스를 선택하고, 어떤 클래스가 작동하도록 설정할지 (존-페어의 경우 `이상 또는 `정상`이며, `*는 모든 클래스), `활성화 체크박스를 선택하고, 필요한 경우 `클래스가 유지되는 동안 반복`을 사용하여 반복 간격을 설정하고, `클래스 변경 확인, ms (기본값: 새로운 클래스가 지정된 시간 동안 유지되어야 변경이 확인됨).
3
"TCP (7.3절), "카메라 출력 (7.4절) 또는 "오디오 (7.5절) 섹션을 채워주세요.
4
불량 발생을 기다리지 않고 체인을 확인: `이 규칙을 확인` (포장을 보내거나 출력을 유발), `영역 작동 시뮬레이션` (영역 규칙을 모든 전투 순서를 통해 확인하고, 노이즈와 로그를 기록).
5
"1 영역 생성" 버튼을 클릭합니다. 여러 영역에 체크 표시가 되어 있는 경우, 버튼은 "N 영역 생성"으로 변경됩니다. 모델 노드에서는 "전체 모델에 저장", 클래스 노드에서는 "클래스에 저장"으로 표시됩니다. 아래쪽에는 "선택된 영역 활성화/비활성화/삭제" 옵션이 있습니다.

하나의 영역은 여러 개의 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. 카메라 출력

"출력" 탭: 출력 방식, 라인, 레벨, 펄스, 수동 확인 버튼. USB 카메라에는 펄스 출력이 없으며, TCP만 사용 가능합니다.
"출력" 탭: 출력 방식, 라인, 레벨, 펄스, 수동 확인 버튼. USB 카메라에는 펄스 출력이 없으며, TCP만 사용 가능합니다.
필드설정
출력방식: 자동 (SICK: 플래시 핀 (고정 레벨), GPIO; HIKROBOT: UserOutputValue 또는 LineInverter (플래시 켜짐))
라인SICK: 플래시 핀 / GPIO1…6; HIKROBOT: Line1 (출력), Line2 (양방향); Line0 - 입력만
레벨true / false / off. "off" - 규칙은 있지만 출력이 변경되지 않습니다.
펄스, ms (0 - 유지)0 - 레벨이 변경될 때까지 유지; 그렇지 않으면 10…5000ms 펄스가 발생합니다.

"출력 켜기, 출력 끄기, 간헐적 버튼은 테스터나 전구를 사용하여 핀을 확인합니다. "카메라가 할 수 있는 것는 모든 방법을 조사하고 보고서를 작성합니다. 수동 테스트는 동일한 기록에 작성됩니다.

하나의 핀에 여러 영역이 연결됨. 만약 하나의 핀에 여러 영역의 규칙이 연결되어 있다면, 해당 핀은 논리적인 "AND" 연산으로 작동합니다. 즉, 모든 영역이 HIGH 신호를 요청하면 HIGH 신호가 출력되고, 단 하나의 영역이라도 LOW 신호를 요청하면 LOW 신호가 출력됩니다. 이는 "영역 N에 LOW 신호 요청 → HIGH/LOW" 형태로 기록됩니다. 따라서 하나의 핀은 수백 개의 영역으로 구성된 회로판에서 "제품 정상" 신호를 생성합니다.
중요합니다. SICK의 flash 핀은 디지털 출력과 백라이트 모두에 동일하게 사용됩니다. 만약 이 핀에 스위칭 램프를 연결하는 경우, GPIO를 사용하십시오. 노이즈 방지 규칙은 기본적으로 500ms (최소 200ms)이며, 이벤트가 발생하지 않은 경우 로그에 기록되지 않습니다.

7.5. 음성 알림: 각 영역별로 고유한 소리

세 번째 유형의 규칙은 컴퓨터와 프로그램에서 발생하는 소리입니다. 운영자는 화면을 보지 않아도 됩니다. 특정 영역이 오류 상태로 변경되면, 소리를 통해 알림을 받을 수 있으며, 다양한 영역에서 발생하는 다른 소리는 정확히 어디인지 알려줍니다. USB 및 RTSP와 같이 별도의 출력이 없는 모든 카메라에서 소리를 사용할 수 있습니다.

1
나무에서 특정 영역을 선택하고 "+ 새 소리"를 클릭합니다. "규칙" 그룹에서 클래스(예: "이상")를 지정하고 "활성화" 확인란을 선택합니다.
2
"오디오 탭에서 목록에서 원하는 신호를 선택합니다. 기본적으로 10개의 신호가 있습니다: 짧은 신호, 두 배 신호, 세 배 신호, 낮은 음과 높은 음, 상승 및 하강, 경보/사이렌, 긴 호루라기, 종소리. "재생 버튼을 누르면 선택한 신호가 재생됩니다.
3
자신의 소리: "파일 업로드" 버튼을 클릭하고 WAV, MP3 또는 WMA 파일을 선택합니다. 파일은 프로그램 옆의 "sounds\custom" 폴더로 복사되며, "자신의" 표시가 있는 목록에 나타납니다. "사운드 폴더" 버튼을 클릭하면 해당 폴더가 열립니다. 파일은 직접 이 폴더에 저장할 수 있습니다.
4
소리 사이의 딜레이 시간을 1000ms에서 10000ms 사이로 설정합니다. 이 시간 동안 신호가 울린 후에는 소리가 다시 재생되지 않습니다. 영역 유형이 변경되더라도 마찬가지로, 10000ms의 경우 운영자는 10초에 한 번만 신호를 들을 수 있습니다.
5
"만 구성 버튼을 클릭하거나, 체크박스를 사용하여 여러 영역에 규칙을 적용할 수 있습니다. 각 영역마다 다른 소리를 지정할 수 있습니다.
6
체크박스 "노란색 (클릭으로 비활성화됨) 영역은 소리가 나지 않습니다"는 기본적으로 활성화되어 있습니다. Inspect 탭(5.5절)에서 클릭하여 비활성화된 영역은 모델 전체에서 소리를 내거나 TCP 연결 및 카메라 출력을 허용하지 않습니다.
작동 방식"반복" 옵션이 선택되지 않은 경우
영역의 클래스가 확인되면 한 번의 소리 발생클래스가 유지되는 동안에는 소리가 발생하지 않습니다.
"클래스가 유지되는 동안 반복" 옵션 선택"반복 간격"에 따라 신호가 반복되지만, 영역이 지정된 클래스 상태를 유지하는 동안에는 소리 사이의 멈춤 시간을 초과하지 않습니다.
동시에 여러 영역이 오류 상태각 영역은 자체 소리를 발생시키며, 서로 다른 영역의 신호는 서로 덮어쓰지 않습니다. 단, 동일한 영역의 신호만 반복됩니다.
로그각 이벤트는 "작동 기록"에 "소리: ..."라는 형태로 기록됩니다. 파일이 없거나 오디오 장치가 작동하지 않으면 오류 메시지가 기록되고 프로그램은 계속 실행됩니다.
검사이 규칙을 확인은 즉시 소리를 재생합니다. 영역 활성화 시뮬레이션은 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. 간략한 점검 목록 및 문제 해결

초기부터 사용할 수 있는 카메라 설정 체크리스트

1
카메라 → «카메라 추가» → 자신의 카메라 선택 → 추가.
2
카메라 탭: 해상도 → «AI (프레임 기반) 자동 설정» (또는 USB에서 «파라미터 고정») → «파라미터 저장» → «[설정 이름]으로 저장» 설정 저장. 필요에 따라 «그레이 스케일로 훈련» 기능 사용.
3
AI 모델 → «새로운 AI 모델 생성» → 이름 입력.
4
«ROI → 학습 모델에 추가» → 각 부품 주변 영역 → 영역 크기 (예: 256) → Enter. 수백 개의 동일 부품의 경우, 전체 회로판에 영역과 격자 설정.
5
«마커를 사용하여 제품에 영역 고정» → «기준 이미지 설정» → 회로판의 부품 영역을 프레임에서 표시 → «✔ 지정된 영역을 기준으로 검색»
6
«영역별 촬영» → «촬영». 3~5개의 정상 회로판에 반복. 불필요한 영역은 프레임에서 클릭하여 미리 비활성화 (빨간색).
7
«존-페어: 영역의 이상 현상» → «생성»: 요소와 기반의 이동 및 회전을 이미 포함. 필요에 따라 «기준 이미지의 영역»에서 접합판을 선택.
8
AI 모델 훈련 (이미지 크기 128, s, 50 에폭) → 완료될 때까지 기다림 → best.onnx은 자동으로 지정됨.
9
검사 → «존-페어: 영역 ↔ 모델» → 일치 확인 → 임계값. «카메라» 또는 트리거를 선택. 움직이는 보드에는 «라이브 컨베이어»를 사용.
10
출력 → 영역 선택 → 이상(소리, TCP 또는 카메라 출력)에 대한 클래스 규칙 → «영역 활성화 시뮬레이션» → «N 영역에 생성».

만약 문제가 발생했을 경우

증상확인해야 할 것
카메라가 목록에 나타나지 않음전원 및 케이블; 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개의 영역에 대한 예시, 모델 폴더 생성, 정렬 영역, "기본 요소" 이미지와 함께 합성 데이터, 색상 팔레트 및 선 두께, 빨간 영역, 콘솔.