# Awiros RF-DETR-S 사람·머리 후보

범위: 신규 원본 확인과 ONNX/TensorRT 후보 변환만 완료. 군중 시나리오/Runtime 등록은 미실행이다.
기존 동일 모델 흔적은 원본 근거로 사용하지 않았다.

## 산출물

test 서버 루트: `/data/contextra/model-artifacts/awiros-person-head-r01/`.

| 파일 | 용도 |
| --- | --- |
| source/checkpoint_best_total.safetensors | 사용자 업로드 원본, 변경 없음 |
| source/official/ | revision 고정 공식 README와 checkpoint 변환/inference 코드 |
| converted/checkpoint.pth | 공식 변환 스크립트로 생성한 중간 checkpoint |
| onnx/rfdetr-small.onnx | CPU export, dynamic batch, ONNX 입력 FP32 |
| engine/model.plan | test A6000용 TensorRT 후보, 입력 FP16 |
| manifest.json | 경로/크기/hash/출처/환경/계약/기술 검증 결과 |
| tools/ 및 *.intent.json, *.result.json, *.log | 재현 도구와 단계별 원장; 임의 재실행 금지 |

## 입력과 출력

- RF-DETR-S, resolution 512x512. RGB/NCHW, uint8을 255로 나눈 뒤 bilinear resize
  (antialias=False, letterbox 없음), mean [0.485,0.456,0.406], std [0.229,0.224,0.225] 정규화.
- engine 입력 `input`: FP16 `[batch,3,512,512]`. 정규화 후 FP16 cast.
- 출력 `dets`: FP32 `[batch,300,4]`, normalized cx/cy/w/h.
- 출력 `labels`: FP32 `[batch,300,3]`, sigmoid 전 raw logits.
- 공식 class_names와 고정 exporter custom-class mapping 기준 0=person, 1=head.
  추가/background slot 2는 세 번째 군중 클래스로 취급하지 않는다. 실제 검출 라벨 정확도는 미평가다.
- engine min/opt/max batch=1/4/4. FP16 최적화 허용이며 모든 layer가 FP16이라는 뜻은 아니다.
- 기존 Fire/Medium의 576 해상도나 decode 계약을 그대로 적용하지 않는다.

## 검증과 다음 경계

원본 hash/크기 공식 일치, 로드 tensor487 일치, ONNX checker PASS, engine 역직렬화와
batch1~4 shape/dtype/finite PASS. 합성 zero 입력이며 정확도·속도 benchmark는 하지 않았다.
Triton repository 배치/instance 설정/load, 카메라/군중 시나리오/DB/Redis 변경은 모두 미실행이다.
이 후보는 test GPU용이다. 아이서티 Blackwell 변환은 해당 GPU에서 별도로 수행해야 한다.

재개 시 `manifest.json`과 각 단계 원장/실제 파일 hash부터 확인한다. 완료된 export/build를
반복하지 않고, 변경이 필요하면 기존 원본/후보를 보존한 별도 revision 경로를 사용한다.
다음 단계는 사용자가 승인한 시각 검증/Runtime adapter 연결이며, 이번 문서 자체는 실행 승인이 아니다.
