aicctv
AI CCTV 목적 재점검에서 나온 세 가지. 공통점은 새 추론 모델이 필요 없다는 것 — 지금 있는 자세추정·구역·트랙 이력만으로 판정이 선다. 추락: 지금 가장 큰 공백이다. GhostIncidentDetector 는 트랙이 이미 위험 자세일 때만 무장하므로(_DANGEROUS), 발판에 서 있다가 떨어지는 사람은 소실 순간 STANDING 이라 아무것도 안 걸린다. 잡고 있는 것은 같은 높이의 '넘어짐'이고 사망 1위 유형인 '떨어짐'과는 다른 사건이다. 설계의 핵심은 bbox 중심이 아니라 **하단(y2)** 을 본다는 것. 쭈그려 앉으면 중심은 내려가지만 발은 그 자리에 있고, 추락은 발 밑선이 통째로 내려간다. 중심으로 판정하면 쭈그려 앉는 작업자가 전부 추락이 된다. 원근 접근은 높이 증가 가드로 따로 막는다. Track.frames 가 90프레임(7.5초)을 들고 있어 별도 버퍼가 필요 없고, 고소 구역은 rules_json 의 elevated 키로 스키마 변경 없이 붙는다(구역이 없어도 동작 — 선언이 없어도 최소한은 본다). 동시 다발: 같은 자리에서 짧은 시간에 둘이 쓰러진 것은 넘어짐 두 건이 아니라 질식·가스·폭발이다. 이 이벤트의 값어치는 감지가 아니라 통보 문구에 있다 — 밀폐공간 사망자의 상당수가 구조하러 들어간 사람이므로, "공기호흡기 없이 진입 금지"가 메시지에 실려야 한다. 가스는 화각을 존중하지 않으므로 노드를 넘는 판단이 필요해 서버에 둔다. 현장 즉시 대응은 첫 쓰러짐의 경광등이 이미 확보하므로 서버가 늦어도 잃는 것이 없다. 오탐 방어의 핵심은 근접성 — 넓은 공장에서 2분 안의 무관한 넘어짐 두 건은 실제로 일어난다. 프리셋: 밀폐공간 감시에 필요한 것(제한구역+2인1조+체류상한+정원)은 이미 전부 있는데, 제품이 "min_workers 를 넣으세요"라고만 말한다. 안전관리자는 min_workers 가 아니라 밀폐공간을 생각한다. 값과 화면만으로 감지 범위가 체감상 크게 넓어진다. 설계 중 확인한 잠복 결함: occupancy.py 의 `if max_workers and ...` 때문에 max_workers: 0 이 falsy 로 걸러져 규칙이 통째로 꺼진다. 즉 "아무도 있으면 안 되는 구역"(크레인 짐 아래·굴착기 선회 반경 — 깔림 사고의 전형)을 표현할 방법이 현재 없다. 운영자가 설정할 수 있는데 조용히 아무 일도 하지 않는 종류라 프리셋보다 먼저 고쳐야 한다. 구현하지 않았다. 설계안만. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EBjuR7DW6PNNMows4KnbYU |
||
|---|---|---|
| .forgejo/workflows | ||
| deploy | ||
| docs | ||
| edge | ||
| image | ||
| server | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| pyproject.toml | ||
| VERSION | ||