NamJuKim

진열대

1인 개발자 개발 기록

안전 영상 분석

사업장 CCTV의 RTSP 영상에서 안전모 미착용·화재·침입을 감지하고, 여러 카메라에 걸쳐 사람을 추적하는 실시간 영상 분석 서버

NamJuKim

  • 회사패턴앤
  • 기간2025
  • 맡은 일영상 분석 서버 개발

GPU 한 대로 화재·안전모·침입 감지와 다중 카메라 추적 모델을 함께 운영하는 FastAPI 추론 서버 구축. RTSP 스트림 실시간 추론, 결과를 단일 스키마로 정규화해 WebSocket 실시간 송출.

구성

  1. RTSP 카메라스트림별 스레드 · 끊김 시 재연결
  2. 모델 라우터 · 동적 로딩

    화재·연기YOLO
    안전모YOLO · helmet·head
    침입YOLO · ArUco 자동 ROI
    다중 카메라 추적ByteTrack · ReID
  3. 결과 정규화box · roi · count 스키마
  4. 실시간 송출WebSocket

GPU 한 대 · Docker

풀어야 했던 문제

맡은 일

  • FastAPI 다중 모델 라우팅·동적 모델 로딩 구현: GPU에 한 모델만 상주시키고 요청 시 교체해 VRAM 부족(OOM) 해결
  • RTSP 스트림 전용 스레드 디코딩·자동 재연결 구현, 결과를 box·roi·count 스키마로 정규화해 WebSocket 송출
  • YOLO 계열 검출 모델로 화재·연기, 안전모 착용(helmet)·미착용(head) 감지 기능 개발
  • ArUco 마커 기반 침입 감지 ROI 자동 생성, 카메라 재설치 후에도 재설정 없이 동작
  • ByteTrack 추적·ResNet50 ReID로 다중 카메라 동일인 전역 ID 부여, 고신뢰 트랙만 ReID해 GPU 부하 절감

쓴 기술

  • Python
  • FastAPI · WebSocket
  • PyTorch · YOLO
  • ByteTrack · ReID
  • OpenCV · ArUco
  • Docker · CUDA

자료

  • 산업 시설 마당을 높은 곳에서 내려다본 CCTV 화면 예시. 안전모를 쓴 작업자는 초록 helmet 상자, 쓰지 않은 작업자는 주황 head 상자로 표시된다. 실제 현장이 아니라 만든 이미지다.

    안전모 착용(helmet)·미착용(head) 감지생성 이미지

  • 저장 탱크 둘레의 출입 금지 구역이 청록 ROI로 칠해진 CCTV 화면 예시. 구역 안의 작업자는 빨간 trespass 상자, 바깥을 걷는 작업자는 person 상자로 표시된다. 실제 현장이 아니라 만든 이미지다.

    출입 금지 구역(ROI) 침입 감지생성 이미지

다른 회사 프로젝트

safety-vision