제품 소개서

move_detect — 작업장 안전 AI CCTV

쓰러진 작업자를 3초면 알아채고, 즉시 현장에 울리고, 5분 안에 확인되지 않으면 위로 올립니다.

실내 공장·창고의 안전사고를 엣지 AI가 실시간으로 감지하고, 감지에서 끝내지 않고 현장 경광등과
담당자 통보까지 이어지도록
만든 온프레미스 안전관리 시스템입니다. 영상은 외부로 나가지
않습니다 — 사고 순간의 스냅샷 3장(얼굴 자동 블러)만 전달합니다.

버전 1.1.0 · 2026-08-28


1. 왜 만들었나

작업장에 설치된 카메라와 현장 경광등.
작업장에 설치된 카메라와 현장 경광등.

1-1. CCTV는 이미 있는데, 왜 사고를 못 막나

대부분의 작업장에는 이미 CCTV가 달려 있습니다. 그런데도 사고가 발생하면 다음 세 가지가
반복됩니다.

첫째, 아무도 보고 있지 않습니다. 카메라 수십 대를 실시간으로 지켜보는 인력은 어디에도
없습니다. CCTV는 사실상 사후 확인용 녹화기로만 쓰이고 있고, 그것은 사고를 막는 장치가
아니라 사고를 설명하는 장치입니다.

둘째, 발견이 늦을수록 피해가 커집니다. 넘어짐 자체보다 위험한 것은 넘어진 뒤 방치되는
시간입니다. 의식을 잃은 작업자에게 그 시간은 곧 후유장해와 사망 위험의 크기입니다.
야간·주말·단독 작업 시간대에는 이 공백이 몇 시간 단위로 벌어집니다.

셋째, 사고 후에 증명할 자료가 없습니다. 사고가 나면 사업주는 "무엇을 위험으로 보고
있었고, 어떤 통제를 걸어두었으며, 사건 당시 그것이 작동했는가"를 설명해야 합니다.
녹화 영상만으로는 그 질문에 답할 수 없습니다.

1-2. 이 세 가지를 각각 겨냥했습니다

문제 move_detect의 답
아무도 안 보고 있다 AI가 24시간 대신 봅니다. 사람은 감지된 사건만 봅니다
발견이 늦다 감지 즉시 현장 경광등이 울리고, 확인이 없으면 상위 담당자로 자동 확대됩니다
증명할 자료가 없다 사건마다 증거·통보·조치·위험요인이 묶인 사고조사 패키지가 한 번에 나옵니다

1-3. 설계를 결정한 세 가지 제약

이 제품의 형태는 다음 세 제약에서 나왔습니다. 기능보다 이 제약이 먼저입니다.


2. 무엇을 하는가

감지 → 대응 → 증거. 어느 한 칸이 비면 나머지가 무의미해집니다.
감지 → 대응 → 증거. 어느 한 칸이 비면 나머지가 무의미해집니다.

기능을 나열하기 전에 구조를 먼저 봅니다. 이 제품은 하나의 사슬입니다.

   감지                대응                     증거
 ─────────      ─────────────────       ────────────────────
 17종 이벤트  →  현장 경광등 (즉시)   →   사고조사 패키지
 엣지 AI 판정     담당자 통보            증거 3프레임
 얼굴 블러        미확인 시 상위 확대     통보 이력 · 조치 이력
                                        위·변조 탐지 감사기록

사슬의 어느 한 칸이 비면 나머지가 무의미해집니다. 감지만 있으면 아무도 모르고,
대응만 있으면 나중에 설명할 수 없습니다.

2-1. 감지 — 무엇을 알아채는가

넘어짐 감지 단계. 1초 위험 자세 → 3초 확정 → 10초 미동 없음. 도중에 일어서면 니어미스로만 기록됩니다.
넘어짐 감지 단계. 1초 위험 자세 → 3초 확정 → 10초 미동 없음. 도중에 일어서면 니어미스로만 기록됩니다.
앉은 자세와 넘어진 자세는 형태와 지속 시간으로 구분합니다.
앉은 자세와 넘어진 자세는 형태와 지속 시간으로 구분합니다.
위험구역은 화면 위에 직접 그립니다. 판정 기준은 발 위치입니다.
위험구역은 화면 위에 직접 그립니다. 판정 기준은 발 위치입니다.
자세뿐 아니라 구역 안의 인원 수도 안전 조건입니다.
자세뿐 아니라 구역 안의 인원 수도 안전 조건입니다.

