Spaces:
Sleeping
Sleeping
Delete README.md
Browse files
README.md
DELETED
|
@@ -1,111 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
title: pdfFormDetector
|
| 3 |
-
emoji: 🖼️
|
| 4 |
-
colorFrom: blue
|
| 5 |
-
colorTo: indigo
|
| 6 |
-
sdk: gradio
|
| 7 |
-
sdk_version: 6.13.0
|
| 8 |
-
app_file: app.py
|
| 9 |
-
pinned: false
|
| 10 |
-
license: mit
|
| 11 |
-
---
|
| 12 |
-
|
| 13 |
-
# FFDNet Space (pdfFormDetector)
|
| 14 |
-
|
| 15 |
-
Gradio UI + API HTTP para o denoiser FFDNet (Zhang et al., 2018), rodando
|
| 16 |
-
em CPU no HF Spaces grátis.
|
| 17 |
-
|
| 18 |
-
## Arquivos
|
| 19 |
-
|
| 20 |
-
| Arquivo | Propósito |
|
| 21 |
-
|-------------------|-------------------------------------------------------------------|
|
| 22 |
-
| `app.py` | UI Gradio + endpoint `/denoise` |
|
| 23 |
-
| `ffdnet_model.py` | FFDNet self-contained (compatível com pesos oficiais do KAIR) |
|
| 24 |
-
| `requirements.txt`| Dependências (torch, gradio, numpy, pillow) |
|
| 25 |
-
| `.gitignore` | Ignora `weights/` (baixado em runtime no primeiro start) |
|
| 26 |
-
|
| 27 |
-
Os pesos são baixados no primeiro start do Space a partir do release v1.0 de
|
| 28 |
-
https://github.com/cszn/KAIR (`ffdnet_color.pth` ~4 MB, `ffdnet_gray.pth` ~1 MB).
|
| 29 |
-
|
| 30 |
-
## Subindo para o HF Space
|
| 31 |
-
|
| 32 |
-
O Space é https://huggingface.co/spaces/luisabwk/pdfFormDetector. Opções:
|
| 33 |
-
|
| 34 |
-
### Opção 1 — git clone + copy (mais direto)
|
| 35 |
-
|
| 36 |
-
```bash
|
| 37 |
-
# 1. clone o Space em outra pasta
|
| 38 |
-
git clone https://huggingface.co/spaces/luisabwk/pdfFormDetector /tmp/pdfFormDetector
|
| 39 |
-
cd /tmp/pdfFormDetector
|
| 40 |
-
|
| 41 |
-
# 2. copie os arquivos do Cortex
|
| 42 |
-
cp /caminho/para/cortex-mvp/services/ffdnet-space/*.py .
|
| 43 |
-
cp /caminho/para/cortex-mvp/services/ffdnet-space/requirements.txt .
|
| 44 |
-
cp /caminho/para/cortex-mvp/services/ffdnet-space/.gitignore .
|
| 45 |
-
cp /caminho/para/cortex-mvp/services/ffdnet-space/README.md .
|
| 46 |
-
|
| 47 |
-
# 3. commit + push (precisa de HF token com write — gere em https://huggingface.co/settings/tokens)
|
| 48 |
-
git add -A
|
| 49 |
-
git commit -m "feat: FFDNet denoiser via Gradio"
|
| 50 |
-
git push
|
| 51 |
-
```
|
| 52 |
-
|
| 53 |
-
### Opção 2 — huggingface_hub CLI
|
| 54 |
-
|
| 55 |
-
```bash
|
| 56 |
-
pip install -U huggingface_hub
|
| 57 |
-
huggingface-cli login # cola o token write
|
| 58 |
-
|
| 59 |
-
huggingface-cli upload luisabwk/pdfFormDetector \
|
| 60 |
-
/caminho/para/cortex-mvp/services/ffdnet-space \
|
| 61 |
-
. \
|
| 62 |
-
--repo-type=space \
|
| 63 |
-
--commit-message "feat: FFDNet denoiser via Gradio"
|
| 64 |
-
```
|
| 65 |
-
|
| 66 |
-
### Opção 3 — git subtree (mantém sync com o Cortex)
|
| 67 |
-
|
| 68 |
-
```bash
|
| 69 |
-
# dentro do repo cortex-mvp, na raiz
|
| 70 |
-
git remote add ffdnet-hf https://huggingface.co/spaces/luisabwk/pdfFormDetector
|
| 71 |
-
git subtree push --prefix=services/ffdnet-space ffdnet-hf main
|
| 72 |
-
```
|
| 73 |
-
|
| 74 |
-
## Uso da API
|
| 75 |
-
|
| 76 |
-
Depois do Space buildar, a API fica disponível em:
|
| 77 |
-
|
| 78 |
-
```bash
|
| 79 |
-
curl -X POST https://luisabwk-pdfformdetector.hf.space/api/denoise \
|
| 80 |
-
-H "Content-Type: application/json" \
|
| 81 |
-
-d '{"data": ["<base64 data URL ou URL pública>", 15, "color"]}'
|
| 82 |
-
```
|
| 83 |
-
|
| 84 |
-
Ou via `gradio_client`:
|
| 85 |
-
|
| 86 |
-
```python
|
| 87 |
-
from gradio_client import Client, handle_file
|
| 88 |
-
|
| 89 |
-
client = Client("luisabwk/pdfFormDetector")
|
| 90 |
-
result = client.predict(
|
| 91 |
-
image=handle_file("/caminho/para/imagem.png"),
|
| 92 |
-
noise_sigma=15,
|
| 93 |
-
mode="color",
|
| 94 |
-
api_name="/denoise",
|
| 95 |
-
)
|
| 96 |
-
print(result) # path para o PNG denoised
|
| 97 |
-
```
|
| 98 |
-
|
| 99 |
-
## Parâmetros
|
| 100 |
-
|
| 101 |
-
- **σ (sigma)**: 0–75. Valores típicos: 10–15 (ruído baixo), 20–30 (scan médio),
|
| 102 |
-
40+ (foto de celular com pouca luz). Valor alto em imagem limpa **borra**.
|
| 103 |
-
- **mode**: `color` (RGB) ou `gray` (grayscale; melhor pra documento texto).
|
| 104 |
-
|
| 105 |
-
## Limitações do CPU grátis
|
| 106 |
-
|
| 107 |
-
- ~2–6s para uma A4 300dpi.
|
| 108 |
-
- Cold start: o container hiberna após ~48h ocioso (1ª chamada após dormir
|
| 109 |
-
demora 20–60s).
|
| 110 |
-
- Memória: 16 GB; imagens muito grandes (>8 MP) podem estourar — pré-resize
|
| 111 |
-
no cliente se necessário.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|