30

Streamlit 기반 외관검사 대시보드 구현

Day 5: 불량 판별 검사 시스템

학습 목표
  • Streamlit 으로 제조 검사 대시보드를 구축할 수 있다
  • Day 3 에서 학습한 YOLO 가중치를 불러와 업로드 이미지에 적용할 수 있다
  • 규칙 기반 기준선과 학습 모델의 결과를 같은 화면에서 견줄 수 있다
  • 검사 이력과 통계를 표시하되, 그 통계가 무엇을 센 값인지 화면에 밝힐 수 있다

Streamlit 검사 대시보드

# 실행 방법
streamlit run inspection_dashboard.py

무엇을 만드는가

Day 3 에서 학습한 runs/detect/defect_detection/weights/best.pt 를 불러와 업로드한 이미지를 검사하는 화면을 만든다.

여기서 한 가지를 분명히 한다. 이 화면에는 규칙 기반 기준선도 함께 넣는다. Canny 엣지에 면적 필터를 건 방식으로, Day 1 에서 한계를 짚었던 바로 그 방식이다. 지우지 않고 남기는 이유는 견주기 위해서다. 같은 이미지를 두 방식으로 검사해 보면 "AI 로 바꾸면 무엇이 달라지는가"를 말이 아니라 화면으로 확인할 수 있다. 다만 그것을 'AI 검사'라고 부르지 않고 기준선이라 부른다.

대시보드 구성

┌────────────────────────────────────────────────┐
│  제조 AI 외관검사 시스템 v1.0                    │
├──────────────────┬─────────────────────────────┤
│  [사이드바]       │  [메인 영역]                 │
│  - 검사 방식     │  검사 이미지 & 결과          │
│  - 임계값 조정   │  바운딩 박스 + 히트맵        │
│  - 검사 모드     │                              │
│                  │  [통계]                      │
│  [검사 이력]     │  양품률, 불량 유형 분포      │
│  - 최근 검사     │  추세 그래프                  │
│  - 통계 요약     │                              │
└──────────────────┴─────────────────────────────┘
에디터 로딩 중...
핵심 포인트
  • 화면의 선택지는 실제로 동작을 바꿔야 한다. 쓰이지 않는 선택 상자를 두지 않는다
  • Day 3 의 best.pt 를 불러와야 우리 결함을 찾는다. 가중치가 없으면 그 사실을 화면에 띄운다
  • Canny + 면적 필터는 AI 검사가 아니라 비교용 기준선이다. 그렇게 이름 붙여 표시한다
  • 면적의 함수로 만든 값을 '신뢰도'라 부르지 않는다. 확률처럼 읽히면 화면을 보는 사람이 오해한다
  • 판정 기록에 모델 경로와 임계값을 함께 남겨야 나중에 판정을 설명할 수 있다
AI로 학습하기 — 꿀팁
Streamlit 검사 대시보드 스캐폴딩AI 학습 팁

AI에게 YOLO 또는 Autoencoder 모델과 연동되는 Streamlit 제조 외관검사 대시보드를 스캐폴딩하도록 요청하세요. 실시간 불량률 집계 차트와 이미지 업로드 추론 흐름을 포함해 받으세요.

Streamlit으로 제조 외관검사 대시보드를 구현해줘. 이미지 파일 업로드 → YOLO 추론 → 바운딩 박스 오버레이 결과 표시 흐름, 세션 내 검사 이미지별 불량 유형·신뢰도 이력을 누적하는 데이터프레임, 불량률 추세 라인 차트를 포함하는 Streamlit 앱 코드를 작성해줘.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
Vision Inspector (화면 구성 참고용)
대시보드를 만들기 전에 검사 화면의 구성과 정보 배치를 참고하는 용도다. 시뮬레이터의 파이프라인 단계와 '처리시간' 표시는 화면 연출을 위해 지연을 넣은 값이므로 속도 근거로 쓰지 마라. 실제 처리 시간은 이 과제에서 만든 대시보드로 우리 장비에서 잰다.
용어