엣지가 17종을 판정하고, 여기에 서버가 발행하는 '미확인 경보 확대' 1종이 더해집니다.
사람에 대한 것, 구역 규칙에 대한 것, 그리고 감시 장비 자신에 대한 것으로 나뉩니다.

사람의 위험 상태

이벤트 무엇을 잡는가
넘어짐 기립→쓰러짐 전이를 자세로 판정. 쓰러진 자세가 3초(조정 가능) 지속되면 확정 — 앉는 동작과 구분
넘어짐 후 미동 없음 쓰러진 뒤 움직임이 없으면 위급으로 승격 — 의식 소실 의심
장시간 부동 자세와 무관하게 오래 움직이지 않는 작업자
위험 상태 소실 위험한 상태였던 사람이 화면에서 사라짐 (가림·추락 등)
넘어질 뻔함 (니어미스) 사고 직전까지 갔다가 회복 — 사고 전 신호
작업자세 부담 허리·팔 각도 노출 시간 집계 (익명 통계)

구역 규칙 위반 — 관리자가 카메라 화면 위에 그린 구역에 대해 판정합니다.

이벤트 무엇을 잡는가
경고구역 진입 / 제한구역 침입 / 협착구역 침입 등급별 구역 진입
단독 작업 2인 1조 구역에 혼자 있는 상태가 지속
정원 초과 / 체류 상한 초과 구역별 인원·체류시간 규칙 위반

감시 자신의 건전성 — 이 항목들이 이 제품의 차별점입니다.

이벤트 왜 필요한가
카메라 화각 변경 청소하다 삼각대를 스치면 위험구역이 엉뚱한 바닥을 가리킵니다. 그런데 프레임은 계속 들어오고 화면은 정상으로 보입니다 — 이 조용한 실패를 감지합니다
카메라 가림 / 조도 저하 렌즈가 덮이거나 조명이 죽어 검출력이 떨어진 상태
장치 이상 노드가 응답을 멈춘 상태. 서버가 하트비트의 부재로 판정합니다 — 전원이나 회선이 끊긴 노드는 자기가 죽었다고 신고할 수 없기 때문입니다
감시 성능 저하 노드는 살아 있으나 프레임률이 떨어지거나, 카메라 하나가 오류이거나, 발열로 성능이 깎인 상태. 한 번 튄 값이 아니라 지속될 때만 사건이 됩니다
미확인 경보 확대 위급 사건을 정해진 시간 동안 아무도 확인하지 않았다는 사실 자체를 사건으로 만듭니다

보호구 미착용 · 중장비 근접 · 화재/연기 3종은 감지기 배선과 이벤트 규격이 준비되어 있으나
추론 모델이 확보되지 않아 비활성 상태입니다. 자세한 내용은 9장을 보십시오.

2-2. 대응 — 어떻게 사람에게 닿는가

현장 경광등은 감지한 노드가 자기 GPIO로 직접 울립니다. 서버도 인터넷도 거치지 않습니다.
현장 경광등은 감지한 노드가 자기 GPIO로 직접 울립니다. 서버도 인터넷도 거치지 않습니다.

감지가 화면에만 뜨면 그것은 기록 장치입니다. 이 제품은 세 갈래로 사람에게 닿습니다.

  1. 현장 경광등·부저 (즉시, 네트워크 불필요)
    감지한 엣지 노드가 자기 GPIO로 직접 울립니다. 서버도 인터넷도 거치지 않으므로 회선이
    끊겨도, 서버가 죽어도 동작합니다.
    어떤 현장이든 이것부터 설정하도록 안내합니다.

  2. 담당자 통보 (메일 · 사내 웹훅/문자 게이트웨이)
    심각도 기준을 채널마다 정할 수 있습니다. 통보에는 현장 사진이 들어가지 않습니다 —
    링크만 보내고, 사진은 로그인한 사람만 봅니다.

  3. 미확인 시 자동 확대
    위급 사건이 정해진 시간(기본 5분) 동안 확인되지 않으면 상위 담당자에게 올라갑니다.
    "감지했다"를 "누군가 보게 만들었다"로 바꾸는 장치입니다.

