File size: 2,344 Bytes
cacaeb4
 
 
 
 
 
2980d63
cacaeb4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b95781b
cacaeb4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7ea83d4
 
 
 
 
 
 
 
cacaeb4
 
 
 
 
 
7ea83d4
 
 
cacaeb4
 
 
 
7ea83d4
 
cacaeb4
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
---
title: Fall Detection Demo
emoji: "!"
colorFrom: blue
colorTo: red
sdk: gradio
sdk_version: "5.50.0"
app_file: app.py
pinned: false
license: mit
hardware: zero-a100
---

# Fall Detection Demo

YOLOv11-Pose + ST-GCN 2-stage ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๋‚™์ƒ ๊ฐ์ง€ ๋ฐ๋ชจ์ž…๋‹ˆ๋‹ค.

## ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ

- **Stage 1: Pose Estimation** - YOLOv11m-pose
  - ์ž…๋ ฅ: ๋น„๋””์˜ค ํ”„๋ ˆ์ž„
  - ์ถœ๋ ฅ: 17๊ฐœ COCO keypoints (x, y, confidence)

- **Stage 2: Temporal Classification** - ST-GCN
  - ์ž…๋ ฅ: 60 ํ”„๋ ˆ์ž„ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ (2์ดˆ @ 30fps)
  - ์ถœ๋ ฅ: Fall/Non-Fall ํ™•๋ฅ 

## ์‚ฌ์šฉ๋ฒ•

1. ๋น„๋””์˜ค ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค (MP4, AVI, MOV ์ง€์›)
2. ํ•„์š”์‹œ ๊ณ ๊ธ‰ ์„ค์ •์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค
3. "๋ถ„์„ ์‹œ์ž‘" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค
4. ๊ฒฐ๊ณผ ๋น„๋””์˜ค์™€ ํ™•๋ฅ  ๊ทธ๋ž˜ํ”„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

## ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๋ช…

- **๋‚™์ƒ ํŒ์ • ์ž„๊ณ„๊ฐ’ (Fall Threshold)**: ์ด ๊ฐ’ ์ด์ƒ์˜ ํ™•๋ฅ ์ด๋ฉด ๋‚™์ƒ์œผ๋กœ ํŒ์ • (๊ธฐ๋ณธ๊ฐ’: 0.85, ๊ถŒ์žฅ: 0.8-0.9)
- **ํ‚คํฌ์ธํŠธ ํ‘œ์‹œ (Keypoint Mode)**:
  - `all`: ์ „์ฒด 17๊ฐœ ํ‚คํฌ์ธํŠธ ํ‘œ์‹œ
  - `major`: ์ฃผ์š” 9๊ฐœ ํ‚คํฌ์ธํŠธ๋งŒ ํ‘œ์‹œ (์ฝ”, ์–ด๊นจ, ์—‰๋ฉ์ด, ๋ฌด๋ฆŽ, ๋ฐœ๋ชฉ)

## ๋ชจ๋ธ ์ •๋ณด

| ๋ชจ๋ธ | ์šฉ๋„ | ํŒŒ๋ผ๋ฏธํ„ฐ |
|------|------|----------|
| YOLOv11m-pose | Pose Estimation | ~25M |
| ST-GCN | Temporal Classification | ~3M |

## ์„ฑ๋Šฅ

- **Latency**: ~2์ดˆ (60 ํ”„๋ ˆ์ž„ ์œˆ๋„์šฐ ๊ธฐ์ค€)
- **Accuracy**: 99.6% (AI Hub ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹)

## ๋ชจ๋ธ ์ €์žฅ์†Œ

๋ชจ๋ธ ํŒŒ์ผ์€ Private HuggingFace Model ์ €์žฅ์†Œ์—์„œ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

- **์ €์žฅ์†Œ**: `YoungjaeDev/fall-detection-models` (Private)
- **ํŒŒ์ผ**: `yolo11m-pose.pt`, `best_acc.pth`
- **ํ† ํฐ**: HF Spaces์˜ ๊ฒฝ์šฐ `HF_TOKEN` Secret ์„ค์ • ํ•„์š”

## ๋กœ์ปฌ ์‹คํ–‰

```bash
# ์˜์กด์„ฑ ์„ค์น˜
pip install -r requirements.txt

# HuggingFace ๋กœ๊ทธ์ธ (Private ๋ชจ๋ธ ์ ‘๊ทผ์šฉ)
huggingface-cli login

# ์•ฑ ์‹คํ–‰
python app.py
```

๋กœ์ปฌ ๊ฐœ๋ฐœ ์‹œ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— `yolo11m-pose.pt`์™€ `runs/stgcn_binary_exp2_fixed_graph/best_acc.pth`๊ฐ€ ์žˆ์œผ๋ฉด HF์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ๋กœ์ปฌ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

## ์ฐธ๊ณ ์ž๋ฃŒ

- [YOLOv11 (Ultralytics)](https://github.com/ultralytics/ultralytics)
- [ST-GCN Paper](https://arxiv.org/abs/1801.07455)
- AI Hub ๋‚™์ƒ์‚ฌ๊ณ  ์œ„ํ—˜๋™์ž‘ ์˜์ƒ-์„ผ์„œ ์Œ ๋ฐ์ดํ„ฐ