alakxender
commited on
Update README.md
Browse files
README.md
CHANGED
@@ -1,199 +1,115 @@
|
|
1 |
---
|
2 |
library_name: transformers
|
3 |
-
tags:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
### Testing Data, Factors & Metrics
|
108 |
-
|
109 |
-
#### Testing Data
|
110 |
-
|
111 |
-
<!-- This should link to a Dataset Card if possible. -->
|
112 |
-
|
113 |
-
[More Information Needed]
|
114 |
-
|
115 |
-
#### Factors
|
116 |
-
|
117 |
-
<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
|
118 |
-
|
119 |
-
[More Information Needed]
|
120 |
-
|
121 |
-
#### Metrics
|
122 |
-
|
123 |
-
<!-- These are the evaluation metrics being used, ideally with a description of why. -->
|
124 |
-
|
125 |
-
[More Information Needed]
|
126 |
-
|
127 |
-
### Results
|
128 |
-
|
129 |
-
[More Information Needed]
|
130 |
-
|
131 |
-
#### Summary
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
## Model Examination [optional]
|
136 |
-
|
137 |
-
<!-- Relevant interpretability work for the model goes here -->
|
138 |
-
|
139 |
-
[More Information Needed]
|
140 |
-
|
141 |
-
## Environmental Impact
|
142 |
-
|
143 |
-
<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
|
144 |
-
|
145 |
-
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
|
146 |
-
|
147 |
-
- **Hardware Type:** [More Information Needed]
|
148 |
-
- **Hours used:** [More Information Needed]
|
149 |
-
- **Cloud Provider:** [More Information Needed]
|
150 |
-
- **Compute Region:** [More Information Needed]
|
151 |
-
- **Carbon Emitted:** [More Information Needed]
|
152 |
-
|
153 |
-
## Technical Specifications [optional]
|
154 |
-
|
155 |
-
### Model Architecture and Objective
|
156 |
-
|
157 |
-
[More Information Needed]
|
158 |
-
|
159 |
-
### Compute Infrastructure
|
160 |
-
|
161 |
-
[More Information Needed]
|
162 |
-
|
163 |
-
#### Hardware
|
164 |
-
|
165 |
-
[More Information Needed]
|
166 |
-
|
167 |
-
#### Software
|
168 |
-
|
169 |
-
[More Information Needed]
|
170 |
-
|
171 |
-
## Citation [optional]
|
172 |
-
|
173 |
-
<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
|
174 |
-
|
175 |
-
**BibTeX:**
|
176 |
-
|
177 |
-
[More Information Needed]
|
178 |
-
|
179 |
-
**APA:**
|
180 |
-
|
181 |
-
[More Information Needed]
|
182 |
-
|
183 |
-
## Glossary [optional]
|
184 |
-
|
185 |
-
<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
|
186 |
-
|
187 |
-
[More Information Needed]
|
188 |
-
|
189 |
-
## More Information [optional]
|
190 |
-
|
191 |
-
[More Information Needed]
|
192 |
-
|
193 |
-
## Model Card Authors [optional]
|
194 |
-
|
195 |
-
[More Information Needed]
|
196 |
-
|
197 |
-
## Model Card Contact
|
198 |
-
|
199 |
-
[More Information Needed]
|
|
|
1 |
---
|
2 |
library_name: transformers
|
3 |
+
tags:
|
4 |
+
- dhivehi
|
5 |
+
- ocr
|
6 |
+
- labels
|
7 |
+
license: mit
|
8 |
+
language:
|
9 |
+
- dv
|
10 |
+
base_model:
|
11 |
+
- microsoft/trocr-large-handwritten
|
12 |
+
pipeline_tag: image-to-text
|
13 |
---
|
14 |
|
15 |
+
# TROCR Finetuned for Dhivehi Text Recognition
|
16 |
+
|
17 |
+
Model: [microsoft/trocr-large-handwritten](https://huggingface.co/microsoft/trocr-large-handwritten)
|
18 |
+
|
19 |
+
- dataset size: 10k samples
|
20 |
+
- vocab size: 8k
|
21 |
+
- language: Dhivehi
|
22 |
+
|
23 |
+
This model has been finetuned for recognizing Dhivehi handwritten text that closely resembles printed or standardized fonts. The model was trained on a specialized dataset of 10,000 samples with an 8,000 word vocabulary focused on this specific use case.
|
24 |
+
|
25 |
+
Key points:
|
26 |
+
|
27 |
+
- Optimized for clean, standardized Dhivehi handwriting
|
28 |
+
- May have reduced accuracy on irregular handwriting styles
|
29 |
+
- Not recommended for general Dhivehi OCR tasks
|
30 |
+
- Consider additional finetuning or alternative models for different applications
|
31 |
+
|
32 |
+
While the model achieves high accuracy on the use case it was trained on, it may not perform well on general Dhivehi text or other use cases. For different applications, further finetuning on relevant data or using an alternative model may be necessary.
|
33 |
+
|
34 |
+
## Usage
|
35 |
+
from PIL import Image
|
36 |
+
import torch
|
37 |
+
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
|
38 |
+
|
39 |
+
```python
|
40 |
+
def load_model():
|
41 |
+
model_dir = "alakxender/dv-trocr-large-handwritten-syn-10k"
|
42 |
+
processor = TrOCRProcessor.from_pretrained(model_dir)
|
43 |
+
model = VisionEncoderDecoderModel.from_pretrained(model_dir)
|
44 |
+
device = "cuda" if torch.cuda.is_available() else "cpu"
|
45 |
+
model = model.to(device)
|
46 |
+
return model, processor, device
|
47 |
+
|
48 |
+
# load
|
49 |
+
model, processor, device = load_model()
|
50 |
+
|
51 |
+
# predict
|
52 |
+
image = Image.open("example.jpg")
|
53 |
+
inputs = processor(image, return_tensors="pt").to(device)
|
54 |
+
outputs = model.generate(**inputs, max_new_tokens=256)
|
55 |
+
predicted_text = processor.decode(outputs[0], skip_special_tokens=True)
|
56 |
+
print(predicted_text)
|
57 |
+
|
58 |
+
```
|
59 |
+
|
60 |
+
## Evaluation Results
|
61 |
+
|
62 |
+
```json
|
63 |
+
[
|
64 |
+
{
|
65 |
+
"file_name": "data/images/DV01-04/DV01-04_140.jpg",
|
66 |
+
"predicted_text": "ޤާނޫނުގެ 42 ވަނަ މާއްދާގައި ލާޒިމްކުރާ މި ރިޕޯޓު ތައްޔާރުކޮށް ފޮނުވުމުގެ ޒިންމާއަކީ ޤާނޫނުން އިދާރާގެ އިންފޮމޭޝަން އޮފިސަރު ކުރައްވަންޖެހޭ ކަމެކެވެ .",
|
67 |
+
"true_text": "ޤާނޫނުގެ 42 ވަނަ މާއްދާގައި ލާޒިމްކުރާ މި ރިޕޯޓު ތައްޔާރުކޮށް ފޮނުވުމުގެ ޒިންމާއަކީ ޤާނޫނުން އިދާރާގެ އިންފޮމޭޝަން އޮފިސަރު ކުރައްވަންޖެހޭ ކަމެކެވެ."
|
68 |
+
},
|
69 |
+
{
|
70 |
+
"file_name": "data/images/DV01-01/DV01-01_163.jpg",
|
71 |
+
"predicted_text": "ކަމުގައިވާ އޯގާވެރި ކަމާއި އަރާރުންވާ ކަމެއް : ހުކުރު ޚުތުބާ ނޮވެމްބަރ 25 , 2021 ކޮވިޑް19 : މިއަދު ފައްސިވި ޢަދަދު 100 އިން ދަށް ނޮވެމްބަރ 21 , 2021 ށ .",
|
72 |
+
"true_text": "ކަމުގައިވާ އޯގާވެރި ކަމާއި އަރާރުންވާ ކަމެއް: ހުކުރު ޚުތުބާ ނޮވެމްބަރ 25, 2021 ކޮވިޑް19: މިއަދު ފައްސިވި ޢަދަދު 100 އިން ދަށް ނޮވެމްބަރ 21, 2021 ށ."
|
73 |
+
},
|
74 |
+
{
|
75 |
+
"file_name": "data/images/DV01-04/DV01-04_147.jpg",
|
76 |
+
"predicted_text": ", ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް - ކުޅިވަރު ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް ސާއިފް ޝިޔާދު 1 , 2020 45 0 އިނގިރޭސި ޕްރިމިއަރ ލީގުގައި ކުޅުނު މެޗުތައް .",
|
77 |
+
"true_text": ", ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް - ކުޅިވަރު ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް ސާއިފް ޝިޔާދު 1, 2020 45 0 އިނގިރޭސި ޕްރިމިއަރ ލީގުގައި ކުޅުނު މެޗުތައް."
|
78 |
+
},
|
79 |
+
{
|
80 |
+
"file_name": "data/images/DV01-10/DV01-10_126.jpg",
|
81 |
+
"predicted_text": "ހިއްސާކޮށްލައްވާ ފަހުގެ ލިޔުންތައް އިހުގެ ލިޔުންތައް ފާހަގަކޮށްލެވޭ ބައެއް ލިޔުން މަޖިލީސް މެންބަރުންގެ މުސާރަ އިތުރަށް ބޮޑުކުރުމުގެ ދޮރު ބަންދުކުރަންޖެހޭ މަޖިލީހުގެ ޖަލްސާއެއް ނުބާއްވާތާ ދެމަސްވީއެވެ .",
|
82 |
+
"true_text": "ހިއްސާކޮށްލައްވާ ފަހުގެ ލިޔުންތައް އިހުގެ ލިޔުންތައް ފާހަގަކޮށްލެވޭ ބައެއް ލިޔުން މަޖިލީސް މެންބަރުންގެ މު��ާރަ އިތުރަށް ބޮޑުކުރުމުގެ ދޮރު ބަންދުކުރަންޖެހޭ މަޖިލީހުގެ ޖަލްސާއެއް ނުބާއްވާތާ ދެމަސްވީއެވެ."
|
83 |
+
},
|
84 |
+
{
|
85 |
+
"file_name": "data/images/DV01-04/DV01-04_100.jpg",
|
86 |
+
"predicted_text": "އެކަން ކަމަކީ ޤާނޫނު އަސާސީ އިން އެކަން ކަނޑައަޅާފައިވާ ގޮތަށް ވާ ހިނދު ރައްޔިތުން ތަމްސީލު ކުރުމުގެ ސިފަ އަށް އުނި އިތުރު ގެނައުމެއް ނެތެވެ .",
|
87 |
+
"true_text": "އެކަން ކަމަކީ ޤާނޫނު އަސާސީ އިން އެކަން ކަނޑައަޅާފައިވާ ގޮތަށް ވާ ހިނދު ރައްޔިތުން ތަމްސީލު ކުރުމުގެ ސިފަ އަށް އުނި އިތުރު ގެނައުމެއް ނެތެވެ."
|
88 |
+
},
|
89 |
+
{
|
90 |
+
"file_name": "data/images/DV01-04/DV01-04_112.jpg",
|
91 |
+
"predicted_text": "އާންމު އިޖުތިމާއީ އަދި އިޤުތިޞާދީ ހަރަކާތްތަކަށާއި އިންތިހާބީ ދާއިރާތަކަށާއި ސިޔާސީ މަޤާމުތަކަށް މީހުން ތައްޔާރުކުރުމާއި ކަނޑައަޅައިދިނުމާއި ހޭލުންތެރިކަން އިތުރުކުރުމަށް މަސައްކަތްކުރުމުގެ އިތުރުން ސިޔާސީ .",
|
92 |
+
"true_text": "އާންމު އިޖުތިމާއީ އަދި އިޤުތިޞާދީ ހަރަކާތްތަކަށާއި އިންތިހާބީ ދާއިރާތަކަށާއި ސިޔާސީ މަޤާމުތަކަށް މީހުން ތައްޔާރުކުރުމާއި ކަނޑައަޅައިދިނުމާއި ހޭލުންތެރިކަން އިތުރުކުރުމަށް މަސައްކަތްކުރުމުގެ އިތުރުން ސިޔާސީ."
|
93 |
+
},
|
94 |
+
{
|
95 |
+
"file_name": "data/images/DV01-01/DV01-01_4.jpg",
|
96 |
+
"predicted_text": "އެމެރިކާގެ ޑްރޯނެއް އިރާނުގެ ވައިގެ ސަރަހައްދުން ވައްޓާލާފައި ވޭތޯ އެމެރިކާގެ އަސްކަރިއްޔާގެ ސެންޓްރަލް ކޮމާންޑްގެ ތަރުޖަމާން ކެޕްޓަން ބިލް އާބަންއާއި އަލްޖަޒީރާއިން ސުވާލު ކުރެއްވުމުން އެފަރާތުން އެއްވެސް .",
|
97 |
+
"true_text": "އެމެރިކާގެ ޑްރޯނެއް އިރާނުގެ ވައިގެ ސަރަހައްދުން ވައްޓާލާފައި ވޭތޯ އެމެރިކާގެ އަސްކަރިއްޔާގެ ސެންޓްރަލް ކޮމާންޑްގެ ތަރުޖަމާން ކެޕްޓަން ބިލް އާބަންއާއި އަލްޖަޒީރާއިން ސުވާލު ކުރެއްވުމުން އެފަރާތުން އެއްވެސް."
|
98 |
+
},
|
99 |
+
{
|
100 |
+
"file_name": "data/images/DV01-03/DV01-03_36.jpg",
|
101 |
+
"predicted_text": "ސިފައިންގެ ޢާއިލާއާ މިއަދު އަލަށް ގުޅިވަޑައިގެންނެވި ހުރިހާ ސިފައިންނަށްވެސް ވަރަށް ކާމިޔާބު ވަރަށް ބާއްޖަވެރި ދުވަސްތަކަކަށް އެދެން .",
|
102 |
+
"true_text": "ސިފައިންގެ ޢާއިލާއާ މިއަދު އަލަށް ގުޅިވަޑައިގެންނެވި ހުރިހާ ސިފައިންނަށްވެސް ވަރަށް ކާމިޔާބު ވަރަށް ބާއްޖަވެރި ދުވަސްތަކަކަށް އެދެން."
|
103 |
+
},
|
104 |
+
{
|
105 |
+
"file_name": "data/images/DV01-08/DV01-08_13.jpg",
|
106 |
+
"predicted_text": "66 ވަނަ އަސާސީ ތަމްރީން ފުރިހަމަކުރި ސިފައިން ހުވާކުރުމުގެ ރަސްމިއްޔާތުގައި ވާހަކަފުޅުދައްކަވަމުން ރައީސް އިބްރާހީމް މުޙައްމަދު ޞާލިޙް ވިދާޅުވިއެވެ .",
|
107 |
+
"true_text": "66 ވަނަ އަސާސީ ތަމްރީން ފުރިހަމަކުރި ސިފައިން ހުވާކުރުމުގެ ރަސްމިއްޔާތުގައި ވާހަކަފުޅުދައްކަވަމުން ރައީސް އިބްރާހީމް މުޙައްމަދު ޞާލިޙް ވިދާޅުވިއެވެ."
|
108 |
+
},
|
109 |
+
{
|
110 |
+
"file_name": "data/images/DV01-10/DV01-10_194.jpg",
|
111 |
+
"predicted_text": "ނެއްލައިދޫ ބަނދަރު މަސައްކަތުގެ % 91 ނިމިއްޖެ ނޮވެމްބަރ 15 , 2021 ލާމަސީލު ޒުވާނާ ކޭމްޕް އިފްތިތާހު ކޮށްފި ނޮވެމްބަރ 14 , 2021 އެކްސިޑެންޓް ވުމުން އެމް .",
|
112 |
+
"true_text": "ނެއްލައިދޫ ބަނދަރު މަސައްކަތުގެ %91 ނިމިއްޖެ ނޮވެމްބަރ 15, 2021 ލާމަސީލު ޒުވާނާ ކޭމްޕް އިފްތިތާހު ކޮށްފި ނޮވެމްބަރ 14, 2021 އެކްސިޑެންޓް ވުމުން އެމް."
|
113 |
+
}
|
114 |
+
]
|
115 |
+
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|