2-3. 증거 — 나중에 무엇으로 설명하는가

2-4. 운영 — 현장이 스스로 굴릴 수 있는가

납품 후 고객이 손댈 수 없는 시스템은 결국 꺼집니다.


3. 기대효과

3-1. 즉시 달라지는 것

발견까지 걸리는 시간의 변화.
발견까지 걸리는 시간의 변화.
항목 도입 전 도입 후
야간·단독 작업 중 쓰러짐 다음 순찰·교대까지 방치 감지 즉시 경광등, 미확인 시 상위 확대
위험구역 관리 표지판과 교육에 의존 진입·단독작업·정원초과를 규칙으로 판정
사고 조사 녹화 뒤져 반나절 1클릭 패키지 (전후 맥락·통보·조치 포함)
CCTV 인력 봐야 보임 감지된 사건만 봄
안전 활동 증빙 문서로 주장 시스템 기록으로 제시

3-2. 시스템이 스스로 측정해 보여주는 효과

이 제품은 자기 효과를 스스로 계측합니다. 도입 효과를 공급자 주장이 아니라 고객 화면의
숫자로 확인할 수 있다는 뜻입니다. 안전 리포트에 다음이 나옵니다.

3-3. 관리 부담이 줄어드는 지점

3-4. 약속하지 않는 것

과장은 도입 후 신뢰를 무너뜨리므로 미리 적습니다.


4. 시스템 구성

카메라 → 엣지 노드 → 대시보드. 노드에서 서버로 가는 것은 스냅샷 3장과 메타데이터뿐입니다.
카메라 → 엣지 노드 → 대시보드. 노드에서 서버로 가는 것은 스냅샷 3장과 메타데이터뿐입니다.
   [카메라 CSI/USB · Pi당 2~4대]
              │
   ┌──────────▼──────────────────────────────┐
   │  Raspberry Pi 5 + Hailo-8 (26 TOPS)     │   ← 엣지: 자세추정 · 이벤트 판정
   │  · 얼굴 블러 (저장 전)                   │      · 경광등 GPIO 직접 구동
   │  · 오프라인 큐 (회선 단절 대비)          │      · 카메라 무결성 감시
   └──────────┬──────────────────────────────┘
              │  HMAC 서명 POST — 스냅샷 3장 + 메타데이터만 (영상 없음)
              ▼
   ┌─────────────────────────────────────────┐
   │  웹 대시보드 (PHP 8 + MySQL)             │   ← 일반 웹호스팅에서 동작
   │  이벤트 콘솔 · 구역 편집 · 안전 리포트    │      별도 서버 투자 불필요
   │  안전 관리 · 시스템 설정 · 사고조사       │
   └──────────┬──────────────────────────────┘
              │
     메일 · 사내 웹훅/문자 게이트웨이

4-1. 엣지 노드

Raspberry Pi 5 + Hailo-8 가속기.
Raspberry Pi 5 + Hailo-8 가속기.

4-2. 서버·대시보드

화면 누가 무엇을
이벤트 운영자 실시간 스트림, 확인·오탐 판정, 날짜 조회, 일괄 처리
이벤트 상세 운영자 증거 3프레임, 판정, 조치 기록, 사고조사 패키지 진입
구역 설정 안전관리자 카메라 화면 위 폴리곤, 등급·점유 규칙, 위험 히트맵
안전 리포트 안전관리자 주간 회의용 지표 한 장 (인쇄)
안전 관리 안전관리자 인수인계 · 정비 억제 · 위험성평가 · 설비 성능
시스템 설정 관리자 통보 경로 · 감지 임계값

이 외에 설치 점검(구성이 실제로 동작하는지 단계별 확인)과 사고조사 패키지(인쇄용
단일 문서) 화면이 있습니다.


5. 개인정보 보호와 보안

작업자 감시 도구로 비치는 순간 현장 도입이 막힙니다. 그래서 프라이버시는 설정이 아니라
구조로 넣었습니다.

