hongseok-lee's picture
Upload LICENSE with huggingface_hub
4e55d7b verified
# ๋งค๋“œ์—… ๊ด‘๊ณ ํ–‰๋™์œ ๋„์š”์†Œ ์ธ์‹ ๋ชจ๋ธ (MADUP Ad Action Element Detection Model)
## ๊ณต๊ณต ๊ธฐ์—ฌ ํ”„๋กœ์ ํŠธ
์ด ํ”„๋กœ์ ํŠธ๋Š” **๋งค๋“œ์—…(MADUP)** ์—์„œ ๊ฐœ๋ฐœํ•œ ๊ด‘๊ณ ํ–‰๋™์œ ๋„์š”์†Œ ์ธ์‹ ๋ชจ๋ธ๋กœ, ๊ตญ๋‚ด ๊ด‘๊ณ  ์‚ฐ์—…์˜ ๋ฐœ์ „๊ณผ ์—ฐ๊ตฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์„ฑ์žฅ์„ ์œ„ํ•ด ๊ณต๊ณต์— ๊ธฐ์—ฌํ•˜๊ณ ์ž ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.
## ์„ฑ๊ณผ
**ํ•œ๊ตญ์ •๋ณดํ†ต์‹ ๊ธฐ์ˆ ํ˜‘ํšŒ(KOTCA) ์ธ์ฆ ๋ฐ์ดํ„ฐ์…‹** ์—์„œ ์ž์ฒด ํ‰๊ฐ€ ๊ธฐ์ค€:
| ์ง€ํ‘œ | ์„ฑ๊ณผ | ๋น„๊ณ  |
|------|------|------|
| **mAP@50** | **0.81** | ๋ฆฌ๋”๋ณด๋“œ ์ƒ์œ„๊ถŒ ์„ฑ๋Šฅ |
| Precision | 0.83 | ๋†’์€ ์ •ํ™•๋„ |
| Recall | 0.79 | ์šฐ์ˆ˜ํ•œ ์žฌํ˜„์œจ |
| ์ตœ์ ํ™” ์‹œ๋„ | 211ํšŒ | Optuna ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ |
## ๋ชจ๋ธ ์†Œ๊ฐœ
๊ด‘๊ณ  ์ด๋ฏธ์ง€์—์„œ ํ–‰๋™์œ ๋„์š”์†Œ(Call-to-Action Elements)๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
### ์ฃผ์š” ํŠน์ง•
- **๊ณ ์„ฑ๋Šฅ**: mAP@50 0.81 ๋‹ฌ์„ฑ
- **์ตœ์ ํ™”**: 211ํšŒ Optuna ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹
- **์‹ค์šฉ์„ฑ**: ๊ด‘๊ณ  ๋””์ž์ธ ๋ถ„์„ ๋ฐ ์ž๋™ํ™”์— ํ™œ์šฉ ๊ฐ€๋Šฅ
- **๊ฐœ๋ฐฉ์„ฑ**: ์—ฐ๊ตฌ ๋ชฉ์  ๋ฌด๋ฃŒ ๊ณต๊ฐœ
### ์ธ์‹ ๊ฐ€๋Šฅํ•œ ์š”์†Œ
- **ํ…์ŠคํŠธ**: ๊ด‘๊ณ  ๋ฌธ๊ตฌ ๋ฐ ํ–‰๋™์œ ๋„ ํ…์ŠคํŠธ
- **์‚ฌ๊ฐํ˜•**: ๋ฒ„ํŠผ ๋ฐ ํด๋ฆญ ๊ฐ€๋Šฅ ์˜์—ญ
- **๋ฐฐ๋„ˆ**: ํ”„๋กœ๋ชจ์…˜ ๋ฐฐ๋„ˆ
- **์บก์А**: ์•Œ์•ฝ ํ˜•ํƒœ์˜ UI ์š”์†Œ
## ๋น ๋ฅธ ์‹œ์ž‘
### ์„ค์น˜
```bash
pip install -r requirements.txt
```
### ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
```python
from inference import AdElementDetector
# ๋ชจ๋ธ ์ดˆ๊ธฐํ™”
detector = AdElementDetector(model_path="best_model.pt")
# ์ด๋ฏธ์ง€ ๋ถ„์„
results = detector.predict("๊ด‘๊ณ ์ด๋ฏธ์ง€.jpg")
# ๊ฒฐ๊ณผ ์ถ”์ถœ
boxes = detector.get_boxes(results)
print(f"๊ฒ€์ถœ๋œ ๊ด‘๊ณ ์š”์†Œ: {len(boxes)}๊ฐœ")
```
### CLI ์‚ฌ์šฉ
```bash
# ๊ธฐ๋ณธ ์ถ”๋ก 
python inference.py --image ๊ด‘๊ณ ์ด๋ฏธ์ง€.jpg
# ์‹œ๊ฐํ™” ์ €์žฅ
python inference.py --image ๊ด‘๊ณ ์ด๋ฏธ์ง€.jpg --save ๊ฒฐ๊ณผ.jpg
```
## ๋ชจ๋ธ ์ƒ์„ธ ์ •๋ณด
### ์•„ํ‚คํ…์ฒ˜
- **๋ฒ ์ด์Šค ๋ชจ๋ธ**: Deep Learning Object Detection
- **์ž…๋ ฅ ํฌ๊ธฐ**: 486x486 pixels
- **ํ•™์Šต ์—ํญ**: 120
- **์ตœ์ ํ™”**: Optuna 211ํšŒ ์‹œ๋„
### ์ตœ์ ํ™”๋œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ
```yaml
imgsz: 486
lr0: 0.000515
dropout: 0.1
mixup: 0.15
copy_paste: 0.1
mosaic: 0.0
```
## ํŒŒ์ผ ๊ตฌ์กฐ
```
โ”œโ”€โ”€ best_model.pt # ํ•™์Šต๋œ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜ (50MB)
โ”œโ”€โ”€ inference.py # ์ถ”๋ก  ์Šคํฌ๋ฆฝํŠธ
โ”œโ”€โ”€ config.yaml # ๋ชจ๋ธ ์„ค์ •
โ”œโ”€โ”€ data.yaml # ๋ฐ์ดํ„ฐ์…‹ ์„ค์ •
โ”œโ”€โ”€ requirements.txt # Python ์˜์กด์„ฑ
โ””โ”€โ”€ README.md # ๋ฌธ์„œ
```
## ์š”๊ตฌ์‚ฌํ•ญ
- Python 3.8+
- PyTorch 1.8+
- CUDA ์ง€์› GPU (๊ถŒ์žฅ)
- 4GB+ RAM
## ๋ผ์ด์„ผ์Šค
**Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**
- **ํ—ˆ์šฉ**: ์—ฐ๊ตฌ, ๊ต์œก, ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ
- **๊ธˆ์ง€**: ์ƒ์—…์  ์‚ฌ์šฉ
- ์ƒ์—…์  ์‚ฌ์šฉ ๋ฌธ์˜: pr_chapter@madup.com
## ๊ธฐ์—ฌ
๋งค๋“œ์—…์€ ํ•œ๊ตญ ๊ด‘๊ณ  ๊ธฐ์ˆ  ๋ฐœ์ „์„ ์œ„ํ•ด ์ด ๋ชจ๋ธ์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.
### ๊ณต๊ณต ๊ธฐ์—ฌ ๋ชฉ์ 
- **์—ฐ๊ตฌ ์ง€์›**: ํ•™๊ณ„ ์—ฐ๊ตฌ ํ™œ์„ฑํ™”
- **์‚ฐ์—… ๋ฐœ์ „**: ๊ด‘๊ณ  ๊ธฐ์ˆ  ํ˜์‹  ์ด‰์ง„
- **์ปค๋ฎค๋‹ˆํ‹ฐ ์„ฑ์žฅ**: ์˜คํ”ˆ์†Œ์Šค ์ƒํƒœ๊ณ„ ๊ธฐ์—ฌ
## ์ธ์šฉ
์—ฐ๊ตฌ์— ์‚ฌ์šฉํ•˜์‹ค ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ธ์šฉํ•ด ์ฃผ์„ธ์š”:
```bibtex
@misc{madup_ad_detection_2024,
title={MADUP ๊ด‘๊ณ ํ–‰๋™์œ ๋„์š”์†Œ ์ธ์‹ ๋ชจ๋ธ},
author={MADUP Research Team},
year={2024},
publisher={HuggingFace},
note={KOTCA ๋ฐ์ดํ„ฐ์…‹ mAP@50: 0.81}
}
```
## ๋งค๋“œ์—… ์†Œ๊ฐœ
**๋งค๋“œ์—…(MADUP)** ์€ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๊ด‘๊ณ  ๊ธฐ์ˆ  ์ „๋ฌธ ๊ธฐ์—…์œผ๋กœ, AI๋ฅผ ํ™œ์šฉํ•œ ๊ด‘๊ณ  ์ตœ์ ํ™” ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- ์›น์‚ฌ์ดํŠธ: [https://www.madup.com](https://www.madup.com)
- ์—ฐ๊ตฌํŒ€ ๋ฌธ์˜: pr_chapter@madup.com
- LinkedIn: [MADUP Company](https://www.linkedin.com/company/madup)
## ๋ฌธ์˜
- ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ: Issues ํƒญ
- ๊ฐœ์„  ์ œ์•ˆ: Pull Request
- ์ผ๋ฐ˜ ๋ฌธ์˜: pr_chapter@madup.com
---
**Made with dedication by MADUP Research Team for the Korean AI Community**