# camera24 행동 인식 4후보 비교

작성 기준: 2026-10-26 KST / ltb1021. 격리된 오프라인 시험이며 모델 채택은 사용자 검토 대기다.

## 먼저 볼 영상

| 후보 | 최종 검토 영상 | 결과 단위 |
| --- | --- | --- |
| ST-GCN++ | [영상](outputs/camera24_stgcnpp_top5_v2.mp4) | 근접한 Tracking ID 쌍 |
| AVA SlowOnly | [영상](outputs/camera24_ava_slowonly_top5_v2.mp4) | 기존 Pose 검출의 사람 bbox |
| PoseC3D | [영상](outputs/camera24_posec3d_top5.mp4) | 모든 사람의 skeleton을 합친 구간 전체 |
| YOWOv2 | [영상](outputs/camera24_yowov2_top5_v2.mp4) | 모델 자체 bbox; Y 번호는 매 Frame의 임시 번호 |

각 영상은 약20초, 201개 관측 Frame이며 원본 Frame242~722를 표시한다.
사용자가 지정한 구간은242~723이지만 공통10FPS PTS 선택의 마지막 표본은722다.
723을 누락 오류나 추가 모델 결과로 위장하지 않는다. 전체 원본과 최초 검토본은 준비 run에 보존했다.
10FPS는 관측·평가 간격이다. 실제 파일 PTS의 불규칙성을 보존했고 출력 시각 대응 오차는0초다.
표시 번호는 최초 검토본의 파일 Frame 번호이며 Runtime frameSeq가 아니다.

## 사용자 관찰과 읽는 법

- 첫 반복242~482, 두 번째483~723. 사용자는 두 구간 전체에서 좌측 상단2명이 싸움 동작을 한다고 확인했다.
- 처음3명에서 기둥 뒤2명이 추가되어 총5명이 보인다. 나머지는 통행인·방관자다.
- 우측 상단에 인접해서 서 있는2명은 객체별 결과의 오탐 확인 대상이다. 입력에서 제외하지 않았다.
- 같은 영상의 반복이며 독립적인 정확도 사례2개가 아니다. 원본의 반복 경계를 임의 편집·접합하지 않았다.
- Top5는 원래 행동 클래스와 점수다. 싸움 클래스 매핑, 알람, 가해자·피해자 구분은 하지 않았다.
- NTU60은60개 클래스 softmax, AVA 계열은80개 행동별 sigmoid다. 서로 같은 확률·threshold로 비교하지 않는다.
- T는 기존 ByteTrack을 시험 전용으로 실행해 얻은 ID다. Uq는 그 시점에 ID가 없는 Pose 후보다.
- Y는 YOWOv2의 Frame 내부 순번이며 Tracking ID가 아니다. 프레임 사이 사람 ID처럼 읽지 않는다.
- PARTIAL/Observed frames는100개 관측 중 해당 ID가 실제로 관찰된 수다. 누락을 보간하거나 ID를 강제로 연결하지 않았다.
- PoseC3D의 Top5는 화면 전체 결과다. 특정 방관자 또는 싸움 당사자에게 귀속시키면 안 된다.

## 입력·조건

기존 녹화의 약40초에서 PTS 최근접 방식으로400개의 서로 다른 원본 Frame을 선택했다.
모델 입력은 무표시 원본이며, 기존 RFDETRKeypointPreview version8 engine을 별도 Triton1인스턴스에서 읽었다.
운영 Triton/추론queue에는 시험 요청을 보내지 않았다. 운영 인스턴스 수나 모델 설정을 바꾼 것이 아니다.
CPU OpenCV RGB stretch576과 기존 mean/std·FP16 입력·후처리·Pose NMS0.85·ByteTrack을 재사용했다.
CPU resize와 운영 GPU resize의 bit 단위 동일성은 주장하지 않는다.
현재 시나리오의 person0.15/joint0.3을 사용했다. 별도 행동 입력용 객체 score 필터를 추가하지 않았다.
기존 ByteTrack activation0.25는 그대로여서0.15를 통과해도 미성숙·미매칭 ID가 생길 수 있다.
이 후보는 AVA/PoseC3D 입력에서 숨기지 않았으며 ST-GCN++ 쌍을 만들 수 없는 경우를 명시했다.
공식 Pose NMS를 통과한 검출 수는2~9명으로, 사용자 관찰5명과 항상 같지 않았다.