영역 적용
영상 라이브뷰 없음, 영상 저장·전송 없음. 사건 스냅샷 3장만
얼굴 저장 전에 자동 블러. 원본은 어디에도 남지 않음
접근 스냅샷은 인증 프록시 경유. 보존기간 경과 시 자동 삭제
통보 알림에 이미지 미포함 — 링크만 전송
전송 보안 HMAC 서명 + nonce로 위·변조·재전송 차단, 장치·IP별 rate limit
인증 Argon2id, 로그인 잠금(사용자명 열거 차단), 세션 고정 방지
권한 역할 기반 접근제어 + 현장 스코프, 전 요청 CSRF
웹 CSP nonce (unsafe-inline 없음), DOM 주입은 textContent만
기록 감사로그 해시체인 — 수정·삭제·우회삽입 탐지

6. 납품과 운영

설치 대상이 되는 전형적인 작업 공간.
설치 대상이 되는 전형적인 작업 공간.

7. 품질 근거

항목 현황
자동화 테스트 535건 (엣지 Python 311 · 서버 PHP 224), 스킵 0 (하드웨어 항목 제외)
납품 감사 1차 43건 + 재감사 12건 = 55건 전량 해소, 판정 적합
상호운용 검증 HMAC 골든 벡터로 엣지(Python) ↔ 서버(PHP) 대조
계층 정합 검증 감지 유형이 엣지·검증기·DB·화면 네 곳에서 일치하는지 자동 검사
납품물 검증 산출물↔소스 패리티, 패키지 내부 클래스 해석·문법 검사, 무결성 해시
CI 검증 명령 단일화, 스킵 발생 시 빌드 실패

감사에서 실제로 잡힌 대표 사례: 신규 감지 유형이 서버 검증기에만 누락되어 감지기가
구현·배포되고도 아무 이벤트도 남기지 못하던 상태
를 발견해 수정하고, 재발 방지 테스트를
추가했습니다. 이런 "조용한 실패"를 찾는 것이 이 프로젝트 감사 사이클의 목적입니다.


8. 기술 스택

구분 기술
엣지 하드웨어 Raspberry Pi 5 + AI HAT+ (Hailo-8, 26 TOPS)
엣지 소프트웨어 Python, Hailo HEF 자세추정 (CPU 폴백 내장)
카메라 CSI (picamera2) · USB (V4L2 MJPEG), Pi당 2~4대
서버 PHP 8 + PDO + MySQL — 일반 웹호스팅에서 동작
프런트엔드 바닐라 JavaScript (빌드 도구 없음)
배포 오프라인 번들 · systemd · zip 업로드 패키지

9. 현재 한계와 다음 단계

9-1. 모델 확보가 선행되어야 하는 항목

보호구 미착용 · 중장비 근접 · 화재/연기 감지는 감지기 배선·이벤트 규격·테스트까지 완성되어
있고 추론 모델만 비어 있습니다.
라이선스 조건을 만족하는 가중치 확보와 엣지 컴파일이
선행 조건입니다.

이 상태를 "곧 됩니다"로 켜두지 않고 명시적으로 비활성으로 둔 것은 의도적입니다 —
켜져 있으면 현장은 감지되고 있다고 믿게 되고, 그 믿음이 가장 위험합니다.

9-2. 현장 설치 시 검증할 항목

코드로 닫을 수 없고 실장비에서만 확인 가능한 항목입니다. 설치 시 반드시 수행합니다.

9-3. 다음 단계


부록. 한눈에 보기

한 줄 정의 쓰러진 작업자를 3초면 알아채고, 현장에 즉시 울리고, 5분 안에 확인되지 않으면 위로 올리며, 그 전 과정을 증거로 남기는 시스템
핵심 차별점 ① 감지에서 끝나지 않고 현장 경광등·에스컬레이션까지 ② 감시 자신의 고장을 감지 ③ 사고조사 패키지 1클릭 ④ 위·변조 탐지 감사기록
프라이버시 라이브뷰·영상 전송 없음 · 얼굴 저장 전 블러 · 알림에 이미지 미포함
운영 비용 클라우드 GPU 없음, 일반 웹호스팅에서 동작
감지 유형 17종 활성 (+ 모델 확보 대기 3종)
검증 테스트 535건 · 납품 감사 55건 전량 해소