Files
ant-vision-inspector/main_py_필요모듈.txt
2026-06-10 16:18:41 +09:00

196 lines
8.5 KiB
Plaintext

================================================================================
main.py 실행에 필요한 모듈 및 환경 정리
프로젝트: ANT 리플렉터 비전 검사 시스템
분석 기준: E:\ANT 폴더 소스 코드 및 .venv 설치 목록
작성일: 2026-06-10
================================================================================
■ 1. 실행 방법
--------------------------------------------------------------------------------
1) 프로젝트 루트(E:\ANT)에서 실행
python main.py
2) 가상환경 사용 권장 (.venv)
.venv\Scripts\activate
python main.py
※ Python 3.12 기준으로 .venv가 구성되어 있음 (pyvenv.cfg: 3.12.10)
■ 2. pip 설치 패키지 (서드파티 — 필수)
--------------------------------------------------------------------------------
패키지명 pip 명령 용도 사용 위치
─────────────────────────────────────────────────────────────────────────────
PyQt5 pip install PyQt5 GUI 프레임워크 main.py, gui/*
opencv-python pip install opencv-python 이미지 처리, ORB/NCC inspect_page, register_page,
retrain_page, pattern_matcher, inspector
numpy pip install numpy 배열/이미지 데이터 detector, basler, inspect_page 등
ultralytics pip install ultralytics YOLOv8 추론/재학습 ai/detector.py, ai/trainer.py
pypylon pip install pypylon Basler 카메라 SDK camera/basler.py
pyodbc pip install pyodbc MS SQL Server 연결 db/sql_client.py
pymelsec pip install pymelsec Mitsubishi PLC (MC 3E) plc/plc_client.py
pyyaml pip install pyyaml 학습 데이터셋 YAML 생성 ai/trainer.py
※ ultralytics 설치 시 torch, torchvision 등 AI 관련 의존성이 함께 설치됨
※ 현재 .venv 기준: torch 2.5.1+cu121, torchvision 0.20.1+cu121, ultralytics 8.4.41
■ 3. pip 설치 패키지 (간접/자동 의존성)
--------------------------------------------------------------------------------
ultralytics → torch, torchvision, scipy, matplotlib, pillow, polars, psutil 등
opencv-python → numpy
PyQt5 → PyQt5-Qt5, PyQt5-sip
현재 .venv에 함께 설치된 주요 간접 패키지:
- scipy 1.17.1
- matplotlib 3.10.9
- pillow 12.1.1
- requests 2.33.1
- lap 0.5.13 (ultralytics 추적용)
■ 4. pip 설치 패키지 (선택 / 레거시)
--------------------------------------------------------------------------------
pymysql pip install pymysql MySQL 클라이언트 (레거시) db/mysql_client.py
※ main.py 실행 경로에서는 미사용
※ db/sql_client.py (pyodbc)가 실제 사용됨
pyinstaller pip install pyinstaller EXE 빌드용 reflector_inspector.spec
※ 앱 실행 자체에는 불필요
■ 5. 시스템 / 외부 소프트웨어 의존성
--------------------------------------------------------------------------------
[필수 — Windows]
- Windows 10/11 (main.py에서 작업표시줄 아이콘 설정 시 ctypes 사용)
[DB 사용 시]
- Microsoft ODBC Driver 18 for SQL Server
※ pyodbc 연결 문자열: DRIVER={ODBC Driver 18 for SQL Server}
※ config.json → db.server / database / username / password
[Basler 카메라 사용 시]
- Basler pylon Camera Software Suite (별도 설치 필수)
다운로드: https://www.baslerweb.com/en/downloads/software-downloads/
※ pypylon은 pylon SDK가 먼저 설치되어 있어야 동작함
[Cognex In-Sight 카메라 사용 시]
- 네트워크 연결 (Telnet 포트 23, FTP)
※ config.json → cognex.ip / cognex.port
[PLC 사용 시]
- Mitsubishi PLC (MC Protocol 3E, 기본 포트 5010)
※ config.json → plc.ip / plc.port
[AI 추론/재학습 GPU 가속 (선택)]
- NVIDIA GPU + CUDA 12.1 드라이버
※ CPU만으로도 실행 가능 (속도는 느림)
■ 6. 프로젝트 내부 모듈 (로컬 Python 패키지)
--------------------------------------------------------------------------------
main.py가 직접/간접으로 import하는 프로젝트 모듈:
[루트]
logger.py — 로그 설정/해제, 검사·타이밍·학습 로그
paths.py — PROJECT_ROOT / BUNDLE_ROOT 경로 해석
[utils/]
utils/path_helper.py — get_path(), BASE_PATH (PyInstaller 호환)
[gui/]
gui/main_window.py — 메인 윈도우 (4탭 네비게이션)
gui/splash_screen.py — 스플래시 화면 + InitWorker (백그라운드 초기화)
gui/pages/settings_page.py — 환경설정 탭
gui/pages/register_page.py — 제품 등록 탭
gui/pages/inspect_page.py — 검사 탭
gui/pages/retrain_page.py — 재학습 탭
gui/dialogs/image_settings_dialog.py — 이미지 설정 다이얼로그
[camera/]
camera/insight.py — Cognex In-Sight (Telnet + FTP)
camera/basler.py — Basler USB 카메라 (pypylon)
[ai/]
ai/detector.py — YOLOv8 불량 검출 (ultralytics 지연 로딩)
ai/trainer.py — YOLOv8 재학습 + TrainWorker (subprocess 격리)
[db/]
db/sql_client.py — MS SQL Server (pyodbc)
[plc/]
plc/plc_client.py — Mitsubishi PLC (pymelsec Type3E)
[logic/]
logic/inspector.py — PatMax 결과 판독 + Pass/Fail
logic/group_manager.py — A/B 그룹 전환
logic/pattern_matcher.py — ORB + NCC 패턴 매칭
■ 7. Python 표준 라이브러리 (별도 pip 설치 불필요)
--------------------------------------------------------------------------------
multiprocessing, sys, json, os, socket, ftplib, io, time,
threading, itertools, pickle, shutil, random, csv, builtins,
pathlib, datetime, typing, ctypes (Windows 작업표시줄 아이콘)
■ 8. 실행 시 필요한 파일 / 리소스
--------------------------------------------------------------------------------
[필수]
config.json — 카메라/DB/AI/PLC 설정 (프로젝트 루트)
[권장 / 기능별]
ai/models/best.pt — YOLO AI 모델 (config.json → ai.model_path)
assets/images/ant_logo.png — 앱 아이콘 (main.py ICON_PATH)
assets/patterns.pkl — PatternMatcher 등록 패턴 (없으면 신규 생성 가능)
[자동 생성]
logs/app/ — 앱 로그
logs/inspect/ — 검사 결과 CSV
logs/timing/ — 카메라 타이밍 CSV
logs/train/ — 재학습 로그
■ 9. main.py 실행 흐름 (모듈 로딩 순서)
--------------------------------------------------------------------------------
main.py
→ logger.setup_logging()
→ PyQt5 QApplication 생성
→ gui/splash_screen.SplashScreen 표시
→ gui/splash_screen.InitWorker (QThread) 백그라운드 초기화:
1) config.json 로드
2) camera/insight.InSightCamera 연결
3) camera/basler.BaslerCamera 연결
4) ai/detector.Detector 모델 로드 (ultralytics)
5) db/sql_client.SQLClient DB 연결 (pyodbc)
6) plc/plc_client.PLCClient 연결 (pymelsec)
→ gui/main_window.MainWindow 표시
→ PyQt5 이벤트 루프 (app.exec_())
→ logger.teardown_logging()
■ 10. 한 번에 설치하는 pip 명령 (권장)
--------------------------------------------------------------------------------
pip install PyQt5 opencv-python numpy ultralytics pypylon pyodbc pymelsec pyyaml
※ GPU(CUDA 12.1) torch가 필요한 경우 ultralytics 설치 전/후에
PyTorch 공식 사이트 기준 cu121 wheel을 별도 설치할 수 있음.
■ 11. 현재 .venv 설치 버전 참고 (2026-06-10 기준)
--------------------------------------------------------------------------------
PyQt5==5.15.11
opencv-python==4.13.0.92
numpy==2.4.3
ultralytics==8.4.41
torch==2.5.1+cu121
torchvision==0.20.1+cu121
pypylon==26.3.1
pyodbc==5.3.0
pymelsec==0.2.5
pyyaml==6.0.3
pymysql==1.1.3 (레거시, main 실행 경로 미사용)
pyinstaller==6.20.0 (빌드 전용)
================================================================================