ZenA?
ImgSigZenA (Image Signature Generation & Analyzer)는 '이전'과 '이후' 이미지를 비교하여 매장 내 제품 재고 변화를 자동으로 감지하는 지능형 시스템입니다. 컴퓨터 비전 기술을 활용하여 제품의 가져감, 채워짐, 이동을 실시간으로 분석하고, 재고 상태를 자동으로 업데이트하여 운영 효율성을 극대화합니다.
기술 스택
기술 스택 분포
프로젝트 아키텍처
이 프로젝트는 UI, 핵심 로직, 유틸리티, 배포 스크립트가 명확히 분리된 모듈형 구조를 가집니다.
이를 통해 각 기능의 독립성을 보장하고 유지보수성을 높입니다.
🖥️ UI (User Interface)
Tkinter를 기반으로 제작되었으며, 사용자가 시스템과 상호작용하는 모든 시각적 요소를 담당합니다.
- main_view.py: 전체 UI 레이아웃 구성
- tab_factory.py: 리포트, 대시보드 등 각 탭 생성
- dialogs.py: 설정, 제품 관리 등 팝업 창 관리
- canvas_manager.py: 이미지 표시 및 상호작용 관리
🧠 Core Logic
이미지 분석과 애플리케이션의 핵심 비즈니스 로직을 처리합니다. 무거운 작업은 별도 프로세스에서 실행하여 UI 응답성을 유지합니다.
- app_controller.py: UI와 분석 엔진을 연결하는 중앙 컨트롤 타워
- image_analyzer.py: 이미지 비교, 객체 탐지 등 핵심 CV 알고리즘
- analysis_worker.py: 백그라운드에서 이미지 분석 수행
🛠️ Utilities & Deployment
보조 기능과 다중 플랫폼 배포를 위한 스크립트 및 설정 파일들입니다.
- utils/: 파일, 경로, 언어 관리 모듈
- scripts/: macOS 및 RPi 빌드/릴리스 자동화 스크립트
- .github/workflows/: CI/CD 파이프라인 정의 (GitHub Actions)
- Dockerfile.rpi: Raspberry Pi용 Docker 이미지 생성
데이터 흐름도
UI Action → Controller → Worker → UI Update
1. MainView (사용자 액션) → 2. AppController (요청 수신 및 작업 생성) → 3. AnalysisWorker (백그라운드 분석) → 4. Queue (결과 전달) → 5. AppController (결과 수신 및 상태 업데이트) → 6. MainView (UI 갱신)핵심 기능 탐색
🔄 실시간 변화 감지
LAB 색상 공간에서 '이전'과 '이후' 이미지의 차이를 분석하여 조명 변화에 강인하게 재고 변화를 감지합니다.
🧩 지능형 객체 분할
붙어있는 여러 제품을 하나의 덩어리(Blob)로 인식했을 때, Watershed, Convexity Defects 등 다양한 알고리즘으로 개별 제품 단위로 지능적으로 분할합니다.
🎯 템플릿 기반 제품 인식
제품의 고유한 '이미지 시그니처'를 템플릿으로 등록하여, 빠르고 정확하게 제품을 식별하고 재고를 관리합니다.
📊 자동 재고 계산 및 리포트
분석 결과를 바탕으로 최종 재고와 청구 금액을 자동으로 계산하고, 상세한 리포트를 생성하여 사용자가 쉽게 현황을 파악할 수 있도록 돕습니다.
🤖 자동 파라미터 튜닝
Ground Truth(정답 이미지)를 기반으로, 각 매장 환경에 가장 적합한 이미지 분석 파라미터를 자동으로 찾아주는 'Auto-Tune' 기능을 제공합니다.
📜 상세 이력 관리 및 디버깅
모든 분석 결과를 로그와 상세 이미지로 저장하여, 과거 이력을 추적하고 문제 발생 시 원인을 쉽게 파악할 수 있는 강력한 디버깅 기능을 제공합니다.
빌드 및 배포 파이프라인
이 프로젝트는 각 플랫폼의 특성에 맞는 로컬 및 CI/CD 빌드 파이프라인을 갖추고 있습니다.
macOS 배포 (로컬)
Nuitka로 `.app` 번들 빌드, 압축하여 delivery 폴더에 `.zip` 파일 생성
모든 플랫폼의 빌드를 취합하여 GitHub Release 생성 및 `version.json` 업데이트
🤖 Win/Linux (CI/CD)
GitHub Action이 자동 실행되어 Windows, Linux 빌드 및 패키징
빌드 결과물을 로컬 `delivery` 폴더로 다운로드 (macOS와 취합)
모든 플랫폼의 빌드를 취합하여 GitHub Release 생성 및 `version.json` 업데이트
🍓 Raspberry Pi (로컬)
Docker 이미지를 빌드하여 GHCR에 푸시
모든 플랫폼의 빌드를 취합하여 GitHub Release 생성 및 `version.json` 업데이트
다양한 응용 모드 (Application Modes)
CORE TECHNOLOGY
기본 이미지 시그니처 기술 및 On-Device Edge 플랫폼
MULTI-MODES
확장 가능한 멀티 모드 시스템
PERSONAL CARE
1인 가구, 수면 패턴 분석, 홈케어 및 일반 통합 대시보드
PUBLIC & RETAIL
조기 산불 감지, 외부 침입 방범 및 무인 매장 재고 관리
HIGH SECURITY
특수 의약품 저장소 및 군수 비밀 무기 완전 폐쇄 모니터링
4 modes Auto-Run Driving
8개 지원 모드, 4 모드 선택 자동 구동 시스템
소프트웨어
ImgSigZenA와 함께 사용하는 웹 기반 도구입니다.