In Progress

TDA 기반 상품 식별

Persistent Homology를 활용한 PH 바코드 실험

물류센터에서 바코드가 훼손되거나 누락된 경우, 상품 포장 정면을 스마트폰으로 촬영하여 Persistent Homology 기반의 PH 바코드를 생성하고, 이를 통해 상품을 식별할 수 있는지 실험적으로 검증한다.

학습 데이터 불필요, GPU 없이 CPU만으로 계산 가능 — 중소 창고에서도 도입할 수 있는 경량 시스템이 목표.

Why — 현업 배경

물류센터에서 상품 구분은 거의 전적으로 바코드에 의존한다. 바코드가 훼손되면 작업자가 육안으로 확인해야 하고, 오분류와 속도 저하가 발생한다. RFID는 태그 단가, 비전처리는 GPU 비용 문제로 중소 창고에서는 도입이 어렵다. TDA는 학습 데이터 없이 사진 한 장에서 바로 특징을 추출할 수 있다.

Pipeline
촬영 → Grayscale → Simplicial Complex → Filtration
→ Persistent Homology → PH 바코드 → 특징 벡터 → 유사도 비교 → 상품 식별
As-Is (현재)
Android Android
촬영 & 요청
EC2 · kyuwan.kim
nginx nginx
Spring Spring Boot
Python FastAPI TDA
MySQL MySQL
Local Storage
EC2 단일 구성
To-Be (확장)
Android Android
촬영 & 요청
EC2
nginx nginx
Spring Spring Boot
Python FastAPI TDA
RDS RDS
S3
DB · 스토리지 분리
Python GUDHI JavaPlex OpenCV Spring Boot Android AWS
1주차 — 환경 구축 및 파이프라인 검증
Latest
  • Python + JavaPlex 기반 PH 바코드 파이프라인 구현
  • 같은 상품 10장 촬영 — 조건(각도, 거리, 조명)별 PH 바코드 일관성 검증
  • Canny 엣지 자동 크롭 실패(5/10) → 고정 크롭 1816×2420으로 해결. 향후 Android 앱 프레임 오버레이로 대체 예정
  • 18차원 특징 벡터 설계 — H₀/H₁ 각각의 count, total/max/mean/std persistence, 4개 구간별 Betti number
PH Pipeline: Original → Crop → Grayscale → Persistence Diagram → Barcode
Fig 1. 파이프라인 전체 시각화 — 원본 촬영 → 고정 크롭 → Grayscale → PH Diagram → Barcode
Image H₀ count H₁ count H₀ max pers. H₁ max pers.
img_015,8035,53424727
img_024,7844,49924531
img_034,8694,59824623
img_045,2564,97024721
img_054,6144,32624024
img_063,8843,70624824
img_074,6984,41924627
img_084,8264,56024932
img_094,9794,69724528
img_104,6544,37724627
22,032
L2 Mean Distance
13,946
Std Deviation
997
Min Distance
50,810
Max Distance
10장 비교 분석: L2 거리 행렬, PH Diagram, 주요 특징
Fig 2. 10장 종합 비교 — L2 거리 행렬 + Persistence Diagram + 주요 특징 비교
Persistence Diagram & PH Barcode
Fig 3. Persistence Diagram & PH Barcode — H₀(연결 성분), H₁(루프) 분포
H₀ 3,884~5,803개 · H₁ 3,706~5,534개 구조 검출
H₀ max persistence 240~249 범위에서 안정적 — 전체 밝기 구조가 일관됨
L2 평균 거리 22,032 · 표준편차 13,946
→ 같은 상품의 PH 바코드는 촬영 조건이 달라져도 일정 범위 안에 분포 (긍정적 신호)