Duy-NM commited on
Commit
31cbc2e
1 Parent(s): af7cadf
Files changed (1) hide show
  1. app.py +93 -0
app.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ import gradio as gr
4
+ from gradio_client import Client
5
+
6
+ token = os.environ['token']
7
+ client_cmt = Client("https://vtechai-ocr-cmt.hf.space/--replicas/crwgk/", token)
8
+ client_lic = Client("https://vtechai-ocr-license.hf.space/--replicas/cppkz/", token)
9
+
10
+
11
+ def ocr_cmt(img1, img2):
12
+ js = client_cmt.predict(img1, img2, fn_index=1)
13
+ with open(js) as f:
14
+ result = json.load(f)
15
+
16
+ return result
17
+
18
+ def ocr_pp(img):
19
+ js = client_cmt.predict(img, fn_index=3)
20
+ with open(js) as f:
21
+ result = json.load(f)
22
+
23
+ return result
24
+
25
+ def ocr_license(img):
26
+ js = client_lic.predict(img, fn_index=1)
27
+ with open(js) as f:
28
+ result = json.load(f)
29
+
30
+ return result
31
+
32
+ def ocr_regi(img):
33
+ js = client_lic.predict(img, fn_index=3)
34
+ with open(js) as f:
35
+ result = json.load(f)
36
+
37
+ return result
38
+
39
+
40
+ with gr.Blocks() as idcard_bl:
41
+ with gr.Row():
42
+ im1 = gr.Image(height=500, type='filepath', container=True, label='Mặt trước CMT/CCCD')
43
+ im2 = gr.Image(height=500, type='filepath', container=True, label='Mặt sau CMT/CCCD')
44
+ with gr.Row():
45
+ js = gr.JSON(label="json")
46
+ # area = gr.Radio(["Asia", "Europe/America"], label="Area?", value="Asia")
47
+ with gr.Row():
48
+ btn = gr.Button(value="Run")
49
+ btn_clean = gr.ClearButton([im1, js])
50
+ btn.click(fn=ocr_cmt, inputs=[im1, im2], outputs=[js])
51
+
52
+ with gr.Blocks() as pp_bl:
53
+ with gr.Row():
54
+ im1 = gr.Image(height=500, type='filepath', container=True)
55
+ js = gr.JSON(label="json")
56
+ # area = gr.Radio(["Asia", "Europe/America"], label="Area?", value="Asia")
57
+ with gr.Row():
58
+ btn = gr.Button(value="Run")
59
+ btn_clean = gr.ClearButton([im1, js])
60
+
61
+ btn.click(fn=ocr_pp, inputs=[im1], outputs=[js])
62
+
63
+ with gr.Blocks() as license_bl:
64
+ with gr.Row():
65
+ im1 = gr.Image(height=500, type='filepath', container=True)
66
+ js = gr.JSON(label="json")
67
+ # area = gr.Radio(["Asia", "Europe/America"], label="Area?", value="Asia")
68
+ with gr.Row():
69
+ btn = gr.Button(value="Run")
70
+ btn_clean = gr.ClearButton([im1, js])
71
+
72
+ btn.click(fn=ocr_license, inputs=[im1], outputs=[js])
73
+
74
+ with gr.Blocks() as register_bl:
75
+ with gr.Row():
76
+ im1 = gr.Image(height=500, type='filepath', container=True)
77
+ js = gr.JSON(label="json")
78
+ # area = gr.Radio(["Asia", "Europe/America"], label="Area?", value="Asia")
79
+ with gr.Row():
80
+ btn = gr.Button(value="Run")
81
+ btn_clean = gr.ClearButton([im1, js])
82
+
83
+ btn.click(fn=ocr_regi, inputs=[im1], outputs=[js])
84
+
85
+ with gr.Blocks() as demo:
86
+ gr.Markdown('<h1 style="text-align: center;">V-Reader</h1>')
87
+ gr.Markdown("*Chọn chức năng bạn muốn trải nghiệm")
88
+ gr.TabbedInterface([idcard_bl, pp_bl, license_bl, register_bl], ["CMT/CCCD", "PassPort", "Bằng lái xe", "Đăng ký xe"])
89
+ gr.Markdown('<span style="color:red">*Chúng tôi cam kết không lưu trữ và sử dụng dữ liệu khách hàng</span>.')
90
+
91
+
92
+ if __name__ == "__main__":
93
+ demo.launch()