File size: 3,968 Bytes
21ac63b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# راهنمای استفاده از dots.ocr Space

## نصب و راه‌اندازی

### 1. آپلود به Hugging Face Space

1. فایل‌های پروژه را به یک Hugging Face Space جدید آپلود کنید
2. مطمئن شوید که Space از نوع Gradio است
3. GPU را در تنظیمات Space فعال کنید (توصیه می‌شود: T4 یا بالاتر)

### 2. استفاده از رابط کاربری

بعد از راه‌اندازی Space:

1. تصویر سند خود را آپلود کنید
2. نوع پرامپت را انتخاب کنید:
   - **Full Layout + OCR**: تحلیل کامل با bounding box، دسته‌بندی و متن
   - **OCR Only**: استخراج ساده متن
   - **Layout Detection Only**: فقط تشخیص چیدمان
   - **Custom**: پرامپت سفارشی
3. دکمه "Process Document" را بزنید
4. نتیجه را در قالب JSON دریافت کنید

### 3. استفاده از API

#### روش Python:

```python
from gradio_client import Client

# آدرس Space خود را وارد کنید
client = Client("YOUR_USERNAME/YOUR_SPACE_NAME")

# پردازش تصویر
result = client.predict(
    image="path/to/your/image.jpg",
    prompt_type="Full Layout + OCR (English)",
    custom_prompt="",
    api_name="/predict"
)

print(result)
```

#### استفاده از اسکریپت آماده:

```bash
# نصب کتابخانه
pip install gradio_client

# اجرای اسکریپت
python api_example.py \
    --image your_document.jpg \
    --space-url YOUR_SPACE_URL \
    --prompt-type "Full Layout + OCR (English)"
```

### 4. استفاده از cURL:

```bash
curl -X POST "YOUR_SPACE_URL/api/predict" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      {"path": "base64_encoded_image_or_url"},
      "Full Layout + OCR (English)",
      ""
    ]
  }'
```

## فرمت خروجی

### Full Layout + OCR:

```json
[
  {
    "bbox": [x1, y1, x2, y2],
    "category": "Text",
    "text": "محتوای متن..."
  },
  {
    "bbox": [x1, y1, x2, y2],
    "category": "Table",
    "text": "<table>...</table>"
  },
  {
    "bbox": [x1, y1, x2, y2],
    "category": "Formula",
    "text": "\\LaTeX{formula}"
  }
]
```

## نکات مهم

1. **کیفیت تصویر**: برای نتایج بهتر از تصاویر با کیفیت بالا استفاده کنید
2. **رزولوشن**: حداکثر 11,289,600 پیکسل توصیه می‌شود
3. **زبان**: مدل از زبان‌های متعدد پشتیبانی می‌کند
4. **PDF**: فایل‌های PDF با DPI=200 بهترین نتیجه را می‌دهند

## عیب‌یابی

### خطای Out of Memory:
- سایز تصویر را کاهش دهید
- از GPU بزرگتری استفاده کنید

### خروجی نادرست:
- پرامپت دیگری امتحان کنید
- کیفیت تصویر را بهبود دهید

### مدل لود نمی‌شود:
- مطمئن شوید GPU فعال است
- صبر کنید تا مدل دانلود شود (اولین بار کمی طول می‌کشد)

## پشتیبانی

- GitHub: https://github.com/rednote-hilab/dots.ocr
- Hugging Face Model: https://huggingface.co/rednote-hilab/DotsOCR

## مثال‌های کاربردی

### 1. استخراج متن از فاکتور:
```python
result = client.predict(
    image="invoice.jpg",
    prompt_type="Full Layout + OCR (English)",
    custom_prompt=""
)
```

### 2. تشخیص فرمول‌های ریاضی:
```python
result = client.predict(
    image="math_document.png",
    prompt_type="Full Layout + OCR (English)",
    custom_prompt=""
)
# فرمول‌ها به فرمت LaTeX استخراج می‌شوند
```

### 3. استخراج جداول:
```python
result = client.predict(
    image="table_document.jpg",
    prompt_type="Full Layout + OCR (English)",
    custom_prompt=""
)
# جداول به فرمت HTML استخراج می‌شوند
```