| 후보 | 관측 입력 | 추가 조건 | 관측된 실행 시간 / Torch reserved 피크 |
| --- | --- | --- | --- |
| ST-GCN++ | 100표본, 약9.9초; 앞뒤 문맥 | COCO17·2슬롯·공식 single-view val pipeline | 합계6.672초 / 52MiB |
| PoseC3D | 48표본, 약4.7초; 앞뒤 문맥 | 공식 val crop·17 heatmap·64x64 | 합계13.018초 / 174MiB |
| AVA SlowOnly | 4표본, 간격16표본; 약4.8초 | 짧은 변256, RGB; 미래 약1.6초 포함 | 15.558초 / 382MiB |
| YOWOv2 | 연속16표본, 약1.5초 | 공식RGB224 변환, 마지막Frame이 판정 기준 | 48.056초 / 626MiB |

ST-GCN++/PoseC3D는 최초0.5초 간격41개 결과를 보존·재사용하고 빠진160개 시점만 추가했다.
위 시간은 로딩·입출력 등 포함한 시험 process walltime이며, 실시간 처리 FPS나 공정한 속도 순위가 아니다.
Torch reserved는 GPU 전체 점유가 아니며 Pose 추출·영상 렌더링 비용도 위 모델별 값에 포함되지 않는다.
모델별 원래 Frame 간격을10FPS 관측에 적용했으므로 학습 자료의 실제 동작 속도·시간 분포와 같다고 보장하지 않는다.
미래 Frame 사용과 원본 반복 경계 통과 여부는 영상 하단과 원시 결과에 표시했다.

ST-GCN++의 근접 후보는 bbox 중심거리/평균bbox높이<=1.8이다. 싸움 판정이 아닌 시험용 공간 후보 규칙이다.
전 구간585개 쌍 출력 모두 일부 ID 관측 누락이 있어, 완전한100표본 입력에서의 모델 성능으로 해석하면 안 된다.
AVA는 준비 단계의 공식 이전 weight와 torchvision RoIAlign 호환 adapter를 사용했다.
ROI 좌표 합성검사·strict weight load·출력 검증은 통과했지만 native MMCV 수치 동등성은 미검증이다.
YOWOv2의 objectness0.1/NMS0.5/topk40은 자체 검출 조건이며 행동 점수와 곱하지 않았다.
새 학습·모델 변환·파라미터 탐색·성능시험·운영 시나리오 교체는 하지 않았다.

## 자료와 검증 범위

- `outputs/top5_all_models.csv`: Frame/입력구간/대상/상태/Top5 전체 표.
- `outputs/classes_*.csv`: 각 모델 전체 클래스와 원래 출력 index.
- `outputs/stgcnpp.json`, `posec3d.json`, `ava_slowonly.json`, `yowov2.json`: 전체 점수와 bbox/쌍·입력구간.
- `outputs/*_frame_map.csv`: 원본Frame·출력Frame·PTS 대응.
- `reports/*_summary.json`: 입력 조건, 처리시간, Torch 메모리, 출력 수.
- `reports/render_validation_r02.json`: 최종4개 영상 디코딩·PTS·텍스트 넘침·ID 라벨 겹침 검사.
- `reports/operational_comparison.json`: 운영 설정·engine·run/child 보존 확인. 정량 운영FPS는 측정하지 않았다.
- `manifest.json`: 준비된 원본/weight와 전송 결과 파일의SHA256 근거.
- 원격의 `inputs/frames`는 lossless PNG 관측 cache다. test에는 큰 중간cache를 중복 복사하지 않았다.
- 초기 `_top5.mp4` 중 ST-GCN++/AVA/YOWOv2는 ID 글자 겹침 수정 전 이력이다. 상단 표의 `_v2` 파일을 본다.

시험 중 helper의 HTTP client 추가 의존성 누락은 표준 HTTP binary 요청으로 대체했다.
운영 패키지를 설치하거나 고치지 않았으며 실패 기록은 console log에 남겼다.
채택·정확도·실시간성·상용 배포 사용 조건은 이 시험의 완료 판정에 포함하지 않는다.
시험 image·가중치·결과·자격 파일은 보존하고 자동 정리하지 않는다.

## 피드백 양식

```text
모델:
원본 Frame 또는 시각:
좌측 싸움 당사자 결과에서 납득되는 점 / 어색한 점:
우측 방관자 결과에서 납득되는 점 / 어색한 점:
계속 시험할 후보 / 보류할 후보:
```
